[FE3] Akaneia Refined: New, faithful translation, with QOL enhancements, graphical enhancements, and bugfixes

Fire Emblem 3: Mystery of the Emblem is perhaps the least played and least well-known entry in the series in the West, which is ironic considering that it’s probably the most iconic one in Japan, and in my opinion, one of the best. There have been multiple translations of it over the years, most of them building on and improving the last. This is my entry in that lineage.

I took a multi-pronged approach. A fully overhauled translation, QOL improvements, bug fixes, and enhancements. There are several different patches designed to make as many people happy as possible.

Here is what’s been done in all versions:

-A new translation!, which, compared to the Quirino translation, gets rid of a lot of ‘Japaneseisms’ and makes everything more natural-sounding in general. Importantly, there are NO rewrites that add to or change the meaningful content of the script. The purpose of this translation is to give an experience of FE3 in natural-sounding English that also exactly matches the original in terms of meaning. I found the existing script (Quirino) to be mostly correct in terms of the meaning of the content. There were just a few mistakes, it seemed, but there were also many things that were unnaturally worded, and a handful of points where things were actually inaccurate. My understanding of Japanese is moderate, but not excellent, so I would appreciate any corrections on this if anyone finds parts where this wasn’t the case.

-Edited the menu font to make characters more consistent in terms of appearance and positioning.

-Translated the class reel

Versions:

Version J: This version is most recommended for those who want a truly ‘authentic’ version of Mystery. All names (characters, places, items, etc.) are natural-anglicized versions of the Japanese names. This version is especially recommended for those planning to produce documentation or media about the game, such as content for wikis or video reviews.

Version E: all names are as they are in the English release of Shadow Dragon, with the exception of cases where the localization changed the meaning of things, or made things inconsistent or particularly awkward. Things only from New Mystery use natural-anglicized versions of the Japanese names.

Director’s Cut:
One of my biggest pet peeves about video game modding is how, often, someone will make a mod of a game, especially one that is marketed as a strict improvement or a ‘definitive’ version, that does a lot of very nice and interesting things, but also makes a bunch of other seemingly bizarre changes that prevent it from being a ‘clean’ experience. To avoid being guilty of this myself, I’ve made the other changes optional, and called them the Director’s Cut.

There are 5 patches that make up the Director’s Cut. They’re independent of each other.

1: Hit Rate patch:
In the base game, displayed hit values are capped at 100, even though the actual value that the opponent’s avoid is subtracted from can be higher. This means that for values greater than 100 (which is almost always the case), the displayed value will be incorrect and therefore useless, forcing the player to manually calculate the hit rate based on the unit’s skill and weapon accuracy. This can’t be done for units that have already spent their turn, and enemy units, because you can’t open their item menu to see the equipped weapon’s hit value, forcing the player to either remember it, look at the value of the same weapon on an active player controlled unit, or look it up online. The hit rate patch remedies all of this, correctly displaying the hit value for all units.

2: Palette patch:
In the base game, only a handful of units had custom palettes. It was a few bosses, and Sheema. This patch greatly expands this, giving palettes to every player-controlled unit that match their portraits. Doing this was pretty involved for several reasons, mainly because of the custom logic required to correctly sort all the character-class combinations to get the right palette, and the process of creating palettes for all of the possible character-class combinations. There were a lot of other edge cases to take care of and issues to fix as well. For example, a lot of issues involving Chainey/Xane that were present in the base game were fixed in the process of creating this patch, such as incorrectly transforming into male versions of the dragon knight or pegasus knight class when copying female pegasus knights or dragon knights, or not copying the custom Julian battle graphics. I tried pretty hard to find all issues, but please let me know if there are any that I didn’t catch.

3: Capricorn patch:
In the base game, due to an off-by-one error the Capricorn star shard’s growth modifiers don’t actually get applied and the item does nothing. This patch fixes it.

4: RNG patch:
In the base game, the RNG is generated using a very primitive method, which results in noticeable correlations in the output that deviate significantly from statistical randomness. This is most apparent in level-up stat gains, where characters have a small number of possible growth patterns (for example, here is Marth’s: https://wiki.serenesforest.net/index.php?title=Level_Up_Patterns\_(FE1-3)/Marth\_(FE1) ). This patch implements a better pRNG algorithm that fixes these issues. For a more technical explanation, see the note at the bottom of the post.

5: Horse patch:
The game has been edited to make the rapier and knight killer deal super-effective damage against horsemen (bow horses), which they did not in the base game.

All of these patches are for version 1.1 of the rom (unheadered). I’m not attaching 1.0 patches or patches for headered roms because there are already a lot and I don’t want a combinatorial explosion. I chose 1.1 because it’s frankly the better version of the game, since it fixes many bugs that were present in 1.0, some of which can occur during normal gameplay and have detrimental effects (the worst of which being a crash that can sometimes occur when enemies use the reblow staff while the screen is scrolling, and a bug that creates duplicated Gatos that can cause save corruption). There’s really no reason to use 1.0, to be honest. I’ve also included a patch that converts 1.0 to 1.1, so if all you have is 1.0, don’t worry.

the following are the patches
Translation Only J: The translation of the J version as described above.
Translation Only E: The translation of the E version as described above.
Director’s Cut J: The J translation with all the mechanical and graphical patches.
Director’s Cut E: The E translation with all the mechanical and graphical patches.
Hit Rate Patch
Palette Patch
Capricorn Patch
RNG Patch
Horse Patch J: these are different because of the item naming differences.
Horse Patch E
1.0 to 1.1 patch

Patching instructions:
If you need to upgrade from 1.0 to 1.1, apply that patch first.
If you just want the Translation Only version or Director’s Cut version, apply the corresponding patch to the 1.1 rom.
If you want some of the patches in the Director’s Cut, but not all of them, apply the Translation Only patch that you want, and then apply each of the director’s cut patches that you want.

Alternatively, you can use the buildfiles. To use, put a Japanese 1.1 rom into the ‘roms’ folder, name it “Fire Emblem 3.1.sfc”, edit config.yml to have another profile at the bottom with the relevant asm files under ‘includes’, according to the information below, and then run sable.exe.

codeDefinesv1.1.exp - always include
hit_rate.asm - include for hit rate patch
palette.asm - include for palette patch
palette_data.asm - include for palette patch
custom_battle_GFX.asm - include for palette patch
capricorn.asm - include for capricorn patch
xorshift_rand_lut.asm - include for RNG patch
horse.asm -include for horse patch
Also for the horse patch, some of the text needs to be changed. To do this, copy the folders from horse_patch_alt_text\text_horse_patch to project\text, and overwrite. To revert, copy the folders from horse_patch_alt_text\text_no_horse_patch into project\text and overwrite. This needs to be done manually because Sable doesn’t support the required logic for conditionally including text.

Screenshots: https://imgur.com/a/Ftf3xPX

Technical explanation of RNG patch:
In the base game, to generate the next random number, 143 is added to the previous random number, and the result is taken mod 256. The random number sequence thus has a period of only 256, and contains a lot of runs of alternating high and low numbers. This, combined with the fact that in combat and during level ups, multiple RNs are generated sequentially, results in noticeable correlated patterns, for example the dreaded skl, luk, wlv level-up (WaKoBu in Japanese) occurring a lot. This patch implements an XORSHIFT rng algorithm, which has a period of 65535 and performs better on statistical tests. A Japanese modder did something similar in 2008, but the XORSHIFT variant they implemented used suboptimal parameters according to what was posted in a blog post by John Metcalf about 16 bit XORSHIFT algorithms. Upon graphing the noise nothing looks wrong with the 2008 method compared to the parameters that are supposedly better, and Metcalf only explained the tests he did in passing, but the Metcalf parameters look good too, so there’s no reason not to use them, though they do take a few more cpu cycles (though only a few more due to optimizations possible with the Metcalf parameters). The output of the XORSHIFT_16 is then xored into values from a random number table (generated from true randomness by random.org) that consists of 4096 16 bit values. The period of the final value (XORSHIFT_16 ^ table) will then have a period of the least common multiple of 65535 and 4096, which, since they are coprime, is 65535 * 4096 = 268431360. In addition to the period improvement, xoring with the random table spreads out some of the weaknesses of the lower bits of the XORSHIFT_16 output, improving its statistical properties. This was not done in the 2008 patch.

Special thanks:
RobertTheSable, for creating the buildfiles used to create this.
Ultimage, for discovering the Capricorn bug.
iamnotaclowniamtheentirecircus, for sharing the full Japanese script and his book 2 translation. My translation is different than this, but it was very helpful and I definitely took some inspiration.
Louie, for helping with various things.
John Metcalf, for documentation on XORSHIFT algorithms

Please report any typos, bugs, inconsistencies, or any other issues that you find with any of this content.

Patches:

Buildfiles:

24 Likes

Come on man, you made this whole release, and you couldn’t even come up with a snappy name for it? No title at all? Nothing?! BORING!

EDIT: You gave it a title! Now I can’t get mad at you for that. Good!

Seriously though, congrats on the release! Always good to see more FE3 anything come out. And it’s good to have an alternative to the Heroes of Light patch for those that want it.

6 Likes

Incredible that this comes out just as I happen to be in the middle of an FE3 playthrough. Excited to check this out. Thanks for your work!

2 Likes

Heh heh, thanks for telling me to give it a name. It was definitely a good idea.

Oh, i will try it, also

What is the Lunar IPS.exe?

That is the program that you use to apply the patches.

https://www.romhacking.net/utilities/240/

Aaa, ok, i use other and it works well, so i forgot there was a especific patcher for snes lol

Anyway, very cool, i download one witg just the palletes and capicorn bug fix and other with the director’s cut version

>New FE3 patch

I LIVE. New patch for best FE gives me fuel.

Excitement aside, I have played this game obsessively for over a decade, and I am ironmanning a Japanese cartridge on original hardware as we speak even, and I never knew just HOW broken the RNG was, just that it was exploitable enough to occasionally be able to rig 3 crits in a row if you spotted specific patterns. Thank you for informing me of this knowledge

1 Like

Also did some testing, turns out the optional add-ons also work if you apply them to a Heroes of Light rom! So that’s really cool. Super great work you’ve done with these.

Will note that the over 100 hit patch will not work with Heroes of Light, for anyone else doing this. HoL does not have the font to support that. But the other ones will work just fine.

4 Likes

Some notes I’ve taken, having played thru Chapter 5 of Book 1 on the “Director’s Cut E” patch, some terminology is not consistent with NA despite the description for this version of the patch, for example:

Galder is also still named Garda and the Samsooth Mountains is still Devil Mountain, but I’m going to try to avoid overloading this message with screenshots.

In addition, some terminology is inconsistent with itself in this patch, for example Manaketes:

And Cavalier

I don’t like being the idiot who namewanks, but given the stated point of the E patch is to use NA names, it should probably be internally consistent with itself.

Finally, I cannot replicate this and am only assuming using the 1.0 to 1.1 patch first caused this as I only had this happen upon playing that rom but uh…

Every unit was maxed out with at two infinite use regalia and I just do not know why.

Dude that looks dope! I can see the faithful colors of Linda and Jeorge now. I really wish the retroachievements could add in these romhacks that you and that creator made though. But that aside, I can’t wait to try them on my ayn thor and MacBook!

Thanks for pointing out all of the issues! The E version in particular is what will need the most revision as I haven’t been able to proofread it as extensively as version J.

I have fixed “Galder” and “Manaketes” and “Physic” throughout.

What is wrong in the screenshot that has the dialogue about Hardin, the Wolf of the Plains?

Regarding the inventory/stats issue, I got no clue on that one. Haven’t seen anything like that before. You may be right that it comes from opening a 1.0 save on 1.1? But you say it didn’t happen again…

“Wolf of the Plains” was localized to “Coyote” in FE11.(This is where the FEH relocalization of “Wolfguard” to “Coyote’s Men” comes from.)

Also, I should clarify, I only got the weird stats and inventories when going from 1.0 to 1.1 with the included patch. Later attempts at patching I used a different Rom starting at 1.1

Man… I will forever be upset that this localization could’ve been so much better so easily.

Make Hardin “Wolf of the Plains.”
Rename Wolf to Lupin or something like that.
Name the group “The Wolfguard.”

Now you get the actually good group name without the confusion of whether it’s about Wolf the character or Hardin’s title. But no, we’re locked into “Coyote’s Men” forever……..

1 Like

Now that some feedback has come in, I’m going to refine my stance on the E translation decisions. I don’t want to include some things from the NA localization that actually change the meaning of the original or make things inconsistent. For example, the Shadow Dragon localization turned the naming of Akaneia’s capital/imperial palace into an absolute mess. Also see the issues with the ‘Coyote’ thing as described in the post above. With translations there always are going to be some things that have to be handled on a case-by-case basis. I’ve updated the OP to reflect this.

I’m currently working on incorporating the narrower-width dialogue font from HoL. It works, and I think overall it is easier to read, but the line break patterns were optimized for the other one so some text looks a little off. Eventually I will deal with all of that. The current plan is to let people find other issues for a bit and then fix that along with all of them in an update.

1 Like

What does “ Japanism “ even means here ?

Did you change tiki calling Marth “ onii-chan “ to the stupid “ mar-mar “ for example ?

What I mostly mean by “Japanisms” is certain kinds of sentence structures that are very idiomatic to Japanese, and, while not strictly incorrect when translated as-is, are not the way an English speaker would convey it. For example, something like “Your opponent for today… is me!”

I do not have Tiki calling Marth “onii-chan”, but I don’t have the stupid “mar-mar” either. She just calls him “Marth”, which is what an English speaker would do.

Why mar mar is that stupid, Tiki is a Child, yeah, i know it could easily to just make her say brother but is kinda like say that fae talking in first person is stupid, they are childern, they bearly know how to behave let alone talk like adults do

Cool, i may patch it as a other version

I may try if it works in the loptus translation…

The whole idea behind those nicknames was to denotate a sort of relationship between speaker and listener, as well as speaker attitude. Yeah, an English speaker would just say his name normally. But it’s very plain. I don’t think it’s that good a decision from a translation or localization pov.