Comprehensive ATB Enhancement hack
#1
Hi all, first time posting here. I've done a lot of modding for other games, but this is my first time ROMhacking. Halfway through my first ever playthrough of FF6, aspects of the ATB system bothered me enough to seek out a patch that would stop the gauges from filling during battle animations. After some digging around I found Think0028's simple nATB patch, but didn't like how it enforced Wait mode. C-Dude was helpful enough to revise a version that would allow the Active/Wait mode config setting to be functional once more, but I noticed that the ATB pause also had knock-on effects on status effect timers, checks for fleeing, the jump command, and even AI battle scripts.

After studying some SNES assembly references and the impressive patches made by other FF6 hackers (Leet Sketcher, assassin, HatZen08), I believe I have addressed all of these issues. Here is the readme:

Quote:Final Fantasy 6 -- Comprehensive ATB Enhancement v1.04
by RoSoDude https://rosodudemods.wordpress.com/

Final Fantasy 6's ATB system has some notable flaws compared to other entries in the series. ATB is always running in the background regardless of battle animations, so commands can quickly pile up on the queue. This functionally caps the effectiveness of the Agility stat. Furthermore, it enables "Wait tricking" abuse with the Wait mode config setting, where the player enters a command submenu to pause ATB during player animations, but lets ATB resume during enemy animations to gain a turn order advantage. Finally, the Battle Speed config setting only serves to make enemy ATB speed slower relative to the player, instead of adjusting the actual pace of battles as the player would expect.

This hack makes ATB gauges and other battle timers pause during battle animations, similar to the "nATB" system implemented by Think0028 for Brave New World. However, this hack supports the Active/Wait mode config setting instead of defaulting to Wait. ATB speed and rates for all status effect timers are increased by 2-3x to offset the added downtime, and now scale consistently with the Battle Speed setting. The execution delay on several basic commands is removed to increase responsiveness during battle, but is maintained for other commands as an element of gameplay balance. The end result should be a more tactical and robust ATB system which can be tweaked to the user's preference using the in-game config settings.

Included alongside the main hack is an alternate "CTB Wait Addon" patch which removes all active time elements from battle when "Wait" mode is selected, similar to FF10's Conditional Turn-Based battle system. See the separate readme for details.

The hack is for non-headered US ROMs (v1.0 or v1.1). It is compatible with other hacks like C.V. Reynolds' Bug-Fix Compilation patch or Revised Old-Style Edition. This hack should be patched on top of those. Several bugfix patches are integrated into this hack to maintain compatibility:
-Assassin's Premature Continuation v0.20 patch
-Leet Sketcher's Rock Bottom v1.3 patch
-Leet Sketcher's Death Row v1.2 patch
-Leet Sketcher's Self Sneeze v2.0 patch
-Leet Sketcher's Invisible Zombie v1.0 patch
-RoSoDude's Quick Fix v1.02 patch

Source files for assembly are included as a reference for other modders.

Acknowledgements:
-Think0028 for creating the original "simple nATB" hack
-C-Dude for revising "simple nATB" to reinstate the Active/Wait config setting
-Lightning Hunter for correcting the patch to work with 1.1 ROMs
-Assassin for Premature Continuation v0.20
-Leet Sketcher for Rock Bottom v1.3, Death Row v1.2, Self Sneeze v2.0, Invisible Zombie 1.0
-HatZen08 for Even Gauge v1.1d

Changelist:
#### v1.00 ####
-Initial Release
#### v1.01 ####
-Fixed compatibility with 1.1 US ROMs
-Increased morph decay rate by 2x
#### v1.02 ####
-Reflect/stop/sleep/freeze timers now tick 3x faster for compatibility with any hack that rebalances their durations for vanilla ATB (previous releases overwrote the duration values)
-Doom countdown timer now starts at 2x reduced time instead of 4x reduced time
-Jump command delay reduced from 128*512 ATB to 96*512 ATB (originally 224*512 ATB)
#### v1.03 ####
-Fixed tentacle boss never draining HP during seize. Now HP drain from seize ticks 2x faster
-ATB fill rate formula now quadratically damps enemy Agility values for use with difficulty hacks that increase monster Agility stats above 99
#### 1.04 ####
-Integrated Self-Sneeze, Invisible Zombie, and Quick Fix patches
-Corrected jump command delay to 112*512 ATB as intended (previously 96*512 ATB)
-Fixed Palidor summon using the vanilla jump command delay (224*512 ATB)
-Increased Gil Toss execution delay back to vanilla (16*512 ATB)
-Revised ATB fill rate formula to increase effective Agility by 5 for all participants
-Revised slow/normal/haste multipliers from 32/64/84 to 43/64/96
-Eliminated integer truncation of slow/normal/haste multipliers in Battle Speed adjustment
-Revised fleeing behavior to be consistent with vanilla ATB (speedier):
-Tripled range for random flee chance increment (previously rolled increment was doubled instead)
-Removed filter that blocked 7 out of every 8 flee attempts, now immediate on flee chance success
-Fixed staggered running animations on pre-emptive/side attack battles
-Added "CTB Wait Addon" bonus patches

The patch is attached, also available  on RomHackPlaza.org: https://romhackplaza.org/romhacks/final-...ment-snes/
RHDN link: https://www.romhacking.net/hacks/8513/


Attached Files
.zip   Comprehensive ATB Enhancement_v1.01.zip (Size: 7.66 KB / Downloads: 4)
.zip   Comprehensive ATB Enhancement_v1.02.zip (Size: 8.71 KB / Downloads: 13)
.zip   Comprehensive ATB Enhancement_v1.03.zip (Size: 9.92 KB / Downloads: 7)
.zip   FF6 Comprehensive ATB Enhancement_v1.04.zip (Size: 17.18 KB / Downloads: 7)
Reply
#2
Lightning Hunter alerted me that the patch did not actually work with 1.1 ROMs, so I have corrected that. Also, I forgot to increase the Morph (a.k.a. Trance) decay rate along with the other battle timer changes, so I have done that now as well.

The updated patch should be ready on RHDN shortly.
Reply
#3
Right on, if you'd like we could host it here on our server as well.
We are born, live, die and then do the same thing over again.
Reply
#4
Sure, I've added it to the first post.
Reply
#5
Pretty cool patch!
Reply
#6
Updated to v1.02. Besides some balance adjustments to the Condemned timer (now 2x shorter instead of 4x shorters) and Jump command delay (now 112 frames instead of 128 frames), the main reason I wanted to update the hack was for greater compatibility with other rebalance hacks. In particular, I originally overwrote the reflect/sleep/stop/freeze duration values directly, which meant that there would be a conflict with any other hack that adjusted those. I'm not sure which, if any, hacks do this (besides BNW which has its own timer rebalancing for nATB), but I want my hack to be as compatible as possible.

In v1.02, I no longer overwrite those duration values to be 3x shorter, but instead code the associated timers to decrement 3x more quickly. I accomplished this by combining the stop and reflect/sleep/freeze timer decrement logic into a single function, which decreases the value by 3 at every status timer update. This is based on Leet Sketcher's condensing of the reflect and sleep timer code, but goes further by pushing the timer addresses onto the stack for use with the stack relative indirect indexed addressing mode, which to my knowledge is never used in the entire FF6 ROM! Fitting the logic into the original byte space was a technical achievement I'm quite proud of, so feel free to check out patches_compat.asm as a reference.
Reply
#7
Updated to v1.03. I had considered this hack essentially complete, however in my efforts to make a custom version for Lightning Hunter's ASC overhaul I discovered that I had broken the Tentacles bossfight as the HP drain from seize was never allowed to occur (instead, player characters would be grabbed but never lose have any health drained). I have now fixed that issue.

Early beta tests with ASC revealed that my hack led to unbalanced fights when they were used together, since ASC gives some monsters Agility stats exceeding 99 and the Agillity stat is extremely impactful now (in vanilla ATB, 200 Agility is barely different than 100 Agility). To help mitigate this and also to make the hack more naturally compatible with any difficulty hack that uses high Agility for monsters, I have applied a quadratic damping to the monster ATB formula. Lower Agility values are barely reduced (e.g. 30->29), but larger Agility values get reduced by up to half (e.g. 99->80, 255->128). This should make Comprehensive ATB Enhancement a systemic improvement to FF6's battles that leaves the difficulty intact, whether used with a vanilla ROM or alongside an overhaul mod. Speaking of which, I would love to know if it is compatible with T-Edition, Return of the Dark Sorcerer, Divergent Paths, General Leo Edition, etc. Let me know if you are a fan/developer of those hacks! Brave New World need not apply as it has its own ATB overhaul, of course.

Off topic: I have applied the XP I gained from developing this FF6 hack towards the development of a sister hack for FF9 which remedies its identically flawed ATB system. Stay tuned for that!
Reply
#8
Back with another update for my ATB hack, this time with some big changes!
  • Some minor bugfixes
  • Everybody is a bit faster (this is to make the speed stat slightly less dominant)
  • Haste is better than before, slow is not quite as potent
  • Fleeing behavior is much better; you should be able to flee about as quickly as vanilla, and there's no more weird delay when trying to flee from pre-emptive strike battles
  • Optional CTB Wait Addon patch makes battles fully turn-based, like FFX
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  37+ New weapons - FF6 Comprehensive Arsenal Patch tomilho 16 13,257 05-26-2024, 10:51 PM
Last Post: Gi Nattak

Forum Jump:


Users browsing this thread: 1 Guest(s)