[FE8] Unicode characters supported

Not sure where this is in the ROM, and if it’s stored as images or… something else, but these are available in FE8 (but not FE7):

All of them appear to be used for European language support (the small a and o are ordinal indicators, and the brackets are quotation marks.)

1 Like

They are stored like some kind of encrypted images (I don’t know), but I managed to rip the “ñ á é í ó ú ü ¿ ¡” for my hack, and I had to replace some characters.
IIRC, they start at 0x589C9C in the U version, and at 0x7957F0 in the E version.

I would need “Ä,Ü,Ö,ä,ü,ö and ß” for my hack (Hacking FE7) so I would like to know if its possible to rip them from FE8 and insert it in FE7?
That’s the only thing which paused my hack currently cause “ss” instead of “ß” and “ae” instead of “ä” is difficult to read.

What text did you use to display those? Is this after autopatches (and thus anti-huffman)?

I used the unicode system after applying the anti-huffman patch. Giving E4 is “ä”, the game displays it as “?” same as with the other letters

The images above were just me spamming all the unicode special characters to see which ones the game recognized. Done with FEditor, so probably autopatched? o.O

I’m pretty sure, FE7 (U) has none od them, due the avatar naming screen. Spaming them all in Feditor gives me this:

Sould be no suprise, that the (E) Version contain all that letters and its font is a bit smoother. Both versions of FE8 shares the same font though.

Don’t ask me why the (E) version use those borders
Left side is (E) and right is (U)

Couldn’t we just patch the (U) font with the on from the (E) Version?

We might be able to, but.

  • Do we actually know where that graphic data is, in both ROMs?

  • Do we know what routine(s) actually use that graphic data? (There might be a lot of them, and I suspect that we’d have to repoint the data in fe7 in order to insert it safely.)

  • There ain’t no such thing as plain text; there would need to be some kind of agreement on an encoding. Practically speaking, the thing to do would be to copy the code over as well (or you know, just use the E version as a base ROM in the first place… but that has other consequences obviously), and figure out what encoding it uses. Like, the most obvious way to save accented text is UTF-8, which would if I’m thinking straight produce a lot of things that look like extended control codes. For example, À followed by a space (Discourse won’t highlight that, grr) would get encoded in UTF-8 as 0xc3 0x80 0x20, which FE would normally interpret as some garbage 0xc3 value, followed by the [Tact] code. In UTF-16, you’d get 0x00 every other byte, which would normally terminate the string.

Like, has anyone even tried hacking the (E) version? For all I know, it uses different text codes for [Tact] etc. Or maybe it encodes the normal text in some bullshit like Latin-1 (actually, I would not be surprised at all) - which is fine for European languages, but an epic fail for Japanese. I wouldn’t be surprised if the (J) ROM, for that matter, uses something like shift-JIS, which would be fine for Japanese and an epic fail for everything else except maybe English.

For FE7:
0xB87B68 U Version
0xC8134C E Version (English, French and German)
0xC49EDC E Version (English, Spanish and Italian)

For FE8:
0x589C9C U Version
0x7957F0 E Version

1 Like

I did a hex search based on the offsets that @Mikey_Seregon key_Seregon posted. I found the same data in FE7 at 0xB87B68 in the U version and at 0xC8134C

Playing around with that I was able to replace the “!” with an “1”

In a dialouge it still gets displayed as a “!” so it must be stored elsewhere.

There are at least 3 or 4 different sets of characters, one for Weapons/Status Screen/Menus, other for dialogues, other for Names (When you place the cursor over an unit) and other for chapter names.
I think that the dialogue set is right after the stats screen set, I don’t rebember clearly (I did this 4 years ago and I was so stupid because I didn’t documented this)

Do you remeber how long one character is? It’s a bit confusing to tell which character is which just by hex editing

I did it with TLP, doing some calculations each characters is 0x48 long.
But I’m assuming that the first character appears at 0xB87BB5, because all before that an after 0xB87B68 is 00, maybe those 00 are the " ", I don’t know.

Oh, thanks I didn’t see the woods cause the trees.

EDIT: FE6 has it’s font offset at 0x5A84B0 just for the records.