# GBC ROM Translation



## Zhongtiao1 (Oct 1, 2016)

I'm trying to create an English translation of the game Shuihu Shenshou by Vast Fame. What application would be the easiest to use to start the translation from Chinese to English?

Sent from my Q5 using Tapatalk 2


----------



## FAST6191 (Oct 1, 2016)

The GBC is like most older consoles and has everything contained in one. To that end no tools like ndstool or things to unpack it into smaller files will exist really. I am not sure what went for GB/GBC homebrew but there could be something there.
Anyway so usual ROM hacking tools. If you need a guide to the hardware and memory layout then http://problemkaputt.de/pandocs.htm and if you need a debugger then http://bgb.bircd.org/

From a computing perspective Chinese text is much like Japanese so most things people use there will apply here.I don't know if you will see some of the really odd stuff we see for some older consoles for Japanese (encoding swap commands for one) but it is not impossible.


----------



## Zhongtiao1 (Oct 2, 2016)

FAST6191 said:


> The GBC is like most older consoles and has everything contained in one. To that end no tools like ndstool or things to unpack it into smaller files will exist really. I am not sure what went for GB/GBC homebrew but there could be something there.
> Anyway so usual ROM hacking tools. If you need a guide to the hardware and memory layout then http://problemkaputt.de/pandocs.htm and if you need a debugger then http://bgb.bircd.org/
> 
> From a computing perspective Chinese text is much like Japanese so most things people use there will apply here.I don't know if you will see some of the really odd stuff we see for some older consoles for Japanese (encoding swap commands for one) but it is not impossible.



Okay, thanks

Do you know of any gb/gbc rom hacking tools that may work on windows 7? All I've found is DOS and windows 9x applications that don't work.

Sent from my Q5 using Tapatalk 2


----------



## FAST6191 (Oct 2, 2016)

DOS stuff should work (most will not be dos as much as command line), worst case scenario you install dosbox or virtualbox and a copy of freedos or something. If by windows 95 you mean visual basic (does it complain about missing ocx files? Telltale sign if so) then it can be annoying but it is/was still supported up into windows 7. Vista had/has some problems with backwards compatibility with both of those things but windows 7 largely sorted it.

Beyond that there are not really any specialist tools needed beyond debugging emulators (bgb debugger should be fine as it has been kept updated) -- tile editors, hex editors, text bothering tools and the like are all pretty generic things used across multiple systems. I am not sure what there is for the GB/GBC processor right now as far as assemblers and disassemblers but as it is basically a z80 you should not be too hard pressed to find something.


----------



## Zhongtiao1 (Oct 4, 2016)

FAST6191 said:


> DOS stuff should work (most will not be dos as much as command line), worst case scenario you install dosbox or virtualbox and a copy of freedos or something. If by windows 95 you mean visual basic (does it complain about missing ocx files? Telltale sign if so) then it can be annoying but it is/was still supported up into windows 7. Vista had/has some problems with backwards compatibility with both of those things but windows 7 largely sorted it.
> 
> Beyond that there are not really any specialist tools needed beyond debugging emulators (bgb debugger should be fine as it has been kept updated) -- tile editors, hex editors, text bothering tools and the like are all pretty generic things used across multiple systems. I am not sure what there is for the GB/GBC processor right now as far as assemblers and disassemblers but as it is basically a z80 you should not be too hard pressed to find something.



Okay, I found a text editor, but I cannot find a .tbl file anywhere for the ROM. How do I generate or where can I get one?

Sent from my Q5 using Tapatalk 2


----------



## FAST6191 (Oct 4, 2016)

Found some footage, looks like it will have text rather than images with text in them (common in puzzle games and other low text affairs, especially on older systems).

For others reading


Anyway .tbl files are custom for each game, though some may share aspects. You will tend not to find them premade for anything other than pokemon and things with existing text editors for the game as most would consider it if not easy then a fundamental part of making a hack and a .tbl might just save someone that can make use of it a few minutes in making it.

The link in my signature ( http://gbatemp.net/threads/gbatemp-rom-hacking-documentation-project-new-2016-edition-out.73394/ ) covers a variety of methods of finding out text encodings, a handful are specific to the GBA or DS and some are not that suited to Japanese or Chinese but most apply to any system you are looking at.

If you are just learning about this sort of thing I should say that jumping right into a bit GBC RPG is quite ambitious.


----------



## Zhongtiao1 (Oct 5, 2016)

FAST6191 said:


> Found some footage, looks like it will have text rather than images with text in them (common in puzzle games and other low text affairs, especially on older systems).
> 
> For others reading
> 
> ...




I've tried working with GBA games before and thought i'd try this one.

I think it may use a different encoding as it is traditional Chinese. When I use crystaltile2, Most of the characters shown are not correct no matter which code page I select.

Sent from my Q5 using Tapatalk 2


----------



## FAST6191 (Oct 5, 2016)

Most games prior to the DS, in which is still features heavily, will use a custom encoding. I have not tangled with traditional Chinese (or simplified for that matter) in homebrew/"bootleg" games, and don't know enough offhand to say compared to Japanese which can see some odd things for the kana and versions of those, but I would not be surprised at all to see a straight up 16 bit encoding.
There may be a pattern or there may not in the resulting table but ones to look for are versions of existing encodings (you occasionally see Japanese games use the same order as shiftJIS or eucjp even if it is not the same encoding), most common character first has been seen many times, order it comes in in the script (be careful as it might be an earlier version of the script which was used) is another, in Japanese if there is another order from a common book or learning sheet then that is an option, I don't know if traditional Chinese organises the hanzi characters using a similar system to the Japanese moji system but that is an option we have seen and you also have font order (maybe font was defined by the table but either way it is related) where characters will appear in the table in the same order they appear in the pictorial font. Beyond that these things then tend to involve a lot of manual work, do remember that if you have the script in the game then you can edit it so if the characters start at 0000 you can put 0000 0001 0002 and so on in the script rather than hunting and decoding.


----------



## Zhongtiao1 (Oct 5, 2016)

FAST6191 said:


> Most games prior to the DS, in which is still features heavily, will use a custom encoding. I have not tangled with traditional Chinese (or simplified for that matter) in homebrew/"bootleg" games, and don't know enough offhand to say compared to Japanese which can see some odd things for the kana and versions of those, but I would not be surprised at all to see a straight up 16 bit encoding.
> There may be a pattern or there may not in the resulting table but ones to look for are versions of existing encodings (you occasionally see Japanese games use the same order as shiftJIS or eucjp even if it is not the same encoding), most common character first has been seen many times, order it comes in in the script (be careful as it might be an earlier version of the script which was used) is another, in Japanese if there is another order from a common book or learning sheet then that is an option, I don't know if traditional Chinese organises the hanzi characters using a similar system to the Japanese moji system but that is an option we have seen and you also have font order (maybe font was defined by the table but either way it is related) where characters will appear in the table in the same order they appear in the pictorial font. Beyond that these things then tend to involve a lot of manual work, do remember that if you have the script in the game then you can edit it so if the characters start at 0000 you can put 0000 0001 0002 and so on in the script rather than hunting and decoding.



I believe that the encoding is either Big5 or Big5+ I can't find out how to integrate those code pages into crystaltile2.


----------



## FAST6191 (Oct 6, 2016)

You are going to need to make a table with that encoding in then. My little windows machine is not here so I can't look up exactly the steps to load tbl files into CT2, though they have certainly been covered in the past, but it went something like in the hex view select the table on the left hand side somewhere (in English it was tbl file or something) and then in one of the dropdown menus there was another option called use tbl. If you speak Chinese then the original program comes in one flavour or another (most likely simplified or whatever goes in Hong Kong) and in that case I have no idea what it might be.

Basic table files are easy enough, in text form they run something like hexvalue=utf8 character. If you make one with something like tabular and crystaltile2 crashes then add an extra line at the end (open in a text editor and press enter at the end before saving it again).


----------



## Zhongtiao1 (Oct 6, 2016)

FAST6191 said:


> You are going to need to make a table with that encoding in then. My little windows machine is not here so I can't look up exactly the steps to load tbl files into CT2, though they have certainly been covered in the past, but it went something like in the hex view select the table on the left hand side somewhere (in English it was tbl file or something) and then in one of the dropdown menus there was another option called use tbl. If you speak Chinese then the original program comes in one flavour or another (most likely simplified or whatever goes in Hong Kong) and in that case I have no idea what it might be.
> 
> Basic table files are easy enough, in text form they run something like hexvalue=utf8 character. If you make one with something like tabular and crystaltile2 crashes then add an extra line at the end (open in a text editor and press enter at the end before saving it again).



It seems like the encoding may be two chunks for instance the character: 麼 every time you see it, it is 4E followed by BF and preceded by a DF and FC. Could it just be a coincidence? Or is there a connection?


----------



## VinsCool (Oct 6, 2016)

FAST6191 said:


> Found some footage, looks like it will have text rather than images with text in them (common in puzzle games and other low text affairs, especially on older systems).
> 
> For others reading
> 
> ...



This game looks like a Pokémon rippof, but it's surprisingly looking good, and has nice music too.


----------



## FAST6191 (Oct 6, 2016)

I very much doubt you have a 32 bit encoding so one or the other is more likely a control character of some form. It might change the font, the colour, the direction, make the game animate the character.... In some games it can also change the encoding (remember the bit about Japanese punctuation and variation characters, this would be a method by which we have seen this done).

Simple test though. What happens if you put another character you know in either of those 16 bit positions? Do remember ROM hacking does not have to be a passive/static analysis as you have the whole game and a means to run it and poke it right there, assuming you are not burning CDs every time then making a new file to test things on is cheap.


----------



## Zhongtiao1 (Oct 7, 2016)

FAST6191 said:


> I very much doubt you have a 32 bit encoding so one or the other is more likely a control character of some form. It might change the font, the colour, the direction, make the game animate the character.... In some games it can also change the encoding (remember the bit about Japanese punctuation and variation characters, this would be a method by which we have seen this done).
> 
> Simple test though. What happens if you put another character you know in either of those 16 bit positions? Do remember ROM hacking does not have to be a passive/static analysis as you have the whole game and a means to run it and poke it right there, assuming you are not burning CDs every time then making a new file to test things on is cheap.



It doesn't like it. It adds other parts to it and removes others. It keeps the DF and FC before, but removes the 4E and replaces it with a 47 ( I used the word 股). Also, B9 and C9 just randomly appear before the 47 once I replace the 麼.

--------------------- MERGED ---------------------------



VinsCool said:


> This game looks like a Pokémon rippof, but it's surprisingly looking good, and has nice music too.



It's actually really fun, I love the game. It's a completely original pokemon clone. No borrowed sprites, no borrowed music (to my knowledge). There's even a famicom version, but I prefer the GBC version.


----------



## Sliter (Oct 7, 2016)

maaaan I really wanted to see a translation of this!! if you need help with graphic edition, call me XD
I think the only fail of this game (nt playing it btw) is the monsters being soo rip-off :/(and no multplayer... well XD)

--------------------- MERGED ---------------------------

oh wait I confused with_ Space-Time Star Beast :v but well, I keep my word XD_


----------



## FAST6191 (Oct 7, 2016)

Sorry, should have clarified there.
Don't type anything, especially not in an IME, at this point as you are still figuring out the text, alter the hexadecimal manually instead.

You say it is 4EBFDFFC for the character in question, great change one to 4EBFDFFD and run it, then go back to the original ROM and instead change it to 4EBEDFFC and see what happens. Both might crash or display nonsense but you will have learned something.

After this look either side of the character you know as I imagine it is not a single character in the game by its lonesome. Copy one of those known working values in points in that and see what goes.


----------



## Zhongtiao1 (Oct 8, 2016)

FAST6191 said:


> Sorry, should have clarified there.
> Don't type anything, especially not in an IME, at this point as you are still figuring out the text, alter the hexadecimal manually instead.
> 
> You say it is 4EBFDFFC for the character in question, great change one to 4EBFDFFD and run it, then go back to the original ROM and instead change it to 4EBEDFFC and see what happens. Both might crash or display nonsense but you will have learned something.
> ...



Nothing I seem to do seems to crash it. I've replaced the hexadecimal values for a lot of parts and nothing I've done has crashed it.


----------



## Zhongtiao1 (Oct 9, 2016)

Okay, something weird today, I tried replacing some hexadecimal values right before the 4e and the 4e just changed to 5f. Same character different value. This happened after I reran the rom. Is it self-correcting?

Sent from my Q5 using Tapatalk 2


----------



## FAST6191 (Oct 9, 2016)

Changed in memory? The ROM itself should not edit itself (I could see it happening for DS homebrew but not GBC unless someone got quite crazy) but if you dumped the script from memory then it is possible, alternatively if you used a savestate and then dumped the memory it might already have been in memory and thus your changes would not have been reflected.


----------



## Zhongtiao1 (Oct 9, 2016)

FAST6191 said:


> Changed in memory? The ROM itself should not edit itself (I could see it happening for DS homebrew but not GBC unless someone got quite crazy) but if you dumped the script from memory then it is possible, alternatively if you used a savestate and then dumped the memory it might already have been in memory and thus your changes would not have been reflected.



I didn't use a savestate. I save, close crystaltile2, open the ROM in bgb, run it for a few minutes, then close it. I reopen crystaltile2, open the ROM, and the hexadecimal change themselves from what I originally edited.

Sent from my Q5 using Tapatalk 2


----------



## FAST6191 (Oct 9, 2016)

If you tried typing with an IME in the text part of the hex editor window rather than using the hex editor section I could see something happening. Otherwise for a ROM, even if this is a homebrew/"bootleg" game, to self modify is something odd.
I am still more likely to assume user error or that you have a programming style keep this ROM up to date with my change management/backup type setup going on.


----------



## Zhongtiao1 (Oct 17, 2016)

Well, I tried opening the ROM in the NJStar software, and I have confirmed that it uses the Big5 character encoding.


----------

