ROM Hack How to translate a RPG from Jpn to Eng in 10 seconds...

BelmontSlayer

Pokémon Master
OP
Member
Joined
May 11, 2006
Messages
306
Trophies
1
Age
34
Location
Memememe Island
XP
1,280
Country
Thailand
I dunno how many of you guys remember me, but I was the project leader and main romhacker for the Final Fantasy IV DS translation project. If you could take a few minutes out of your time to read this, you may be surprised and filled with glee. Hopefully somebody can help me with this supposedly simple task.

I doubt many of you have heard of it, but there was a hidden gem of an RPG released for the Gameboy Color called Magi Nation (Reviews). This game was my favorite GBC game and I played it through at least 5 times. I recently learned that a GBA version of the game ([GBA] 0804 - Magi Nation) was released with updated graphics, endings and creatures.

I decided to take a look at the GBA version to see how easy it would be to translate...and BOY WAS I SURPRISED! There is a complete english translation (uncompressed ascii) already built into the game! It looks like the Japanese company that made the game left a full english script in the game, but never "enabled" it. Some of you may remember that Dragon Quest IV DS had the exact same thing in it's (J) dump and all it took was a simple hexedit or patch to enable the english script! I poked around and found out that the I could copy and paste the english text over the japanese text, but it wouldn't work unless I changed the bytes 11 to 10 on each word (see attached pics). I'm assuming 11 and 10 refer to the languages built into the dump and there must be a way to change a few bytes to activate the english script!

If anyone who thinks they might be able to help could look at the ROM and see if they can figure it out, you'd be doing myself and a whole bunch of Magi Nation fans a huge favor. If the pro romhackers that lurk here determine it can't be done, I will start a translation project and manually copy and paste all the text.

P.S. - I would've posted this on the GBA board, but they're dead and all the real romhackers lurk here. Mods, please don't move it, lest this idea will be a failure.
P.S.S. - Ignore the gibberish japanese in the screenshots, I wasn't using a hexeditor that supported the text.

Hexedit.jpg


...leads to...

Furok.jpg


Click the text below for pictures of the english script...
Creatures
Menus
Script
 

BelmontSlayer

Pokémon Master
OP
Member
Joined
May 11, 2006
Messages
306
Trophies
1
Age
34
Location
Memememe Island
XP
1,280
Country
Thailand
psycoblaster said:
Why not just rearrange the pointers to the new text? If there is a pointer table, then making a program to calculate the new pointers won't be a problem.
The truth is...I could never understand pointers...even after all the tuts I've read. ;_;
 

snesmaster40

Well-Known Member
Member
Joined
Nov 22, 2005
Messages
262
Trophies
0
XP
116
Country
Pointer are really easy for the GBA.

For the Furok text it starts at: 76EF0D

The pointer should be: 0DEF76

Now find "0DEF76" in the ROM with the search function and then you can change the pointer.

Basically take the last 2 digits and put it at the front and the front 2 at the end. This should work for all GBA games and it worked for SRWD and SRWJ.
 

War

Take it easy~
Member
Joined
Oct 26, 2007
Messages
5,408
Trophies
0
Age
32
Location
California
Website
www.gbatemp.net
XP
1,999
Country
This isn't translating in 10 seconds. This is exploiting the fact that developers left a translated script in the game and replacing the Japanese text with that hidden translated text.
 

BelmontSlayer

Pokémon Master
OP
Member
Joined
May 11, 2006
Messages
306
Trophies
1
Age
34
Location
Memememe Island
XP
1,280
Country
Thailand
snesmaster40 said:
Pointer are really easy for the GBA.

For the Furok text it starts at: 76EF0D

The pointer should be: 0DEF76

Now find "0DEF76" in the ROM with the search function and then you can change the pointer.

Basically take the last 2 digits and put it at the front and the front 2 at the end. This should work for all GBA games and it worked for SRWD and SRWJ.
That's it? Seriously?! I wish I had known this back in the day... :/

QUOTE(War @ Feb 10 2009, 11:25 AM) This isn't translating in 10 seconds. This is exploiting the fact that developers left a translated script in the game and replacing the Japanese text with that hidden translated text.
Very true, but there was limited space in the topic title. After all, I couldn't very well call it "how to exploit a flaw left in an RPG to turn it from Jpn to Eng in 10 seconds" now could I?
smileipb2.png
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Damn, you got me on this some time ago but I did little more than toy with the rom (I was using it in the background hacking (graphics background) for my guide).

Note on pointers, the entire GBA rom is available in the memory and while the advice is correct each number will be prefixed with 08 or one of the higher mirrors (0A or 0C)
In you example (76EF0D) it would be something like

0876EF0D which would be stored in the rom as 0DEF7608
As I mentioned above there are multiple mirrors (the larger ones correspond to higher waitstates) so searching for the single string is probably a better idea initially.
Also EF76 will likely be a better search as it will net a fair few pointers (if you do a search and it returns a bunch of equally spaced EF76 entries then go there).

Edit:
I dumped the English text a little while back and it had a fair few areas of 00 buried in the middle of it, it is not a problem really but worth knowing.
 

BelmontSlayer

Pokémon Master
OP
Member
Joined
May 11, 2006
Messages
306
Trophies
1
Age
34
Location
Memememe Island
XP
1,280
Country
Thailand
FAST6191 said:
I dumped the English text a little while back and it had a fair few areas of 00 buried in the middle of it, it is not a problem really but worth knowing.
Huh. Thanks for the better explanation on pointers, it will definitely help. As for the 00s, the advantage of that is that I could use them for longer words and sentences and point the pointers to there, correct?

Also, has anyone had any luck seeing if there's a "trigger" or something to force the english script to take over (Similar to Dragon Quest IV DS).
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
For the GBA it does not really matter. As I mentioned the entire rom can be read from the memory bus unlike most newer systems that use a file system, such an arrangement is a double edged sword* but all you need to know at this juncture is you can use the "extra space".

Should you stick 09 (or 0B or 0D) you get an extra 16 megs to play with. I do not suggest using it though as the EZ 3 in 1 and older EZ carts often only have 16 megs of ram meaning it has to go on the NOR if you go over, if you have some space in the first 16 megs which you do as the rom is only 8 megs to begin with (8 megs + trimming space) then use that.
If you can not fit a basic hack like this (especially with text already there) you are doing something very wrong.
Many GBA hackers use this principle rather than having to alter the stuff already in a game.

Regarding a trigger I have not gone looking but it is 50-50 as to whether there will be one (if you can find the instruction that references the Japanese pointers and change that then you might be in business, this depends on whether the English text has pointers though (I was not looking at the time)).

*for the sake of completeness this makes running a tracing emulator very easy, it limits you to 32 megs (DS is in the gigabytes), it makes pointers that little bit more complex, it means you need to work hard to figure out what does what and where it all lies (but tracing makes it easier).
 

BelmontSlayer

Pokémon Master
OP
Member
Joined
May 11, 2006
Messages
306
Trophies
1
Age
34
Location
Memememe Island
XP
1,280
Country
Thailand
Hmm...Any chance you could check for a trigger FAST? It be great if somebody could check before I spend hours on this translation. I don't know of anyone else who is good in ASM and knows what to look for. :/
 

Advi

Well-Known Member
Member
Joined
Jan 26, 2009
Messages
1,140
Trophies
0
Age
30
Website
www.fletchowns.net
XP
172
Country
United States
Hmm.........

say, how do you open a GBA ROM to see its code? If it's that simple then I wanna see if I can translate another favorite of mine.........
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom

BelmontSlayer

Pokémon Master
OP
Member
Joined
May 11, 2006
Messages
306
Trophies
1
Age
34
Location
Memememe Island
XP
1,280
Country
Thailand
FAST6191 said:
It seems I have it all set up from my tracing session anyway, if I get time later today I will see what can be done.
Many thanks FAST. Be sure to let me know what you find out. Also, thanks for the script. It will definitely help if I have to do this manually. Do you mind explaining how you dumped it as clean and formatted text?
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Alas films and whatever I pass off as work got in the way so I did not get a chance to play with tracing yet.

The script. It was a couple of months back that I did it but I think it was manual script dump via hex editor and the end of line simply replaced with 0d0a hex and stitched together with copy /b along with a tiny bit of editing for some of the larger sections of junk.
 

Rykin

Well-Known Member
Member
Joined
Feb 15, 2004
Messages
406
Trophies
2
Age
40
Location
Baltimore, MD
Website
Visit site
XP
798
Country
United States
War said:
This isn't translating in 10 seconds. This is exploiting the fact that developers left a translated script in the game and replacing the Japanese text with that hidden translated text.

This is very important. Do you know how many n00bs I heard chanting that the English text for Pokemon Platinum was hidden in the game? There were enough. They cited a rom hack similar to this one as their "proof" that Platinum already contained the English it needed.

Try not to misuse the word translate when it comes to "how quickly" it can be accomplished. It will only make n00bs think that ROM hackers are being lazy and not sharing the translation to the "deserving" public.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: @Sicklyboy, what's Kero Kero bonito?