User Tools

Site Tools


Multiple Fonts

Patch data

Name Multiple Fonts 1.4.1
Author madsiur
Link Download

Rom data

ROM Name Final Fantasy III (USA) 1.0
ROM SHA-1 4F37E4274AC3B2EA1BEDB08AA149D8FC5BB676E7
Header No


Normal Patch

$C47FB0 - $C4B3AF New Font Data (VWF & FWF)
Banks $C0, $C1, $C3 Multiple offsets, see IPS log.

Expansion Patch

$F20000 - $F21EBF New Font Data (VWF & FWF)
Banks $C0, $C1, $C3 Multiple offsets, see IPS log.


This patch implement a selectable GBA Font in Config menu. The only free space it use is less than $D0 bytes at end of bank $C3 for actual menu work. Otherwise, functions have been optimized or at least shortened in order to fit in the new code, especially in bank $C0. There are other code changes but they are smaller and always within the function they originally are from. See the asm files for all details. Some code still need comments but the uncommented stuff is long vanilla code with little changes.

There are 2 hacks or implementations. The Original hack and the one made for expanded ROMs (EXP).

In the Original hack, both fonts fits where the original font was, using the free space before and after in bank $C4. The free space used before the FWF to draw black menu backgrounds has been simulated by loading blank tiles in VRAM. This mean this version of the patch does not work with icon expansion s or other hack adding characters in the FWF before index 0x80. Since original font is moved, this patch break FF3usME dialogue viewing but not dialogue editing. You can always open a second editor instance to find caption, see changes, etc.

In the Expanded Hack (EXP files), Normal font is keep where it is in original ROM while Advance (GBA) Font is moved to $F20800. Note that the $F20000-$F207FF range is reserved and filled with 00 to copy like in bank $C4 the empty space before the Normal FWF. With this version of the hack, you can see dialogues edits made in FF3usME and you can expand FWF characters before index 0x80.

A new dialogue control code have been added. Writing $17 at the beginning of a line now center automatically the line given it ends by new line ($01), end parameter ($11, $12) or end page ($13). This is still experimental but instance of the control code have not been added to dialogue. You must do it yourself. In FF3usME, use [OP$17].

For other modifications I included the ASM files. You can assemble the code by typing the command xkas main.asm romname.smc or xkas main_EXP.asm romname.smc with xkas 0.06. If you use the header option in the ASM files you must enable it in all files.


ff3/ff3us/patches/madsiur/multiple_fonts.txt · Last modified: 2019/02/12 12:25 (external edit)