The Battle of Olympus Latin Translation by abw Version 1.0 Release Date: March 21, 2018 Checksums (unpatched): GoodNES File Name: Battle of Olympus, The (U) [!].nes File MD5 021D505BD7F5EA9101C33171FEEBDF3A File SHA-1 DC1ED05F850070CCD73DC1D0F52CDA0277A0EF05 File CRC32 B99394C3 ROM MD5 FD643D07B01072A1376353BD37B1F8C6 ROM SHA-1 6027C3631B18C7352531E4339D7B33D12C4C4E97 ROM CRC32 6B53006A Checksums (patched): File MD5 B78AC2675EFC20951B77B80BE7358D64 File SHA-1 2DC1AE4BB11CD91738B59438D1F6F5C76C7980FC File CRC32 9972D80E ROM MD5 189B441A77B7B7CE95D76FECF47DBB3D ROM SHA-1 8315E28B9A1B7EEBE66E88ED7AF0F1308CF9188D ROM CRC32 4BB24CA7 To Apply the Patch: You will need: a copy of the The Battle of Olympus ROM and an IPS patching utility. If you don't have the ROM, go ask Google how to get it. If you don't have a patcher, I can recommend Lunar IPS (http://www.romhacking.net/utilities/240/), so snag that too. Then simply follow your chosen patcher's instructions to apply the patch to the ROM. Now that that's done, fire up your favourite NES emulator and prepare yourself for some Latin-ey goodness! About the Patch: While looking for some cannon fodder to feed to abcde (shameless plug: http://www.romhacking.net/utilities/1392/) a couple of years ago during its development, I remembered somebody mentioning that The Battle of Olympus used a 5-bit text encoding, so I decided to take a look under its hood to find out what made it tick, figuring that it wouldn't be too much different from other games I had examined which use non-byte text encodings. As it turned out, The Battle of Olympus's script engine had a couple of surprises in store for me! I'll mention a few examples: * Table switching: despite its 5-bit text encoding, The Battle of Olympus is capable of displaying 69 different printable characters in its text while still reserving some code points for control codes such as line and page breaks (for the mathematically challenged, this is impressive because using 5 bits per character normally gives you at most 2^5 = 32 possible options, which is much less than the 70+ that The Battle of Olympus actually uses). How? Certain control codes are used to signify mid-string encoding changes, a.k.a. table switching. Table switching happens a fair bit in Japanese games, but seeing it in an English game was unexpected (for me, anyway). * Text isn't text: another unexpected discovery was that The Battle of Olympus's "text" strings were actually a scripting language complete with commands for testing and setting various variables and a multitude of branching constructs (a.k.a. embedded pointers); only a couple of those commands end up printing text to the screen. * Old dog, new tricks: some of the features The Battle of Olympus uses are similar to features which enjoy some level of support in pre-existing script extraction/insertion utilities, but with some twists. ** Displayable text is stored in Pascal format, but since The Battle of Olympus uses 5-bit encodings instead of 8-bit, the Pascal length is given in quintets, not octets. ** One type of embedded pointers used by The Battle of Olympus specifies relative addresses instead of absolute addresses (e.g. "skip over the next 12 bytes" instead of "go to address $ABCD"). ** Depending on how you conceptualize The Battle of Olympus's table switching, it can use anywhere between 3 and 13 different table files, which is between 50% and 550% more table files than any pre-existing utility I'm aware of supports. By the time I had gained a sufficiently deep understanding of The Battle of Olympus's internals and put that knowledge to use by pumping abcde up enough to be able to handle all of its features (which was nearly 2 years of elapsed time, off-and-on; it's hard to say for sure, but that probably equates to a couple of months of solid work), I figured I might as well put in an extra day and translate the script too :p Progress: I'm calling it version 1.0, but this is not *quite* a complete translation. Except for the title screen logo, I was generally too lazy to bother with editing English "graphical" text (e.g. the "N" and "S" on the world map's compass, the fancy "The End" text after the end credits, etc.), and I decided to leave some of the text that was English in the original Japanese release as English in the Latin release. Those few instances aside, the remainder of the game is entirely in Latin. Contact: Fan mail, insults, comments, suggestions and the like can all be sent to tempestas.caput@gmail.com where they will almost certainly all be read (unless they get filtered as spam). That said, I have been known to go for extremely long periods of time without checking my mail, so don't be upset if you don't receive a response in a timely manner! Thanks to: * All the helpful people who wrote the utilities and documentation I've used, particularly: ** The FCE(U/X/XD/SP/etc.) development team - this patch would have been completely infeasible without a quality debugging emulator. ** William A. Whitaker and his WORDS program for providing the world with a Latin spell-checker. ** Yy. One of these days I will take the time to learn how to use your program properly, but that day is not today!