The translating games tutorial by BaSs: ------------------------------------------------------------------------------------ Since it is almost impossible to recompile binaries with new string data, the only way to 'translate' the game is to replace the Japanese character strings with normal alphabet strings. The Japanese characters are (in most cases) refered to with the JIS standard. This is a two byte code to refer to a Japanese character. This JIS characterset contains Kanji, Katakana, Hiragana , various aplhabets and a whole bunch of tokens. The first byte of a JIS code is bigger than 0x80. It does not mean that this full set is included in the binary. In some cases only the characters used in the game are included and the other characters are left out. I don't know if the DC main rom contains a full Japanese character set. In most cases however, the full alphabet is included, since this is mainly used for usernames etc. So how can we give it a go? Step 1 : Determine if the text used in the game is stored somewhere and that it is not encoded. The easiest way is to create an image (for educational purpose ofcourse :P ) or to copy the files to you harddisk of your PC. Use a editor like Ultraedit. It has a hard time reading a full image because it always copies the file to a temporary file first. But after it's finished copying, it is fairly fast. Use the 'find' option to locate a unique string out of the game. Preferably a normal alphabet-string. Be aware that JIS also has 2-bytes codes to refer to alphabet characters but these are in most cases as wide as the Japanese characters (that is half as wide as normal alphabet characters). Als be aware that some text strings can be actually pictures and thus will not show up in your binary. In some cases the text is encoded and in that case is is really hard to find. In most games, the text used in menus and in the actual games is seperatly stored in various files. If you use Ultraedit to search a string in a (hex) binary, make sure to select the option 'Search ASCII', else it will not search properly. If you found your unique string, you can like if you can locate more alphabet text fragments. Most strings will be seperated by one ore more 0x00 bytes. The easiest part is to just select a portion of the data before and after the location your unique string showed up and paste it into another file. Change this file into a HTML file by adding: .html Include you copied section heren and do not forget at the end of the file. Use a standard browser with Japanese language support to load the file we just created. Make sure the character coding is set to Japanese SJIS. IE will start whining immediately when you don't have Japanese support and make you download it. You can now see is some more Japanese text is around the location where you found the unique string. If it is there, then we are in the right location. If not, then you'll have to continue searching. In case only the second byte of a JIS character is copied, a strange characte is show in most cases. Step 2: Now we have found some Japanese text (maybe not all of it), we can test if we can alter this text. replace all the text (maybe leave the zero's unchanged) by the complete alphabet and all other characters on your keyboard. Replace a much strings as possible. Save your image and burn it again to CD. (There is no DC emulator unfortunately so we can't try the image on our harddisk directly). Go/play to the position where you're unique string (you used to search previously) should be show. If the text you just replaced the original strings with, shows up, then we can be sure we can change the file without any problem. Some programs use a CRC or other checking mechanism to prevent people tinkering with their work. In that case the binary neesds to be dissasembled in order to disbale that check (that's quite difficult). Step 3: Get a 'fresh' image with the original strings in it. Located your unique string again and start working from there. Locate and note every start and end position of an original string. Remember that they are seperated by zero's in many cases. The most easy way is to copy the original string to an HTML file (like we just made) and note the positions of is in the same HTML file. You get entries like : 1c12e4-1c1303 japanese text You will get a long list of these entries, and you can also see if the parts you copy will also make sense. If you also load this HTML file in a webbrowser, then you will only have to save the file when you add something and then you can hit the reload button of the browser too look. Step 4: After locating the strings, we can translate them. Step 5: Since we can only replace, we have to make sure that our translation fits in the original location. Because of the 2 byte JIS coding, you will in most cases have twice as much space for the normal alphabet. Always leave the zeros untouched since these are used as seperators. You can enter the translations by hand. But if you have al lot to enter, , make (or find on the internet?) a program to inject your translation in the specified location. A 'space' is 0x20 and you can use this to remove unwanted characters. Step 6: Burn the patched image to CD and check if you replaced and translated all strings. Repeat the last steps until you are satisfied or can't find an other text to translated. Be prepared to ruin quite a few CD's. For a simple translation like the CVS2 fandisk, I spend over 5 CD's to fully translate the CVS2 fandisk. If you translate for example a fighting-game, try to get hold of a good FAQ where the original japanese terms are used. For a good online dictionary, try http://www.alc.co.jp/ You can just cut and paste text into it (do not forget to set it to Japanese English). If some text is impossible to translate, just try to translate it as close as possible. Some strings can be merely impossible to translate. But if you just translate 90% of the text, it will be more than enough for non-japanese speakers to understand. It's not an easy task, and takes quite some time. -- Tutorial by BaSs - bramenjam@hellokitty.com