Final Fantasy IV, V & VI Advance Very Large Menu Font

Started by nibbles27, June 27, 2016, 10:18:42 PM

Previous topic - Next topic

nibbles27

Here is a project i started to see if I could get the font in FFV and FFVI more like one that 1&2 Dawn Of Souls uses
Currently it is finalized with a very large font (probably larger than Dawn of Souls) to replace the usually small/thin one.

IMHO This patch is alot more readable and more suited for a system like the GBA.

* This patch is for the battle and menu font only.

The CAPS version the one that most people will use is now very thick and should just be used for english.
*WARNING: spillovers in other languages though you can try!

I left the Regular version in as well mostly for multilingual people as it takes up less space.
*Works in English as well just thinner

Edit:
Now Final Fantasy IV Advance is added (E and U versions)

*Edit V0.3
Now Caps version included with large Caps

**Edit v0.3f
Tidied up Font fixed Shadows



***Edit v0.4
Hightened the t and h in all
Widend the s, z, l, in CAPS.
+Polishing
Alot more readable and probably finalized

*FF4 Adv. (E) v0.4 CAPS Version now has test version (Needs Thorough Testing)
specifically with

~ character
- and [
- and ]

*FF6 Adv. (E) v0.4 CAPS Version also (Needs Thorough Testing)


Final Fantasy IV Advance Very Large Font Download: (Now v0.4)

FF4A_Large_v4.zip (8.32KB)
https://www.sendspace.com/file/gcml46
(Both (E) and (U) versions)


Final Fantasy V & VI Advance Very Large Font Download: (Now v0.4)

FF5A_U_Large_v4.zip (4.48KB)
https://www.sendspace.com/file/qbggru
(Only (U) version)

FF6A_Large_v4.zip (10.55KB)
https://www.sendspace.com/file/mlvxhq
(Both (E) and (U) versions)


FFV ADV:





FFVI ADV:





FFIV ADV:






FFIV ROM / ISO Information:
    Final Fantasy IV Advance (U) (Independent)
    CRC32: FEEEBDE4
    MD5: C74DD5CC3AB6E5D4AC53B1677E1ABD69
    SHA-1: C49BE22EAF999774D5F2983E12ED4AACE2950F36
-
    Final Fantasy IV Advance (E) (Eternity)
    CRC32: 27F2BC67
    MD5: 2FF590AA635590C2F8140C88CBB19025
    SHA-1: B09D50D782B184C8641AEA6DD904AE46C3CC72E6

FFV ROM / ISO Information:
    Final Fantasy V Advance (U) (Independent)
    CRC32: 7A24AB0C
    MD5: 9ED82843CC54876362BE56FACCB15D75
    SHA-1: 492789276EAA3E94152B143AD92F310B8A3D5366

FFVI ROM / ISO Information:
    File: Final Fantasy VI Advance (E) (Eternity)
    CRC32: D15DEBA5
    MD5: 7F6BF3B4D84F113AA454136E5B53FD77
    SHA1: C5B27ED0870EA64E6A001C5BC367F76571ACE973
-
    File: Final Fantasy VI Advance (U) (Xenophobia)
    CRC32: D708F5AB
    MD5: D1C3D1798A3F347FBAB41F151C99DECE
    SHA-1: E9A2A58BC56ACE26CB56D0CF5CDAD1A10AA5DEDF


P.S.

I find the older v1.1 sound restore is superior to v2.1
Version 2.1 uses exact snes conversion
Version 1.1 Still retains the sounds used in the advance version and is actually is a bit better quality with some instruments

For reference here is the older version:

ff6a_sound_restore_v1,1.7z
https://www.sendspace.com/file/204gwa

FAST6191

"Sorry there is no (E) version for FFV Advance but it simply would not fit."
How do you mean it would not fit? VRAM limits or something? If you ran out of ROM space then you just expand it -- the GBA addresses 32 megabytes of space without hassle (no banks, mappers or anything like that) and change the pointers appropriately. If you can keep it under 16 megs it will help some flash cart users but if needs it then go for it.

nibbles27

Quote from: FAST6191 on June 28, 2016, 06:30:19 AM
"Sorry there is no (E) version for FFV Advance but it simply would not fit."
How do you mean it would not fit? VRAM limits or something? If you ran out of ROM space then you just expand it -- the GBA addresses 32 megabytes of space without hassle (no banks, mappers or anything like that) and change the pointers appropriately. If you can keep it under 16 megs it will help some flash cart users but if needs it then go for it.

There are three font tables in each rom.

In theory i guess you could shorten the two font tables not needed to be modified then insert the new large font table
and remap the pointers in between keeping the same rom size. This would though:
1. Make the patch uncompatible with other hacks
2. Be time intensive

* and to start off i am a begginer at rom hacking (though i know alot about computers)

Anyways most of the patches for Final Fantasy V Advance are for the *(U) version and this font hack targets the
english speaking audience anyways (as i imagine the text would spill over in the thin *(E) version for any language other than english)

If you want to send me a link to some more advanced tutorials i wont complain and maybe some day you will see this
in the *(E) version or even a version for Final Fantasy IV Advance

FAST6191

Quote from: nibbles27 on June 28, 2016, 10:06:27 AM
There are three font tables in each rom.

In theory i guess you could shorten the two font tables not needed to be modified then insert the new large font table
and remap the pointers in between keeping the same rom size. This would though:
1. Make the patch uncompatible with other hacks
2. Be time intensive

* and to start off i am a begginer at rom hacking (though i know alot about computers)

Anyways most of the patches for Final Fantasy V Advance are for the *(U) version and this font hack targets the
english speaking audience anyways (as i imagine the text would spill over in the thin *(E) version for any language other than english)

If you want to send me a link to some more advanced tutorials i wont complain and maybe some day you will see this
in the *(E) version or even a version for Final Fantasy IV Advance

For most the dominant hack for FF5a was the sound hack but I see ports out (give or take intro) to the other versions were made in the latest version. That was my main concern. Not sure what the classes hack uses but I guess that is OK. I was probably also thinking more about FF6 advance for which the Euro version does seem to be base for everything else.

I am not sure how it would become incompatible with other patches -- as long as you don't use the same expanded/extra space (and you have at least 24 extra megabytes to play with on the US version and at least 16 for the EU one so that should not be a problem). Equally unless those other hacks also edit the font or use another font they added themselves it should not trouble it, even if they change the text (if the game thinks it is drawing from table 3 but by quirk of pointers it is actually just table 1 it should not).

I am not sure what the advanced tutorial you would seek might look like, assuming you meant GBA ROM expansion. For the SNES or NES then yeah it is a somewhat involved hack.
For the GBA it amounts to "add space to end of ROM", make sure pointers point to the data you put in this extra space. There are no pages, banks, initialisation/unlock routines... outside of some very old flash carts and a couple of GBA games that were not even dumped until last year (the shrek videos). It is just put it there and point at it using whatever pointer scheme the game is presently using (so most likely the 08??????, unless it is past the 16 meg mark in which case it is 09??????, or actually just account for the 01 that technically gets added to the 08 in that scenario).

Equally I don't know what font setup the game is using -- if it is some nightmare VFW that you also had to fix the widths table for then OK.

Chronosplit

As far as 6 is concerned the EU focus was due to the sound hack.  Now that it's available for the US version there isn't really much of an issue, as the ones that aren't compatible with it fix things specifically wrong with the EU version.

More languages are always better however.

nibbles27

Quote from: Chronosplit on June 28, 2016, 12:48:15 PM
As far as 6 is concerned the EU focus was due to the sound hack.  Now that it's available for the US version there isn't really much of an issue, as the ones that aren't compatible with it fix things specifically wrong with the EU version.

More languages are always better however.

QuoteI am not sure what the advanced tutorial you would seek might look like, assuming you meant GBA ROM expansion. For the SNES or NES then yeah it is a somewhat involved hack.
For the GBA it amounts to "add space to end of ROM", make sure pointers point to the data you put in this extra space. There are no pages, banks, initialisation/unlock routines... outside of some very old flash carts and a couple of GBA games that were not even dumped until last year (the shrek videos). It is just put it there and point at it using whatever pointer scheme the game is presently using (so most likely the 08??????, unless it is past the 16 meg mark in which case it is 09??????, or actually just account for the 01 that technically gets added to the 08 in that scenario).

Sorry I don't think i was specific enough.
For Final Fantasy VI Adv. I have done both the (E) and the (U) as i understood the amount of hacks for the FF6 (E) version The font fits fine for FF6 (E)
Both are included in my FF6A_Large_v2.zip File

I would have to expand (only the littlest bit though) to fit in FF5 (E)

I guess i don't really know where i would start if i was to do that


FAST6191

I don't think I am quite getting where you are coming from

The usual things I would encounter though/I imagine you might be encountering though

The font(s) have say 70 entries. Each entry is a custom size in terms of tiles (say 8x10 and then 7x9 and then 8x11...), however as you are making a fatter font then you run out of bytes in which to store them before you finish. Alternatively all characters are the same size but you told the game to instead read pixels 16 wide or something compared to the original 8 and thus have run out of space again.
In that case two options. Do those 70 entries include characters/glyphs that do not appear in the game? Lose those.
Alternatively somewhere in the game will likely be a value that reads 08?????? where ?????? is the location of the start of the characters (remember to account for endianness), or maybe one of those for each character in the set. In that case just change that 08?????? to put it at the end of the ROM (or if the sound hack uses that then after that/before that/add some space to the end and add it there) and then change the 08?????? to match the new location -- shuffling things forward in a GBA game (or indeed anything that is not a filesystem based system) is monstrously difficult but you can always stick it at the end where there is just a load of 00 or FF to make up the space in the ROM chip, or make new end if that is occupied. Said making a new end is hard on older systems but trivial on the GBA (you quite literally just add space with a hex editor or however you want to add blank sections to the end of the file -- you can use copy /b and a blank file if you want)
08 is just the location of the ROM in memory, technically there are a few others but they are rarely used ( http://problemkaputt.de/gbatek.htm#gbamemorymap ). Unlike older systems the whole thing is visible at all times in basically all games (the shrek games and certain older flash carts being the exception).
This is what is known as changing pointers, it is fairly key to learn to get anywhere in ROM hacking. If you learned what pointers do in C and C++ and such like then this is what it manifests as after it has been through the compiler. In most cases on the GBA you will not see calculated/"file level" pointers and it will all use the 08?????? and 09?????? format but it is not impossible, sadly fonts might be the exception most would first meet but let us not go there.

The font(s) have say 70 entries. Each entry is placed on a 8x16 tile but custom encoded after that to be however big in another table somewhere in the ROM. Your new font has 80 entries. In that case ignore those you do not need and replace like for like.

tvtoon

It is not so hard to change the VWF on these games. Get to know the format that is basically the Virtual Boy one (2BPP), then it is a logic work to bring the size you want. After that, look for a place with enough ROM space and dump the code there, then change the original pointer that is an absolute address 0x08###### for the system. ;)

Nice project. :)