The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 895 - File: showthread.php PHP 7.3.33 (Linux)
File Line Function
/showthread.php 895 errorHandler->error




Users browsing this thread: 1 Guest(s)
Status Timers Hack

#1
Posts: 3,971
Threads: 279
Thanks Received: 238
Thanks Given: 58
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
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
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


[Image: screenshot.png]
  Find
Quote  
[-] The following 2 users say Thank You to madsiur for this post:
  • Gi Nattak (02-14-2022), Lightning (02-14-2022)



Messages In This Thread
Status Timers Hack - by madsiur - 02-14-2022, 10:37 AM
RE: Status Timers Hack - by Lightning - 02-14-2022, 02:51 PM
RE: Status Timers Hack - by madsiur - 02-14-2022, 02:57 PM
RE: Status Timers Hack - by assassin - 02-14-2022, 03:56 PM
RE: Status Timers Hack - by madsiur - 02-14-2022, 04:29 PM
RE: Status Timers Hack - by Gi Nattak - 02-14-2022, 05:09 PM
RE: Status Timers Hack - by madsiur - 02-16-2022, 10:36 AM

Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite