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

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    123
    Location:
    USA
    Country:
    United States
    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

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    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

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    123
    Location:
    USA
    Country:
    United States
    The truth is...I could never understand pointers...even after all the tuts I've read. ;_;
     
  4. snesmaster40

    Member snesmaster40 GBAtemp Regular

    Joined:
    Nov 22, 2005
    Messages:
    262
    Country:
    United Kingdom
    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

    Member War Take it easy~

    Joined:
    Oct 26, 2007
    Messages:
    5,409
    Location:
    California
    Country:
    Japan
    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

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    123
    Location:
    USA
    Country:
    United States
    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

    Member Sp33der GBAtemp Fan

    Joined:
    May 31, 2008
    Messages:
    435
    Country:
    Netherlands
    Hahaha i tought this is was a tutorial on first sight xDD
     
  8. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,716
    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.
     
  9. BelmontSlayer
    OP

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    123
    Location:
    USA
    Country:
    United States
    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

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,716
    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).
     
  11. BelmontSlayer
    OP

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    123
    Location:
    USA
    Country:
    United States
    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

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    123
    Location:
    USA
    Country:
    United States
    Bump so FAST sees this.
     
  13. Toni Plutonij

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

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

    Member Advi GBAtemp Maniac

    Joined:
    Jan 26, 2009
    Messages:
    1,143
    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.........
     
  15. Noitora

    Member Noitora ::

    Joined:
    Aug 9, 2007
    Messages:
    3,768
    Location:
    Athens
    Country:
    Greece
    It's not that easy but if you're willing to learn, read this.
     
  16. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,716
    Country:
    United Kingdom
  17. shakirmoledina

    Member shakirmoledina Legend

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

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    123
    Location:
    USA
    Country:
    United States
    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

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,716
    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.
     
  20. Rykin

    Member Rykin GBAtemp Fan

    Joined:
    Feb 15, 2004
    Messages:
    394
    Location:
    Baltimore, MD
    Country:
    United States
    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.
     

Share This Page