I’m working on a project of hacking Fire Emblem on GBA. A member of the forum where I started this project doesn’t believe that my team is working on that project because all of the languages is English. So he wants us to add our native language to the game. Sadly, I haven’t done anything like this before and I don’t have any clue how to do that. A guy give me an idea that I don’t have to change the language, I just have to modify the font which is used in the game and add the character which is belonged to my native language. Because my native language is based on Latin. So I make this topic to ask you guys two question

How to extract the font from Fire Emblem Rom and insert them into the Rom?

How to modify the font? By any tool or program that be able to do that?
Waiting for your answer.
P/S: Basically, I do want to have my native language in the game. But I’ll also make an English version for the hacking project so I could share it to you.

I don’t know exactly how to edit the font, but i know how to import it.
The FE Roms has two Pointer Arrays that have pointers for each symbol, one for the text font and other for the menu font, these poiinters points to a 0x48 bytes of lenght block that are the symbol info, you need to import these blocks for the symbols that you want to add and point them to the new free space…
But this is only neccesary on the FE7 USA rom, the FE8 USA rom has the Spanish-Francais-Portuguese-Italian symbols in it

they start with 31 empty slots because they follow the ASCII code so, this is the orderhttps://www.asciitable.com
In example, if you want the “Ñ”, you need go to the FE7 EU array, go to the slot 0xA5, follow the pointer, copy the 0x48 bytes block, put in a new space in the new rom, go to the 0xA5 slot of the FE7 USA array, an put the pointer of the 0x48 bytes block

What is the native language you are using?
Does the language fall within the range of single byte (0-255) like English?
Or do you need multibyte like Japanese or Chinese?

If it falls within the single byte range, please use FE7U, FE8U font system space as MatonMx says.

When multibyte is necessary, it is quite troublesome.
I made a patch that displays Japanese on FE8U, FE7U. (DrawMultiByte Patch (Source code is in FEBuilderGBA))
However, I use Shift-JIS which is the old Japanese character encoding method. (Because FE8J, FE7J, FE6 are old games, ShiftSJIS is used.)
If you are using a multi-byte language, you need to extend this patch and remodel it so that you can draw the scope of your Native language.
How to extend depends on the multibyte encoding method of your Native language.

My native language is Vietnamese, based on Latin but cutted down some characters and added some, make it about 29 characters. But it’ll request more than just 255 byte to show all of the characters and their extra form.

I do not know anything about Vietnamese.
I do not know the specification of Vietnamese character string encoding.
So, I can not make Vietnamese DrawMultiByte.
It is necessary to make it by oneself, for example by modifying DrawMultiByte.

Ultimately, it may be that UTF-8 should be supported by FE.
Then, although there are some restrictions, you can display all the languages.
However, it requires a very big remodeling.

In the current situation, it is good to select and display some characters in a single byte range.

Fortunately, 0x03, 0x10, 0x11 are free.(In FE, it is used for character feed, loading and erasing portrait.)
However, since 0x80 is being used, this is quite a serious problem.
In FE, 0x80 is used for special effects.
If 0x80 can not be used, there is considerable problem.

DrawUTF8 [image][image]
This is a patch that displays UTF-8 in FE8U or FE7U. This patch can theoretically support up to UTF-32. So you should be able to display all languages on the Earth. However, since FEBuilderGBA is written in C#, C# has UTF-16 restrictions, it has not been fully tested for UTF-32 yet.
Please use the latest version of FEBuilderGBA (ver 20180731.23 , or later). Since it is a new patch, if you have a bug please contact me.
How to use. Adapt the DrawUTF 8 Patch. [image…

In the first version, there was a mistake, and it worked only in the code format having a completely different code format from LAT 1 like Japanese, Korean, Russian.
Currently, this bug has also been resolved.
We can use character codes all over the world.