tools for translation?

Pagina 1/4
| 2 | 3 | 4

Door anonymous

incognito ergo sum (116)

afbeelding van anonymous

11-03-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?"

Aangemeld of registreer om reacties te plaatsen

Van BiFi

Enlighted (4348)

afbeelding van BiFi

11-03-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?

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

11-03-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.

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

11-03-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

Van telkoth

Ambassador (0)

afbeelding van telkoth

11-03-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 Smile 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! Smile But thanks for any help.

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

11-03-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.

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

12-03-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.

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

12-03-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.

Van NYYRIKKI

Enlighted (6091)

afbeelding van NYYRIKKI

12-03-2003, 23:59

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

Van anonymous

incognito ergo sum (116)

afbeelding van anonymous

13-03-2003, 00:06

o.O

That sounds like an amazing program! Where can we get it?

Van telkoth

Ambassador (0)

afbeelding van telkoth

13-03-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 Smile 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? Smile

Pagina 1/4
| 2 | 3 | 4