|
| | There are 50 guests and 3 MSX friends online
You are an anonymous user.
|
| |
Author
| tools for translation?
| telkoth msx friend Posts: 7 | Posted: March 11 2003, 08:29   | What tools would I need to translate a Japanese MSX game to English... I've never done anything like it before, and only have vauge ideas in my head, like "are strings in MSX even null-terminated?"
| | BiFi msx guru Posts: 3142 | Posted: March 11 2003, 10:03   | There are numerous of ways to translate texts in japanese games to any other languages.
I think in the very beginning of translation efforts, simple things like a disk editor is used (the first translations are done with disk games) to check how and where the texts are stored, where the non-japanese alphabet is stored in the character set to change the data from the japanese character codes to what the rest of the world can read. Disadvantage is this procedure is the limit for the texts.
Later better methods and tools were written to replace common words into a single character and using a dictionary system find the word that belongs there. Games like Illusion City, King Kong 2, Solid Snake, Snatcher and Shalom are translated this way. All games have their own translation tools or up to some point identical (when one person works on more translations).
Translating ROM games (like King Kong 2, Solid Snake and Shalom) isn't that easy as ROM data can't be altered. These translations are therefore done on ROM images (which in most cases are translated by either of above specified methods).
Did I miss some other method?
| | warau msx lover Posts: 117 | Posted: March 11 2003, 11:37   | I'm working (slowly) in Randar 3 translation since 1999. I've used a compiling system that creates a table pointing to the new texts (generally longer than the old ones). The game uses that table to know where is stored every phrase. The compiler tool always tries to make room when the new text is shorter, so there is more free space to allocate the new words (possibly longer).
I also edited some graphical elements such as text fonts, main title, etc. I had to code a compressor tool since original graphics are rle-compressed.
Anyway, when you attempt to translate a MSX game, you usually have to code your own tools, unless you decided to use the poor HEX editor method.
P.S. I remember that, when disassembling Randar 3, I discovered a nice trick: set the word SOUND when entering your name and you will access the BGM/SFX menu.
| | Randam msx user Posts: 41 | Posted: March 11 2003, 15:17   | If you haven't done anything like it before you probably will end up using a hex editor for starters. If you mean with 'null-terminated' that texts end with hex value '00' then the answer is: not always. It depends on the game but often '00' or 'ff' are used for this purpose.
Furthermore you need to find the characterset of a game and edit it when necessary.
There are more things you could take in consideration but those are the basics; no need to complicate things from the get go. Butiif you want to know how it's ideally done: combine Warau's method in combination with a library system in which you store frequently used words.
But for your first project try to select a game where you need to alter as little as possible aside from the texts. If you try to tackle all difficulties at once, it might get discouraging
| | telkoth msx friend Posts: 7 | Posted: March 11 2003, 20:26   | Thanks - I'll keep it all in mind. I'll start with hex-editing and see what I can do with that... but the problem I keep thinking about is: how will I identify the strings. If they were english, I assume it'd be ASCII, which makes it quite easy to find just at a glance, and recognize from the game. But the hex-editor certainly won't show me japanese characters  So what ASCII codes correspond to what japanese codes? Do they do some strange mapping for only the characters they need? Arbitrarily decide ASCII value 230 should be such-and-such a character? Or will they use something like Unicode, where a two-byte code represents a character?
Assembly I'm not too familiar with, unfortunately. I mostly learned emulated MIPS stuff... I know enough to know that data, such as strings, will probably be found somewhere near the end of an executable, but I'm also wondering about the DSK image format - it will contain several files, correct? How will I know where one file starts and another begins when I open the DSK file with a hex editor?
So many questions!  But thanks for any help. | | GuyveR800 msx guru Posts: 3048 | Posted: March 11 2003, 20:41   | Some games just store the japanese in (high-)ASCII. So if you use a japanese character table (i.e. use a (emulated) japanese MSX) then you can see them.
| | warau msx lover Posts: 117 | Posted: March 12 2003, 12:36   | The DSK format is a full image of sectors contained in the original diskette.
So, if the game had a FAT system, you may edit the files inside the DSK by using a tool like DSKTOOL, DSX, WINIMAGE, etc.
But, there are many MSX games that use their own file system, or simply they read sectors in a raw mode. In these cases you have to edit the DSK file directly.
About identifying text strings .... japanese characters are usually stored by using the extended ASCII table (80h or upper). Though, the space character still remains the same (20h). Strings are null-terminated, so each string ends with 00 or FFh.
So, you have to search something that looks like this: E5 E3 D9 E0 20 E1 DF E0 DB DA 20 DA DB E4 FF.
Another key to identify japanese text is to look for the English words. Sometimes, though game was in Japanese, there are some words in English (for example, LIFE, START, GAME OVER, etc.) If you see these words in the HEX editor, japanese words are near ....
Finally, if you use a Japanese character set, you may identify the katakanas and hiraganas directly in the character grid on the HEX editor.
And what about kanjis? Well ... they use something similar to Unicodes for 2-bytes characters, so always are the same .... if you got a Kanji table with their respective codes, you can indentify them in the HEX editor quickly.
If you use the real MSX for editing, try the SHEM editor. It is perfect for translations since it allows you to see the graphics patterns for each byte or word or dword.
| | Randam msx user Posts: 41 | Posted: March 12 2003, 13:57   | Other smart ways to find the japanese characters is to start looking at save-games or userdisks or use a relative search to find out how they are stored.
| | NYYRIKKI msx master Posts: 1528 | Posted: March 12 2003, 23:59   | Quote:
| If you use the real MSX for editing, try the SHEM editor. It is perfect for translations since it allows you to see the graphics patterns for each byte or word or dword.
|
If you use real MSX I would suggest you to use SUPER-X
It has kanji reader, monitor, assembler, disassember, character editor, calculator, ASCII editor, HEX editor, sector editor, file editor etc. all in one package.
~NYYRIKKI | | GuyveR800 msx guru Posts: 3048 | Posted: March 13 2003, 00:06   | o.O
That sounds like an amazing program! Where can we get it?
| | telkoth msx friend Posts: 7 | Posted: March 13 2003, 00:34   | I have had some amount of luck finding the strings. I've been able to find english strings, as you said, and realize nearby japanese strings, and then by editing them and seeing what I changed, I can look at the original and find the value being used for a given character, which I can identify in the game, etc, etc...
I'm quickly realizing, however, the limitations of directly editing the file - I can't change the length of strings. I found a disassembler, however I cannot seem to get the files out of the DSK image. I assume the filenames are also in Japanese, as I get garbage-looking names with DskExplorer, DSKTool, and the like. They both seem to have trouble extracting the files, giving various error messages, or simply locking up  Is there a way to perhaps disassemble the program while it's loaded in memory? Or is there a clever way I can lengthen or shorten strings in the file directly? I know that the strings are referred to by address, so if I lengthen a string, I would have to alter references to addresses for all the strings afterwards throughout the code - whee. That's not feasible. I almost wonder if it is feasible to shorten a string to give more length to the directly following string, then I might only have to change references to that following string... but even if I know the address, I imagine there could be lots of other values that just happen to match the value of the address. Wow, what a mess!
BiFi mentioned something about dictionaries and things that didn't entirely make sense to me. Is this something I can do when only hex editing is available to me? If so - what is it?  | | snout
 msx legend Posts: 4992 | Posted: March 13 2003, 00:34   | Indeed, I don't know the program either and am very very curious  | | GuyveR800 msx guru Posts: 3048 | Posted: March 13 2003, 01:01   | Quote:
| I'm quickly realizing, however, the limitations of directly editing the file - I can't change the length of strings.
|
You have found the biggest problem in translation
AFAIK Oasis just shortened the messages so they would fit. But particularly on SNES translations there has been done major hackwork in some games. I'm talking totally rewriting the message subsystem and/or menu system here.
Besides hacking and partially reprogramming the game, there is another trick that might help. Usually a game that stores all its messages in one file has a table with pointers to all the texts somewhere. You can then change the lengths of the messages and update the pointer table. In that case, there is no need to alter any references in the code.
Ofcourse, if you're unlucky, every address is hardcoded and you're pretty much in for a hard job. But if you're lucky, you can actually increase the total lengths of the texts by increasing the filesize. This ofcourse depends on the amount of free memory after where it's loaded.
Quote:
| BiFi mentioned something about dictionaries and things that didn't entirely make sense to me. Is this something I can do when only hex editing is available to me? If so - what is it?
|
Using a dictionary means you assign whole words to certain bytes. For instance, the ASCII codes higher than 128 can be used. For instance, when in a game the word 'sword' is used a lot, you can replace it with code '230' and save 4 bytes every time!
However, this requires you rewrite or at least adapt the message display routines. Ofcourse you will need room for this new routine and also a list of the words in your dictionary. You will have to find room in memory for this.
May I ask what game you are working on? | | NYYRIKKI msx master Posts: 1528 | Posted: March 13 2003, 01:48   | Quote:
| o.O
That sounds like an amazing program! Where can we get it?
|
Try:
www.nyyrikki.msx2.com
Documentation is unfortunately only in Japanese. I asked Takamichi to translate that, but I didn't have luck this time.
~NYYRIKKI | | NYYRIKKI msx master Posts: 1528 | Posted: March 13 2003, 02:33   | I just have to continue a bit as for 8 years this program has been my most used software. (Don't let the outlook trick you, it IS great!)
- You can access all memory in all slots & Memorymapper pages
- You can export data to BASIC listings
- You can use online help to remember what this memory location, I/O port or BIOS address is ment for and edit the notes from the software.
- You can use all this functionality also in VRAM
- This adds CALL commands to BASIC (for example changing CPU mode in MSX tR)
- You can run ML programs in trace mode
- You can load / save to / from sectors, RAW files or BLOAD files
- Kanji can be read also in non Japanese computers
- You can read ML programs easyly as you can jump to any address and back by simply using Left/Right cursor keys. (in this kind of jump foreward you can also define slot)
- You can view all values in different number systems by simply pressing space
- You can easyly change editing / viewing mode by just pressing Return + cursors
- You can easyly search strings, words, bytes or assembler commands from memory (CTRL+S (Define search), CTRL+B (back), CTRL+F (foreward))
- DOS2 is supported
- You can get quickly all needed info about your MSX in simple raport
- You can take / look / print screenshot of the program
... I could still continue, but I think, that you will check this out already, if this kind of software is interesting for you.
~NYYRIKKI
| |
| |
| |
| |