Final Fantasy III (USA).sfc - NOINTRO CRC32: A27F1C7A MD5: E986575B98300F721CE27C180264D890 SHA-1: 4F37E4274AC3B2EA1BEDB08AA149D8FC5BB676E7 SHA-256: 0F51B4FCA41B7FD509E4B8F9D543151F68EFA5E97B08493E4B2A0C06F5D8D5E2
Hack description
UPDATE FROM AUTHOR: This patch is outdated and has been replaced by the newer and more stable Overkill 32,000 patch. It is recommended you download that patch instead.
Includes a patch for both v1.0 and v1.1 of the Final
Fantasy III (US) [!] ROM. Apply to a headerless ROM.
Here is a link to a demonstration video:
http://www.youtube.com/watch?v=gW_ympIie-E
Basically, this patch makes FF6 capable of displaying 5 digits when 10,000+ damage/healing is dealt. Only up to 32766 (#$7FFE/#$8002) damage/healing is allowed because of negative numbers using the values 8000-FFFF. This can display anything with 5 digits, though, so if someone can make a hack moving the healing bits to a different memory address, allowing for this hack to do up to 65535 damage, it would be welcomed!
What it does is squeeze 5 digits into 4 tiles. This is why the digits are of a custom font because the original font would cause an unappealing overlap of digits, making it harder to read.
To do this in ASM with 4bpp graphics was not trivial but quite difficult to figure out. I had to revise it twice because the code wasn't efficient enough to prevent an NMI from interrupting it before it was done. Spells that hit multiple monsters display 5 digits too, which use different routines since it involves showing several damages simultaneously. This was causing interrupt problems, but I put a WAI (wait for interrupt) at the beginning of the new code and it seemed to have fixed it. If you get weird effects when there's multiple damages/healings on screen it was probably because of an NMI. As far as I can tell, that has been fixed but nothing is certain.
Special thanks to Imzogelmo for the feedback and beta testing, as well assassin17 and Terii Senshi for the offsets of the damage truncation and compressed battle numerals.