Users browsing this thread: 1 Guest(s)
Status Timers Hack
Status Timers Hack
by madsiur
version 1.0a
released on 02/16/2022
apply to FF3us 1.0 (no header)
wiki entry
download
readme
ROM info
Files
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
Premature Continuation fix
Independent Stop
by madsiur
version 1.0a
released on 02/16/2022
apply to FF3us 1.0 (no header)
wiki entry
download
readme
ROM info
Code:
Database match: Final Fantasy III (USA)
Database: No-Intro: Super Nintendo Entertainment System (v. 20210222-050638)
File/ROM SHA-1: 4F37E4274AC3B2EA1BEDB08AA149D8FC5BB676E7
File/ROM CRC32: A27F1C7A
Files
Code:
status-timers-nh.ips: IPS patch of this hack
status-timers.asm: bass assembly file of this 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
Premature Continuation fix
Independent Stop
« Next Oldest | Next Newest »
|
||||
Users browsing this thread: 1 Guest(s)