Jump to content
gringe

FE6 Localization Patch v1.0 - Seriously, we did something

Recommended Posts

tabachanker:

Sweet, here's a savestate with the game beaten. It probably has all the classes that appear in the opening scroll, but honestly I'm not so sure of how the scroll works so I could be wrong. In any case, I have about a million other savestates at every chapter in the game so if you need more later I have them.

http://www.mediafire.com/download/ztwfyzx2h218k7o/FE6gamebeaten.sgm

Share this post


Link to post
Share on other sites

Apologies for the double post, but I viewed the class scroll on the completed game save file in full. It listed the following classes in the following order.

Lord
Cavalier
Paladin
Archer
Knight
Warrior
Druid
Valkyrie
Hero
Falcoknight
Berserker
Sage
Bishop
Swordmaster
Nomadic Trooper
Sniper
General
Wyvern Lord
Manakete
King


After letting the scroll finish, it plays a different opening movie if you wait longer. After that finishes and the opening repeats itself again, it plays a different class scroll.

The first few up to Knight are the same, but after that, it lists the following classes.

Shaman
Bard
Dancer
Pegasus Knight
Wyvern Knight
Myrmidon
Mage
Nomad
Bandit
Pirate
Cleric
Thief
Mercenary
Fighter
Troubadour

It omits the Soldier class, but I'm not sure if FE6's opening class scroll ever lists it. Hope this helps!

Share this post


Link to post
Share on other sites

Apologies for the double post, but I viewed the class scroll on the completed game save file in full. It listed the following classes in the following order.

Lord

Cavalier

Paladin

Archer

Knight

Warrior

Druid

Valkyrie

Hero

Falcoknight

Berserker

Sage

Bishop

Swordmaster

Nomadic Trooper

Sniper

General

Wyvern Lord

Manakete

King

After letting the scroll finish, it plays a different opening movie if you wait longer. After that finishes and the opening repeats itself again, it plays a different class scroll.

The first few up to Knight are the same, but after that, it lists the following classes.

Shaman

Bard

Dancer

Pegasus Knight

Wyvern Knight

Myrmidon

Mage

Nomad

Bandit

Pirate

Cleric

Thief

Mercenary

Fighter

Troubadour

It omits the Soldier class, but I'm not sure if FE6's opening class scroll ever lists it. Hope this helps!

I tested your savestate yesterday and I came up with the same 2 lists as yours. The 5 classes that are there from the start (Lord, Cavalier, Paladin, Archer and Knight) always comes first. Fun fact is that those classes are your starting army (Roy, Lance&Alan, Marcus, Wolt, Bors).

I have really good news now. I fixed the English font problem. This time I didn't even use GBage. I copied the compressed font directly from the FE7 cart into FE6. Though, by doing that I had to modify a few other things, some of which weren't easy!

  • I changed the character sprites from 32x32 pixels to 16x32 pixels, so that each letters can appear individually on screen (not by pairs). Now we can write whatever we want without having to draw something separately.
  • For this to work though, I had to change the spacing between the letters and recenter the text on screen. That was probably the hardest thing I did for this hack to work. In fact, I spent all yesterday evening trying to find where in the code the spacing is calculated. And let me say that this code is a mess... But it's all good now, everything is centered and spaced correctly.
  • I had to change some pointers and such. I won't bore anyone with the details here but I'm gonna do a more technical post in the near future for those of you that asked for it. Promise!

I tested all of this with the 1st five class names only (for now, it was easier than doing the full list). It all seems to work correctly. Now, I just need some more space to write all the class names (there's a lot more letters than Japanese characters, especially since some classes displayed Kanjis). This isn't a problem though. The Japanese character graphics were in total about 21k whereas the alphabet letters are only about 7k. I can just move the class names in that now unused 14k and change the pointers (I'm pretty sure I found them all, 3 in total). I hope though that those Japanese characters are not used anywhere else! Probably not because I only found one pointer to them (in the class names sub-routine).

I'll post a new UPS patch file as soon as I can.

Edited by tabachanker

Share this post


Link to post
Share on other sites

Sorry for the double post, but I have some questions for all of you.

I stumbled on a bug when a class name is > 11 characters. The game hangs in the transition between the name screen and the unit in action screen. A bug like that can be a lot of things. I suspect that maybe there's no place left in RAM after defining that many characters, or it's a timing thing (the letters animation isn't quite completed when the screen fades to black. The later one seems like the best bet.

Anyway, I probably won't investigate as a bug like that can take days to find. Probably more since I don't have the original game code (and, like I said in another post, the code is a mess.) So, I'd like to ask what you think of those abbreviations:

  • Pegasus Knight (14 chars) --> Peg Knight (10 chars - abbreviated "Pegasus" to "Peg")
  • Wyvern Rider (12 chars) --> WyvernRider (11 Chars - no space)
  • Falcon Knight (13 chars) --> FalcoKnight (11 chars - no space and removed the 'n' at the end of "Falcon")
  • Nomad Trooper (13 chars) --> Nmd Trooper (11 chars - removed the vowels in "Nomad").

Only the letters A to Z, lower or uppercased, can appear in the names. There's a possibility of adding new chars (like a dot) but then I may encounter the palette problem again, so I'd like to avoid this if possible.

Also, I want some help about 2 names. I used the names in the list of FE6 classes in SerenesForest as a reference but, I'm not sure about 2 of the classes in that list:

  • Valkyria. I spelt it Valkyrie instead.
  • Mamkute: I used the Manakete name instead, since North American games seems to call the dragonkins that way.

Are these generally accepted names for these 2 classes?

Thanks for your help!

Edited by tabachanker

Share this post


Link to post
Share on other sites

^ Well, I'm not Gringe, but I like all of that. Especially Manakete and Valkyrie, although I can't remember if gringe made those changes in this patch. But the abbreviations are definitely good

Share this post


Link to post
Share on other sites

Looks good, but I'd suggest something like 'Falcoknight' and 'Wyvern Knt.' (Or Wyv. Rider?) in place of what you have for those classes, since using camel case for the class names would look strange in my opinion.

Edited by Vennobennu

Share this post


Link to post
Share on other sites

conveniently, fe6-8 already calls falcon knights "falcoknight" (without the uppercase k) so you're home free on that one. i think i'm in favour of abbreviating wyvern rider as "wyv rider"; that strikes me as coming across more naturally than attempting to abbreviate the rider part. not sure why; oh well

Share this post


Link to post
Share on other sites

Thanks for all your comments and suggestions! I like Falcoknight without an uppercase K. Wyv Rider sound OK too. The one I'm not that keen on though is "Nmd Trooper". But I don't know what else to try.

Anyway, here's the latest working version of my hack. All the names are there (longer names are still the ones in my first post). Everything works correctly now. I uploaded a zip file containing the 2 patches, one for the original game, the other for the translation patch 0.96b (like last time).

As an aside, there was another bug that I discovered that made it so the last 2 names on the list (Manakete and King) didn't work at all. I found the problem though. Basically, if the total characters (including 1 separator character between each names) is > 255, the higher names on the list stop working.

The bug was that the pointer to the current letter was programmed on a single byte (which can't go higher than 255). I had to change the program so that it uses 2 bytes. Unfortunately, the memory near the byte was already used by something else. So I had to move the memory address elsewhere and be very careful to not pick a memory location already in use.

UPS patches.zip

Edited by tabachanker

Share this post


Link to post
Share on other sites
  • Valkyria. I spelt it Valkyrie instead.
  • Mamkute: I used the Manakete name instead, since North American games seems to call the dragonkins that way.

Yeah, these are what we've gone with in the patch. Also, "Priest" should be "Cleric".

  • Pegasus Knight (14 chars) --> Peg Knight (10 chars - abbreviated "Pegasus" to "Peg")
  • Wyvern Rider (12 chars) --> WyvernRider (11 Chars - no space)
  • Falcon Knight (13 chars) --> FalcoKnight (11 chars - no space and removed the 'n' at the end of "Falcon")
  • Nomad Trooper (13 chars) --> Nmd Trooper (11 chars - removed the vowels in "Nomad").

If it can be avoided, I'd like it if you didn't have to abbreviate the names, maybe by creating a few additional "characters" that are frequently used combinations of letters in the class names (so for example, "ig" and "ht" for classes with "Knight", "yv" and "er" for classes with "Wyvern", etc.), something like what you were doing before using combinations of letters as single characters.

For reference, in FE7 these are listed in the class scroll as

Pegasus Knight

Wyvern Rider

Falcoknight

Nomadic Trooper

so if you can use the names as above, then that would be the most ideal.

If that's not possible, then I'm okay with

Peg Knight (actually what's used in-game due to space limitations)

Wyv Rider

Nmd Trooper (actually what's used in-game due to space limitations)

Thanks again for all the hard work, by the way! This is really exciting.

Share this post


Link to post
Share on other sites

Yeah, these are what we've gone with in the patch. Also, "Priest" should be "Cleric".

If it can be avoided, I'd like it if you didn't have to abbreviate the names, maybe by creating a few additional "characters" that are frequently used combinations of letters in the class names (so for example, "ig" and "ht" for classes with "Knight", "yv" and "er" for classes with "Wyvern", etc.), something like what you were doing before using combinations of letters as single characters.

OK, I'll change Priest to Cleric.

I thought earlier about doing the double letters thing. The problem is, the individual sprites are now only 16 pixels wide by 32 high (instead of 32x32). So there's only enough space for one letter per sprites. The GBA support multiple resolution sprites so I could theoretically keep the 52 letter sprites at 16x32 and add a couple of 32x32 double letters sprites. But now, the center function and the spacing between letters would all go to hell whenever those double letter sprites would be on screen.

I'll see what I can do though. It may be easier to change the centering+spacing functions so that they're aware of the different sprites width than find the bug in the first place. I found another possibility for the bug which involves the number of color palette. Each letters has its own color palette so that they fade in/out individually. The GBA has a miximum of 16 palettes. When there's >11 characters on screen, that's at least 12 palettes used for the characters but there's the name separator, the weapons used and the label "weapons" that all use palettes of their own. Palettes are also changed in WRAM before dumping them to the Video chip so there's a possibility that too much characters make palette data leaks into whatever's after that in WRAM.

Anyway, like I said, I'll see what I can do!

Edited by tabachanker

Share this post


Link to post
Share on other sites

OK, I'll change Priest to Cleric.

I thought earlier about doing the double letters thing. The problem is, the individual sprites are now only 16 pixels wide by 32 high (instead of 32x32). So there's only enough space for one letter per sprites. The GBA support multiple resolution sprites so I could theoretically keep the 52 letter sprites at 16x32 and add a couple of 32x32 double letters sprites. But now, the center function and the spacing between letters would all go to hell whenever those double letter sprites would be on screen.

I'll see what I can do though. It may be easier to change the centering+spacing functions so that they're aware of the different sprites width than find the bug in the first place. I found another possibility for the bug which involves the number of color palette. Each letters has its own color palette so that they fade in/out individually. The GBA has a miximum of 16 palettes. When there's >11 characters on screen, that's at least 12 palette used for the characters but there's the name separator, the weapons used and the label "weapons" that all uses palettes of their own. Palettes are also changed in WRAM before dumping them to the Video chip so there's a possibility that too much characters make palette data leaks into whatever's after that in WRAM.

Anyway, like I said, I'll see what I can do!

Oh dear o.O Is there any point where a letter will use a different pallete? If the palettes are the same, perhaps the ASM could be reworked to only use one palette for all of the letters? I could be missing something obvious here.

Thank you for your assistance in this project, consider sticking around! :) We could always use more ROM hackers in the community.

Edited by MP2E

Share this post


Link to post
Share on other sites

Oh dear o.O Is there any point where a letter will use a different pallete? If the palettes are the same, perhaps the ASM could be reworked to only use one palette for all of the letters? I could be missing something obvious here.

Thank you for your assistance in this project, consider sticking around! :) We could always use more ROM hackers in the community.

The animation uses palette #14 and #15 for the separator line + weapons. Palettes #1 to #13 are for each individual letters. Palette #0 is the reference the game uses to fill in gradually the letter palettes #1 to #3. Palettes 0 to 13 end up having the same colors at the end of the animation. But the fade in/out of the letters must have an individual palette for each one to get the smooth animation. If all letters use the same palette, they will all fade in/out at the same time.

The easiest way to see this in action is to use VBA and open the Palette viewer (don't forget to tick to "automatic update" checkbox to see results in real time). The 16 OBJs palettes are in the right box, each palette inside this box is represented by a line of 16 color squares. As the class name animation runs, you'll see the palettes #1 to (amount of letters) gradually fill in and then empty out.

As for the bug itself, you probably noticed by now that there are 13 palettes available for letters. Enough room for all the non abbreviated names, well, except for "Nomadic Trooper". So unfortunately, my thoery doesn't hold here.

And don't worry, as long as time permits, I will stick around! Thanks for the invite! Whenever I finish this hack, I will probably try my hand at either one of those things:

  • Make the translation of the introduction text possible (the text that doesn't appear in the old and new translation patches, but present in the original game)
  • I've seen talks in this thread about the "level up" window being different with or without animations. I can try to find a way to use the same window in both cases. This may be more than I can chew though, so don't get your hopes up too much! It's a really different beast to try to change something that deep into the game compared to something in the introduction.
  • Try to find a way to make the patch smaller. There's a big chunk of null bytes (all 0s) after the original game ending + probably the original translation text (offset $0817A62) and the start of probably the new text ($1000000), which amounts to about 7 Mb of wasted space.
Edited by tabachanker

Share this post


Link to post
Share on other sites
  • Make the translation of the introduction text possible (the text that doesn't appear in the old and new translation patches, but present in the original game)

This would be great! I'll work on a translation of the opening text.

  • I've seen talks in this thread about the "level up" window being different with or without animations. I can try to find a way to use the same window in both cases. This may be more than I can chew though, so don't get your hopes up too much! It's a really different beast to try to change something that deep into the game compared to something in the introduction.

The problem isn't with the window itself, but with a character limit in the level up screen with animations. We can talk more specifics later. :P

Try to find a way to make the patch smaller. There's a big chunk of null bytes (all 0s) after the original game ending + probably the original translation text (offset $0817A62) and the start of probably the new text ($1000000), which amounts to about 7 Mb of wasted space.

Yeah, I'd like to get it to 16 MB if possible. That's probably the last thing to do, though.

Share this post


Link to post
Share on other sites

bc952a4d-1326-4f52-8f77-25a94e3ee0ef_zps

Just wanted to point out this small error here, you seem to be missing an article after "me".

Edited by Wander

Share this post


Link to post
Share on other sites

I tried the patch and it was great! It's just I patched it to an in progress save and some of my characters stats went too far. I had thany as a level 15 peg.knight with 27 speed. I know it's normal for some boosts but they were unnatural.

Edited by Hugh of illia

Share this post


Link to post
Share on other sites
I tried the patch and it was great! It's just I patched it to an in progress save and some of my characters stats went too far. I had thany as a level 15 peg.knight with 27 speed. I know it's normal for some boosts but they were unnatural.

Yeah it has something to do with software used to make the patch I think. I had same problem with Yoder he had 52 res.

Share this post


Link to post
Share on other sites

I tried the patch and it was great! It's just I patched it to an in progress save and some of my characters stats went too far. I had thany as a level 15 peg.knight with 27 speed. I know it's normal for some boosts but they were unnatural.

If you start using the patch with a save in progress, there's nothing we can do about that really, unfortunately. There's a note about it in the first post.

Just wanted to point out this small error here, you seem to be missing an article after "me".

Thanks!

Share this post


Link to post
Share on other sites

if you give me time (once FEE3 is over i might be more free) i can look into removing the autopatch for you

i'm intending to do some work on FEditor in the near future anyway so I can get you that information when i do

Share this post


Link to post
Share on other sites

Hate to bring up chapter names again and I don't even know what the latest patch uses but I think 'The Ghosts of Bern' is better and less awkward sounding than 'Bern's Last Ghosts'.

Share this post


Link to post
Share on other sites

I just finished working on the, probably, final version of the class names translation. Good news! I tracked down the "more than 11 characters" bug and fixed it. It was a pain to do but it is done now! I modified a lot of code for this to work so I hope everything will still work correctly. It should be, I tested my final version in a loop, for a couple of minutes. Nothing crashed, so all's good!

Now, we're still limited to 14 characters instead of 11. But this is a physical limitation as there are only 16 color palettes available on the GBA. The game uses 2 palettes for weapons and the separator and each letter has its own palette. Changing this would require changing the animation itself, so we'll make do with that! The only problematic name anyway is "Nomadic Trooper". I chose to use "Nomad Trooper" in this case. All the other large names fit in 14 characters (Pegasus Knight, Wyvern Rider, Falcon Knight).

Here's the latest UPS patch, which I made only for the translated ROM this time around (v0.96b). It's starting to require a good deal of time to maintain 2 versions, that's why there's only one this time. If you want to try it out, install the translation UPS patch in the OP first (v0.96b) on a fresh FE6 ROM, then install this one over the patched file.

Like I said, this is my final version. I will work again on the hack only if any of you find another bug, or if Gringe asks for something specific, since it's his translation.

EDIT: Removed the UPS patch for now because I want to change the spacing to 12 pixels between the letters instead of 14, for consistency with Fire Emblem 7. Shouldn't be too long...

Edited by tabachanker

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...