English Magi Nation GBA Translation - Rom Patch!

Discussion in 'GBA - Game Development, ROM Hacks and Translations' started by Aplier, Oct 19, 2019.

  1. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    (Nov 1, 2019)
    ~~Normmatt has shown up with a pointer-based translation of the script, which is now combined with my manual translation of menus and non-script things. It should be, of course, perfectly accurate to the original script, as it was included in the game file (meaning with some typos, error characters, and potentially untranslated messages). I'll be including that file up here as well as "Magi Nation (English Translation)", with overall translation completion rate I'd estimate to be at about 97% finished to perfection, and I'll be halting all progress on my manual, abridged translation efforts to instead polish up that joint production.

    Changes I made to the english script were: "Yes Hai" for all yes/no options being reduced to just "Yes", about 16 instances of "Tony" being changed over to " Dan", and dream creature names no longer being in all caps. And all instances of "..." were coded as one single character in japanese with no analogue in english, so resulted in a glitchy oversized semicolon looking thing, which I have for the time being replaced with just a hypen "-" since of the limited punctuation options included in the english font, that best matches the sentiment of a "...", though it does have a bit more sense of urgency/interruption to it.

    ~~Update on manual translation: All game mechanic relevant things outside of actual script (and a few odd messages here or there) have been translated! I have finished translating the entire main storyline script up through entering the Shadow Geyser in Cald (3rd zone), and the useful NPCs in those first 3 towns. The Lunar IPS file "Magi Nation (English Translation v0.3)" is my old, manual translating of the script before Normatt stepped in. I'll be moving the records of my older, manual, abridged translation efforts to a lower post so that it can be kept for posterity's sake, but not to be confused with the proper, pointer-based translation file that most accurately represents the original game.

    ~~The next chunk I'll be working through is: waiting to hear back from Normmatt on a couple last questions, then thanking him profusely, and finally I'll start going through with my micro-level efforts of removing error characters, message formatting, and general polishing.

    Updates of the translation progress will be at the top here as I get through each chunk!
    _________________________________________

    Hello world!

    Magi Nation is a game that tried to build on the pokemon/digimon/yugioh/fight using monsters hype of the 2000's. They had a collectible card game, gameboy color game, and even a tv show (crrriiinnnngggeee) all released here in the west. I don't know much about the CCG and could barely make it through an episode of the tv show, but I still have my original gbc cartridge. The video game used the same world of the Moonlands, with 5 main explorable zones and 6 creature "types". Each zone is themed after an element, containing Dream Creatures of that element, and each had a shadow geyser that was causing chaos (plant, ground, fire, water, air, and then shadow for the geyser creatures' element). As a stranger who got sucked into this new world, and being immediately declared as the "Great Magus Kyros" (well, by the same guy that last year said it was the innkeeper who was the great magus kyros), your objective is naturally to find each of the shadow geysers and shut them down, thus saving the world! There's maze-like dungeons both for connecting the zones and within them, and the shadow geysers are set up as puzzle-dungeons that have to be solved to get to their core. Within all of those dungeons are the dream creatures, and as you make your way through the storyline and fight them, you can collect their essence and use that to craft rings that lets you summon your own version of that creature, which make up your "party" and you can fight with them so they level up and become stronger. Although the depth of gameplay is generally more simple and linear than even the original gbc pokemon games, there are some unique battle mechanics and a strong storyline with fun humor that really help it stand out as the cult classic that I've found to be worth playing over and over.

    But wait, Aplier, if you say this game is so great, and that it was released for the west, then why do you need to make a thread about translating it into English?
    Well, the gameboy COLOR game was released in the west in english, but it was rushed out towards the end, and was re-released as a gameboy ADVANCE game only in Japan. The GBA version is far more polished, with better graphics of the upgraded system, battles that make it look like one creature is fighting another instead of an emulated card game, better menu systems, a second save slot, and more. Oh yeah, and not missing out on HALF A ZONE'S worth of dream creatures, that are uncraftable due to them or their components being left out of the game, including 4 of the strongest legendaries (each element has two "Hyrens" that are dragonish-humanoid legendary creatures, found in a secret area for each zone, and are crafted with a starting level of 50). There are some things that were left out of the GBA version, Senpuu has a guide for the GBA game over on gamefaqs that starts by detailing almost all of the differences between the versions, but the GBA version is overall the better gameplay experience by far. Except for, you know... being in Japanese.

    _________________________________________

    Which is where I come in! And also where a wild Normmatt appears (I think I found a shiny one, no less) and provides a massive leap forward to this project I was picking back up by integrating his old work of a pointer-based translation into the game. It made obsolete so much of the work on storyline and dream creature/item names I'd done up to that point, but it brought the project from being at like a 30% completed mediocre abridged translation to being a like 95%
    completed exactly true to the original translation. So however saddened I may have been to have much of my own work gone to waste, I'm far happier knowing that this game should be completely playable in its current state, with just some polishing and cleaning up to do.
     

    Attached Files:

    Last edited by Aplier, Nov 2, 2019
  2. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    Edit: Teaser image dump from when I was first starting out the project. Much of it is now obsolete with improved translations via pointers thanks to Normmatt, but it's a great record of the progress I made through on my own, and of how proud I was as a newbie.

    Reserved. Going to use this space as a teaser image dump for now, then I'll get back to work on the translating (or maybe just some playing, have to remind myself that this is for fun once in a while =P.)

    And can I mention how nice it is to be able to type things with unlimited space again, perhaps I was too wordy up above just enjoying this short freedom before I dive back into the world of restrictive hex byte editing.

    In the very beginning
    Warning: Spoilers inside!

    The first battle completely in English
    Warning: Spoilers inside!

    Shopkeeper menus and such.
    Warning: Spoilers inside!

    Manually translating my way through the storyline
    Warning: Spoilers inside!

    ~This is what my normal workspace environment looks like for this project (laptop screen on left, mid size TV monitor on right). The gbc file is my old newgame+ loaded up with hyrens and other high level creatures, just to easily keep up with the translated one and make sure everything is hunky-dory, because the script only has smallish chunks of text that are in order, but those chunks all seem pretty randomly placed within the file.
    Warning: Spoilers inside!
     
    Last edited by Aplier, Oct 30, 2019
    Zense and Dodain47 like this.
  3. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    I'm starting to be able to read some of the two digit hex bytes.
    As Japanese kana on sight.
    Is this good?
    Is this bad?
    What does it all mean.

    I dream in hexadecimal now.
    My cat reminds me when it's food time.
    For the both of us.
    Alt tab, F1. Read, alt F4.
    Alt tab, ctrl F. Type, ctrl S.

    Our internal thoughts molded.
    By the languages that we know.
    Which language is mine?
    Do I get to keep it or will it bluster away.
    Does the wind ever even blow in here?

    ii ne?
    ganbarimashou!
    41 41 20 57 3F 0A 6E 6D 7D 67 5E 4B 8F 42 21
    Is it okay?
    Lets do our best!

    Warning: Spoilers inside!
     
    Last edited by Aplier, Oct 21, 2019
    BelmontSlayer likes this.
  4. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    Here lies all of my progress through working within the code and getting ever more complete understanding of how the coding works and progress through the game. Though now mostly obsolete, I think it still deserved a place to stay that was away from the first post.

    Initial Intro, "Don't let that get your hopes down!"
    Warning: Spoilers inside!

    My background for making this translation, "Which is none!"
    Warning: Spoilers inside!

    Ramblings of my progress from beginning at square zero, up through being able to start manually translating the storyline script.
    Warning: Spoilers inside!
     
    Last edited by Aplier, Oct 30, 2019
    BelmontSlayer likes this.
  5. Normmatt

    Normmatt Former AKAIO Programmer

    Member
    7
    Dec 14, 2004
    New Zealand
    I did some work on this game a few years ago and took a look at it again because of this thread.

    I managed to get the two main pointer tables repointed to the english versions, this does require a breaking change (breaks menu etc as those strings are separate), but when applied to your patch it should work fine.

    Those two pointer tables are for the main story dialogue and monster names I think... probably other pointer tables too but I didn't bother looking.

    The pointers are relative to the start of the text so aren't the easiest to find without a disassembler/debugger.
     
  6. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    =O
    If they're repointing just to the english string strings I'm not sure that'll be enough, because as mentioned each of the strings in the japanese script starts with a language variable of 11, and none of the english strings in the dump had that. There were also areas that extra lines were added in chunks that are separate from the the rest of the main script block. But if you still have any of your old work though, feel free to apply it to the patch I'm about to upload and see what happens, or PM it to me/continue the discussion here and I can try to put the two together.

    I was planning to just power through the storyline making manual edits to the japanese script as I have been for now, and then come december when things slow down for me take the time to learn the pointer tables. Storyline pointer tables and actual game mechanics aside, I've come to grow very, very familiar with the workings of the two different scripts.

    Edit: Just doing the polishing up now (i.e. changing the main character's name from Aplier back to Dan in the menu and any generated messages).
    Testing patch application now...
     
    Last edited by Aplier, Oct 27, 2019
  7. Normmatt

    Normmatt Former AKAIO Programmer

    Member
    7
    Dec 14, 2004
    New Zealand
    I modified the code to use the english font by default (even for 0x11 strings), which of course breaks all japanese strings.

    Will let you know how it goes applied to your patch.
     
  8. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    I have encountered a problem: how/where can I upload a .ips file?

    [​IMG]

    — Posts automatically merged - Please don't double post! —

    Okay, putting it in a zipped folder seemed to work, let me know if you can use this!
     

    Attached Files:

    Last edited by Aplier, Oct 27, 2019
  9. Normmatt

    Normmatt Former AKAIO Programmer

    Member
    7
    Dec 14, 2004
    New Zealand
    Seems like it works ok (but only when applied after I patch the pointers, I assume because you've messed with the pointers somewhat?)

    patched-0. patched-1. patched-2. patched-3.

    I don't have a save far enough into the game to check if everything is working...
     
  10. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    Sweet! I think I only adjusted two or three pointers, most notably the one for Dan's name at position 7,795,280/8,388,608 (line 0076f250), to give his name 3 character spaces to use instead of just 2. Some strings I also started them where their language variable was to buy an extra character there too, since it just defaults to the previous language variable encountered anyways, but that was all the japanese strings which if they aren't being used should no longer change anything.

    I'm impressed and saddened to see so much of my work put into translating the script by hand now become moot. But I'm just glad if people get to experience the game in all of its glory!

    If you have a file to share for that, I'd love to check it against the multitude of save files I have to make sure it all looks good. I dont think I got quite all of the battle or other system messages, but having this would basically jump the translation effort up to a version 0.95 or so, and I'd be happy to go back and polish anything left out manually. Or with your better understanding of the pointers we could try to work together to get everything translated with as much space as it properly deserves.
     
    Last edited by Aplier, Oct 28, 2019
  11. Normmatt

    Normmatt Former AKAIO Programmer

    Member
    7
    Dec 14, 2004
    New Zealand
    Heres an IPS with your stuff applied on top of the story stuff.

    If you feel like posting any save files, I can probably help fix any remaining issues.
    I don't feel like playing the game right now just to find them.
     

    Attached Files:

  12. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    Seems like there's a little fixing up to do. Any "..." had the single hex byte 91 that was read under japanese language variable of 11, but shows as an error character when translated to english, and it seems a couple more punctuation are now showing up as error characters. And "Yes Hai" is now being used for yes/no prompts.

    But yeah, being able to add your storyline script to my menus and names means this game is far is more complete!

    I'll try to pull together a spread of save files up through Cald for you to check out as well, give me like 10-15 minutes to go through and check what was where.

    Oh, and menu, monster, and item names and such are all using the original pointers and my abridged versions for them. Were you planning to change those via pointers back to the originals, or ?
     
    Last edited by Aplier, Oct 28, 2019
  13. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    For any old saves, because all of the english script dump strings no longer had a language variable, i had to enter a battle so that the message there would set the variable to 10, otherwise it just displayed all townsfolk's message strings with japanese characters. New saves shouldn't have this problem unless a japanese language variable is encountered in an unfinished battle message or something, but the same fix should apply.

    Save 1 is at Naroom's shadow geyser, just before picking up the core stone.
    Save 2 is just before entering Underneath's town for the first time.
    Save 3 is after you finish fighting off the shadow magis attacking Cald when you first enter it.
    Save 4 is right before taking the ferry off to Orothe's island to get the boots.
    Save 5 is just before entering Cald's shadow geyser.


    Also just a massive thanks for providing this! Assuming all of the script pointers are actually now pointing at the massive english script block, all that needs to be done now is go to through that and clean up things like the error characters, adding line/message breaks for formatting, the Dans that were left as Tonys, and straight up typos that were made in it, such as:
    [​IMG]

    Which i'd be happy to go through those micro things myself once you're done cleaning up any macro-level translation efforts that need to be done with it via pointers.
     

    Attached Files:

    Last edited by Aplier, Oct 28, 2019
    Xuio likes this.
  14. Normmatt

    Normmatt Former AKAIO Programmer

    Member
    7
    Dec 14, 2004
    New Zealand
    Did some more work on this, probably not going to do any more, this should be most if not all the pointers with english text in the rom.
     

    Attached Files:

    zfreeman likes this.
  15. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    Great! Thank you once again. With everything pointed to english it should just be a matter of cleaning up typos and such (Leae Cut spell, lol). It looks like the battle menu is now showing up in japanese characters, but everything is named as it should be, so I'll bring it up in the hex editor and see if I can't tease a couple of 10's into that menu, which should fix it there.

    Edit: Yep, found the right "Summon" which is at the start of the battle menu, had a couple extra 00 characters of space to toss a 10 in there no problem, and now battle menus showing up in English as they should be.
     
    Last edited by Aplier, Oct 30, 2019
  16. Normmatt

    Normmatt Former AKAIO Programmer

    Member
    7
    Dec 14, 2004
    New Zealand
    Weird it shows up in english fine for me...

    patched.
     
  17. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    Interesting, may have been something to do with loading up an older save, since with everything pointed to the english script dump there's probably very few actual 10's for the game to encounter to be reminded what language to use. Either way, there was space for it, and adding in a few more 10's for places where there's the potential for things to break doesn't hurt at all. And that's something I can do when going through my manual polishing
     
    Last edited by Aplier, Oct 30, 2019
  18. Normmatt

    Normmatt Former AKAIO Programmer

    Member
    7
    Dec 14, 2004
    New Zealand
    You shouldn't need the 10's at all as all 3 fonts 10/11/12 are pointed to the english font now.
    So it should only display stuff with the english font.
     
  19. Aplier
    OP

    Aplier Member

    Newcomer
    1
    Oct 16, 2019
    United States
    Oooh, ~fancy~
    Having no clue beyond the bare basics of how pointers work, let alone the ones for this game, I have no sense of how much time/effort it took you to get that all swapped over. But I can't thank you enough for doing so.

    It does seem that every major section aside from the ones I'd done for menus is now pointed to it's English equivalent, and that's already far more than I could have hoped for. So now it's just a matter of playing through the game fixing typos as I go, or scouring through the ~140,000 character block that is the english script and proofreading it that way. I think I'll be picking the more fun option.

    It almost saddens me that this game I love so much, which nearly 10 years ago was so close to reaching such a complete level as it is now, was never able to be given that final push to having an actual patch made and released. And now I feel like so much more of the credit is yours, Normmatt, with your mastery of the pointer system and being able to make such sweeping changes.

    The only thing I think I have left to ask is if you know if there is a way to make a 91 properly show up as a "..." when being displayed in the English font, like it does in the Japanese font. Or does font work like that go beyond the scope of what's capable for roms like this?
     
  20. fluffsorcerer

    fluffsorcerer Newbie

    Newcomer
    1
    Nov 24, 2019
    United States
    I have been waiting YEARS to see this version of the game translated.Normmatt, Aplier, a thousand blessing upon you and your households for this! I was wondering, do the character models and portraits for Tony exist in the game's data? If so, are you planning to implement them? I just despise Dan SO MUCH! Complete and utter loathing for his character design! No offense to the Japanese localization team, but they really picked the blandest, shonen-adventure-hero-Goku-lookalike possible, for their protagonist!
     
    Last edited by fluffsorcerer, Nov 24, 2019
Quick Reply
Draft saved Draft deleted
Loading...