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

Discussion in 'NDS - ROM Hacking and Translations' started by BelmontSlayer, Feb 10, 2009.

  1. BelmontSlayer
    OP

    BelmontSlayer Pokémon Princess

    Member
    168
    71
    May 11, 2006
    Thailand
    Memememe Island
    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.

    [​IMG]

    ...leads to...

    [​IMG]

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

    psycoblaster Divine

    Member
    2,132
    2
    Jan 26, 2008
    Seoul.. (in Korea)
    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.
     
  3. BelmontSlayer
    OP

    BelmontSlayer Pokémon Princess

    Member
    168
    71
    May 11, 2006
    Thailand
    Memememe Island
    The truth is...I could never understand pointers...even after all the tuts I've read. ;_;
     
  4. snesmaster40

    snesmaster40 GBAtemp Regular

    Member
    262
    0
    Nov 22, 2005
    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.
     
  5. War

    War Take it easy~

    Member
    5,409
    8
    Oct 26, 2007
    California
    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.
     
  6. BelmontSlayer
    OP

    BelmontSlayer Pokémon Princess

    Member
    168
    71
    May 11, 2006
    Thailand
    Memememe Island
    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? [​IMG]
     
  7. Sp33der

    Sp33der GBAtemp Fan

    Member
    435
    1
    May 31, 2008
    Netherlands
    Hahaha i tought this is was a tutorial on first sight xDD
     
  8. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,869
    9,780
    Nov 21, 2005
    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.
     
  9. BelmontSlayer
    OP

    BelmontSlayer Pokémon Princess

    Member
    168
    71
    May 11, 2006
    Thailand
    Memememe Island
    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).
     
  10. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,869
    9,780
    Nov 21, 2005
    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).
     
  11. BelmontSlayer
    OP

    BelmontSlayer Pokémon Princess

    Member
    168
    71
    May 11, 2006
    Thailand
    Memememe Island
    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. :/
     
  12. BelmontSlayer
    OP

    BelmontSlayer Pokémon Princess

    Member
    168
    71
    May 11, 2006
    Thailand
    Memememe Island
    Bump so FAST sees this.
     
  13. Toni Plutonij

    Toni Plutonij *has TrolleyDave & tiny p1ngy on moderating shelf!

    Former Staff
    8,153
    315
    Dec 22, 2007
    Croatia
    Depths of Nuclear powerplant
    Maybe you could PM FAST, I'd really like to see this start rolling! [​IMG]
     
  14. Advi

    Advi GBAtemp Maniac

    Member
    1,143
    5
    Jan 26, 2009
    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.........
     
  15. Noitora

    Noitora ::

    Member
    3,765
    0
    Aug 9, 2007
    Greece
    Athens
    It's not that easy but if you're willing to learn, read this.
     
  16. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,869
    9,780
    Nov 21, 2005
    United Kingdom
  17. shakirmoledina

    shakirmoledina Legend

    Member
    6,611
    218
    Oct 23, 2004
    Tanzania
    Dar es Salaam
    i thought it was something like a program that instantly translates but nah... its not possible
     
  18. BelmontSlayer
    OP

    BelmontSlayer Pokémon Princess

    Member
    168
    71
    May 11, 2006
    Thailand
    Memememe Island
    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?
     
  19. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,869
    9,780
    Nov 21, 2005
    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.
     
  20. Rykin

    Rykin GBAtemp Fan

    Member
    394
    0
    Feb 15, 2004
    United States
    Baltimore, MD
    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.