~~NOTOC~~ ===== Status Timers Hack ===== [[ff3:ff3us:patches:madsiur|{{ff3:ff3us:patches:madsiur:madbutton.png}}]] ==== Patch data ==== |Name |Status Timers Hack v1.0a | |Author |madsiur | |Link |{{ff3:ff3us:patches:madsiur:status-timers.zip|Download}} | ==== Rom Data ==== Final Fantasy III (USA) (1.0) File/ROM SHA-1: 4F37E4274AC3B2EA1BEDB08AA149D8FC5BB676E7 File/ROM CRC32: A27F1C7A ==== Files ==== status-timers-nh.ips: IPS patch for vanilla ROM status-timers.asm: bass assembly file of the above hack status-timers-stop-nh.ips: IPS patch for Independent Stop/Premature Continuation fix compatibility status-timers-stop.asm: bass assembly file of the above hack ==== Description ==== This hack add timers for Slow, Haste, Safe and Shell when cast on characters or monsters. It use 4 free bits on the expired status byte ($B8) plus a byte per monster and character for each of the 4 new timers ($3E38, $3E39, $3E88 and $3E89). Right now, there is no easy way to know when those 4 timed status are lifted on a monster but that will be deal with in another hack. All 4 timers have a value of $1E, so they last longer than Reflect but shorter than Freeze. The new timer values can individually be edited in the bass asm file.\\ There are two hacks; "status-timers" is for vanilla ROM and fix the same bug as "Premature Continuation fix" by assassin (link below), only it does at a different place in the code. "status-timers-stop" implement the "Independent Stop" code by seibaby (link below) as well as the original "Premature Continuation fix" by assassin. Use "status-timers-stop" if you already have applied or want to apply those two hacks.\\ A note on timers and status with this hack: the low on HP equipment Safe/Shell cast will now work on timers, the same way it does with the unused low on HP Reflect flag. Also, if a character has Haste, Safe/Shell will wear of faster and if the character has Slow, Safe/Shell will wear off slower. This is the same behavior that the Haste/Slow status have on other timers such as Freeze, Reflect and Sleep in the vanilla game.\\ Both hacks use 202 ($CA) bytes of free space at $EEAF01. This free space offset can be changed in the bass asm file by changing the offset of the "seek($EEAF01)" macro call. Both hacks use no free space in bank $C2 but instead relocate the "check timers" routine from $C25B06 to $EEAF01 to make room for the new "set Slow/Haste/Safe/Shell" bank $C2 code.\\ To assemble the hack use bass v14 by typing a command such as "bass -o rom.smc status-timers.asm".\\ ==== Links ==== [[https://www.ff6hacking.com/forums/thread-4176.html|Forum Thread]]\\ [[http://assassin17.brinkster.net/patches.htm#anchor27|Premature Continuation fix]]\\ [[https://www.ff6hacking.com/forums/thread-3389.html|Independent Stop]]\\ [[ff3:ff3us:patches:madsiur|{{ff3:ff3us:patches:madsiur:madbutton.png}}]]