FF6 Hacking
Making Inviz Edge editable in FF3USME - Printable Version

+- FF6 Hacking (https://www.ff6hacking.com/forums)
+-- Forum: Discussion Forums (https://www.ff6hacking.com/forums/forum-5.html)
+--- Forum: Magitek Research Facility (https://www.ff6hacking.com/forums/forum-9.html)
+--- Thread: Making Inviz Edge editable in FF3USME (/thread-3877.html)



Making Inviz Edge editable in FF3USME - C-Dude - 09-08-2019

So I learned that Shadow Edge and Inviz Edge (the two status buff skeans) are hard-coded like the tools, and this was frustrating me because I wanted to make them do different things in the item editor and those things were not transferring into the game.

After fiddling around with it for a while, I learned that the code controlling items, thrown items, and tools has a branch for tools that keeps item data (like statuses to set) from being loaded, no doubt because each tool does not use this information and instead uses those bytes for targeting.

The exception, of course, is Shadow Edge and Inviz Edge, which are literally checked and set like items after tools/throw skips over the item initialization.  To make them more flexible, I shifted the item initialization block forward 5 bytes and made it into a subroutine, so that Shadow Edge and Inviz Edge could call it after the tool skip.

The result?  Now Shadow Edge and Inviz Edge are editable like standard items, while remaining skeans called by the Throw menu.

Here's my changes, built off Assassin's disassembly of C2
And here's the raw hex.  It's smaller than the original vanilla code, so it can be applied in-line.  Thus far I haven't encountered any aberrant behavior from items, thrown items, or tools, but you never know if there's some lurking bug hiding in the mix.
Code:
================
Raw Modified Hex
================
C2/2A74-C2/2AF1

-- -- -- -- B0 6C 20 7B 2A 80 67 A9 01 1C A2 11
BF 1B 50 D8 0A B0 05 69 90 8D A9 11 C2 20 BF 15
50 D8 8D AA 11 BF 17 50 D8 8D AC 11 E2 20 BF 13
50 D8 85 FE 06 FE 90 05 A9 80 0C A4 11 06 FE 06
FE 90 05 A9 04 0C A4 11 06 FE 90 07 A9 80 0C A3
11 04 FE 06 FE 90 05 A9 01 0C A4 11 06 FE 06 FE
90 05 A9 08 0C A2 11 AD AA 11 10 05 A9 0C 0C A2
11 60 A3 01 C9 AE F0 04 C9 AF D0 03 20 7B 2A 80
01 EA -- -- -- -- -- -- -- -- -- -- -- -- -- --
Obviously if your hack modifies this data (most likely if you use that patch that overhauls how Tools work), there will be conflicts.  Still, I thought this was significant enough to share with the community.  It's not technically a bug fix, but it does make these two items easier to work with in the editor.