• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
November 27, 2021, 09:11:18 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen/RetroArch is recommended for playing/testing, pSX is recommended for debugging.


Choto's ASM Hacks and Effects

Started by Choto, February 27, 2012, 06:05:00 pm

Choto

February 27, 2012, 06:05:00 pm Last Edit: September 08, 2018, 03:40:24 pm by Elric
Mighty Sword Hack:

This makes it so that the mighty swordskills have a % chance to break equipment, but always function as normal damage swordskills. Maintenance prevents item breakage, but not damage. Change "XX" to whatever chance to break you want. I also changed the damage formula to (WP+Y)*PA like the other swordskills, and divided the damage by 2 to prevent roflstomping. If you don't want this, change the bolded line to "00000000".


Battle.bin
0x122b94
E8FFBD27
1000BFAF
8E1D060C
00000000
0C004014
64000434
B63B060C
XX000534
08004014
00000000
721E060C
00000000
1E004014
1980033C
902D638C
04000234
100062A0
01000234
020060A0
4421060C
000062A0
9717060C
00000000
E917060C
00000000
A921060C
00000000
1980033C
902D638C
42100200
040062A4
1980043C
DC388290
2A0062A0
00000000
00000000
00000000
00000000
00000000
F41B060C
00000000
3F1C060C
00000000
1000BF8F
1800BD27
0800E003
00000000


Giving FFM's suggestion a shot and making the break chance be whatever the ability X in FFTPatcher is. If anybody gives this one a shot please let me know if it works correctly as I didn't test it yet.


<Patch name="Mighty sword uses X as % to break">
  <Location file="BATTLE_BIN" offset="00122B94">
E8FFBD27
1000BFAF
8E1D060C
1980053C
0C004014
64000434
B63B060C
F938A590
08004014
00000000
721E060C
00000000
1E004014
1980033C
902D638C
04000234
100062A0
01000234
020060A0
4421060C
000062A0
15004014
00000000
9717060C
00000000
E917060C
00000000
A921060C
00000000
1980033C
902D638C
42100200
040062A4
1980043C
DC388290
2A0062A0
00000000
00000000
00000000
F41B060C
00000000
3F1C060C
00000000
1000BF8F
1800BD27
0800E003
00000000
</Location>
</Patch>


Spells can Crit Hack (Needs fixing, does not work)

Here is a Beta "Spells can crit" hack. This trades compatibility for critical hits in formulas 08, 1a, 1f, 21. Its only a quick and dirty version but with an initial test it seemed to work. Oh, It also cancels the knockback routine for critical hits because last time we tried this it seemed to mess things up. I'd like to expand this hack to make a couple other formulas able to crit.


<?xml version="1.0" encoding="utf-8" ?>
<Patches>

<Patch name="Spells can Crit v.1">
<description> Affects formulas 08, 1A, 1F, 21</description>
  <Location file="BATTLE_BIN" offset="121764">
3E19060C

</Location>
<Location file="BATTLE_BIN" offset="11f550">
00000000
</Location>
</Patch>
</Patches>


No Zodiac Compatibility Calculation:

Finally fixed, thanks Pride and Glain!


-<Patch name="No Zodiac Compatibility">
<Description> This removes zodiac compatibility damage calculations </Description>
<Location offset="11D964" file="BATTLE_BIN"> 00000000 0800E003 00000000    </Location> </Patch>


Blank Support ability Hacks:
FFM's originals fixed for load delay

Blank support below Non-Charge increases damage and healing by X%. Blank support 2 under Non-Charge reduces damage/healing by 20%. Note: X value is hexadecimal. Default is 0x14, or 20%.


<Patch name="Supports under non-charge hack">
    <Description>
      Blank support below Non-Charge increases damage and healing by X%. Blank support 2 under Non-Charge reduces damage/healing by 20%.
    </Description>
<Location file="BATTLE_BIN" offset="11F580">
        ba600508
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="F12E8">
64000324
1980043C
942D848C
00000000
92008490
00000000
02008430
02000410
00000000
   </Location>
    <Variable file="BATTLE_BIN" offset="f130c" default="14" name="X"/>
   <Location file="BATTLE_BIN" offset="F130d">
006324   
1980043C
982D848C
00000000
92008490
00000000
01008430
02000410
14000234
23186200
12200000
00000000
00000000
18006400
12180000
00000000
64000424
1A006400
1980033C
902D638C
62190608
00000000



    </Location>
  </Patch>


Addend: This removes the decrease in healing for the 2nd blank support under Non-Charge.


<Patch name="Supports under non-charge hack Healing Addend">
<Description>
       This removes the decrease in healing for the 2nd blank support under Non-Charge.
    </Description>
<Location file="BATTLE_BIN" offset="1203bc">
        DF470508
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="EAF7C">
1980033C
982D638C
00000000
92006390
00000000
01006330
12000310
00000000
1980033C
D8386390
00000000
04006010
00000000
F0006328
0A006010
00000000
64000324
19006324
18004300
12100000
00000000
64000324
1A004300
12100000
00000000
060082A4
25008290
F11C0608
00000000



    </Location>
  </Patch>


@ Raven: Revised these to work with Item and fixed the decrease to be 20% for simplicity.

Blank support Accuracy Hack:

Edit: Apparently the second hack doesn't work correctly. I'm leaving it up just for record, but the first hack after this description will null 20% of the targets evade. This is the one used in JOT5 and should work fine. Thanks to Grond for the tip-off


<Patch name="Support under Equip Change removes 20% Evade">
<Description>
What's a description. It tells you what the hack does. Evades are removed in this order:
A-Ev, W/S Ev, C-Ev
</Description>
<Location file="BATTLE_BIN" offset="11e828">   
00000000
1000B0AF
1980023C
F6384290
1980013C
942D308C
02004230
92001092
8E004010
00000000
10001032
05000012
14001024
FC470508
21280000
00000000
00000000
DC382890
E1382790
DE382390
DF382490
E0382690
21280001
00000000
00000000
00000000
00000000
00000000
2B106800
04004010
2B108800
02004010
2B10C800
00004010
2B10E800
06004014
23100301
902D428C
00000000
000040A0
74160608
2A0040A4
</Location>
<Location file="BATTLE_BIN" offset="EAFF0">
DE382424
00008390
00000000
2B107000
04004014
00000000
23187000
0B480508
000083A0
23800302
000080A0
0300A22C
0100A524
F3FF4014
01008424
1B160608
00000000
</Location>
</Patch>


Combined this with an altered version of Xif's hack that should add % hit to all abilities. This is not thoroughly tested so please report any abilities that are not affected by it.


<Patch name="Support under Equip Change adds XX% Hit (with Xif's Hack)">
<Description>
        Set YY and XX to be the same value
    </Description>
<Location file="BATTLE_BIN" offset="11e9cc">
        FC470508
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="EAFF0">

1980043C
942D848C
00000000
92008490
10000334
06006414
00000000
   </Location>
<Variable file="BATTLE_BIN" offset="EB00c" default="14" name="XX"/>
   <Location file="BATTLE_BIN" offset="EB00d">
004224
64004328
02006014
00000000
64000224
2A00A2A4
21800001
75160608
00000000

    </Location>
<Location file="BATTLE_BIN" offset="11f5d8">
1980013C
CE382294
CE3830A4
D03822A4
D0382394
CE382294
92006492
10008430
03000410
21104300
</Location>
<Variable file="BATTLE_BIN" offset="11f600" default="14" name="YY"/>
   <Location file="BATTLE_BIN" offset="11f601">
004324
21106200
902D248C

       </Location>
  </Patch>


Weapon Guard innate all v2:

Fixed a bug with Xif's Weapon guard innate all hack


The Patch:


<Patch name="Weapon Guard Innate All fixed">
<Description>
       Untested
    </Description>
<Location file="BATTLE_BIN" offset="11e0c8">
10400008
00000000
   00000000
       </Location>

       <Location file="BATTLE_BIN" offset="11e178">

   00000000

    </Location>
  </Patch>


Sprite ID causes Game Over when crystallized/treasured:

You can put up to 5 different sprites that will cause game over. If you need less, just make the excess ones duplicates and it should work fine.
Special thanks to Glain for basically figuring everything out for me and explaining it.


<Patch name="Sprite ID Causes Gameover when crystal">
  <Location file="BATTLE_BIN" offset="EB048">
FDFF1424
  </Location>
<Variable file="BATTLE_BIN" offset="EB04c" default="01" name="Sprite 1"/>
   <Location file="BATTLE_BIN" offset="EB04D">
000434
CB02060C
21800400
17005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB060" default="02" name="Sprite 2"/>
   <Location file="BATTLE_BIN" offset="EB061">
000434
CB02060C
21800400
12005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB074" default="03" name="Sprite 3"/>
   <Location file="BATTLE_BIN" offset="EB075">
000434
CB02060C
21800400
0D005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB088" default="03" name="Sprite 4"/>
   <Location file="BATTLE_BIN" offset="EB089">
000434
CB02060C
21800400
08005410
00000000
</Location>
<Variable file="BATTLE_BIN" offset="EB09c" default="03" name="Sprite 5"/>
   <Location file="BATTLE_BIN" offset="EB09d">
000434
CB02060C
21800400
03005410
00000000
12070508
21900000
12070508
01001224

</Location>
<Location file="BATTLE_BIN" offset="DAc1c">
12480508
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

</Location>

</Patch>


Sprite ID cannot be dismissed:


<Patch name="Unit Dismissal Hack">
<Description>
        You can have up to 12 units that are not dismissable. Enter their Sprite ID and it will be so. Default: 01, 02, 03.
    </Description>


    <Location file="WORLD_WORLD_BIN" offset="B9918">
7B480508
00000000


</Location>
<Location file="WORLD_WORLD_BIN" offset="5d454">
00000134
00000434
1580043C
21202400
24228890
00000000
05004810
0C00292C
F9FF2015
01002124
49820408
00000000
4A820408
00000234



</Location>
<Variable file="WORLD_WORLD_BIN" offset="5d48c" default="01" name="Unit 1"/>
<Variable file="WORLD_WORLD_BIN" offset="5d48d" default="02" name="Unit 2"/>
<Variable file="WORLD_WORLD_BIN" offset="5d48e" default="03" name="Unit 3"/>
<Variable file="WORLD_WORLD_BIN" offset="5d48f" default="00" name="Unit 4"/>
<Variable file="WORLD_WORLD_BIN" offset="5d490" default="00" name="Unit 5"/>
<Variable file="WORLD_WORLD_BIN" offset="5d491" default="00" name="Unit 6"/>
<Variable file="WORLD_WORLD_BIN" offset="5d492" default="00" name="Unit 7"/>
<Variable file="WORLD_WORLD_BIN" offset="5d493" default="00" name="Unit 8"/>
<Variable file="WORLD_WORLD_BIN" offset="5d494" default="00" name="Unit 9"/>
<Variable file="WORLD_WORLD_BIN" offset="5d495" default="00" name="Unit 10"/>
<Variable file="WORLD_WORLD_BIN" offset="5d496" default="00" name="Unit 11"/>
<Variable file="WORLD_WORLD_BIN" offset="5d497" default="00" name="Unit 12"/>
</Patch>


Jump Hacks:

This will change the time it takes for a jump to land. The default formula is 50/speed. Right now you can only change the constant and the stat chosen. I'd like to expand it a bit and put it in Raven's spreadsheets.


<Patch name="Jump CT formula hack">
<Description>
        Formula is CONST/STAT. STAT corresponds to offsets in Unit Data.
    </Description>

<Variable file="BATTLE_BIN" offset="115740" default="32" name="CONST"/>
    <Location file="BATTLE_BIN" offset="115741">
  000334
</Location>
<Variable file="BATTLE_BIN" offset="115744" default="38" name="STAT"/>


</Patch>


*This hack breaks the added damage for having a spear atm. I'll fix this later
<Patch name="Jump Formula Hack">
<Variable file="BATTLE_BIN" offset="1247e0" default="64" name="Formula #"/>
</Patch>


Break skills miss if break does not occur

This will keep formula 25 from defaulting to a regular attack if no equipment is present. Good for using break skills as a proc-effect and preventing a double-attack. Cheer to Raven for the idea.


<Patch name="Break skills don't default to weapon strike">
<Description>
     
    </Description>
    <Location file="BATTLE_BIN" offset="122700">
00000000
961d060c
00000000
e1250608
00000000
00000000
00000000

</Location>

</Patch>


Formulas 43, 45, 4F damage divided in half:

This divides all of the health-difference formulas damage by 2, not including self-destruct. Also credit to Raven for the idea.


<Patch name="Formulas 43,45,4f damage cut in half">
<Description>
     
    </Description>
    <Location file="BATTLE_BIN" offset="11fe28">
1980013C
942D228C
902D258C
2A004394
28004494
80000234
2500A2A0
23186400
42180300
0800E003
0400A3A4


</Location>
  <Location file="BATTLE_BIN" offset="11fe78">
1980013C
982D228C
902D258C
2A004394
28004494
80000234
2500A2A0
23186400
42180300
0800E003
0400A3A4


</Location>

</Patch>


Ninja Ball Effect Hack:

This hack is a little strange, but it allows you to change which ability effect is used for the thrown bombs. It uses the Evade and Unkown bytes together as the EFFECT ID. Edit these values in FFTPatcher and apply the ASM. Fingers crossed for no bugs :)     (It's the unknown byte to the right of "Range" in the Items tab)

Ex: to make Fire ball use Choco Ball:
Unknown = 0x01
Evade = 0x3d
Total ability = 0x013d


<Patch name="Thrown Ball Effect Hack">
  <Location file="BATTLE_BIN" offset="146fac">
1980013C
AE382490
0680023C
C0200400
21104400
BB3A4490
001A0400
BD3A4290
25104300
00000000
00000000
00000000
00000000
0800E003
00000000


</Location>
<Location file="BATTLE_BIN" offset="13a5f8">
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
95850608
00000000
</Location>

</Patch>


Item Effect Hack:

Ok, bear with me. The effects ID's are stored in reverse order. Also, instead of ability ID's over 0xff being 0x0100, they have 0x0900. This simply means that there's an 0x0800 flag active for some reason. In order to not break anything you may need to keep that flag. Edit as follows:

X potion is currently 0x0a09, which is really 0x010a (09 turns into 01 and is placed in front)
To change this to 0x0001 (cure), turn the 9 into an 8, and place it in front again: 0x0801

It's a bit strange for the time being, but these will be assimilated into Raven's workbooks where they will be much more intuitive.


<Patch name="Item Effect Hack">
<Location file="BATTLE_BIN" offset="14f6d0">
04090709
0a090d09
10091109
05090609
09090f09
0b090e09
08090c09
</Location>
</Patch>


Short Charge affects Charge Skillset

FFM did this hack originally, but it didn't work for JoT5 for whatever reason. I guess just posting it for fun lol.


<Patch name="Short Charge affects Charge Skillset FIX">
<Location file="BATTLE_BIN" offset="1157e4">
16f20508
</Location>
<Location file="BATTLE_BIN" offset="11AAc8">
37610508
1000A627
</Location>
<Location file="BATTLE_BIN" offset="F14DC">
0680013C
21082200
180D3090
F000A18F
00000000
03002010
00000000
01001026
42801000
B6060608
00000000

</Location>
</Patch>


Weapon Strike Fix

This allows you to keep striking with your equipped weapon on multi-strike/weapon strike abilities. If two weapons are equipped, it will alternate between right hand and left hand weapons.


<Patch name="Weapon strike rewrite">
<Location file="BATTLE_BIN" offset="124274">
1980013C
C4382594
02120500
FF000334
02004314
FF00A230
01000534
02004314
03000334
0200A534
0300A314
01000334
D02C0608
25280000
05006510
0300A52C
0500A010
00000000
BD2C0608
C5382590
BD2C0608
C4382590
C3382290
02000334
1A004300
00000000
00000000
10100000
F5FF4010
00000000
B12C0608
00000000
08008290
00000000
03004010
00000000
D12C0608
D83822A0
01008290
0680013C
21082200
B45C2390
1980013C
09000234
02004314
0A000234
D83820A0
03004310
00000000
C1D00508
02008484
D83825A0
0800E003
00000000

</Location>
<Location file="BATTLE_BIN" offset="10d304">
0D008010
70018228
00004010
C0100400
23104400
40100200
0680013C
21082200
F3FB2290
00000000
24004230
02004014
00000000
21280000
D02C0608
00000000
</Location>

</Patch>


Two hands affects abilities with weapon strike/ranged weapon

This hack doubles WP for any ability using weapon strike/ranged weapon flags. If WP is not in the abilities formula it will have no effect. It also has no effect if the weapon is forced two hands just like vanilla. Brought to you by Limited Testing LLC™.


<Patch name="Two hands affects weapon strike abilities">
<Location file="BATTLE_BIN" offset="124744">
35004014
</Location>
<Location file="BATTLE_BIN" offset="124818">
02003092
1980023C
FF384290
</Location>
<Location file="BATTLE_BIN" offset="124830">
1980013C
942D238C
</Location>
<Location file="BATTLE_BIN" offset="124854">
02392590
09008214
40280500
</Location>
<Location file="BATTLE_BIN" offset="124874">
023925A0
</Location>
<Location file="BATTLE_BIN" offset="1248ac">
023925A0
</Location>
</Patch>


Equip Change only allows weapon switching

Just putting this here for now. I need to add a portion that prevents act from being disabled along with this.


<Patch name="Equip Change only allows Weapon changes">
<Description>
</Description>
<Location file="EVENT_EQUIP_OUT" offset="5580">
02000434
</Location>
</Patch>


Multi Hit Editor v1.2


V1.2
Fixed a problem with doublecast
Fixed a bug that broke all other sprite animations


This has 2 parts. The Multi-Hit editor allows you to designate how many hits each ability will have, if it is a random or set number, and if having two swords will allow 2 hits (attack, break skills, etc.).

The Weapon Effect editor will allow you to give a weapon an effect when used with ATTACK. It mimics an ability, so the designated ability ID must have the effect that you want to set. In other words, this will make a weapon function like a Magic Gun, but adhere to its own weapon formula.

Multi-Target Effect Files

These effect files should allow effects like Wave Fist to display on all targets hit by the ability instead of just a single target. This was done using my effects editor, so there might be some that don't work. Having things like too many particle effects at once, or the camera switching too quickly will cause a crash too. Please post if you find one that doesn't work and I'll fix it up. Just import these via CDMage in the Effect folder. These effects are in the Effects.rar attachment.


E317 - Choco Ball


R/S/M Freedom Hack
This hack allows you to designate which R/S/M adhere to reaction slots, support slots, and movement slots. In FFTPatcher if you click on one of the RSM abilities, you'll notice a textbox called "Ability ID". To use this hack, change those numbers to the following:

Reaction - 1
Support - 2
Movement - 3

From what I could tell this byte had no effect in vanilla. Hopefully it won't break anything.


<Patch name="R/S/M freedom hack">
<Location file="WORLD_WORLD_BIN" offset="0429a8">
8E69010C
0F000534
21304002
21804000
01000334
21200002
00F50408
00000000
848A0408
A5010234
0680013C
5C102224
00008394
00000000
0AF50408
5AFE6324
0000A590
00000000
0200C510
01005226
000080A4
1800412A
F5FF2014
02008424
908A0408
00000000
00008684
00000000
2A28C300
0300A014
2A284600
0200A010
00000000
000080A4
01005226
1800452A
F5FFA014
02008424
</Location>
<Location file="WORLD_WORLD_BIN" offset="05D400">
05004012
0400522E
05004016
FD010234
848A0408
21900000
728A0408
21900000
748A0408
21900000
</Location>
<Location file="WORLD_WORLD_BIN" offset="05D428">
02006018
21286200
7A8A0408
00000000
7D8A0408
00000000
</Location>
<Location file="SCUS_942_21" offset="04db24">
00000000
</Location>
</Patch>
</Patches>


Hamedo Fix and chosen ability hack

This will allow the original attacker to hit after the unit with hamedo equipped hits.


<Patch name="Original attacker hits after hamedo">
<Location file="BATTLE_BIN" offset="1095c">
00000000
</Location>
<Location file="BATTLE_BIN" offset="117114">
00000000
</Location>
</Patch>


This one will let you choose what ability Hamedo performs. You have to input Skillset number and Ability ID. The Ability Id bytes are swapped, so if I want ability 0x01FF, I need to put in 0xFF01.


<Patch name="Hamedo attack/skillset">
<Description>
Ability ID bytes are reversed. For example if I want Stasis Sword (009B)
I would enter 9B00 for Ability ID and 21 for Skillset
    </Description>
<Variable file="BATTLE_BIN" offset="1170b8" default="14" name="Skillset"/>
<Location file="BATTLE_BIN" offset="1170b9">
000534
</Location>
<Variable file="BATTLE_BIN" offset="1170c0" bytes="2" default="FF01" name="Ability ID"/>
<Location file="BATTLE_BIN" offset="1170c2">
0634
</Location>
</Patch>


Chocobo and Unit move independently

This hack will allow both the chocobo and unit riding it a movement per turn. That means you can move from unit to mount, and then move with the mount. Or if you start the turn mounted you can move with the mount and then move off the mount with the unit.

** This hack has bugs, but I can't recreate them. If anybody uses this hack and notices that they can move multiple times, try to get a savestate before the unit moves so I can fix it =)


<Patch name="Chocobo Movement Hack">
<Location file="BATTLE_BIN" offset="D9a88 "><!--functionality jump-->
004B0508
1680013C
</Location>
<Location file="BATTLE_BIN" offset="EBbfc"><!--menu functionality-->
10000000
845F2890
00000000
D2FF0225
0600422C
18004010
C0100400
23104400
80110200
21104300
00090800
23082800
80400100
1680013C
106B2124
21402800
38000891
1580013C
08000015
FC2B28AC
82014290
00000000
1F004230
C0080200
23082200
80090100
21102300
87014290
1680033C
04004010
1680033C
845F638C
A4020508
00000000
B5020508
845F638C
</Location>
<Location file="BATTLE_BIN" offset="E45e8"><!--menu display jump-->
404B0508
00004592
8C5F25AC
</Location>
<Location file="BATTLE_BIN" offset="EBd00"><!--menu display-->
1680013C
845F2390
1980013C
D2FF6224
0600422C
25004010
20F5218C
00000000
C0100100
23104100
80110200
10006130
1980033C
CC086324
21104300
03002014
1680013C
544B0508
DF372124
41382124
09003210
00000000
07002124
13003214
87014290
00000000
10004014
00000000
6b4B0508
00000534
82014190
00000000
1F002130
C0100100
23104100
80110200
21104300
87014290
00000000
03004014
00000000
00000534
00000000
7C2D0508
1680013C
</Location>
<Location file="BATTLE_BIN" offset="11a1c8">
2f000434
</Location>
<Location file="BATTLE_BIN" offset="11a1d8">
31000434
</Location>
<Location file="BATTLE_BIN" offset="11bb64">
704B0508
</Location>
<Location file="BATTLE_BIN" offset="ebdc0"><!--Clear mount movement-->
870120A2
82012292
00000000
80004130
07002010
1F004230
C0080200
23082200
80090100
1980033C
CC086324
21086100
870120A0
DB0A0608
00000000
</Location>
<Location file="BATTLE_BIN" offset="EBE00"><!--Store movement taken-->
80004330
0F006010
01000134
1F004230
1580053C
FC2BA38C
01000134
0A006014
FC2BA1AC
C0080200
23082200
80090100
1980033C
CC086324
21086100
01000234
934B0508
870122A0
870181A0
0300C010
00000000
0F0F0608
01000234
100F0608
00000000
</Location>
<Location file="BATTLE_BIN" offset="11cc30"><!--Store movement taken-->
804B0508
82018290
</Location>
<Location file="BATTLE_BIN" offset="EBE80"><!--End of turn-->
1980013C
CC082124
80008330
0C006010
FF00C330
1F008330
C0200300
23208300
80210400
21202400
87018490
FF00C330
03008014
00000000
570F0608
00000000
03006014
00000000
570F0608
00000000
560F0608
00000000
</Location>
<Location file="BATTLE_BIN" offset="11cd50"><!--End of turn-->
A04B0508
82010492
</Location>
</Patch>


Status removed by hp damage

Makes these status effects behave like sleep and charm in that they're removed when hit by HP damage ability


<Patch name="Status removed on HP damage">
<Location file="BATTLE_BIN" offset="125438">
22006294
</Location>
<Location file="BATTLE_BIN" offset="125444">
220062a4
</Location>
<Location file="BATTLE_BIN" offset="125454">
20006294
</Location>
<Location file="BATTLE_BIN" offset="125460">
200062a4
</Location>

<Variable name="Status 1" file="BATTLE_BIN" default="00" offset="12545c"/>
<Variable name="Status 2" file="BATTLE_BIN" default="10" offset="12545d"/>
<Variable name="Status 3" file="BATTLE_BIN" default="10" offset="125440"/>
<Variable name="Status 4" file="BATTLE_BIN" default="00" offset="125441"/>
<Variable name="Status 5" file="BATTLE_BIN" default="30" offset="125424"/>
</Patch>


Chicken is not applied when brave is low

Removes the application of chicken status when brave is low; useful if replacing chicken with a different status


<Patch name="Chicken status not set when brave low">
<Location file="BATTLE_BIN" offset="1253dc">
00000000
</Location>
</Patch>


Equip change uses Move instead of Act


<Patch name="Equip Change Uses Move instead of Act">
<Location file="BATTLE_BIN" offset="E1C0">
40490508
05000192
</Location>
<Location file="BATTLE_BIN" offset="EB500">
03000534
05002514
00000000
F30E060C
00000000
72D40108
00000000
EA0E060C
00000000
72D40108
00000000
</Location>
<Location file="BATTLE_BIN" offset="11a6fc">
50490508
FF00C230
</Location>
<Location file="BATTLE_BIN" offset="11a5b4">
21882000
</Location>
<Location file="BATTLE_BIN" offset="EB540">
0C001034
06005014
01000234
530A3192
00000000
02002012
00000000
25100000
C1050608
00000000
</Location>
        </Patch>


Disable unit leaving because of brave/faith


<Patch name="Disable Br/Fa leaving/warning">
<Location file="EVENT_REQUIRE_OUT" offset="50f4">
A0000010
00000000
</Location>
<Location file="EVENT_REQUIRE_OUT" offset="5488">
A0000010
00000000
</Location>
</Patch>


Mime Redesign v2.0

All Mimes start with 0 abilities in their mimic skillset. Whenever an ability flagged "mimicable" is used, it gets put into their skillset. In this manner they learn abilities over the course of the battle. Original Mimic functionality is deactivated.

Caveats/to be fixed:
-Max number of 16 abilities
-Item, charge, jump, throw, etc. cannot be mimic'd yet
-Katana abilities are usable regardless of inventory (I think). Katanas may not break
-Additional miscellaneous bugs that are bound to exist

<Patch name ="Choto's Mime Redesign v2.0 - Mime learns abilities used in battle">
<Description>
All Mimes in battle start with 0 abilities learned. When an ability set "mimicable" in FFTP is used, it is added to the

mimic skillset for all units.
Max number of skills is currently hardcoded to 16 regardless of variable setting.
</Description>
<Location file="BATTLE_BIN" offset="11a4a8"> <!-- Allows mimic to show up as a skillset -->
00000000
</Location>
<Location file="BATTLE_BIN" offset="11a8ec"> <!-- Set all mimic abilities learned -->
FBFF2225
13000334
80470508
00000000
</Location>
<Location file="BATTLE_BIN" offset="EAE00"> <!-- Set all mimic abilities learned -->
07004310
1300422C
03004010
00000000
40060608
00000000
43060608
00000000
51060608
00000000
</Location>
<Location file="SCUS_942_21" offset="4ad7c"> <!-- load learned abilities -->
90470508
18000334
</Location>
<Location file="BATTLE_BIN" offset="EAE40"> <!-- load learned abilities -->
08006414
00000000
1580033C
00206324
21186500
21186500
00006294
89690108
00000334
0680033C
61690108
944A6324
</Location>
<Location file="BATTLE_BIN" offset="5ec"><!--Mimic behaves as default skillset-->
d8510780
</Location>
<Location file="BATTLE_BIN" offset="128030"><!--Store learned ability in mimic skillset-->
A4470508
</Location>
<Location file="BATTLE_BIN" offset="EAE90"><!--Store learned ability in mimic skillset-->
1980013C
FCF5228C
00000000
1F004014
A8382124
00002394
0680013C
1B006010
C0100300
23104300
40100200
F0FB2124
21204100
05008290
1580013C
10004230
12004014
FC1F2290
00000000
2000462C
0E00C010
00000634
21282600
0020A494
00000000
09006410
2000C42C
FAFF8014
0200C624
00000000
40300200
2120C100
02004224
FC1F22A0
002083A4
0800E003
00000000
</Location>
<Location file="BATTLE_BIN" offset="eAFFC"><!--Store learned ability in mimic skillset-->
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
</Location>
<Location file="BATTLE_BIN" offset="00116BD8"><!--Mimic functionality-->
FFFF0234
</Location>
<Location file="BATTLE_BIN" offset="113980"><!--Item Throw range-->
ffff0334
</Location>
<Location file="BATTLE_BIN" offset="116b50"><!-- MP Usage-->
00000000
</Location>
<Location file="BATTLE_BIN" offset="127f4c"><!--Ability data setting-->
00000000
</Location>
<Location file="BATTLE_BIN" offset="11bf64"><!--Mimic Ability storing-->
06004014
</Location>
<Location file="BATTLE_BIN" offset="DA84c"><!--Spell Quote-->
00000000
</Location>
</Patch>


Choto

It will be, but for now only 1 hack till i hack more hacks.

Celdia

QuoteMighty Sword Hack


Just going on record that I love this idea. A great first contribution to the ASM hacks around here, Choto.

Choto

FDC pointed out an error in the Mighty Sword hack that broke the AI usage of the abilities. The OP should now have the fixed version. My bad!

Choto


Cherrie

That Zodiac compatibility hack is exactly what I was looking for. I'll try this out after I get some sleep.

Choto

glad to be of service :) I should mention that all i did was prevent formulas from calling the routine, so if you use any formula hacks that DO call the routine, it will still calculate zodiac compatibility. Down the road i'll have to do it the correct way.

Pride

If you're looking to make the game skip over the compat section, couldn't you just start of with, at the start of the compat routine, a jump and return?

jr r31
nop
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Glain

Probably the reason why it's freezing is because all of your offsets past 0x122018 are off by 0x1000.

But, like Pride said, all you really need for this hack is to make the zodiac compat routine do nothing, instead of removing all the calls to it... which can be accomplished with a simple [jr ra] followed by [nop] at the start of the routine.
  • Modding version: Other/Unknown

Choto

ah thank you sirs. I didn't do it that way because i didn't know if it would mess something else up register-wise, and i didnt' have time to really look into it. I'll give it a shot when i get a chance though. Thanks!

Choto


Glain

Ack, what's up with that offset? That seems to be in the middle of the Gained JP Up section. Shouldn't it be 11D964?

You can make a routine immediately return. You don't have to put a nop before it. (You do need the one after it in the branch delay slot)
  • Modding version: Other/Unknown

Choto

Ack indeed... i thought i changed that lol. Thanks :P. Ya I wasn't sure just wanted to play on the safe side with the pre-emptive nop.

This hack is dedicated to cherrie, for sharing my desire to nuke the zodiac compatibility system. ^_^



FFMaster

As a small suggestion, instead of XX000534, make it load X instead, which is unused, and hence you can change destroy% for each skill separately.

The formula will end up as Dmg_[(WP+Y)*PA] or Dmg_[(WP+Y)*PA/2] X% chance to break equipment, depending on whether you remove the bolded line or not.
  • Modding version: Other/Unknown
☢ CAUTION CAUTION ☢ CAUTION CAUTION ☢

Choto

I see what you mean, thanks! I'll put this on the big pile of crap to do... eventually i'll throw it in there long as I have the space.

Choto

updated with a fix for Xif's Weapon Innate Hack. It wasn't adding RH shield evade or LH weapon evade... i think.

Updated with the Game Over Hack

Pride

QuoteSprite ID causes Game Over when crystallized/treasured


Amazing!!
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Glain

August 16, 2012, 08:44:41 am #19 Last Edit: August 16, 2012, 11:52:21 am by Glain
Just an idea so you don't have to keep repeating code if you need to check against more sprite sets...

You could store a list (array) of sprites somewhere in the kanji table, and end it with some value that indicates the end of the list (say 00). Then you could write code to just loop through all the sprite set IDs in the list. Something like this (If you don't need this in routine format, you could eliminate the return address tomfoolery):


      addiu   sp,sp,-20
      sw      ra,4(sp)
      sw      s0,8(sp)                  # Counter for loop
      sw      s1,12(sp)                # Result (did we find any crystals/chests?)
      sw      s2,16(sp)                # Base pointer for array of sprite sets to check

      li      s0,0                          # Counter starts at 0
      la      s2,array_pointer         # Load in base pointer for array
      lbu     a0,0(s2)                  # Get first sprite set
      li      s1,0                         # Result starts at 0
     
loop_start:
      beq     a0,zero,loop_end    # Exit loop if sprite set is 0
      nop
     
      jal     0x180b2c               # Call sprite set lookup
      nop
     
      xori    t0,v0,-3               # t0 = 0 if result = -3, non-zero otherwise
      sltiu   t0,t0,1                 # Flip t0 (0 becomes 1, non-zero becomes 0)
      addu    s1,s1,t0             # Add t0 to result
     
      addu    t1,s2,s0              # Add counter (offset) to base pointer for next sprite set
      lbu     a0,0(t1)                # Load in the next sprite set
         
      j       loop_start           
      addiu   s0,s0,1               # Increment counter and go back to loop start
     
loop_end:
      lw      ra,4(sp)
      lw      s0,8(sp)
      lw      s1,12(sp)
      lw      s2,16(sp)
      addiu   sp,sp,20
      jr      ra
      move    v0,s1                 # Return result (value in s1)
  • Modding version: Other/Unknown