Final Fantasy Hacktics

Modding => PSX FFT Hacking => Topic started by: Emmy on January 03, 2016, 02:11:06 pm

Title: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on January 03, 2016, 02:11:06 pm
Sorry, no idea how my thread disappeared.  :'(  But here's the stuff used in Monster Tactics that was made by me or not documented on the site anywhere else, and hopefully better organized than it was before.  Any questions on how to use anything, feel free to ask. :)

Reactions:


Multi-Reaction Deluxe (changes several reactions to cast an indexed ability on trigger):

  <Patch name="Multi-Reaction Deluxe">
    <Description>Changes several reaction abilities.</Description>
    <Location file="SCUS_942_21" offset="4F3D0">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3D1">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3D2">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3E1">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3E5">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3E0">
      2d
    </Location>
    <Location file="SCUS_942_21" offset="4F3ED">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3EE">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="1173F4">
9C470508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EAE70">
00000434
1580063C
40100400
2130C200
C01EC594
1980023C
9C2D4294
00000000
05004514
01008424
D01EC694
0B000534
F7F80508
21202002
0800852C
F1FFA014
1980023C
9C2D4284
00F90508
0680013C
    </Location>
    <Location file="BATTLE_BIN" offset="EAEC0">
B701BB01
B601A601
A701a201
A801C401
    </Location>
    <Location file="BATTLE_BIN" offset="EAED0">
6D016E01
6A016901
68014300
4D014E01
    </Location>
  </Patch>


Multi-reaction = Damage Trigger:


  <Patch name="Multi-reaction = damage trigger">
    <Description>Gives multiple reactions a damage trigger, for the purpose of rewriting their vanilla
effects to do something else.</Description>
    <Location file="BATTLE_BIN" offset="125c64">
DC470508     
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eaf70">
1980043C
982D848C
00000000
8E008390
00000000
04006230
03004010
00000000
A233060C
C3010434
02006230
03004010
00000000
A233060C
C4010434
8D008390
00000000
04006230
03004010
00000000
A233060C
BB010434
1C330608
00000000
    </Location>
  </Patch>

This gives a damage trigger to slots: 0x01b1, 0x01c4, 0x01c3.  0x01c3 is currently bugged though. :( 


Move Arrow Guard/Blade Grasp to support slots:

  <Patch name="Moves Arrow Guard/Blade Grasp to support abilities">
    <Description>Arrow Guard and Blade grasp are in equip shield and equip armor slots.</Description>
    <Location file="BATTLE_BIN" offset="125ABC">
8F004390
00000000
80006230
05004010
40006230
    </Location>
    <Location file="BATTLE_BIN" offset="1260c8">
00000000
00000000
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="126198">
00000000
00000000
00000000
00000000
    </Location>
  </Patch>


Moves Finger Guard to support slot:

  <Patch name="Moves Finger Guard to support abilities">
    <Description>Finger Guard support in Equip Sword slot instead of reactions.</Description>
    <Location file="BATTLE_BIN" offset="121324">
8F00A290
00000000
20004230
    </Location>
    <Location file="BATTLE_BIN" offset="121384">
00000000
00000000
00000000
00000000
    </Location>
  </Patch>


Disables Catch's slot:

  <Patch name="Disables Catch">
    <Description>Useful if you are replacing Catch with something else.</Description>
    <Location file="BATTLE_BIN" offset="12145c">
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="124f10">
00000000
00000000
00000000
00000000
00000000
    </Location>
  </Patch>


Moves Abandon to Support:


  <Patch name="Moves Abandon to support abilities">
    <Description>Abandon support in Equip Katana slot instead of reactions.</Description>
    <Location file="BATTLE_BIN" offset="11E3A8">
8F004290
00000000
10004230
    </Location>
  </Patch>


Meatbone Slash mimics range and animation of other ability:

  <Patch name="MBS mimics range and animation of other attack">
    <Description>Keeps its original effect (unevadable counter in amount of max hp), but uses several
properties of attack indexed here.</Description>
    <Location file="BATTLE_BIN" offset="1172d4">
      33000534
      0A010634
    </Location>
  </Patch>


WG Hardcoding removal:


  <Patch name="WG hardcoding removal">
    <Description>Removes hard coding on Weapon Guard?</Description>
    <Location file="BATTLE_BIN" offset="11dfac">
00000000
00000000
00000000
00000000
    </Location>
  </Patch>


Rough Skin, PA Save, MA Save, Speed Save, Regenerator, Static, Decay:


  <Patch name="Using the screwed up slots">
    <Description>Moves PA Save, MA Save, Speed Save, Regenerator to Weapon Guard, Finger Guard,

Abandon, Catch slots respectively.</Description>
    <Location file="SCUS_942_21" offset="4d140">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9b90">
E8FFBD27
1000BFAF
1980073C
982DE78C
00000000
9001E284
00000000
6F004010
00000000
9300E290
00000000
10004230
0B004010
00000000
3600E290
00000000
80100200
1980053C
8C2DA58C
01000334
0000A3A0
0400A2A0
80000334
2500A3A0
2120E000
5A32060C
00000000
41004014
00000000
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
40004230
07004010
00000000
01000334
8C01E3A0
81000334
B101E3A0
81000334
A001E3A0
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
20004230
07004010
00000000
01000334
8C01E3A0
81000334
B101E3A0
81000334
A101E3A0
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
10004230
07004010
00000000
01000334
8C01E3A0
81000334
B101E3A0
81000334
9E01E3A0
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
08004230
07004010
00000000
01000334
8C01E3A0
88000334
B101E3A0
40000334
AA01E3A0
1980053C
8C2DA58C
9400E490
00000000
02008230
09004010
00000000
01000334
0000A3A0
08000334
2500A3A0
04000334
1E00A3A0
04000334
1F00A3A0
01008230
09004010
00000000
01000334
0000A3A0
08000334
2500A3A0
10000334
1B00A3A0
40000334
1F00A3A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12497c">
E442050C
00000000
    </Location>
  </Patch>

Uses up a bunch of slots that can't be used in any other way.


Desperation (Cancel Cursed or inflict positive status in critical):


  <Patch name="MP Restore change to cancel/inflict statuses">
    <Description>Changes MP Restore to Cancel Cursed (if unit is inflicted with cursed), and if unit is not inflicted with Cursed, will inflict on it Float, Transparent, Reraise, Regen, Protect, Shell, Haste, Mist.</Description>
    <Location file="BATTLE_BIN" offset="1240d8">
21200000
1980033C
902D638C
02000234
210062A0
70000234
1D0062A0
79000234
1C2C0608
1E0062A0
    </Location>
  </Patch>


CT Save:


<Patch name="Brave up = CT Save (+20 CT, Countergrasp trigger)">
    <Description>A variation of Pokeytax's boost XX by YY</Description>
    <Location file="BATTLE_BIN" offset="124090">
      94000234
      862C0608
      130062A0
    </Location>
  </Patch>


Arcane Quickening (MP Trigger = Quick):


<Patch name="Faith up = Arcane Quickening">
    <Description>Casts quick on reaction</Description>
    <Location file="BATTLE_BIN" offset="12409c">
      1980033C
      902D638C
      FF000234
      862C0608
      130062A0
    </Location>
  </Patch>


Fixed Override:


  <Patch name="Fixed override problem - Allows better stacking of reactions">
    <Description>Can use additional reactions in entd.  Innate reactions in entd no longer override reactions added in entd.  Originally made by FDC, I fixed typo.</Description>
    <Location file="SCUS_942_21" offset="4C050">
      00000000
    </Location>
  </Patch>

Originally made by FDC, but I fixed the typo in the original hack.  Placed here so it doesn't get buried.




Support/Movement abilities:


Flee:


  <Patch name="Silent Walk becomes Flee - FIXED for branching/load issue">
    <Description>Add 4 move when unit is in critical. Originally written by FFMaster FIXED thanks to Raijinili!!</Description>
    <Location file="BATTLE_BIN" offset="10D860">
      ED600508
    </Location>
    <Location file="BATTLE_BIN" offset="F13B4">
      95002292
      00000000
      02004230
      07000210
      3A003092
      5A002292
      00000000
      01004230
      02000210
      00000000
      04001026
      1AD20508
      00000000
    </Location>
  </Patch>

Originally written by FFMaster, Fixed by Raijinili.  Placed here so it doesn't get buried. :)


Double Proc rate:


<Patch name="Weapon Proc Rate/Blank 01E1 = double proc rate">
<Location file="BATTLE_BIN" offset="1206A4">
64000434
8F760508
1980023C
</Location>
<Location file="BATTLE_BIN" offset="F6A3C">
942D428C
00000000
92004290
00000000
10004230
03004010
32000434
9A760508
00000000
64000434
1980023C
</Location>
<Location file="BATTLE_BIN" offset="F6A68">
D8384390
00000000
0C006010
13000534
8000652C
0B00A010
00000000
1680053C
2128A300
B4DAA590
1C004390
F0000220
02004314
00000000
40280500
3378010C
00000000
AC1D0608
00000000
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131316
16161632
32166413
13131313
13131364
64646413
13131332
32321313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
</Location>
</Patch>

Combined with the Weapon proc rate code so that both abilities work.


Critical Hit rate x2:


  <Patch name="Blank 01E1 = Critical hit x2">
    <Description>Critical hit on unit with support 01E1 increased from 6.25% to 12.5%</Description>
    <Location file="BATTLE_BIN" offset="11F504">
78770508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F6DE0">
1980023C
942D428C
00000000
92004290
00000000
10004230
05004010
08000534
B63B060C
00000000
43190608
00000000
04000534
B63B060C
00000000
43190608
00000000
    </Location>
  </Patch>


Disables Secret Hunt/Train:


  <Patch name="Disables Secret Hunt/Train slots">
    <Description>Useful if you are writing them over with something else.  Frees space between 0x00187ca0 - 0x00187eb0 (battle bin).</Description>
    <Location file="BATTLE_BIN" offset="124988">
      00000000
    </Location>
  </Patch>


Sicken (all physical attacks apply Poison in addition to regular effects):


  <Patch name="Slot 0x01d6 = Sicken 2.0">
    <Description>All physical attacks by a unit apply Poison (in addition to regular effects). Requires Disable Secret Hunt/train and Monster Skill nullifies M-ev hack.</Description>
    <Location file="BATTLE_BIN" offset="11E364">
      9448050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EB250">
E8FFBD27
1000BFAF
1980023C
942D428C
00000000
91004290
00000000
80004230
08004010
1980033C
902D638C
00000000
1E006290
00000000
80004234
C912060C
1E0062A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


Disables all Equip X Support slots and Female only equips:


  <Patch name="Disables all equip support abilities">
    <Description>Disables the effect of all "Equip X" support abilities/Female only equips.</Description>
    <Location file="SCUS_942_21" offset="4B178">
      00000000
    </Location>
    <Location file="SCUS_942_21" offset="4B2A0">
      00000000
    </Location>
    <Location file="SCUS_942_21" offset="4DF18">
      00000000
    </Location>
  </Patch>


2 Swords Penalty:


  <Patch name="2 Swords Penalty">
    <Description>3/4 damage per hit on units with 2 swords.  Affects all abilities with Formulas 01-
07, no effect on other physical formulas.</Description>
    <Location file="BATTLE_BIN" offset="11EF80">
      30420508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="E98C0">
1980023C
942D428C
00000000
91004290
00000000
01004230
0B004010
00000000
1980023C
CE384284
00000000
40180200
21186200
C2170300
21186200
83180300
1980013C
CE3823A4
1980023C
E2170608
CE384224
    </Location>
  </Patch>


Runic (Blade Grasp for Math Skill Flag):


<Patch name="Equip Crossbow evades skills flagged with the math skill flag">
    <Description>Works as Blade Grasp for the math skill flag.</Description>
    <Location file="BATTLE_BIN" offset="125AB0">
0C480508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EB030">
1980023C
982D428C
00000000
8F004390
00000000
08006230
03004010
00000000
2048050C
00000000
1980023C
982D428C
AF320608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EB080">
1980023C
F5384290
E8FFBD27
40004230
1A004010
1000BFAF
1980043C
982D848C
64000234
24008390
1980053C
902DA58C
23104300
E134060C
2A00A2A4
0F004014
00000000
1980023C
FCF5428C
00000000
0A004014
00000000
1980023C
902D428C
00000000
000040A0
1980033C
902D638C
0B000234
020062A0
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


Move PA Up:


  <Patch name="Move XP Up = Move PA up">
    <Description>Doesn't display as an icon, otherwise works!</Description>
    <Location file="BATTLE_BIN" offset="126e20">
1980033C
902D638C
81000234
BD370608
140062A0
    </Location>
  </Patch>


Move Speed Up:


  <Patch name="Move JP Up = Move Speed up">
    <Description>Doesn't display as an icon, otherwise works!</Description>
    <Location file="BATTLE_BIN" offset="126e88">
1980033C
902D638C
81000234
BD370608
120062A0
    </Location>
  </Patch>


Anger Point (double damage in critical):


  <Patch name="Monster Talk = 2x damage in critical 2.0">
    <Description>Rewritten to work with/depends on 50% extra damage to haste/reraised units.</Description>
    <Location file="BATTLE_BIN" offset="11f14c">
15180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f154">
1980023C
942D428C
1980033C
CE386394
91004490
00000000
10008430
08000410
00000000
5A004490
00000000
01008430
03000410
00000000
40180300
CE3823A4
A8420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f204">
55180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f0a0">
68180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f1a0">
1980023C
942D428C
1980033C
CE386394
91004490
00000000
10008430
08000410
00000000
5A004490
00000000
01008430
03000410
00000000
40180300
CE3823A4
80420508
00000000
    </Location>
  </Patch>


Bane (Extra damage on Haste/Critical units):


  <Patch name="Blank Support after No charge (0x01e4) gives unit 50% bonus damage on units that are Hasted or Reraised">
    <Description>Rewritten to work with/depends on double damage in critical</Description>
    <Location file="BATTLE_BIN" offset="e9a00">
1980013C
942D218C
00000000
92002390
00000000
02006330
18006010
00000000
1980043C
982D848C
00000000
5A008390
00000000
20006330
06006014
00000000
5B008390
00000000
08006330
0B006010
00000000
1980033C
CE386384
00000000
40200300
21208300
C21F0400
21208300
43200400
1980013C
CE3824A4
2B180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9aa0">
1980023C
942D428C
00000000
92004390
00000000
02006330
18006010
00000000
1980043C
982D848C
00000000
5A008390
00000000
20006330
06006014
00000000
5B008390
00000000
08006330
0B006010
00000000
1980033C
CE386384
00000000
40200300
21208300
C21F0400
21208300
43200400
1980023C
CE3844A4
1980023C
942D428C
84180608
00000000
    </Location>
  </Patch>


Bane/Concealment (changes to accuracy routine):


  <Patch name="Equip Gun grants immunity to all evadable attacks, Blank slot after Non charge gives

+25% hit rate to hasted or reraised targets">
    <Description>Equip Gun Sets hit rate = 0% if attack is evadable.  Concentrate/transparent ignores

this.  Rewritten to work with Mold Breaker</Description>
    <Location file="BATTLE_BIN" offset="eb340">
1980033C
942D638C
00000000
92006890
00000000
01000831
08000015
00000000
8F00A890
00000000
01000831
03000011
00000000
1980083C
DC3800A1
92006390
00000000
02006330
0E006010
00000000
5A00A390
00000000
20006330
06006014
00000000
5B00A390
00000000
08006330
04006010
00000000
1980083C
7D000334
DC3803A1
1980083C
DC380891
14160608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11e848">
D0480508
00000000
    </Location>
  </Patch>


Mold Breaker (ignores Reflect, Blade Grasp, Arrow Guard, Runic, Concealment):

  <Patch name="Blank Support 3 = Mold Breaker">
    <Description>Ignores the effect of Reflect, Arrow Guard, Blade Grasp</Description>
    <Location file="BATTLE_BIN" offset="eb430">
1980023C
942D428C
00000000
92004290
00000000
01004230
03004010
00000000
0800E003
00000000
1980023C
F0F5428C
7B320608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1259e4">
0C490508
00000000
    </Location>
  </Patch>


Moody (Random effect at the end of each turn):


  <Patch name="Move in Water (slot 0x01f7) = Moody">
    <Description>Rolls a 1/8 chance at the end of every turn for one of the following effects:  +100 hp (healing), +100 mp (healing), +1 PA, +1 MA, +1 Speed, +5 Brave, +5 Faith, Quick. Tied to Move in Water, and requires Movement Merge to disable its vanilla effect. </Description>
    <Location file="BATTLE_BIN" offset="11be9c">
324E050C
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ec8c8">
E8FFBD27
1000BFAF
F235060C
21209600
3C4E050C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ec8f0">
E8FFBD27
1000BFAF
1980063C
982DC68C
00000000
9500C390
00000000
40006330
30006010
00000000
C388000C
00000000
01000134
8C01C1A0
07004230
05004014
00000000
64000334
9201C3A4
40000334
B101C3A0
05004114
02000534
64000334
9601C3A4
10000334
B101C3A0
04004514
03000534
81000334
9E01C3A0
B101C1A0
04004514
04000534
81000334
A001C3A0
B101C1A0
04004514
05000534
81000334
A101C3A0
B101C1A0
04004514
06000534
85000334
A201C3A0
B101C1A0
04004514
07000534
85000334
A301C3A0
B101C1A0
04004514
00000000
FF000334
9F01C3A0
B101C1A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


Rivalry (increased effect of compatibility):


  <Patch name="Walk on Water = Rivalry">
    <Description>Walk on Water's slot increases effects of compatibility by 25% for attackers.  Has no

effect if defender has ability.</Description>
    <Location file="BATTLE_BIN" offset="11da8c">
FA600508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f13e8">
1980033C
942D638C
00000000
95006390
00000000
80006330
04006010
00000000
42100600
BE120608
21104600
82100600
BE120608
21104600
    </Location>
    <Location file="BATTLE_BIN" offset="11dac4">
08610508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f1420">
1980033C
942D638C
00000000
95006390
00000000
80006330
04006010
00000000
42100600
BE120608
00000000
82100600
BE120608
2310C200
    </Location>
    <Location file="BATTLE_BIN" offset="11dadc">
16610508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f1458">
1980033C
942D638C
00000000
95006390
00000000
80006330
04006010
00000000
82100600
BE120608
00000000
42100600
BE120608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11daa8">
24610508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f1490">
1980033C
942D638C
00000000
95006390
00000000
80006330
05006010
00000000
82100600
40180600
BE120608
23106200
42100600
BE120608
21104600
    </Location>
  </Patch>


Divine Gift (increased healing effects/hit rate on faith based moves):


  <Patch name="M-atk up = Healing * 5/4, accuracy *5/4 on status effects and faith based hit rates">
    <Description>Requires disabling M-atk up.</Description>
    <Location file="BATTLE_BIN" offset="120350">
084B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebc20">
1980013C
942D228C
00000000
90004290
00000000
04004230
09004010
00000000
902D228C
00000000
04004394
00000000
80200300
21208300
82200400
040044A4
982D228C
D71C0608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="122ebc">
404B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebd00">
1980013C
942D228C
00000000
90004290
00000000
04004230
09004010
00000000
902D228C
00000000
04004394
00000000
80200300
21208300
82200400
040044A4
1980043C
902D848C
B2270608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120510">
1A490508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb468">
1980063C
942DC28C
00000000
90004290
00000000
04004230
09004010
00000000
902DC28C
00000000
04004394
00000000
80200300
21208300
82200400
040044A4
902DC68C
461D0608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121808">
00000000
    </Location>
  </Patch>


Sheer Force (unit gains vanilla's Atk up/Matk up effects but no longer procs status):


  <Patch name="Attack Up = Sheer Force">
    <Description>Unit does 1/3 more damage of all types, but loses status procs.  Replaces Attack up, and makes M-atk up a blank slot.</Description>
    <Location file="BATTLE_BIN" offset="120edc">
80480508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb200">
1980033C
942D638C
00000000
90006390
00000000
10006330
03006014
00000000
C91F060C
00000000
B91F0608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f218">
10004230
    </Location>
    <Location file="BATTLE_BIN" offset="123ce4">
      C91F060C
    </Location>
  </Patch>


Movement Merge:


  <Patch name="Movement Merge">
    <Description>Turns Float into Terrain Mastery, disables all other slots.  A little weirdness with

animations such as when 4 deep water is involved.</Description>
    <Location file="BATTLE_BIN" offset="10d534">
      08004230
    </Location>
    <Location file="BATTLE_BIN" offset="10d588">
      08004230
    </Location>
    <Location file="BATTLE_BIN" offset="10d620">
      FF004230
    </Location>
    <Location file="BATTLE_BIN" offset="10d738">
      0C004230
    </Location>
    <Location file="BATTLE_BIN" offset="11a38c">
      08004230
    </Location>
    <Location file="SCUS_942_21" offset="4dcf4">
      05000010
    </Location>
<Location file="SCUS_942_21" offset="4F250">
010101010101010101020202010102020202FF010101010101FF0201FF01010101010101020101010101010101020101010101

010101010101010101010101FF
</Location>
<Location file="SCUS_942_21" offset="4f310">
010101010101010101020202010102020202FF010101010101FF0201FF01010101010101020101010101010101020101010101

010101010101010101010101FF
</Location>
<Location file="SCUS_942_21" offset="4f350">
010101010101010101020202010102020202FF010101010101FF0201FF01010101010101020101010101010101020101010101

010101010101010101010101FF
</Location>
<Location file="SCUS_942_21" offset="4f390">
010101010101010101020202010102020202FF010101010101FF0201FF01010101010101020101010101010101020101010101

010101010101010101010101FF
</Location>
  </Patch>


Cannot Enter Water = Innate Dead, Equip Gun = Innate Transparent:


  <Patch name="Cannot Enter Water = Innate Dead, Equip Gun = Innate Transparent">
    <Description>Requires Disable Equip X/Female Equip Hack.</Description>
    <Location file="SCUS_942_21" offset="4CAE8">
94002292
00000000
10004230
05004010
00000000
4E002292
00000000
20004234
4E0022A2
8F002292
00000000
01004230
05004010
00000000
50002292
00000000
10004234
500022A2
95002292
3C750108
00000000
    </Location>
    <Location file="SCUS_942_21" offset="4DCE8">
BA700108
00000000
    </Location>
  </Patch>


Equip Spear = +5 speed in critical, Equip Axe = double speed while berserked:


  <Patch name="Equip Spear = +5 speed in critical, Equip Axe = double speed while berserked">
    <Description>Speed bonus removed when unit is no longer critical.</Description>
    <Location file="BATTLE_BIN" offset="11C964">
4C420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9930">
38003792
8F002292
00000000
04004230
07000210
00000000
5A002292
00000000
01004230
02000210
00000000
0500F726
8F002292
00000000
02004230
07000210
00000000
5A002292
00000000
08004230
02000210
00000000
40B81700
5B0E0608
00000000
    </Location>
  </Patch>


Move +3 grants undead, pa/ma +2, speed+1, immune frog/petrify:

  <Patch name="Move +3 grants undead, pa/ma +2, speed+1, immune frog/petrify">
    <Description>Requires Disable Equip X/Female Equip Hack.</Description>
    <Location file="SCUS_942_21" offset="4CA7C">
18004010
4E008290
00000000
10004234
4E0082A0
54008290
00000000
80004234
540082A0
55008290
00000000
02004234
550082A0
36008290
00000000
02004224
360082A0
37008290
00000000
02004224
370082A0
38008290
00000000
01004224
380082A0
4E720108
1000C230
    </Location>
    <Location file="SCUS_942_21" offset="4D12C">
9F700108
00000000
    </Location>
  </Patch>


Arcane Focus, String Shot:


  <Patch name="Monster Skill = Arcane Focus, Ignore Height = inflicts Don't Move">
    <Description>Monster skill Nullifies M-ev (works as Concentrate for Magic).  Ignore Height

inflicts Don't Move on any spells that use the M-ev routine.  Works similar to Sicken's

code.</Description>
    <Location file="BATTLE_BIN" offset="11E3B4">
07004010
    </Location>
    <Location file="BATTLE_BIN" offset="11E3D4">
2E15060C
00000000
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eadf0">
1980013C
942D218C
E8FFBD27
1000BFAF
92002290
00000000
80004230
05004010
00000000
1980043C
DE388424
9179010C
04000534
93002290
00000000
02004230
08004010
00000000
1980033C
902D638C
00000000
1F006290
08004234
C912060C
1F0062A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1215c8">
7C47050C
00000000
    </Location>
  </Patch>


Disables Gained XP Up Slot:


  <Patch name="Disables Gained XP Up Slot">
    <Description>Useful if you want to use the slot for something else.</Description>
    <Location file="BATTLE_BIN" offset="1266b8">
      00000234
    </Location>
  </Patch>


Shed Skin (Sheds negative status at the end of each turn):

<Patch name="Gain XP Up = Shed Skin">
    <Description>Sheds negative status at the end of turn, fa/200% accuracy.</Description>
    <Location file="BATTLE_BIN" offset="EBC70">
90000392
00000000
20006230
1C004010
00000000
5C000592
00000000
4000A530
1700A010
00000000
26000592
00000000
1300A010
00000000
3378010C
C8000434
0F004014
00000000
1980033C
902D638C
80000234
200062A0
BE000234
210062A0
8A000234
220062A0
86000234
230062A0
3D000234
240062A0
08000234
250062A0
1980023C
902D428C
14360608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="126844">
1C4B0508
00000000
    </Location>
  </Patch>


Marvel Scale (decreased damage taken when Statused), Guts (increased damage dealt when statused):


<Patch name="Gained JP Up = Marvel Scale, Jump+2 = Guts">
    <Description>A unit with Marvel Scale takes 1/2 damage if it has a negative status, a unit with

Guts does 3/2 damage if negative status.</Description>
    <Location file="SCUS_942_21" offset="4d14c">
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f2cc">
544B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebd50">
1980013C
942D218C
00000000
93002290
00000000
08004230
22004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
09004010
00000000
1980043C
CE388424
00008384
00000000
40100300
21104300
42180200
000083A4
1980013C
982D218C
00000000
90002290
00000000
40004230
20004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
07004010
00000000
1980043C
CE388424
00008384
00000000
42180300
000083A4
90002290
B8180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f31c">
304C0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ec0c0">
1980013C
942D218C
00000000
93002290
00000000
08004230
22004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
09004010
00000000
1980043C
CE388424
00008384
00000000
40100300
21104300
42180200
000083A4
1980013C
982D218C
00000000
90002290
00000000
40004230
20004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
07004010
00000000
1980043C
CE388424
00008384
00000000
42180300
000083A4
90002290
CC180608
00000000
    </Location>
  </Patch>


Moxie (+1 PA/MA if unit gets a kill):

  <Patch name="Secret Hunt = +1 PA/MA if unit gets kill">
    <Description>Requires Disable Secret Hunt/Train Slots</Description>
    <Location file="BATTLE_BIN" offset="124c38">
E84B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebfa0">
1980013C
942D218C
00000000
91002290
00000000
40004230
0A004010
00000000
1980033C
8C2D638C
01000234
000062A0
81000234
140062A0
150062A0
01000234
250062A0
4D2F060C
00000000
102F0608
00000000
    </Location>
  </Patch>


Poison Heal (Heals 1/4 HP if unit is poisoned, instead of taking damage):


  <Patch name="Move +1 = Poison Heal">
    <Description>Heals 1/4 max hp if unit is Poisoned, replaces poison's normal effect</Description>
    <Location file="SCUS_942_21" offset="4d11c">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="126800">
28780508
00000000
    </Location>
<Location file="BATTLE_BIN" offset="f70a0">
93000392
2A000296
80006330
07006010
00000000
1980033C
902D638C
82100200
060062A4
10360608
40000234
02360608
1980033C
    </Location>
  </Patch>


Bulletproof (Arrow Guard blocks Arrows and formula 28):


  <Patch name="Arrow Guard blocks Formula 28">
    <Description>Arrow Guard blocks Formula 28 with br% accuracy.  Stacks with Arrow Guard's vanilla

effect</Description>
    <Location file="BATTLE_BIN" offset="1260e8">
40780508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f7100">
1980023C
E5384290
28000334
05004314
00000000
E8FFBD27
1000BFAF
4D340608
00000000
1980023C
F3384290
3C340608
00000000
    </Location>
  </Patch>


Disables ignore Height, Any Ground, Any Weather:

  <Patch name="Disables Ignore Height, Any Ground, Any weather">
    <Description>Disables these so that another ability can be written in their slots</Description>
    <Location file="BATTLE_BIN" offset="10d774">
      02000010
    </Location>
    <Location file="BATTLE_BIN" offset="10d7b8">
      04000010
    </Location>
    <Location file="BATTLE_BIN" offset="10d828">
      03000010
    </Location>
  </Patch>



Misc:


Remove HP/MP Cap:

  <Patch name="Remove HP Cap">
    <Description>All things cap at 65535 instead of 999 regardless of flags/equipment.</Description>
    <Location file="SCUS_942_21" offset="4c088">
      FFFF0E34
    </Location>
    <Location file="SCUS_942_21" offset="4ce04">
      FFFF1034
    </Location>
  </Patch>


XP Gain Hack:


  <Patch name="XP Gain hack">
    <Description>XP = 30 - Speed*2</Description>
    <Location file="BATTLE_BIN" offset="12663c">
00000000
    </Location>   
    <Location file="BATTLE_BIN" offset="126648">
1E000434
    </Location>
    <Location file="BATTLE_BIN" offset="126660">
00000000
00000000
00000000
00000000
00000000
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12667c">
1980053C
942DA58C
00000000
3800A390
00000000
40180300
23108300
21204000
00140200
0300401C
00000000
01000434
00000000
    </Location>
  </Patch>


Critical applied at 1/4:


  <Patch name="Critical = 1/4">
    <Description>Critical status applies at 1/4 hp instead of 1/5</Description>
    <Location file="BATTLE_BIN" offset="125344">
      00000000
      00000000
      00000000
    </Location>
    <Location file="SCUS_942_21" offset="4DF88">
      00000000
      00000000
      28002396
      00000000
    </Location>
  </Patch>


Undead always rerise, Treasure disabled:

  <Patch name="Undead always rerise, Treasure disabled">
    <Description>First part makes undead always rerise. Second part removes treasure.</Description>
    <Location file="BATTLE_BIN" offset="11C17C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11C1DC">
      00000000
    </Location>
  </Patch>


Locks job wheel for standard monsters:

  <Patch name="Locks job wheel/equip screen for standard monsters">
    <Description>This means if you change the skillsets for any of the monsters from 5E onwards, it

works as a regular monster skillset in that job wheel, change ability, item screen no longer is

accessible. No more glitchy job wheel! :)</Description>
    <Location file="WORLD_WORLD_BIN" offset="40b94">
      A2FF8424
      4200842C
    </Location>
  </Patch>


Silly hardcoding removal (skillset 08):

  <Patch name="Silly hardcoding removal, related to skillset 08">
    <Description>If you use skillset 08 (charge) for anything other than charge, you want to use this

hack.  This eliminates the hardcoding that causes characters to cancel their own spells by

moving.</Description>
    <Location file="BATTLE_BIN" offset="1191a0">
FFFF0234
    </Location>
  </Patch>


Golem checks for Countergrasp flag:

  <Patch name="Golem checks for Countergrasp flag">
    <Description>Golem blocks all attacks with the Countergrasp flag.</Description>
    <Location file="BATTLE_BIN" offset="124cac">
F6384290
00000000
10004230
    </Location>
  </Patch>


Disables Equip at Job Change's code:


  <Patch name="Disables equip at job change">
    <Description>Option 12 (Equip at Job Change) does nothing. Code is disabled, so game behaves as if

permanently off.</Description>
    <Location file="WORLD_WORLD_BIN" offset="448a8">
      32000010
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="3ee28">
      00000000
    </Location>
  </Patch>


Class M-ev:

  <Patch name="Class M-ev">
    <Description>Set magic evade by class! Credit goes to Xifanie for rewriting it to work.

:)</Description>
    <Location file="BATTLE_BIN" offset="11e1f8">
      78480508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb1e0">
      03008290
      1580013C
      21082200
      40212290
      1980013C
      83140608
      E13822A0
    </Location>
    <Location file="BATTLE_BIN" offset="eb140">
00
00000014
19191E14
0F0F1919
28280028
0F3C6319<!-- 0x14/20 -->
19140032
000A0A32
1400190A
1E191E14
141E0A1E<!-- 0x28/40 -->
1E231446
14141423
23192D1E
190F1E0F
3C143763<!-- 0x3c/60 -->
141E0F1E
190F1900
231E1923
23000000
00000000<!-- 0x50/80 -->
00000000
00000000
00000000
281E1E1E
0F0F0F37<!-- 0x64/100 -->
37371919
19141414
1414140F
0F0F0F0F
0F1E1E1E<!-- 0x78/120 -->
3C3C3C1E
1E1E1414
14191919
14141423
23232828<!-- 0x8c/140 -->
28232314
231E1414
0F142323
23230000
000000
    </Location>
  </Patch>


Mist/Rasp:


<Patch name="Wall becomes Mist or MP Regen, Blank status becomes MP Poison">
    <Description>The MP Regen recovers 1/4 of Max MP after each turn. MP Poison depletes 1/4 max mp after each turn.</Description>
    <Location file="BATTLE_BIN" offset="f6ebc">
5B000392
00000000
01006230
08004010
00000000
2E000296
1980033C
902D638C
82100200
0A0062A4
10000234
250062A0
58000392
00000000
80006230
08004010
00000000
2E000296
1980033C
902D638C
82100200
080062A4
20000234
250062A0
5B000392
FD350608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1267EC">
      AF770508
      00000000
    </Location>
  </Patch>

Mist part isn't mine (belongs to Pride), but had to be written together to work.


Oil = Weak Fire, Undead = Absorb Dark, Weak Holy:


  <Patch name="Oil/Undead">
    <Description>Oil = Weak fire, Undead = Absorb Dark/Weak Holy.  Expansion of FFMaster's Oil Hack. 

Credit also goes to Glain for fixing it. :)</Description>
    <Location file="BATTLE_BIN" offset="11ffe0">
3361050C
    </Location>
    <Location file="BATTLE_BIN" offset="1200e0">
3361050C
    </Location>
    <Location file="BATTLE_BIN" offset="f14cc">
1980023C
982D428C
E8FFBD27
5A004590
1000BFAF
8000A130
6D004590
58004690
02002010
9C014194
7F00A530
1000C330
03006010
00000000
0100A534
FD00A530
24188500
02006010
00042334
9C0143A4
5A004190
6E004590
80002130
02002010
00000000
7F00A530
1000C130
02002010
00000000
FC00A530
24188500
05006010
00000000
9013060C
00000000
72610508
00000000
6F004590
02002010
90014194
0300A530
24188500
02006010
43080100
900141A4
5A004190
70004590
80002130
02002010
90014194
8000A534
1000C330
03006010
00000000
FE00A530
0200A534
24188500
05006010
40080100
9C014394
900141A4
00086334
9C0143A4
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


All Monsters can use Attack command:


  <Patch name="Monsters can use attack">
    <Description>Changes all monsters to be able to use Attack command.</Description>
    <Location file="BATTLE_BIN" offset="11A410">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11A424">
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
    </Location>
  </Patch>

Requires finding another way besides FFtactext (such as Xifanie's Tool) if you want to display skillset names instead of blank spots for monster skillsets.



Formulas:


See XML attached for these.  (Sorry, text limit).  All formulas, along with all code required to make formulas work is in the asmformulas.xml


XML's uploaded by request.  These include other people's hacks too (it was written for my convenience in patching for my mod), but helpful to those who don't want to click on spoilers. :) 
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Atma on January 07, 2016, 11:38:38 pm
Nice formula edits!
I like the idea of allowing the healing amount to scale better over the duration of the game.  I want my personal mod to have all classes relevant throughout the game and most of the equipment.
Definitely going to put these to use.  Thank you.   :D
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on January 20, 2016, 02:02:19 am
So, not sure why this isn't working the way i want it to.   


  <Patch name="Double Damage in critical Support">
    <Description>Monster Talk = 2x damage while in critical</Description>
    <Location file="BATTLE_BIN" offset="1216BC">
      E23C050C
    </Location>
    <Location file="BATTLE_BIN" offset="121784">
      E23C050C
    </Location>
    <Location file="BATTLE_BIN" offset="121870">
      E23C050C
    </Location>
    <Location file="BATTLE_BIN" offset="e8388">
      1980063C
      942DC68C
      1980033C
      CE386394
      9100C690
      1980023C
      D0384294
      1000C630
      07000610
      00000000
      5A00C690
      00000000
      0100C630
      02000610
      00000000
      40180300
      18006200
      1980033C
      902D638C
      80000234
      250062A0
      12100000
      0800E003
      040062A4
    </Location>
  </Patch>

Right now it's written on Monster Talk (which has no effect in my mod).  It's supposed to cause the critical unit to do double damage.

Tried another version fixing issue described below, still doesn't work:

  <Patch name="Anger Point">
    <Description>Support = 2x damage while in critical</Description>
    <Location file="BATTLE_BIN" offset="1216BC">
      1442050C
    </Location>
    <Location file="BATTLE_BIN" offset="121784">
      1442050C
    </Location>
    <Location file="BATTLE_BIN" offset="121870">
      1442050C
    </Location>
    <Location file="BATTLE_BIN" offset="e9850">
1980063C
942DC68C
1980033C
CE386394
9100C690
1980023C
D0384294
1000C630
08000610
00000000
1980063C
5A00C690
00000000
0100C630
02000610
00000000
40180300
18006200
1980033C
902D638C
80000234
250062A0
12100000
0800E003
040062A4
    </Location>
  </Patch>



**Edit** Don't use, fixed version is in first post!
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Glain on January 21, 2016, 08:15:19 pm
Without going too deep into analyzing it, what stands out to me is this:


[0x0014f3b0] lbu r6,0x005a(r6)


You've got a problem here because r6 doesn't contain the attacking unit's data pointer anymore, as that was overwritten, so the wrong value is loaded here.  As it happens, I think r6 is going to contain the number 16 (0x10) going into this statement, so you're loading the byte from memory at address 0x6a (0x5a + 0x10) and storing that in r6.

I would guess whatever value is loaded from 0x6a probably fails the subsequent check and so r3 is never doubled.

Edit: 16, not 2.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Argy on January 22, 2016, 10:00:02 am
Hi Emmy,

I hope you dont mind me posting here concerning your FLEE hack. When i tested it, it gave everyone plus four move. I also ran it with conflict checker to see if there were any other issues, but there wasnt. Has anyone else had this problem or it just me?

Cheers Argy
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: LastingDawn on January 22, 2016, 01:27:55 pm
This is extremely impressive work Emmy! This looks to go a decent way towards balancing some more difficult to balance aspects of FFT.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on January 22, 2016, 05:52:55 pm
Did you use this version?  It sounds like an issue I had when I was trying to fix it but didn't understand how branches work.  This version works perfectly for me :)

  <Patch name="Silent Walk becomes Flee - FIXED for branching/load issue">
    <Description>Add 4 move when unit is in critical. FIXED thanks to Raijinili!!</Description>
    <Location file="BATTLE_BIN" offset="10D860">
      ED600508
    </Location>
    <Location file="BATTLE_BIN" offset="F13B4">
      95002292
      00000000
      02004230
      07000210
      3A003092
      5A002292
      00000000
      01004230
      02000210
      00000000
      04001026
      1AD20508
      00000000
    </Location>
  </Patch>


Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Argy on January 23, 2016, 08:16:35 am
Emmy, thank you!! Works an absolute treat!! I have also taken your other reactions as well!! Keep up the great ASM work!! If your  Monster talk double damage one works that would be amazing.   :D
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on February 11, 2016, 01:01:16 am
Updated with a few requests. :)

Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on February 24, 2016, 03:25:38 am
Quote from: Argy on January 23, 2016, 08:16:35 am
Emmy, thank you!! Works an absolute treat!! I have also taken your other reactions as well!! Keep up the great ASM work!! If your  Monster talk double damage one works that would be amazing.   :D


Got it to work finally. :) In the main post now.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Argy on February 26, 2016, 02:37:24 am
Emmy, great work on solving the hack. I am proper pleased, as this gives the community another viable support for their patches. Keep up the great work.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on February 27, 2016, 11:08:59 am
Updated with Multi-Reaction Deluxe! Thank you secondadvent for rewriting my code here so it works. :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: CONMAN on February 27, 2016, 12:39:57 pm
Awesome work Emmy!  Several reactions see little to no use in general- this goes a long way to fixing this!
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on March 02, 2016, 02:05:29 am
Fixed the Blade Grasp/Arrow Guard moved to supports (no longer animates strangely).  Fixed the Ability works as blade grasp for math skill flag (no longer breaks reflect).  :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: DuxorW on March 08, 2016, 08:55:34 am
Very cool hacks, I'll definitely be trying these out :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Argy on March 09, 2016, 10:44:43 am
Emmy, loving that MP Poison and +5 speed action. It's also great how you give guidance in changing it as well. Thank you!!
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: CONMAN on March 10, 2016, 06:14:42 pm
Unfortunately "Ability works as blade grasp for math skill flag" isn't working for me- I may have a conflict somewhere...at the moment battles won't start for me at all.   This is unfortunate- I was going to combo this with "absorb used mp" for a sweet "Runic" skill...

However, the real reason for the post was to ask for a hack that I think would benefit many (especially considering the nature of your mod!).   :oops: I've got to say I feel awkward asking for something- but I feel it could be really awesome!

Perhaps somewhere I missed a hack to add permanent status from a support...  I was going to ask if you could use an used support (or just a crappy one)  to automatically apply dark/evil-looking status....

Why? Because last night I remembered a spreadsheet made by Raven (I think secondadvent is credited) that allows the coloring of status effects to be altered...along with allowing status effects to alter the size of sprites...   Hence Dark/Evil becomes GOLDEN/GIANT.  Yes this status could just be tagged onto jobs themselves- but there is really only so many!

This could be used to make some fun secret/random super-monster battles by simply adding Golden/Giant and the ??? status to regular monsters. 

The one downside is sprites start to get too big and begin to get "pixelly".  The added benefit of giving them a color tint helps smooth them over.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on March 10, 2016, 08:46:30 pm
I originally tried to code Runic (which didn't work), and that's where that hack came from.  If it blocks an attack, you won't absorb the MP from it.  Try tying it to a support or move slot. 

Also you can check if it's writing to the same location as something else with Conflict Checker (which is bundled with the newest fftorgasm). 
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on March 16, 2016, 07:47:53 pm
Quote from: CONMAN on March 10, 2016, 06:14:42 pm
Unfortunately "Ability works as blade grasp for math skill flag" isn't working for me- I may have a conflict somewhere...at the moment battles won't start for me at all.   This is unfortunate- I was going to combo this with "absorb used mp" for a sweet "Runic" skill...

However, the real reason for the post was to ask for a hack that I think would benefit many (especially considering the nature of your mod!).   :oops: I've got to say I feel awkward asking for something- but I feel it could be really awesome!

Perhaps somewhere I missed a hack to add permanent status from a support...  I was going to ask if you could use an used support (or just a crappy one)  to automatically apply dark/evil-looking status....

Why? Because last night I remembered a spreadsheet made by Raven (I think secondadvent is credited) that allows the coloring of status effects to be altered...along with allowing status effects to alter the size of sprites...   Hence Dark/Evil becomes GOLDEN/GIANT.  Yes this status could just be tagged onto jobs themselves- but there is really only so many!

This could be used to make some fun secret/random super-monster battles by simply adding Golden/Giant and the ??? status to regular monsters. 

The one downside is sprites start to get too big and begin to get "pixelly".  The added benefit of giving them a color tint helps smooth them over.


No clue if this'll suit your needs, but it changes the status inflicted by the Float movement ability:


  <Patch name="Changes status inflicted by Float movement">
    <Description>Default = Dark/Evil looking</Description>
    <Location file="SCUS_942_21" offset="4DCFC">
      4F002292
      00000000
      02004234
    </Location>
  </Patch>

Change according to this, first bold number is the group, second bold number is status you want:


   0x004e: Innate Statuses 1
      0x80 -
      0x40 - Crystal
      0x20 - Dead
      0x10 - Undead
      0x08 - Charging
      0x04 - Jump
      0x02 - Defending
      0x01 - Performing
   0x004f: Innate Statuses 2
      0x80 - Petrify
      0x40 - Invite
      0x20 - Darkness
      0x10 - Confusion
      0x08 - Silence
      0x04 - Blood Suck
      0x02 - Cursed
      0x01 - Treasure
   0x0050: Innate Statuses 3
      0x80 - Oil
      0x40 - Float
      0x20 - Reraise
      0x10 - Transparent
      0x08 - Berserk
      0x04 - Chicken
      0x02 - Frog
      0x01 - Critical
   0x0051: Innate Statuses 4
      0x80 - Poison
      0x40 - Regen
      0x20 - Protect
      0x10 - Shell
      0x08 - Haste
      0x04 - Slow
      0x02 - Stop
      0x01 - Wall
   0x0052: Innate Statuses 5
      0x80 - Faith
      0x40 - Innocent
      0x20 - Charm
      0x10 - Sleep
      0x08 - Don't Move
      0x04 - Don't Act
      0x02 - Reflect
      0x01 - Death Sentence




Unfortunately, I'm not too sure if this can be done outside the scus if this doesn't suit your needs.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: CONMAN on March 18, 2016, 11:35:20 am
Cool, thank you Emmy!
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on March 20, 2016, 11:52:31 pm
I got a different version to replace Move +3 if you don't want to mess with the Float movement.  This version requires my "Disable equip x/female equipment" hack because I coded it in that area.  You can move it somewhere else in the scus if you disabled something else.


  <Patch name="Move +3 grants undead">
    <Description>Requires Disable Equip X/Female Equip Hack.</Description>
    <Location file="SCUS_942_21" offset="4CA7C">
4E008290
00000000
10004234
4E0082A0
4E720108
1000C230
    </Location>
    <Location file="SCUS_942_21" offset="4D130">
9F700108
00000000
    </Location>

Bold numbers are the Status effect group, italics is the status you want.  Can give any combination within the same group.  Default here changes Move +3 to inflict undead status instead of granting move +3.

Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on April 04, 2016, 05:59:05 pm
Update - Bugfix on Move +3 grants Undead/buffs hack.  Also added a couple formulas and a few r/s/m grants status. :P
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on April 28, 2016, 02:43:40 am
Updated with a monster m-ev hack. :)  Currently don't know how to do this by class though. :(
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Xifanie on April 28, 2016, 03:48:45 am
It's actually very easy; you have all the variables there.
You can just create a table with a byte for every job, and add the job ID to the start of the table.
You have the address of the unit in r4, so just, for example (assuming you shift your code after the table):
[indent=2]lbu r2, 0x0003(r4) //Load the job ID
lui r1, 0x8015
addu r1, r1, r2
lbu r2, 0x2140(r1)
[/indent]
...and bam, you got your custom M-Ev for that job ID.

Hopefully you can find me in chat when you'll look into this if you need any help.

It would also be nice to display the value properly on the status screen, but I couldn't fault you for giving up/not bothering, since the game kinda forces that display value to be 0.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on April 29, 2016, 02:04:27 am
**EDIT** Works now, hack in first post. :)  Thanks Xifanie. :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Adhelbert on May 17, 2016, 08:23:54 am
Hello Emmy ..

I have a small request and 2 quistions ..

Can you make hack to change Move +3/Jump +3
To add speed +1/+2 without disable equip x/female
Hack ..

1)Does your hack "train inflict differnet status"
Works without critical condition, (i want it to
Inflict status always)

2)your "conditional support bundle" hack
- if i want to replace (Eq. Spear/Axe) with JP/Exp Up
slots, should i disable these abilities first, if yeah,
Can you tell me how.
- i want to remove the conditions, affects statuses
instead of stats.

Sorry if i asked too much & thanks for the
useful hacks :D
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on May 17, 2016, 10:11:57 am
The reason those hacks require disabling equip x/female equip hack is because it needed to be written in Scus.  Scus doesn't have any free space normally - you have to create your own either by writing it over features you're not using or rewriting existing routines to be more efficient. I know some people have talked about how there's some sections of horribly inefficient code there, but rewriting them to be better is something I don't know how to do yet.

I made a new version of the train hack.  It requires all 3 of the hacks mentioned in its description to work though, but it'll always inflict poison if the formula goes through the physical evade routine.  Even if it doesn't deal damage!  So be careful with what you give the ability to.

You'll have to disable jp/xp up slots first unless you want the ability to have both the vanilla and the new effect.  Unless you're using them for something else, I'd suggest just pulling a blank slot for them instead.  Here's a version using 2 blanks instead:


<Patch name="Blank 1 (Between Equip Change and Short Charge) = +5 speed in critical, Blank 2 (between Non-Charge and blank 3) = double speed while berserked">
    <Description>Speed bonus removed when unit is no longer critical.</Description>
    <Location file="BATTLE_BIN" offset="11C964">
4C420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9930">
38003792
92002292
00000000
10004230
07000210
00000000
5A002292
00000000
01004230
02000210
00000000
0500F726
92002292
00000000
02004230
07000210
00000000
5A002292
00000000
08004230
02000210
00000000
40B81700
5B0E0608
00000000
    </Location>
  </Patch>
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on May 18, 2016, 02:00:36 am
Updated with Move XP/JP up changes. :)

Unfortunately do not know how to change the display so that it mirrors reaction abilities or other move X ups (such as by displaying the sword and +1 like PA save does).  However if you check the character screens, these abilities work.  Still is better than the vanilla ones. :P
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Adhelbert on May 19, 2016, 09:55:52 am
Hi  :D

Well thank you very much for the new version.
It's good idea to use useless support abilities :)

1) does "train inflict different status" is the old
Sicken hack, correct me cuz i'm little confused  :?

2) i will ask again since you didn't mentioned it
Can you remove the conditions (such as critical,
Berserk) from "conditional Support bundle" hack

Thanks emmy for your help, i'm looking forward to
Use your "Move XX up" hack  :mrgreen:
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on May 19, 2016, 06:15:18 pm
Are you looking to just make something double speed always? :o  The conditional bit is what makes these interesting in enemy formations.

To make Train = Sicken (always inflict poison on physical attacks) you need these hacks (all of them):



<Patch name="Train inflicts different status">
    <Description>Default: Train inflicts poison instead of invite.</Description>
    <Location file="BATTLE_BIN" offset="120CE8">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120E60">
      80000234
    </Location>
    <Location file="BATTLE_BIN" offset="120E68">
      1E0062A0
    </Location>
    <Location file="BATTLE_BIN" offset="120E88">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120E90">
      00000000
    </Location>
  </Patch>

  <Patch name="Sicken 2.0">
    <Description>All physical attacks by a unit apply Poison (in addition to regular effects). Requires other Sicken hack and Monster Skill nullifies M-ev hack.</Description>
    <Location file="BATTLE_BIN" offset="11E364">
      9448050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EB250">
E8FFBD27
1000BFAF
1980023C
942D428C
00000000
91004290
00000000
80004230
08004010
1980033C
902D638C
00000000
1E006290
00000000
80004234
C912060C
1E0062A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

  <Patch name="Monster Skill = Arcane Focus">
    <Description>Nullifies M-ev.</Description>
    <Location file="BATTLE_BIN" offset="11E3B4">
07004010
    </Location>
    <Location file="BATTLE_BIN" offset="11E3D4">
2E15060C
00000000
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb200">
1980023C
942D428C
E8FFBD27
1000BFAF
92004290
00000000
80004230
05004010
00000000
1980043C
DE388424
9179010C
04000534
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1215c8">
8048050C
00000000
    </Location>
  </Patch>



First one disables vanilla's effect, replacing it with adding poison instead of invite.  Second one runs the poison effect throughout the  physical routine, so that it applies to any physical attacks (even stuff like Earth slash or custom formulas, whether or not they deal damage to the target, as long as it touches the physical routine).  The third one is required because I had to move the Transparent check to make both of those hacks work, and moving transparent happens in the third hack.  Apply all 3 hacks and you get both Sicken and Arcane Focus.  Hope that makes sense.  :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Fosil on May 19, 2016, 09:52:42 pm
I've a question, that I'm sure you can answer, as I'm delving into my own modifications:

When you say we can change the abilities that these ASM's index to--the 1 to 2 digit hex numbers you often bold or italicize--I still do not understand how it is done.

What I mean is, say for instance, we take your Meatbone Slash/Bonecrusher ASM...
<Patch name="MBS mimics range and animation of other attack">
<Description>Keeps its original effect (unevadable counter in amount of max hp), but uses several properties of attack indexed here.</Description>
  <Location file="BATTLE_BIN" offset="1172d4">
   33000534
   0A010634
  </Location>
</Patch>

Change the attack indexed here by changing the italics (a skillset that contains that attack) and bold (the attack you want to mimic).  Default here is Choco Ball.  Meatbone Slash will use the animation, range, radius, etc. of the attack indexed here instead of that of the standard attack.  Useful if you want to make MBS more useful on monsters/bosses, or if you want to prevent double attacking with it.


I understand that the '0A01' is the reverse hex pointing to the Chocoball ability. But as for the '33', I do not understand what "skillset of the attack" this is linking to. Skillset 33 links to 'Battle Skill' which does not contain anything related to Meatbone Slash or Chocoball, right?

Or, for example your 2x outgoing damage while in critical ASM, has 2 bits of hex that reference to one ability, Monster Talk/Beast Tongue, and I do not understand how those two separate hexes link to the one support skill.

Also! After explaining, could you pretty please edit your first-base post with your ASMs to include more bold and/or italic markings to indicate the hex we would change for our own ASM modifications? (Skillset/Ability/Number hex pointers)

Can you please shed some light on these? Again, thank you!
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on May 19, 2016, 10:10:21 pm
I have a boss chocobo which uses skillset 33, and Missile (Choco ball in vanilla) in my mod.  Wasn't sure if monster skillsets would somehow screw that up so thought it was safer to use that as the skillset when I tested it.  You can change that to whatever skillset contains whatever ability you are using.

C/p from Data locations:


   0x008b: Reactions 1
      0x80 - PA Save
      0x40 - MA Save
      0x20 - Speed Save
      0x10 - Sunken State
      0x08 - Caution
      0x04 - Dragon Spirit
      0x02 - Regenerator
      0x01 - Brave UP
   0x008c: Reactions 2
      0x80 - Face (Faith) UP
      0x40 - HP Restore
      0x20 - MP Restore
      0x10 - Critical Quick
      0x08 - Meatbone Slash
      0x04 - Counter Magic
      0x02 - Counter Tackle
      0x01 - Counter Flood
   0x008d: Reactions 3
      0x80 - Absorb Used MP
      0x40 - Gilgame Heart
      0x20 - Reflect
      0x10 - Auto Potion
      0x08 - Counter
      0x04 -
      0x02 - Distribute
      0x01 - MP Switch
   0x008e: Reactions 4
      0x80 - Damage Split
      0x40 - Weapon Guard
      0x20 - Finger Guard
      0x10 - Abandon
      0x08 - Catch
      0x04 - Blade Grasp
      0x02 - Arrow Guard
      0x01 - Hamedo
   0x008f: Support 1
      0x80 - Equip Armor
      0x40 - Equip Shield
      0x20 - Equip Sword
      0x10 - Equip Katana
      0x08 - Equip Crossbow
      0x04 - Equip Spear
      0x02 - Equip Axe
      0x01 - Equip Gun
   0x0090: Support 2
      0x80 - Half of MP
      0x40 - Gained JP-UP
      0x20 - Gained EXP-UP
      0x10 - Attack UP
      0x08 - Defense UP
      0x04 - Magic Attack UP
      0x02 - Magic Defense UP
      0x01 - Concentrate
   0x0091: Support 3
      0x80 - Train
      0x40 - Secret Hunt
      0x20 - Martial Arts
      0x10 - Monster Talk
      0x08 - Throw Item
      0x04 - Maintenance
      0x02 - Two Hands
      0x01 - Two Swords
   0x0092: Support 4
      0x80 - Monster Skill
      0x40 - Defend
      0x20 - Equip Change
      0x10 -
      0x08 - Short Charge
      0x04 - Non-Charge
      0x02 -
      0x01 -
   0x0093: Movement 1
      0x80 - Move +1
      0x40 - Move +2
      0x20 - Move +3
      0x10 - Jump +1
      0x08 - Jump +2
      0x04 - Jump +3
      0x02 - Ignore Height
      0x01 - Move-HP UP
   0x0094: Movement 2
      0x80 - Move-MP UP
      0x40 - Move-Get EXP
      0x20 - Move-Get JP
      0x10 - Cannot Enter Water
      0x08 - Teleport
      0x04 - Teleport 2
      0x02 - Any Weather
      0x01 - Any Ground
   0x0095: Movement 3
      0x80 - Walk on Water
      0x40 - Move in Water
      0x20 - Move on Lava
      0x10 - Move Underwater
      0x08 - Float
      0x04 - Fly
      0x02 - Silent Walk
      0x01 - Move-Find Item


91 is the group where you can find Monster Talk, and 10 is the hex that refers to it specifically.  Which other things are you looking to modify?
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Fosil on May 19, 2016, 11:04:46 pm
Ah hah! Derp. That completely explains it! I should have known, being I'm familiar with the similar tables for the statii. Thank you!

I have no further questions, at the moment!
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Adhelbert on May 20, 2016, 07:16:53 am
Quote from: Emmy on May 19, 2016, 06:15:18 pm
Are you looking to just make something double speed always? :o  The conditional bit is what makes these interesting in enemy formations.


I know it's not fun to make the support always double
the speed and it make the game unbalanced.
I just wanted to use this hack to grants good status,
Or grants immunity to bad status.

Quote from: Emmy on May 19, 2016, 06:15:18 pm
Second one runs the poison effect throughout the  physical routine, so that it applies to any physical attacks (even stuff like Earth slash or custom formulas, whether or not they deal damage to the target, as long as it touches the physical routine).


I thought it only add status if you use "attack" command. :(

However, thanks for clarification  :D
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on July 16, 2016, 04:27:18 pm
Updated with a couple new formulas, and a bugfix for monster talk = 2x damage in critical. :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: nitwit on July 16, 2016, 07:15:13 pm
You're doing god's work, Emmy.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on July 26, 2016, 02:35:52 am
Updated with several things: Shed Skin, Disable Secret Hunt/Train, Disable Gain XP Up, etc.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on August 13, 2016, 01:56:07 pm
So I'm still not 100% sure how the reaction flags work (they're largely undocumented), but these are my findings, tested with my Multi-Reaction Deluxe:

01 - Ability name appears, does nothing else
03 - Ability name appears, does nothing else
05 - Reacts with ability on self.  Seems to check if the caster is within range of the ability before casting ability on self.  Only targets self.  No clue why.
06 - Ignores custom code
07 - Ignores custom code
09 - Reacts with ability on caster
0a - Unrelated effect (heals caster for 0 mp?)
0b - Unrelated effect (heals caster and surrounding targets in the AOE of indexed ability for random amounts of mp?)
0c - Ignores custom code
0d - Reacts with ability on self.  Seems to check if the caster is within range of the ability before casting ability on self.  Only targets self.  No clue why.
0e - Ignores custom code
0f - Ignores custom code
10 - Ability name appears, does nothing else
19 - Reacts with ability on caster
1d - Reacts with ability on self.  Seems to check if the caster is within range of the ability before casting ability on self.  Only targets self.  No clue why.
29 - Reacts with ability on caster
2d - Reacts with ability on self.  Seems to check if the caster is within range of the ability before casting ability on self.  Only targets self.  No clue why.

Since I'm not sure if there's hard coding elsewhere related to these flags, stick with using 29 for reacting with ability on caster.  0d seems to work if you want a reaction that casts an ability on the user.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Ashiel on August 24, 2016, 11:04:03 pm
Quote from: Emmy on January 03, 2016, 02:11:06 pm
This gives monsters the same skillset appearance they had before if given a standard monster skillset, but if you check under Act, they can use the standard attack command in addition to their primary set.  If you force equip a secondary set here, they can also use that too.  Currently monster skillset names appear as blank under the act screen (not sure if there's a fix to that).

After reading this I have a theory, but I've not tested it yet.

If you open FFTacText, select "Skillset Descriptions", towards the bottom you'll find monster skillsets (entry 176+). I'm fairly certain that if you place text for them, their skillset will appear as something other than a blank selectable in the menu. However, another issue seems to be present even if that works. The monster skillset entries only go from Chocobo through Vampire, so unless some of the many blank entries route to other monsters, I'm not sure how to assign them descriptions.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: 3lric on August 25, 2016, 12:14:04 am
Tactext sucks. Use Xif's FFT Text Editor.

http://ffhacktics.com/smf/index.php?topic=11204.0
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Ashiel on August 25, 2016, 03:22:01 am
Quote from: Elric on August 25, 2016, 12:14:04 am
Tactext sucks. Use Xif's FFT Text Editor.

http://ffhacktics.com/smf/index.php?topic=11204.0
I'll try it! Unfortunately, if it won't run in OpenOffice I'm just SOL. :P
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on September 18, 2016, 04:22:25 pm
If you want to use both the 2x damage in critical and the +50% damage vs. haste/reraise units supports, patch both of these instead of what is in the original post:


  <Patch name="Monster Talk = 2x damage in critical 2.0">
    <Description>Rewritten to work with/depends on 50% extra damage to haste/reraised units.</Description>
    <Location file="BATTLE_BIN" offset="11f14c">
15180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f154">
1980023C
942D428C
1980033C
CE386394
91004490
00000000
10008430
08000410
00000000
5A004490
00000000
01008430
03000410
00000000
40180300
CE3823A4
A8420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f204">
55180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f0a0">
68180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f1a0">
1980023C
942D428C
1980033C
CE386394
91004490
00000000
10008430
08000410
00000000
5A004490
00000000
01008430
03000410
00000000
40180300
CE3823A4
80420508
00000000
    </Location>
  </Patch>

  <Patch name="Blank Support after No charge gives unit 50% bonus damage on units that are Hasted or Reraised">
    <Description>Rewritten to work with/depends on double damage in critical</Description>
    <Location file="BATTLE_BIN" offset="e9a00">
1980013C
942D218C
00000000
92002390
00000000
02006330
18006010
00000000
1980043C
982D848C
00000000
5A008390
00000000
20006330
06006014
00000000
5B008390
00000000
08006330
0B006010
00000000
1980033C
CE386384
00000000
40200300
21208300
C21F0400
21208300
43200400
1980013C
CE3824A4
2B180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9aa0">
1980023C
942D428C
00000000
92004390
00000000
02006330
18006010
00000000
1980043C
982D848C
00000000
5A008390
00000000
20006330
06006014
00000000
5B008390
00000000
08006330
0B006010
00000000
1980033C
CE386384
00000000
40200300
21208300
C21F0400
21208300
43200400
1980023C
CE3844A4
1980023C
942D428C
84180608
00000000
    </Location>
  </Patch>


I'm sorry for any inconvenience caused by the 2 hacks being incompatible with each other. :(
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on October 29, 2016, 03:03:07 pm
I'm not sure what the best place for this is (there isn't a Maps board) so I put it on the end of my topic.  I got Military Academy to function in battle. :) This map: http://ffhacktics.com/maps.php?id=24 It isn't perfect, since it's my first time using Ganesha.  Also, I didn't add black walls to some sides so that it doesn't obstruct view too much. 

Weird angles that are screwed up in the original map but fixed here:


(http://i.imgur.com/KJKM3nb.jpg)

(http://i.imgur.com/tt4TUVy.jpg)

(http://i.imgur.com/9cfIxFz.jpg)


Balcony is also now accessible to characters with Teleport or Fly.  Railing is 9.5 high from the ground, balcony is 8 high; so a character needs those abilities.

Chapel of Orbonne fixed too! :)

Some slight visual bugs here and there (such as if a character overlaps the edge, or if you want to nitpick about places where I had to duplicate/replace blocks so that characters stand in the right spots), but otherwise playable. :)

(http://i.imgur.com/fYUAFxz.jpg)


**Edit** Also added the files that turn Dolbodar into a poison swamp map.  No other changes have been made to that map, but it could be useful if you want another poison water map. :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Timbo on October 29, 2016, 10:07:02 pm
These are great! I'll use that Dolbodar map for sure. Once upon a time Xifanie gave me some map files that were supposed to turn on the lights in the Deep Dungeon but they didn't work. You should consider looking into that.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on October 29, 2016, 10:22:21 pm
Just change in Attack.out to second state instead of first state. :)  You need those files too.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on November 13, 2016, 03:17:07 pm
Old thread disappeared on me randomly.  :'(  I'm sorry for any inconvenience caused by it.  Hacks are re-added now though.  They are much better organized now; however are missing the old instructions I had for how to customize them, along with some of the older versions of hacks made before I wrote other ones that require both of them to work for my mod.  If anyone would like my documentation on them because you want to customize what they do, or need help in doing so, feel free to ask in this thread. :)

**Edit**  Xifanie added old post below, if you want the documentation on them.  Thank you so much :) :) :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on November 13, 2016, 03:17:39 pm
Part of my goals for learning ASM is to create better stuff in general for monsters, due to relevance to my mod.  This includes r/s/m and other abilities in general.  I'm still very new at this.

Face up inflicts status:


  <Patch name="Face Up inflicts status effect on self">
    <Description>Changes Face Up to a clone of Regenerator, Sunken State, etc. instead of affecting a stat.  Credit to Choto for helping me find this.</Description>
    <Location file="BATTLE_BIN" offset="1240A4">
      48000234
      1C2C0608
      1E0062A0
    </Location>
  </Patch>

Another mod included an undocumented hack.  Couldn't find the documentation here or elsewhere as to how it was done, or even who initially did the hack, but it changed Face Up to inflict Faith Status instead of its vanilla effect.  Credit here goes to Choto for helping me find this, and whoever did the hack initially.

**Improved** Checks if status infliction is valid! :)

Directions for use: Default here is inflicting Regen and Haste status, however this can be changed by changing the bolded numbers.  First bold number (48 here) is the status effects, and second bold number is the status effect group.  Like other inflict status reaction abilities, you can make it inflict multiple statuses by adding together the numbers under the same group.  Example: Regen + Haste = 48 first bold number, 1E second bold number.  Use these tables:


.0x01a7/0x1b - Attack's Status Infliction 1
...0x80 -
...0x40 - Crystal
...0x20 - Dead
...0x10 - Undead
...0x08 - Charging
...0x04 - Jump
...0x02 - Defending
...0x01 - Performing
.0x01a8/0x1c - Attack's Status Infliction 2
...0x80 - Petrify
...0x40 - Invite
...0x20 - Darkness
...0x10 - Confusion
...0x08 - Silence
...0x04 - Blood Suck
...0x02 - Cursed
...0x01 - Treasure
.0x01a9/0x1d - Attack's Status Infliction 3
...0x80 - Oil
...0x40 - Float
...0x20 - Reraise
...0x10 - Transparent
...0x08 - Berserk
...0x04 - Chicken
...0x02 - Frog
...0x01 - Critical
.0x01aa/0x1e - Attack's Status Infliction 4
...0x80 - Poison
...0x40 - Regen
...0x20 - Protect
...0x10 - Shell
...0x08 - Haste
...0x04 - Slow
...0x02 - Stop
...0x01 - Wall
.0x01ab/0x1f - Attack's Status Infliction 5
...0x80 - Faith
...0x40 - Innocent
...0x20 - Charm
...0x10 - Sleep
...0x08 - Don't Move
...0x04 - Don't Act
...0x02 - Reflect
...0x01 - Death Sentence



Brave up inflicts status:



  <Patch name="Brave Up inflicts status effect on self">
    <Description>Changes Brave Up to a clone of Regenerator, Sunken State, etc. instead of affecting a stat.  Credit to Choto for helping me find this.</Description>
    <Location file="BATTLE_BIN" offset="124090">
      48000234
      1C2C0608
      1E0062A0
    </Location>
  </Patch>

Same directions as the other hack. Default here is Regen/Haste.


MP Restore inflicts several status effects:


  <Patch name="MP Restore change to cancel/inflict statuses">
    <Description>Changes MP Restore to Cancel Cursed (if unit is inflicted with cursed), and if unit is not inflicted with Cursed, will inflict on it Float, Transparent, Reraise, Regen, Protect, Shell, Haste, Mist.</Description>
    <Location file="BATTLE_BIN" offset="1240d8">
21200000
1980033C
902D638C
02000234
210062A0
70000234
1D0062A0
79000234
1C2C0608
1E0062A0
    </Location>
  </Patch>

As description says.  Replaces MP Restore's effect entirely, but still uses critical trigger.  Will remove Cursed (if unit is cursed), and inflict all positive status effects if unit is not cursed.  Due to the way it's coded (will check if all status infliction is valid at the same time as each other, and not in any particular order), will only remove cursed if unit is cursed and cursed is coded to block positive status effects.  Can be changed to lift/inflict any 3 groups of status effects, keeping in mind that a character must be able to react to use this!  Bold numbers are the status group, italics are the status effects within the group.


Face Up functions as Counter Tackle:


  <Patch name="Face up -> Counter Tackle's effect">
    <Description>Changes Face up to react with an ability like Counter Tackle.  Keeps its original trigger (MP cost ability). Credit goes to secondadvent for helping me with this.</Description>
    <Location file="SCUS_942_21" offset="4F3D8">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="1173F4">
      B1470508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EAEC4">
AE010534
04000512
21202002
0B000534
F7F80508
93000634
1980023C
9C2D4284
FFF80508
00000000
    </Location>
  </Patch>

This changes Face Up to function like Counter Tackle (reacting with an ability).  It keeps its original trigger.  Ability referenced is in bold - change this to whatever you want, with the bytes reversed.  For those who want to make this reference something other than Face Up, I'll explain how to the best I can:


The reaction ability flag (the thing in the Scus) for the one that you're using must be changed to 29.  Change the offset of this to 4F3D0 + the hex referenced below.

.0x00 - 06 = A Save
.0x01 - 06 = MA Save
.0x02 - 06 = Speed Save
.0x03 - 06 = Sunken State
.0x04 - 06 = Caution
.0x05 - 06 = Dragon Spirit
.0x06 - 06 = Regenerator
.0x07 - 06 = Brave Up
.0x08 - 06 = Face Up
.0x09 - 06 = HP Restore
.0x0a - 06 = MP Restore
.0x0b - 06 = Critical Quick
.0x0c - 29 = Meatbone Slash
.0x0d - 29 = Counter Magic
.0x0e - 29 = Counter Tackle
.0x0f - 2a = Counter Flood
.0x10 - 29 = Absorb Used MP
.0x11 - 2d = Gilgame Heart
.0x12 - 06 = Reflect
.0x13 - 06 = Auto Potion
.0x14 - 10 = Counter
.0x15 - 0e =
.0x16 - 06 = Distribute
.0x17 - 29 = MP Switch
.0x18 - 10 = Damage Split
.0x19 - 10 = Weapon Guard
.0x1a - 10 = Finger Guard
.0x1b - 0e = Abandon
.0x1c - 19 = Catch
.0x1d - 10 = Blade Grasp
.0x1e - 10 = Arrow Guard
.0x1f - 10 = Hamedo

In the larger block of hex, change the italics hex to reference the ability you want, with the bytes reversed.

There are limitations here though.  Since the original triggers are kept, these abilities can't replace anything that doesn't actually have a trigger (such as Abandon).  Referencing the blank ability requires the "blank reaction given damage trigger" below.  Also, any ability that's already part of this routine can't be replaced either: http://ffhacktics.com/wiki/Main_reaction_routine%3F

What can pretty easily be replaced: Any of those stat up reactions, any reaction that casts a status effect, any critical trigger except Meatbone Slash, Blank ability (if you use the other hack I made), Gilgame Heart.


Multi-Reaction Deluxe:


  <Patch name="Multi-Reaction Deluxe">
    <Description>Changes several reaction abilities. Credit goes to secondadvent for rewriting my code so that it works. :)</Description>
    <Location file="SCUS_942_21" offset="4F3D8">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3DA">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3E0">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3E1">
      29
    </Location>
    <Location file="SCUS_942_21" offset="4F3E5">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="1173F4">
9C470508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EAE70">
00000434
1580063C
40100400
2130C200
C01EC594
1980023C
9C2D4294
00000000
05004514
01008424
D01EC694
0B000534
F7F80508
21202002
0500852C
F1FFA014
1980023C
9C2D4284
00F90508
0680013C
    </Location>
    <Location file="BATTLE_BIN" offset="EAEC0">
AE01B001
B601B701
BB010000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EAED0">
0F002C00
12001600
1A000000
00000000
    </Location>
  </Patch>
This changes multiple reaction abilities (up to 8) to have similar functionality as Counter Tackle (casting an ability indexed here), but to keep their original triggers.  Default settings here:

Face Up -> Holy
MP Restore -> Meteor
Absorb Used MP -> Fire 3
Gilgame Heart -> Bolt 3
Blank -> Ice 3

This one's a bit harder to give instructions for changing in a non-technical way.  The first section of scus changes is the reaction flags.  Any reaction changed by this must have its reaction flag set to 29.  Add/delete/change these as needed. Directions for doing this:


Change the offset of this to 4F3D0 + the hex referenced below.

.0x00 - 06 = A Save
.0x01 - 06 = MA Save
.0x02 - 06 = Speed Save
.0x03 - 06 = Sunken State
.0x04 - 06 = Caution
.0x05 - 06 = Dragon Spirit
.0x06 - 06 = Regenerator
.0x07 - 06 = Brave Up
.0x08 - 06 = Face Up
.0x09 - 06 = HP Restore
.0x0a - 06 = MP Restore
.0x0b - 06 = Critical Quick
.0x0c - 29 = Meatbone Slash
.0x0d - 29 = Counter Magic
.0x0e - 29 = Counter Tackle
.0x0f - 2a = Counter Flood
.0x10 - 29 = Absorb Used MP
.0x11 - 2d = Gilgame Heart
.0x12 - 06 = Reflect
.0x13 - 06 = Auto Potion
.0x14 - 10 = Counter
.0x15 - 0e =
.0x16 - 06 = Distribute
.0x17 - 29 = MP Switch
.0x18 - 10 = Damage Split
.0x19 - 10 = Weapon Guard
.0x1a - 10 = Finger Guard
.0x1b - 0e = Abandon
.0x1c - 19 = Catch
.0x1d - 10 = Blade Grasp
.0x1e - 10 = Arrow Guard
.0x1f - 10 = Hamedo


The bold number is the number of reaction abilities you are using this hack to change.  If you are using more or less than 5, change this number.

The 2 sections at the end are the tables that reference the reaction ability id's and the ability you want them to cast.  The ones at offset EAEC0 are the reaction abilities, the ones at EAED0 are the abilities you want them to cast.  Red -> Red, Blue -> Blue, etc.  Don't forget to reverse the bytes for everything (for example, Holy = 0F00)!  Set everything you're not using to 0000.

This hack has all the same limitations as my other one.  Abilities keep their original triggers, so abilities that don't actually have a trigger (like Abandon or Weapon Guard) can't be used without rewriting other code.  Ability must not be part of the main reaction routine (so stuff that's already there like Counter Magic or Counter are also off limits).  Blank ability requires my other hack (blank reaction = damage trigger).  Also, if you need more than 8 reaction abilities, it is possible to expand/move these tables, but you're on your own with this one. :p 

Documentation of the looping section (from secondadvent):

ori r4,r0,0x0000    //Counter = 0
lui r6,0x8015       //(saved to r6 for use in loading ability as well)
sll r2,r4,0x01      //Counter * 2 (for loading halfwords)
addu r6,r6,r2       //(shift the pointer to the current reaction)
lhu r5,0x1ec0(r6)   //Load Reaction ID from table (update if table moves)
lui r2,0x8019
lhu r2,0x2d9c(r2)   //Load Unit's Reaction ID
nop
bne r2,r5,0x0038    //Branch if Reaction ID doesn't match (to sltiu)
addiu r4,r4,0x0001  //Counter++
lhu r6,0x1ed0(r6)   //r6 = Reaction's Ability ID (update if table moves)
ori r5,r0,0x000b    //r5 = 0xb (Black Magic)
j 0x0017e3dc
addu r4,r17,r0      //r4 = Target's Data Pointer
sltiu r5,r4,0x0005  //(set this to how many reactions you're using)
bne r5,r0,0x0004    //Branch if all Reactions haven't been checked (lui r6)
lui r2,0x8019       //(doesn't hurt to do it here, so why not?)
lh r2,0x2d9c(r2)    //(default done if unit has none of the reactions)
j 0x0017e400
lui r1,0x8006       //(replacing nop to jump one op further)



Passive reactions become supports:



  <Patch name="Moves Arrow Guard/Blade Grasp to support abilities">
    <Description>Arrow Guard and Blade grasp are supports instead of reactions.</Description>
    <Location file="BATTLE_BIN" offset="125ABC">
8F004390
00000000
80006230
05004010
40006230
    </Location>
    <Location file="BATTLE_BIN" offset="1260c8">
00000000
00000000
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="126198">
00000000
00000000
00000000
00000000
    </Location>
  </Patch>

  <Patch name="Moves Finger Guard to support abilities">
    <Description>Finger Guard support in Equip Sword slot instead of reactions.</Description>
    <Location file="BATTLE_BIN" offset="121324">
8F00A290
00000000
20004230
    </Location>
  </Patch>

  <Patch name="Moves Catch to support abilities">
    <Description>Catch support in Equip Sword slot instead of reactions.</Description>
    <Location file="BATTLE_BIN" offset="1213F4">
8F00A290
00000000
20004230
    </Location>
    <Location file="BATTLE_BIN" offset="12145C">
C8010234
00000000
    </Location>
  </Patch>

  <Patch name="Moves Abandon to support abilities">
    <Description>Abandon support in Equip Katana slot instead of reactions.</Description>
    <Location file="BATTLE_BIN" offset="11E3A8">
8F004290
00000000
10004230
    </Location>
    <Location file="BATTLE_BIN" offset="11E3D4">
00000000
00000000
00000000
00000000
    </Location>
  </Patch>

Default for the first hack moves Blade Grasp and Arrow Guard to the Equip Armor and Equip Shield slots respectively.  Default for Finger Guard and Catch moves it to the Equip Sword slot, and Abandon into the Equip Katana slot.  To change this, change the bold to the new group, and italics to the new slots. For Catch, you must also change the underlined bit to reference the new ability ID you want.  This can be changed to any r/s/m slots actually but both have to be in the same group for Blade Grasp/Arrow Guard hack. 


.0x008b: Reactions 1
..0x80 - PA Save
..0x40 - MA Save
..0x20 - Speed Save
..0x10 - Sunken State
..0x08 - Caution
..0x04 - Dragon Spirit
..0x02 - Regenerator
..0x01 - Brave UP
.0x008c: Reactions 2
..0x80 - Face (Faith) UP
..0x40 - HP Restore
..0x20 - MP Restore
..0x10 - Critical Quick
..0x08 - Meatbone Slash
..0x04 - Counter Magic
..0x02 - Counter Tackle
..0x01 - Counter Flood
.0x008d: Reactions 3
..0x80 - Absorb Used MP
..0x40 - Gilgame Heart
..0x20 - Reflect
..0x10 - Auto Potion
..0x08 - Counter
..0x04 -
..0x02 - Distribute
..0x01 - MP Switch
.0x008e: Reactions 4
..0x80 - Damage Split
..0x40 - Weapon Guard
..0x20 - Finger Guard
..0x10 - Abandon
..0x08 - Catch
..0x04 - Blade Grasp
..0x02 - Arrow Guard
..0x01 - Hamedo
.0x008f: Support 1
..0x80 - Equip Armor
..0x40 - Equip Shield
..0x20 - Equip Sword
..0x10 - Equip Katana
..0x08 - Equip Crossbow
..0x04 - Equip Spear
..0x02 - Equip Axe
..0x01 - Equip Gun
.0x0090: Support 2
..0x80 - Half of MP
..0x40 - Gained JP-UP
..0x20 - Gained EXP-UP
..0x10 - Attack UP
..0x08 - Defense UP
..0x04 - Magic Attack UP
..0x02 - Magic Defense UP
..0x01 - Concentrate
.0x0091: Support 3
..0x80 - Train
..0x40 - Secret Hunt
..0x20 - Martial Arts
..0x10 - Monster Talk
..0x08 - Throw Item
..0x04 - Maintenance
..0x02 - Two Hands
..0x01 - Two Swords
.0x0092: Support 4
..0x80 - Monster Skill
..0x40 - Defend
..0x20 - Equip Change
..0x10 -
..0x08 - Short Charge
..0x04 - Non-Charge
..0x02 -
..0x01 -
.0x0093: Movement 1
..0x80 - Move +1
..0x40 - Move +2
..0x20 - Move +3
..0x10 - Jump +1
..0x08 - Jump +2
..0x04 - Jump +3
..0x02 - Ignore Height
..0x01 - Move-HP UP
.0x0094: Movement 2
..0x80 - Move-MP UP
..0x40 - Move-Get EXP
..0x20 - Move-Get JP
..0x10 - Cannot Enter Water
..0x08 - Teleport
..0x04 - Teleport 2
..0x02 - Any Weather
..0x01 - Any Ground
.0x0095: Movement 3
..0x80 - Walk on Water
..0x40 - Move in Water
..0x20 - Move on Lava
..0x10 - Move Underwater
..0x08 - Float
..0x04 - Fly
..0x02 - Silent Walk
..0x01 - Move-Find Item


This can serve a few purposes.  If the original effect of whatever you tied these abilities to isn't disabled, it has both the effect of blade grasp/arrow guard and whatever you're tying it to.  Recategorizing some r/s/m, but also frees up reaction slots for the purpose of creating new reaction abilities; since an entry on the reaction flags table is required to make a reaction ability behave like a reaction.  This effectively disables the slots that Blade grasp/arrow guard were once in (so they now have no effect), to allow for coding a reaction ability in their slots.  An oddity of this hack is that these abilities function like supports - in that someone can guard with blade grasp and react with a different ability now!

**Improved** Abandon no longer animates strangely.


Disables Equip X abilities/Female only equipment:


  <Patch name="Disables all equip support abilities">
    <Description>Disables the effect of all "Equip X" support abilities.</Description>
    <Location file="SCUS_942_21" offset="4B178">
      00000000
    </Location>
    <Location file="SCUS_942_21" offset="4B2A0">
      00000000
    </Location>
    <Location file="SCUS_942_21" offset="4DF18">
      00000000
    </Location>
  </Patch>

This disables all of the Equip X abilities (such as Equip Armor), along with the Female only equipment.  Useful if you want to code these abilities to do something else.


Blank reaction (01bb) given damage trigger:


  <Patch name="Blank reaction = damage trigger">
    <Description>Gives blank reaction a damage trigger.  Puts the blank reaction in the 2nd priority list for stacking purposes.</Description>
    <Location file="BATTLE_BIN" offset="125c64">
DC470508     
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eaf70">
1980043C
982D848C
00000000
8D008390
00000000
04006230
03004010
00000000
A233060C
BB010434
1C330608
00000000
    </Location>
  </Patch>

This gives the blank reaction ability a damage trigger.  It places the ability in the 2nd priority for the purpose of stacking reaction abilities (same as Distribute/MP Switch/Damage Split).  By itself, it doesn't do anything.  However, it's useful if you want to code the blank reaction to do something, such as by using the Face up -> Counter Tackle hack to reference blank ability instead.



Multi-reaction given damage trigger:


  <Patch name="Multi-reaction = damage trigger">
    <Description>Gives multiple reactions a damage trigger, for the purpose of rewriting their vanilla effects to do something else.</Description>
    <Location file="BATTLE_BIN" offset="125c64">
DC470508     
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eaf70">
1980043C
982D848C
00000000
8E008390
00000000
04006230
03004010
00000000
A233060C
C3010434
02006230
03004010
00000000
A233060C
C4010434
8D008390
00000000
04006230
03004010
00000000
A233060C
BB010434
1C330608
00000000
    </Location>
  </Patch>

Since I can't figure out how to get the other 4 of these as functional slots for use with Multi-Reaction deluxe, use this version instead.  This will code a reaction trigger to Blank slot, Arrow Guard, Blade Grasp's slots.

Old code (for documentation purposes/in case someone wants to figure out something with it themselves):

  <Patch name="Multi-reaction = damage trigger">
    <Description>Gives multiple reactions a damage trigger, for the purpose of rewriting their vanilla effects to do something else.</Description>
    <Location file="BATTLE_BIN" offset="125c64">
DC470508     
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eaf70">
1980043C
982D848C
00000000
8E008390
00000000
40006230
03004010
00000000
A233060C
BF010434
20006230
03004010
00000000
A233060C
C0010434
10006230
03004010
00000000
A233060C
C1010434
08006230
03004010
00000000
A233060C
C2010434
04006230
03004010
00000000
A233060C
C3010434
02006230
03004010
00000000
A233060C
C4010434
8D008390
00000000
04006230
03004010
00000000
A233060C
BB010434
1C330608
00000000
    </Location>
  </Patch>

This gives multiple reactions a damage trigger, for the purpose of coding them to do something else (see multi-reaction deluxe hack).  For these reactions to *only* do what you code them to do, disable or move their vanilla effects (as directed in the passive reactions become supports hacks).  The reactions affected here: Weapon Guard, Finger Guard, Abandon, Catch, Blade Grasp, Arrow Guard, Blank Slot (listed in that order).  For the  purpose of stacking reaction abilities, all of these abilities are on list 2 now.

**Don't change the triggers yet - currently has issues...

Options to make any of these use a different trigger exist. To change the triggers, change the colored lines in the code corresponding to the ability you want.

MP Trigger:

00000000
DD33060C

Countergrasp:

10000534
8133060C

Counter Magic:

40000534
8133060C

Counter Flood:

80000534
8133060C




Ability works as Blade Grasp for the Math Skill flag:


**FIXED**

<Patch name="Equip Crossbow evades skills flagged with the math skill flag">
    <Description>Works as Blade Grasp for the math skill flag.</Description>
    <Location file="BATTLE_BIN" offset="125AB0">
0C480508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EB030">
1980023C
982D428C
00000000
8F004390
00000000
08006230
03004010
00000000
2048050C
00000000
1980023C
982D428C
AF320608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EB080">
1980023C
F5384290
E8FFBD27
40004230
1A004010
1000BFAF
1980043C
982D848C
64000234
24008390
1980053C
902DA58C
23104300
E134060C
2A00A2A4
0F004014
00000000
1980023C
FCF5428C
00000000
0A004014
00000000
1980023C
902D428C
00000000
000040A0
1980033C
902D638C
0B000234
020062A0
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

This creates a support that works like Blade Grasp but for the Math Skill flag instead of Countergrasp.  This can be tied to any r/s/m (change the bold numbers, same directions as the hacks that move passive reactions to other slots) or to any ability flags (change italics numbers, directions below).  I just chose Math Skill flag here because it's often not used in any other way in most mods.

First number is the last 2 digits of the Abilities Flag group.  Second number is the flag.

801938f3 - Ability Flags 1
.0x80 -
.0x40 -
.0x20 - Ranged Weapon
.0x10 - Vertical Fixed
.0x08 - Vertical Tolerence
.0x04 - Weapon Strike
.0x02 - Auto
.0x01 - Can't Target Self
801938f4 - Ability Flags 2
.0x80 - Can't Hit Enemies
.0x40 - Can't Hit Allies
.0x20 -
.0x10 - Can't Follow Target
.0x08 - Random Fire
.0x04 - Linear Attack
.0x02 - 3 Directions
.0x01 - Can't Hit Caster
801938f5 - Ability Flags 3
.0x80 - Reflectable
.0x40 - Math Skill
.0x20 - Affected By Silence
.0x10 - Can't Mimic
.0x08 - Normal Attack?
.0x04 - Persevere
.0x02 - Quote
.0x01 - Animate on Miss
801938f6 - Ability Flags 4
.0x80 - Counter Flood
.0x40 - Counter Magic
.0x20 - Direct
.0x10 - Blade Grasp
.0x08 - Requires Sword
.0x04 - Requires Materia Blade
.0x02 - Evadeable
.0x01 - Np Targetting



Meatbone Slash mimics range and animation of other attack:


  <Patch name="MBS mimics range and animation of other attack">
    <Description>Keeps its original effect (unevadable counter in amount of max hp), but uses several properties of attack indexed here.</Description>
    <Location file="BATTLE_BIN" offset="1172d4">
      33000534
      0A010634
    </Location>
  </Patch>

Change the attack indexed here by changing the italics (a skillset that contains that attack) and bold (the attack you want to mimic).  Default here is Choco Ball.  Meatbone Slash will use the animation, range, aoe, etc. of the attack indexed here instead of that of the standard attack.  Useful if you want to make MBS more useful on monsters/bosses.


2 Swords penalty:


  <Patch name="2 Swords Penalty">
    <Description>3/4 damage per hit on units with 2 swords.  Affects all abilities with Formulas 01-07, no effect on other physical formulas.</Description>
    <Location file="BATTLE_BIN" offset="11EF80">
      30420508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="E98C0">
1980023C
942D428C
00000000
91004290
00000000
01004230
0B004010
00000000
1980023C
CE384284
00000000
40180200
21186200
C2170300
21186200
83180300
1980013C
CE3823A4
1980023C
E2170608
CE384224
    </Location>
  </Patch>

This imposes a damage penalty (Reduces damage to 75% per hit) on units with the 2 swords support.  Unfortunately, also affects units who have the support but aren't actually using 2 swords; and also affects any ability using the formulas 01-07 on the same unit.  However, this does not affect other physical formulas like Punch art/Chakra.


Disables Secret Hunt and Train:


  <Patch name="Disables Secret Hunt/Train slots">
    <Description>Useful if you are writing them over with something else.  Frees space between 0x00187ca0 - 0x00187eb0 (battle bin).</Description>
    <Location file="BATTLE_BIN" offset="124988">
      00000000
    </Location>
  </Patch>

This disables the Poach/Train effect entirely.  Has no effect on Secret Hunt's requirement to enter Fur Shop (which another hack for exists), but it allows you to replace these 2 ability slots with something else.  A requirement for other hacks of mine as listed in description.


Train inflicts different status:


  <Patch name="Sicken 2.0">
    <Description>All physical attacks by a unit apply Poison (in addition to regular effects). Requires Disables Secret Hunt/Train hack and Monster Skill nullifies M-ev hack.</Description>
    <Location file="BATTLE_BIN" offset="11E364">
      9448050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="EB250">
E8FFBD27
1000BFAF
1980023C
942D428C
00000000
91004290
00000000
80004230
08004010
1980033C
902D638C
00000000
1E006290
00000000
80004234
C912060C
1E0062A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

This is a significant improvement to the old Sicken hack.  Requires Disable Secret Hunt/Train (to disable the Train slot) Monster Skill nullifies M-ev (to prevent this hack from breaking transparent).  A unit with Train will now poison any unit with any physical attack, in addition to the regular effects of the attack.  It won't apply if the application of the status is invalid (such as if a unit is immune to poison or already dead).

**Improvement** Use Disable Secret Hunt/Train instead of the old hack to disable Train's vanilla effect.  It no longer plays a funny noise if you get a unit in critical with an attack. :)



Remove HP/MP caps:



  <Patch name="Remove HP Cap">
    <Description>All things cap at 65535 instead of 999 regardless of flags/equipment.</Description>
    <Location file="SCUS_942_21" offset="4c088">
      FFFF0E34
    </Location>
    <Location file="SCUS_942_21" offset="4ce04">
      FFFF1034
    </Location>
  </Patch>

This removes the HP/MP cap, capping it at 65535 instead of 999.  If you want more than 65535 you're out of luck. :p  Has no effect on damage caps.  Just means that an enemy with non-??? can be generated with more than 999 hp.  Also removes the HP/MP cap upon equipping an enemy with items that'll bring it over 999, whether it has ??? or not.  The only negative side effect, as far as I can tell, is that an enemy's display will have the last 3 digits if it's >999; for example displaying 024 instead of 1024, and will still display 999 in Unit List if >999 hp/mp if you use Xifanie's unhide ??? hack.



Support ability = 2x damage in critical


Don't use this version, use the other one.  Hack left in this topic for documentation purposes.

  <Patch name="Monster talk = 2x damage while in critical">
    <Description>Support = 2x damage while in critical. Credit to secondadvent for helping me fix this.</Description>
    <Location file="BATTLE_BIN" offset="1216BC">
      1442050C
    </Location>
    <Location file="BATTLE_BIN" offset="121784">
      1442050C
    </Location>
    <Location file="BATTLE_BIN" offset="121870">
      1442050C
    </Location>
    <Location file="BATTLE_BIN" offset="e9850">
1980063C
942DC68C
1980033C
CE386394
9100C490
1980023C
D0384294
10008430
07000410
00000000
5A00C490
00000000
01008430
02000410
00000000
40180300
18006200
1980033C
902D638C
80000234
250062A0
12100000
0800E003
040062A4
    </Location>
  </Patch>

Default here is tied to Monster Talk, which has no effect in my mod.  If you want to change it to a different support slot, change the bold numbers.  This doubles damage done by a character when it's in critical from any source except for formulas that don't use the XA*YA format (such as Self Destruct or Gravi2).


.0x008b: Reactions 1
..0x80 - PA Save
..0x40 - MA Save
..0x20 - Speed Save
..0x10 - Sunken State
..0x08 - Caution
..0x04 - Dragon Spirit
..0x02 - Regenerator
..0x01 - Brave UP
.0x008c: Reactions 2
..0x80 - Face (Faith) UP
..0x40 - HP Restore
..0x20 - MP Restore
..0x10 - Critical Quick
..0x08 - Meatbone Slash
..0x04 - Counter Magic
..0x02 - Counter Tackle
..0x01 - Counter Flood
.0x008d: Reactions 3
..0x80 - Absorb Used MP
..0x40 - Gilgame Heart
..0x20 - Reflect
..0x10 - Auto Potion
..0x08 - Counter
..0x04 -
..0x02 - Distribute
..0x01 - MP Switch
.0x008e: Reactions 4
..0x80 - Damage Split
..0x40 - Weapon Guard
..0x20 - Finger Guard
..0x10 - Abandon
..0x08 - Catch
..0x04 - Blade Grasp
..0x02 - Arrow Guard
..0x01 - Hamedo
.0x008f: Support 1
..0x80 - Equip Armor
..0x40 - Equip Shield
..0x20 - Equip Sword
..0x10 - Equip Katana
..0x08 - Equip Crossbow
..0x04 - Equip Spear
..0x02 - Equip Axe
..0x01 - Equip Gun
.0x0090: Support 2
..0x80 - Half of MP
..0x40 - Gained JP-UP
..0x20 - Gained EXP-UP
..0x10 - Attack UP
..0x08 - Defense UP
..0x04 - Magic Attack UP
..0x02 - Magic Defense UP
..0x01 - Concentrate
.0x0091: Support 3
..0x80 - Train
..0x40 - Secret Hunt
..0x20 - Martial Arts
..0x10 - Monster Talk
..0x08 - Throw Item
..0x04 - Maintenance
..0x02 - Two Hands
..0x01 - Two Swords
.0x0092: Support 4
..0x80 - Monster Skill
..0x40 - Defend
..0x20 - Equip Change
..0x10 -
..0x08 - Short Charge
..0x04 - Non-Charge
..0x02 -
..0x01 -
.0x0093: Movement 1
..0x80 - Move +1
..0x40 - Move +2
..0x20 - Move +3
..0x10 - Jump +1
..0x08 - Jump +2
..0x04 - Jump +3
..0x02 - Ignore Height
..0x01 - Move-HP UP
.0x0094: Movement 2
..0x80 - Move-MP UP
..0x40 - Move-Get EXP
..0x20 - Move-Get JP
..0x10 - Cannot Enter Water
..0x08 - Teleport
..0x04 - Teleport 2
..0x02 - Any Weather
..0x01 - Any Ground
.0x0095: Movement 3
..0x80 - Walk on Water
..0x40 - Move in Water
..0x20 - Move on Lava
..0x10 - Move Underwater
..0x08 - Float
..0x04 - Fly
..0x02 - Silent Walk
..0x01 - Move-Find Item



New version (doesn't break Pride's defense hack):

  <Patch name="Monster Talk = 2x damage in critical 2.0">
    <Description>Use this version instead of my old version.  No longer partially breaks Pride's defense hack.</Description>
    <Location file="BATTLE_BIN" offset="11f14c">
15180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f154">
1980023C
942D428C
1980033C
CE386394
91004490
00000000
10008430
08000410
00000000
5A004490
00000000
01008430
03000410
00000000
40180300
CE3823A4
84180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f204">
55180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f0a0">
68180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f1a0">
1980023C
942D428C
1980033C
CE386394
91004490
00000000
10008430
08000410
00000000
5A004490
00000000
01008430
03000410
00000000
40180300
CE3823A4
2B180608
00000000
    </Location>
  </Patch>




Support = Unit +5 speed while in critical


  <Patch name="Equip Spear = +5 speed in critical">
    <Description>Unit with Equip Spear support acts as +5 speed when critical.  Speed bonus removed when unit is no longer critical.</Description>
    <Location file="BATTLE_BIN" offset="11C964">
4C420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9930">
38003792
8F002292
00000000
04004230
07000210
00000000
5A002292
00000000
01004230
02000210
00000000
0500F726
5B0E0608
00000000
    </Location>
  </Patch>

This is currently tied to Equip Spear, but can be tied to any r/s/m slot.  Change the bold numbers to change the r/s/m slot this refers to.  The speed bonus can also be changed, change the number in italics to be the speed increase you want (in hex).

The speed increase works much like haste/slow statuses - does not actually change the stat so it can't stack indefinitely.  Also, like haste/slow does not affect formulas that use speed like some weapons/throw.


Conditional Support bundle


  <Patch name="Equip Spear = +5 speed in critical, Equip Axe = double speed while berserked">
    <Description>Speed bonus removed when unit is no longer critical.</Description>
    <Location file="BATTLE_BIN" offset="11C964">
4C420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9930">
38003792
8F002292
00000000
04004230
07000210
00000000
5A002292
00000000
01004230
02000210
00000000
0500F726
8F002292
00000000
02004230
07000210
00000000
5A002292
00000000
08004230
02000210
00000000
40B81700
5B0E0608
00000000
    </Location>
  </Patch>

These 2 supports are bundled together because they affect the same area of code.  Again, works like Haste/Slow status in that it goes away when the status effect no longer is active.



Blank status = MP Poison


<Patch name="Wall becomes Mist or MP Regen, Blank status becomes MP Poison">
    <Description>The MP Regen recovers 1/4 of Max MP after each turn. MP Poison depletes 1/4 max mp after each turn.</Description>
    <Location file="BATTLE_BIN" offset="000F6EBC">
5B000392
00000000
01006230
08004010
00000000
2E000296
1980033C
902D638C
82100200
0A0062A4
10000234
250062A0
58000392
00000000
80006230
08004010
00000000
2E000296
1980033C
902D638C
82100200
080062A4
20000234
250062A0
FD350608
5B000392
    </Location>
    <Location file="BATTLE_BIN" offset="001267EC">
      AF770508
      00000000
    </Location>
  </Patch>

This is bundled with Pride's Mist hack, since it has to affect the same area of code to not break things if you're using both.  It is also important to make them cancel each other like Poison/Regen do.  If you check the right boxes in Patcher, the status effect even shows the purple numbers for the MP damage. :)


Gain XP Up = Shed Skin:


100% accuracy version:

<Patch name="Gain XP Up = Shed Skin">
    <Description>100% accuracy, remove negative statuses at the end of a character's turn.</Description>
    <Location file="BATTLE_BIN" offset="EBC70">
90000392
00000000
20006230
0F004010
00000000
1980033C
902D638C
90000234
200062A0
BE000234
210062A0
8A000234
220062A0
86000234
230062A0
3D000234
240062A0
08000234
250062A0
1980023C
902D428C
14360608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="126844">
1C4B0508
00000000
    </Location>
  </Patch>


Faith based RNG roll version:


<Patch name="Gain XP Up = Shed Skin">
    <Description>Sheds negative status at the end of turn, fa/200% accuracy.</Description>
    <Location file="BATTLE_BIN" offset="EBC70">
90000392
00000000
20006230
1C004010
00000000
5C000592
00000000
4000A530
1700A010
00000000
26000592
00000000
1300A010
00000000
3378010C
C8000434
0F004014
00000000
1980033C
902D638C
80000234
200062A0
BE000234
210062A0
8A000234
220062A0
86000234
230062A0
3D000234
240062A0
08000234
250062A0
1980023C
902D428C
14360608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="126844">
1C4B0508
00000000
    </Location>
  </Patch>

This version has accuracy fa/200%, for example a 60 fa unit will shed skin 30% of the time.  To change the divisor, change the italics number to what you want in hex, for example 0x64 = 100.  **EDIT** Now will work properly with innocent (shed skin 0% if target is inflicted with innocent).


This removes negative status effects at the end of every turn.  A character must be able to reach his turn to activate this ability, so it will not have an effect on the following status effects: Petrify, Stop, Sleep; despite currently being referenced in the ability's code.  It will cancel the following: Blank, Undead, Darkness, Confuse, Silence, Blood Suck, Cursed, Oil, Frog, Berserk, Poison, Slow, Charm, Don't Move, Don't Act, Death Sentence.  Ability is applied after character's turn, so for example a character with Don't Act and Poison applied to it will not be able to act and will take Poison damage for his turn, but the status effects will be removed when Wait is pressed or after the character moves. 

If you do not want to bundle this with Gain XP Up's vanilla effect, use the hack that disables Gain XP Up's slot.


Disable Gain XP Up Slot:


  <Patch name="Disables Gained XP Up Slot">
    <Description>Useful if you want to use the slot for something else.</Description>
    <Location file="BATTLE_BIN" offset="1266b8">
      00000234
    </Location>
  </Patch>

As description says.  Disables Gained XP Up's slot so that you can use its slot for something else.


Monsters can use attack:


  <Patch name="Monsters can use attack">
    <Description>Changes all monsters to be able to use Attack command.</Description>
    <Location file="BATTLE_BIN" offset="11A410">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11A424">
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
    </Location>
  </Patch>

This gives monsters the same skillset appearance they had before if given a standard monster skillset, but if you check under Act, they can use the standard attack command in addition to their primary set.  If you force equip a secondary set here, they can also use that too.  Currently monster skillset names appear as blank under the act screen (not sure if there's a fix to that).


Changes status used by Float movement:


  <Patch name="Changes status inflicted by Float movement">
    <Description>Default = Dark/Evil looking</Description>
    <Location file="SCUS_942_21" offset="4DCFC">
      4F002292
      00000000
      02004234
    </Location>
  </Patch>

Change according to this, first bold number is the group, second bold number is status you want:


.0x004e: Innate Statuses 1
..0x80 -
..0x40 - Crystal
..0x20 - Dead
..0x10 - Undead
..0x08 - Charging
..0x04 - Jump
..0x02 - Defending
..0x01 - Performing
.0x004f: Innate Statuses 2
..0x80 - Petrify
..0x40 - Invite
..0x20 - Darkness
..0x10 - Confusion
..0x08 - Silence
..0x04 - Blood Suck
..0x02 - Cursed
..0x01 - Treasure
.0x0050: Innate Statuses 3
..0x80 - Oil
..0x40 - Float
..0x20 - Reraise
..0x10 - Transparent
..0x08 - Berserk
..0x04 - Chicken
..0x02 - Frog
..0x01 - Critical
.0x0051: Innate Statuses 4
..0x80 - Poison
..0x40 - Regen
..0x20 - Protect
..0x10 - Shell
..0x08 - Haste
..0x04 - Slow
..0x02 - Stop
..0x01 - Wall
.0x0052: Innate Statuses 5
..0x80 - Faith
..0x40 - Innocent
..0x20 - Charm
..0x10 - Sleep
..0x08 - Don't Move
..0x04 - Don't Act
..0x02 - Reflect
..0x01 - Death Sentence




XP Hack - Gains per action tied to speed:


  <Patch name="XP Gain hack">
    <Description>XP = 30 - Speed*2 TEST</Description>
    <Location file="BATTLE_BIN" offset="12663c">
00000000
    </Location>   
    <Location file="BATTLE_BIN" offset="126648">
1E000434
    </Location>
    <Location file="BATTLE_BIN" offset="126660">
00000000
00000000
00000000
00000000
00000000
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12667c">
1980053C
942DA58C
00000000
3800A390
00000000
40180300
23108300
21204000
00140200
0300401C
00000000
01000434
00000000
    </Location>
  </Patch>

This changes the XP gained per action to X - (speed*2), min 1.  default X = 30, change bold number to what you want X to be in hex.  No bonus XP for kills, for attacking something at higher level, just a constant number.  Faster characters will gain less xp per action.  While this doesn't fully solve the problem of fast characters leveling up too fast compared to slow ones, it's better than it was in vanilla.  As a side effect, there's also no attacking a lv 1 unit for loads of jp and 1 xp gain.


Move +3 grants Undead status/various buffs:


   <Patch name="Move +3 grants undead, pa/ma/speed +2, immune frog/petrify">
    <Description>Requires Disable Equip X/Female Equip Hack.</Description>
    <Location file="SCUS_942_21" offset="4CA7C">
18004010
4E008290
00000000
10004234
4E0082A0
54008290
00000000
80004234
540082A0
55008290
00000000
02004234
550082A0
36008290
00000000
02004224
360082A0
37008290
00000000
02004224
370082A0
38008290
00000000
02004224
380082A0
4E720108
1000C230
    </Location>
    <Location file="SCUS_942_21" offset="4D12C">
9F700108
00000000
    </Location>
  </Patch>

IMPROVED! No longer breaks Jump +1

As description says, this requires my disable equip x/female equips because it needed to be written in scus and there's normally no free space.  If you're getting rid of something different in scus, feel free to move the code.  Anyway, this is harder to explain all the customization options in a non-technical way.

Documentation:

lbu r2,0x004e(r4)      //Innate statuses 1
nop
ori r2,r2,0x0010        //Innate undead
sb r2,0x004e(r4)
lbu r2,0x0054(r4)      //Status immunities 2
nop
ori r2,r2,0x0080        //Immune Petrify
sb r2,0x0054(r4)
lbu r2,0x0055(r4)      //Status immunities 3
nop
ori r2,r2,0x0002        //Immune Frog
sb r2,0x0055(r4)
lbu r2,0x0036(r4)      //Load PA
nop
addiu r2,r2,0x0002    //+2 PA
sb r2,0x0036(r4)
lbu r2,0x0037(r4)      //Load Ma
nop
addiu r2,r2,0x0002    //+2 Ma
sb r2,0x0037(r4)       
lbu r2,0x0038(r4)      //Load speed
nop
addiu r2,r2,0x0002    //+2 speed
sb r2,0x0038(r4)
j 0x0005c938            //jump to original +move/jump abilities routine
andi r2,r6,0x0010      //Required to make rest of routine to work as normal.


Pretty sure most things can be added here that are part of Unit Data and make sense to change in this manner.  For a short list: stats (pa/ma/speed/move/jump), equippable items, innate statuses, status immunities, absorb/null/half/weak/strengthen elements.


Cannot Enter Water = innate Dead, Equip Gun = Innate Transparent


  <Patch name="Cannot Enter Water = Innate Dead, Equip Gun = Innate Transparent">
    <Description>Requires Disable Equip X/Female Equip Hack.</Description>
    <Location file="SCUS_942_21" offset="4CAE8">
94002292
00000000
10004230
05004010
00000000
4E002292
00000000
20004234
4E0022A2
8F002292
00000000
01004230
05004010
00000000
50002292
00000000
10004234
500022A2
95002292
3C750108
00000000
    </Location>
    <Location file="SCUS_942_21" offset="4DCE8">
BA700108
00000000
    </Location>
  </Patch>

Requires Disable Equip X/Female supports hack.  If you can clear different Scus code, you can move this.  Of course, these status effects and their slots can be changed. :)  Since 2 of these affect the same area of code, they're bundled together.  Main purpose of innate dead on a support or move slot is to open up class slots to be used for something else, and keep the "dead for cutscene" effects.


Equip Gun = Immunity to all evadable attacks:


  <Patch name="Equip Gun grants immunity to all evadable attacks">
    <Description>Sets hit rate = 0% if attack is evadable.  Concentrate/transparent ignores this.</Description>
    <Location file="BATTLE_BIN" offset="f6d80">
8F00A190
00000000
01002130
02002010
1980013C
DC3820A0
1980083C
DC380891
14160608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11e848">
60770508
00000000
    </Location>
  </Patch>

This is as OP as it sounds.  Grants immunity to all attacks which are evadable.  Unevadable attacks work as normal.  Ignores Concentrate/transparent (as in, those abilities don't bypass this calculation).  Useful if you want an OP enemy ability, or want to be nearly invincible...


Blank support 01e4 (under No charge) adds +25% base accuracy to hasted/reraised targets:


  <Patch name="Equip Gun grants immunity to all evadable attacks, Blank slot after Non charge gives +25% hit rate to hasted or reraised targets">
    <Description>Equip Gun Sets hit rate = 0% if attack is evadable.  Concentrate/transparent ignores this.</Description>
    <Location file="BATTLE_BIN" offset="eb340">
8F00A390
00000000
01006330
03006010
00000000
1980033C
DC3860A0
1980033C
942D638C
00000000
92006390
00000000
02006330
0E006010
00000000
5A00A390
00000000
20006330
06006014
00000000
5B00A390
00000000
08006330
04006010
00000000
1980083C
7D000334
DC3803A1
1980083C
DC380891
14160608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11e848">
D0480508
00000000
    </Location>
  </Patch>

Bundled with Concealment (Equip Gun = immunity to evadable attacks) due to affecting the same area of code.  This adds +25% to the pre-evasion values, which different types of evasion stack multiplicatively on.


Blank support 01e4 (under No charge) adds +50% damage to hasted/reraised targets:


  <Patch name="Blank Support after No charge gives unit 50% bonus damage on units that are Hasted or Reraised">
    <Description>Affects damage done by anything boosted by ATK or MATK Up</Description>
    <Location file="BATTLE_BIN" offset="11f054">
80420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f204">
A8420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9a00">
1980013C
942D218C
00000000
92002390
00000000
02006330
18006010
00000000
1980043C
982D848C
00000000
5A008390
00000000
20006330
06006014
00000000
5B008390
00000000
08006330
0B006010
00000000
1980033C
CE386384
00000000
40200300
21208300
C21F0400
21208300
43200400
1980013C
CE3824A4
1980033C
FF386390
17180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9aa0">
1980023C
942D428C
00000000
92004390
00000000
02006330
18006010
00000000
1980043C
982D848C
00000000
5A008390
00000000
20006330
06006014
00000000
5B008390
00000000
08006330
0B006010
00000000
1980033C
CE386384
00000000
40200300
21208300
C21F0400
21208300
43200400
1980023C
CE3844A4
1980023C
942D428C
17180608
00000000
    </Location>
  </Patch>

Affects anything boosted by ATK or MATK Up, has no effect on moves such as Self Destruct or Gravi2.  Damage bonus works similarly to Martial Arts, only affects both physical and magical attacks and only affects hasted or reraised units.  Stacks with all other abilities, item attributes, etc. that affect damage output, such as Atk/Matk up, Martial Arts, Pride's Defense hack, any of my new abilities that increase/decrease damage.  The purpose of this (and previous) hacks is to create an anti-buff ability that doesn't cancel the buffs.


Mold Breaker (Ignores effects of several abilities):


   <Patch name="Blank Support 3 = Mold Breaker">
    <Description>Ignores the effect of Reflect, Arrow Guard, Blade Grasp</Description>
    <Location file="BATTLE_BIN" offset="eb430">
1980023C
942D428C
00000000
92004290
00000000
01004230
03004010
00000000
0800E003
00000000
1980023C
F0F5428C
7B320608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1259e4">
0C490508
00000000
    </Location>
  </Patch>

Blank Support 3 (0x01E5, 2nd ability below Non Charge) will allow a unit to ignore the effects of Reflect, Blade Grasp, and Arrow Guard.  If you are using my Runic hack (Blade Grasp for Math Skill flag), it will ignore this ability too.

If you are using Concealment and would like this ability to also ignore the effects of that, patch this version:


  <Patch name="Equip Gun grants immunity to all evadable attacks, Blank slot after Non charge gives +25% hit rate to hasted or reraised targets">
    <Description>Equip Gun Sets hit rate = 0% if attack is evadable.  Concentrate/transparent ignores this.  Rewritten to work with Mold Breaker</Description>
    <Location file="BATTLE_BIN" offset="eb340">
1980033C
942D638C
00000000
92006890
00000000
01000831
08000015
00000000
8F00A890
00000000
01000831
03000011
00000000
1980083C
DC3800A1
92006390
00000000
02006330
0E006010
00000000
5A00A390
00000000
20006330
06006014
00000000
5B00A390
00000000
08006330
04006010
00000000
1980083C
7D000334
DC3803A1
1980083C
DC380891
14160608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11e848">
D0480508
00000000
    </Location>
  </Patch>



Critical applied at 1/4:


  <Patch name="Critical = 1/4">
    <Description>Critical status applies at 1/4 hp instead of 1/5</Description>
    <Location file="BATTLE_BIN" offset="125344">
      00000000
      00000000
      00000000
    </Location>
    <Location file="SCUS_942_21" offset="4DF88">
      00000000
      00000000
      28002396
      00000000
    </Location>
  </Patch>

This changes the application of critical from 1/5 to 1/4.  This has the net effect of making "x in critical" abilities more useful/dangerous on enemies.


Monsters get M-Ev:


  <Patch name="Monster M-Ev = 20%">
    <Description>All monsters have 20% magic evade.</Description>
    <Location file="BATTLE_BIN" offset="11e1f8">
50480508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb140">
06008290
00000000
20004230
04004010
00000000
14000234
1980013C
E13822A0
83140608
00000000
    </Location>
  </Patch>

This gives all monsters 20% magic evade.  Change the bold number to the amount you want in hex.  This M-ev amount is invisible to the player from the screen (you still see the % under c-ev as 0), but when you attack a monster with an evadable magic attack, it properly shows up there and evades.  It also properly is nullified by transparent. :)


Class M-ev:


  <Patch name="Class M-ev">
    <Description>Set magic evade by class! Credit goes to Xifanie for rewriting it to work. :)</Description>
    <Location file="BATTLE_BIN" offset="11e1f8">
      78480508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb1e0">
      03008290
      1580013C
      21082200
      40212290
      1980013C
      83140608
      E13822A0
    </Location>
    <Location file="BATTLE_BIN" offset="eb140">
00
00000014
19191E14
0F0F1919
00280028
0F3C6319<!-- 0x14/20 -->
19140032
000A0A00
1400190A
00191E14
141E0A00<!-- 0x28/40 -->
1E231446
14141423
23192D00
190F1E0F
3C143763<!-- 0x3c/60 -->
141E0F1E
190F1900
231E1923
23000000
00000000<!-- 0x50/80 -->
00000000
00000000
00000000
281E1E1E
0F0F0F37<!-- 0x64/100 -->
37371919
19141414
1414140F
0F0F0F0F
0F1E1E1E<!-- 0x78/120 -->
3C3C3C1E
1E1E1414
14191919
14141423
23232828<!-- 0x8c/140 -->
28232314
231E1414
0F142323
23230000
000000
    </Location>
  </Patch>

Set M-ev by class!  Credit goes to Xifanie for rewriting my code into code that works. :)  This works as would be expected - nullified by Transparent, etc.  Only issue is it doesn't appear on the character screen. 

The big long commented block is the table of classes.  Values are one byte per class.  Comments are the last class number in those lines (for ease in finding it).  Default here is the values I needed, edit these to suit your needs. :)


Arcane Focus (Concentrate for Magic):


  <Patch name="Monster Skill = Arcane Focus">
    <Description>Nullifies M-ev.</Description>
    <Location file="BATTLE_BIN" offset="11E3B4">
07004010
    </Location>
    <Location file="BATTLE_BIN" offset="11E3D4">
2E15060C
00000000
00000000
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb200">
1980023C
942D428C
E8FFBD27
1000BFAF
92004290
00000000
80004230
05004010
00000000
1980043C
DE388424
9179010C
04000534
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1215c8">
8048050C
00000000
    </Location>
  </Patch>

Works like Concentrate, but only for magic attacks.  Currently tied to Monster Skill (can be changed to a different slot if you'd rather).  If you use my move Abandon -> Support hack, apply that one first and then this, or get rid of the nops at 11E3D4 on that hack.


Move XP up = Move XX up


  <Patch name="Move XP Up = Move PA up">
    <Description>Doesn't display as an icon, otherwise works!</Description>
    <Location file="BATTLE_BIN" offset="126e20">
1980033C
902D638C
81000234
BD370608
140062A0
    </Location>
  </Patch>

This turns Move XP up to Move XX up.  XX up can be PA, MA, Speed, Brave, Faith, Level (up or down); default here is PA up.  Unfortunately doesn't display an icon the way PA save does, but if you check the status screen the character gets its PA bonus as long as it's moving.

  <Patch name="Move XP Up = Move-Regen">
    <Description>Inflicts status if character moves.  Doesn't display an icon, otherwise works!</Description>
    <Location file="BATTLE_BIN" offset="126e20">
1980033C
902D638C
40000234
1E0062A0
C912060C
00000000
2E004010
00000000
BD370608
08001034
    </Location>
  </Patch>

This version will inflict a status if the character moves, and fail if infliction is invalid.  Can be used for any status infliction/removal within the same group.  Again, doesn't display anything, but if you check the character screen, it works. :)


Move JP up = Move XX Up


  <Patch name="Move JP Up = Move MA up">
    <Description>Doesn't display as an icon, otherwise works!</Description>
    <Location file="BATTLE_BIN" offset="126e88">
1980033C
902D638C
81000234
BD370608
150062A0
    </Location>
  </Patch>

  <Patch name="Move JP Up = Move-Transparent">
    <Description>Inflicts status if character moves.  Doesn't display an icon, otherwise works!

</Description>
    <Location file="BATTLE_BIN" offset="126e88">
1980033C
902D638C
10000234
1D0062A0
C912060C
00000000
14004010
00000000
BD370608
08001034
    </Location>
  </Patch>

See Move XP up for description - these work exactly the same way, but replace move JP up.


Blank Support 01E1 (between Equip Change and Short Charge) doubles critical hit rate:


  <Patch name="Blank 01E1 = Critical hit x2">
    <Description>Critical hit on unit with support 01E1 increased from 6.25% to 12.5%</Description>
    <Location file="BATTLE_BIN" offset="11F504">
78770508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F6DE0">
1980023C
942D428C
00000000
92004290
00000000
10004230
05004010
08000534
B63B060C
00000000
43190608
00000000
04000534
B63B060C
00000000
43190608
00000000
    </Location>
  </Patch>

Exactly as description says.   To change crit rates, they use a divisor of 64.  Change the bold number to be the crit rate you want granted by the ability, and italics to be the default crit rate.


Blank ability 01e1 doubles proc rate:


<Patch name="Weapon Proc Rate/Blank 01E1 = double proc rate">
<Location file="BATTLE_BIN" offset="1206A4">
64000434
8F760508
1980023C
</Location>
<Location file="BATTLE_BIN" offset="F6A3C">
942D428C
00000000
92004290
00000000
10004230
03004010
32000434
9A760508
00000000
64000434
1980023C
</Location>
<Location file="BATTLE_BIN" offset="F6A68">
D8384390
00000000
0C006010
13000534
8000652C
0B00A010
00000000
1680053C
2128A300
B4DAA590
1C004390
F0000220
02004314
00000000
40280500
3378010C
00000000
AC1D0608
00000000
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131316
16161632
32166413
13131313
13131364
64646413
13131332
32321313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
13131313
</Location>
</Patch>

This is bundled with Pride's individual weapon proc rate, due to needing to write the support ability hack to function correctly with this hack as well.  It assumes a proc rate divisor of 0x64.  As per my usual policy of sharing everything I do that works, it's here. :) 



Locks job wheel/equip screen for standard monsters:


  <Patch name="Locks job wheel/equip screen for standard monsters">
    <Description>This means if you change the skillsets for any of the monsters from 5E onwards, it works as a regular monster skillset in that job wheel, change ability, item screen no longer is accessible.</Description>
    <Location file="WORLD_WORLD_BIN" offset="40b94">
      A2FF8424
      4200842C
    </Location>
  </Patch>

No more glitchy job wheel if you change skillsets on the standard monster classes! :)


Silly hardcoding removal on Skillset 8 (Charge):


  <Patch name="Silly hardcoding removal, related to skillset 08">
    <Description>If you use skillset 08 (charge) for anything other than charge, you want to use this hack.</Description>
    <Location file="BATTLE_BIN" offset="1191a0">
FFFF0234
    </Location>
  </Patch>

This fixes the bug present in some mods that changes the archer class to have an actual skillset, where characters can cancel their own ability charging if they move.  Not sure of its actual purpose if you do use charge, however if you do not, you want to change this line.


Golem uses Countergrasp Flag:


  <Patch name="Golem checks for Countergrasp flag">
    <Description>Golem blocks all attacks with the Countergrasp flag.</Description>
    <Location file="BATTLE_BIN" offset="124cac">
F6384290
00000000
10004230
    </Location>
  </Patch>

This makes it so Golem will block any attack with the Countergrasp flag.  It is recommended to make Golem enemy only due to the way it derps out the ai anyway, and this hack makes it abusable against the ai in a slightly different way from vanilla. (Near invincibility in conjunction with Blade Grasp, enemies continuously triggering Dragon Spirit for free, etc)  Main reason for this hack is to make Golem more of a threat on enemies by blocking more attacks.


Marvel Scale:


  <Patch name="Gained JP Up = Marvel Scale">
    <Description>A unit with this ability takes 1/2 damage if it has a negative status.</Description>
    <Location file="BATTLE_BIN" offset="11f2cc">
544B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebd50">
1980013C
982D218C
00000000
90002290
00000000
40004230
20004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
07004010
00000000
1980043C
CE388424
00008384
00000000
42180300
000083A4
90002290
B8180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f31c">
844B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebe10">
1980013C
982D218C
00000000
90002290
00000000
40004230
20004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
07004010
00000000
1980043C
CE388424
00008384
00000000
42180300
000083A4
90002290
CC180608
00000000
    </Location>
  </Patch>

Damage = 1/2 if a unit is inflicted with a negative status effect.  Currently tied to Gain JP Up's slot.  Has no effect on anything that ignores defense (formulas such as Gravi2 or self destruct, or anything i made noted as ignoring defense).  This calculation stacks with all other bonuses and penalties (def/mdef up, status effects' damage bonus such as oil or frog, elemental weakness or 1/2, Pride's Defense by Job hack, etc).  Calculation is made before damage is capped, so it won't truncate damage at 499 if a character is able to do more than that pre-cap.  The following status effects boost defense:  Blank, Darkness, Confusion, Silence, Berserk, Blood Suck, Cursed, Oil, Chicken, Frog, Poison, Stop, Slow, Sleep, Charm, Don't Move, Don't Act, Death Sentence.  Due to the nature of Petrify, Dead, Crystal, Treasure it's not included; and Undead, Innocent not included because my mod treats them more like neutral effects.

If you don't want this to stack with Gain JP Up's vanilla effect, use the following (not my hack, forgot who made it):


<Patch name="Gained JP UP innate all">
    <Description>Disables the Gained JP Up slot too.</Description>
    <Location file="BATTLE_BIN" offset="1179a4">
      00000000
    </Location>
  </Patch>



Guts:


  <Patch name="Gained JP Up = Marvel Scale, Jump+2 = Guts">
    <Description>A unit with Marvel Scale takes 1/2 damage if it has a negative status, a unit with Guts does 3/2 damage if negative status.</Description>
    <Location file="SCUS_942_21" offset="4d14c">
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f2cc">
544B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebd50">
1980013C
942D218C
00000000
93002290
00000000
08004230
22004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
09004010
00000000
1980043C
CE388424
00008384
00000000
40100300
21104300
42180200
000083A4
1980013C
982D218C
00000000
90002290
00000000
40004230
20004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
07004010
00000000
1980043C
CE388424
00008384
00000000
42180300
000083A4
90002290
B8180608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11f31c">
304C0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ec0c0">
1980013C
942D218C
00000000
93002290
00000000
08004230
22004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
09004010
00000000
1980043C
CE388424
00008384
00000000
40100300
21104300
42180200
000083A4
1980013C
982D218C
00000000
90002290
00000000
40004230
20004010
00000000
58002290
00000000
80004230
15004014
00000000
59002290
00000000
3E004230
10004014
00000000
5A002290
00000000
8E004230
0B004014
00000000
5B002290
00000000
86004230
06004014
00000000
5C002290
00000000
3D004230
07004010
00000000
1980043C
CE388424
00008384
00000000
42180300
000083A4
90002290
CC180608
00000000
    </Location>
  </Patch>

This is bundled with Marvel Scale because it affects the same area of code.  Guts gives 3/2 damage if a unit is inflicted with a negative status effect.  It uses the same definition of negative status effect as Marvel Scale.  It also replaces Jump +2.


Secret Hunt = +1 PA/MA if unit kills:


  <Patch name="Secret Hunt = +1 PA/MA if unit gets kill">
    <Description>Requires Disable Secret Hunt/Train Slots</Description>
    <Location file="BATTLE_BIN" offset="124c38">
C04B0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ebf00">
1980013C
942D218C
00000000
91002290
00000000
40004230
0A004010
00000000
1980033C
8C2D638C
01000234
000062A0
81000234
140062A0
150062A0
01000234
250062A0
4D2F060C
00000000
102F0608
00000000
    </Location>
  </Patch>

Requires Disable Secret Hunt/Train slots if you're replacing Secret Hunt.  This works similarly to Moxie in Pokemon - if a unit kills the target with its move, its PA/MA go up.  There is a weird catch - in the case of AOE moves, the unit must kill every target that is in the AOE of the move in order to get the bonus.  So it's more useful on things that primarily deal damage with single target moves.  It also animates the bonus if a unit successfully gets the bonus! :)


Undead always reraises/Treasure disabled:


  <Patch name="Undead always rerise, Treasure disabled">
    <Description>First part makes undead always rerise. Second part removes treasure.</Description>
    <Location file="BATTLE_BIN" offset="11C17C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11C1DC">
      00000000
    </Location>
  </Patch>

This makes undead units always reraise instead of the 50/50 roll between reraising and permadeath.  It also removes the 50/50 for treasure, and units that can crystalize now always will.  If you want immortal + undead units to always reraise when their turn comes up, patch both this hack and the next one:

  <Patch name="Undead + immortal always raises on CT 100">
    <Description>Requires Undead always reraises</Description>
    <Location file="BATTLE_BIN" offset="11c128">
58000292
00000000
10004230
12004014
00000000
05000292
00000000
04004230
5A004014
21100000
    </Location>
  </Patch>



Poison Heal:


  <Patch name="Move +1 = Poison Heal">
    <Description>Heals 1/4 max hp if unit is Poisoned, replaces poison's normal effect</Description>
    <Location file="SCUS_942_21" offset="4d11c">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="126800">
28780508
00000000
    </Location>
<Location file="BATTLE_BIN" offset="f70a0">
93000392
2A000296
80006330
07006010
00000000
1980033C
902D638C
82100200
060062A4
10360608
40000234
02360608
1980033C
    </Location>
  </Patch>

This disables Move +1 and changes it to Poison Heal.  Units with this ability who are poisoned will regenerate 1/4 max HP every turn until Poison is cured. Can stack with other hacks in this routine without conflict.  (Mist, MP Poison, Shed Skin, Poison does 1/4 damage)


Arrow Guard also blocks a specific formula:


  <Patch name="Arrow Guard blocks Formula 28">
    <Description>Arrow Guard blocks Formula 28 with br% accuracy.  Stacks with Arrow Guard's vanilla effect</Description>
    <Location file="BATTLE_BIN" offset="1260e8">
40780508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f7100">
1980023C
E5384290
28000334
05004314
00000000
E8FFBD27
1000BFAF
4D340608
00000000
1980023C
F3384290
3C340608
00000000
    </Location>
  </Patch>

Arrow Guard blocks Formula 28 (which I rewrote in my mod, formula hack is in this thread) at br% accuracy.  Its function stacks with vanilla's effect, and is also compatible with the hack that changes Arrow Guard to block gun.  To change the formula blocked, change the "28" in bold to whatever formula you want.


Rough Skin (Passive recoil damage):


  <Patch name="Jump +1 = Rough Skin">
    <Description>Disables and replaces Jump +1.  Units attacking a unit with Rough Skin will take

recoil damage = target PA*4 if they hit a unit with a damaging move. Requires Disable Secret Hunt/Train slots</Description>
    <Location file="SCUS_942_21" offset="4d140">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9b90">
E8FFBD27
1000BFAF
1980013C
982D218C
00000000
93002290
00000000
10004230
0F004010
00000000
90012284
00000000
0B004010
00000000
36002290
00000000
80100200
1980053C
8C2DA58C
01000334
0000A3A0
0400A2A0
80000334
2500A3A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12497c">
E442050C
00000000
    </Location>
  </Patch>

Disables/Replaces Jump +1.  Dealing damage to a unit with this ability will cause recoil = target PA*4.  This ability hits 100% of the time and checks are completely independent of reactions.  Only one target in the aoe of an aoe attack that has the ability needs to be hit in order for this to work.  In the case of multiple hit units, it seems to just be taking one of the recoil damage amounts (not adding them together).  It requires Disable Secret Hunt/Train because the check completely takes place of the Secret Hunt/Train check.



"Passive" reactions can be coded (almost) anywhere:


   <Patch name="Passive reactions can be coded almost anywhere">
    <Description>Moves PA Save, MA Save, Speed Save, Regenerator to Weapon Guard, Finger Guard, Abandon, Catch slots respectively.</Description>
    <Location file="SCUS_942_21" offset="4d140">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9b90">
E8FFBD27
1000BFAF
1980073C
982DE78C
00000000
9001E284
00000000
55004010
00000000
9300E290
00000000
10004230
0B004010
00000000
3600E290
00000000
80100200
1980053C
8C2DA58C
01000334
0000A3A0
0400A2A0
80000334
2500A3A0
2120E000
5A32060C
00000000
41004014
00000000
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
40004230
07004010
00000000
01000334
8C01E3A0
81000334
B101E3A0
81000334
A001E3A0
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
20004230
07004010
00000000
01000334
8C01E3A0
81000334
B101E3A0
81000334
A101E3A0
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
10004230
07004010
00000000
01000334
8C01E3A0
81000334
B101E3A0
81000334
9E01E3A0
2400E590
3378010C
64000434
0C004014
00000000
8E00E290
00000000
08004230
07004010
00000000
01000334
8C01E3A0
88000334
B101E3A0
40000334
AA01E3A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12497c">
E442050C
00000000
    </Location>
  </Patch>

This version adds to the Rough Skin routine, coding Weapon Guard, Finger Guard, Abandon, Catch slots to function as PA save, MA Save, Speed Save, Regenerator respectively.  It can also work if you code it to a support/move slot.  Why do this?

1.  Gives another slot that is compatible with Multi-reaction deluxe (to allow coding something else to it).
2.  Reactions coded in this way can stack freely with each other or anything else.  What I mean by this: In vanilla code, there is a reaction priority.  It'll check for a reaction, and ignore any other reactions in the same priority.  If a reaction in the first priority fails (or doesn't exist), it'll check the next priority group.  For example a unit with Counter Flood (priority 1) and PA save (priority 3) and 70 brave will Counter Flood 70% of the time, PA save 21% of the time, and nothing 9%.  Coded this way, it'll check individually.  Same character will now Counter Flood 70% and PA Save 70%, with completely individual checks (you can now get both, one or the other, or none!).
3.  Slight downside - it will not display a banner if you get the PA save.  It will only display a +1PA icon.
4.  Slight downside 2 - it'll give the player the illusion that they can manipulate the rng of regenerator.  It doesn't actually calculate the RNG until the attack takes place so the player can't.

As far as I can tell the only things that can be coded this way are stat or status changes, and so far only with damage trigger.  So for example PA save, MA save, Speed save, regenerator will function identically to vanilla if used individually, and will stack better with other reactions if you give a character multiple reactions.  Dragon Spirit, Brave up, etc. will be damage trigger if coded this way. 

As with Rough Skin, this code requires Disable Secret Hunt/Train and is bundled with that hack.  It also requires moving or disabling the effects of all vanilla abilities referenced above (unless you want their effects to stack!) Code to disable Jump +1 (for rough skin) is included, everything else is different hacks.


Disables Max Equip at Job Change:


  <Patch name="Disables equip at job change">
    <Description>Option 12 (Equip at Job Change) does nothing. Code is disabled, so game behaves as if permanently off.</Description>
    <Location file="WORLD_WORLD_BIN" offset="448a8">
      32000010
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="3ee28">
      00000000
    </Location>
  </Patch>

As description says.  Disables option 12 as if the code doesn't exist.


Disables Ignore Height, Any Weather, Any Ground:


  <Patch name="Disables Ignore Height, Any Ground, Any weather">
    <Description>Disables these so that another ability can be written in their slots</Description>
    <Location file="BATTLE_BIN" offset="10d774">
      02000010
    </Location>
    <Location file="BATTLE_BIN" offset="10d7b8">
      04000010
    </Location>
    <Location file="BATTLE_BIN" offset="10d828">
      03000010
    </Location>
  </Patch>

Disables these slots (causing them to have no effect).  Useful if you want to code something else in these slots.


Amplify (doesn't work yet/don't use): :(


  <Patch name="1/2 MP = Amplify">
    <Description>Turns 1/2 MP's slot into Amplify - AOE+1, MP Cost x2.  Abilities affected are checkable in Patcher as the flag between Hit Allies and Follow Target.</Description>
    <Location file="BATTLE_BIN" offset="1148d8">
344C0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ec0d0">
1980043C
942D848C
00000000
90008490
01007390
80008430
05008010
00000000
20002432
02008010
00000000
01007326
06006490
38EE0508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="116b6c">
40200400
    </Location>
    <Location file="BATTLE_BIN" offset="12eca4">
40100200
    </Location>
<Location file="BATTLE_BIN" offset="12ecec">
444C0508
00000000
    </Location>
<Location file="BATTLE_BIN" offset="ec110">
90004292
00000000
80004230
0B004010
00000000
04006290
00000000
20004230
06004010
00000000
01006290
00000000
01004224
3D570608
00000000
01006290
3D570608
00000000
    </Location>
  </Patch>

This changes 1/2 MP to Amplify.  Use the checkbox between Hit Allies and Follow Target to toggle whether you want an ability to be amplified.  MP cost is increased for all abilities, whether affected by Amplify or not.  Skills that are Weapon Range, Linear, Stop at Obstacle, or affect the whole map already can't be amplified.  Draw Out and Item are also unaffected (not sure why here).  AI code was also changed to work properly with this ability.  New MP cost doesn't display properly (no clue why).

**Bugfix** Use this version to not break anything else in the game.

** Don't use yet, currently has issues **


Formulas:

Relevance for these hacks in my mod is to create spells that scale better overall.  It solves the problems of attacks that are OP at lv 1 and start to become useless by mid game.  While it's still not perfect, attacks/healing retain similar amounts of relevance later into the game as they did in early game.


Additional Multi-hit Formulas (Don't use yet - currently has issues):


  <Patch name="Multihit hardcoding - Formula 0c, 31">
    <Description>Gives formulas 0c (cure), 31 (punch art) a number of hits = X+1.</Description>
    <Location file="BATTLE_BIN" offset="116638">
0C000234
0300A214
FF00C330
BBF50508
01000226
31000234
0300A214
FF00C330
BBF50508
01000226
09000234
23006210
08000234
0D006210
0A000234
0B006210
00000000
1980023C
ECF74290
00000000
20004230
19004010
00000000
00000000
00000000
00000000
00000000
    </Location>
  </Patch>

Default here is Cure and Punch Art formulas - change the bold to change this.  This turns the formulas into number of hits = X+1 (as formula 5e, so it always hits X+1), but retains the other properties of the formula, giving these formulas greater versatility.  To make the formulas only hit once, set X=0 in Patcher.  This can take any formula that doesn't use X.

Currently breaks 2 swords (not sure why).  Don't use yet.


Quadratic Chakra:

  <Patch name="Quadratic Chakra">
    <Description>Chakra formula = (PA+Y)/2 * PA HP, MP 1/2 this amount</Description>
    <Location file="BATTLE_BIN" offset="122E9C">
      4017060C
    </Location>
  </Patch>

Changes PA*Y to (PA+y)/2 *PA in the Chakra formula.  Still does all the other stuff Chakra does (MP heal 1/2 that amount, boost with martial arts, doesn't reverse on undead, etc).


Quadratic Faith based heal:


  <Patch name="Quadratic faith based heal">
    <Description>Healing formula = fa ((MA+Y)*MA/2), accepts status proc</Description>
    <Location file="BATTLE_BIN" offset="121F00">
      3017060C
    </Location>
    <Location file="BATTLE_BIN" offset="121F08">
      F121060C
    </Location>
  </Patch>

This is a quadratic healing spell, replaces formula C.  Also replaced the useless elemental calculation with the much more useful ability to accept status procs.  So you can create heal spells that proc positive statuses! :) 

**Improved** Now procs 19% instead of 100%


Quadratic Draw Outs:


  <Patch name="Formula 20 - Draw out damage change">
    <Description>Changes Formula 20 (Draw out damage) to (MA+Y)*MA/2</Description>
    <Location file="BATTLE_BIN" offset="1225D4">
      3017060C
    </Location>
  </Patch>


  <Patch name="Formula 21 - Draw out MP damage change">
    <Description>Changes Formula 21 (Draw out MP damage) to (MA+Y)*MA/2</Description>
    <Location file="BATTLE_BIN" offset="122604">
      3017060C
    </Location>
  </Patch>


  <Patch name="Formula 23 - Draw out healing change">
    <Description>Changes Formula 23 (Draw out healing) to (MA+Y)*MA/2</Description>
    <Location file="BATTLE_BIN" offset="12268C">
      3017060C
    </Location>
  </Patch>



Faith based Quadratic damage (formula 08):



  <Patch name="Formula 08 - Faith based damage">
    <Description>Changes Formula 08 to use fa * (ma+y)*ma/2</Description>
    <Location file="BATTLE_BIN" offset="121D9C">
      3017060C
    </Location>
  </Patch>

On request - this changes formula 08 to do quadratic damage with the faith calculation.


Physical damage with spell proc:


  <Patch name="Formula 57 (Please Eat) deals physical damage, spell proc, element">
    <Description>This turns formula 57 (Please Eat) to physical evade, (pa+y)*pa/2, status proc,

element.</Description>
    <Location file="BATTLE_BIN" offset="123758">
E8FFBD27
1000BFAF
4421060C
00000000
20004014
00000000
4017060C
00000000
FF17060C
00000000
5318060C
00000000
B722060C
00000000
3E19060C
00000000
5A19060C
00000000
B41B060C
00000000
FE1B060C
00000000
1980023C
902D428C
00000000
00004290
00000000
09004010
00000000
3F1C060C
00000000
3021060C
00000000
03004014
00000000
B91D060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

When using this formula, Y = power of spell, inflict status = the spell proc'd by this ability (in hex, max ff).  It works kinda like formula 02, only scales better on monster skills and accepts elements. I put it over Formula 57 because I wasn't using it and needed something that's a monster of a code to fit this.  If you're still using 57, You can change the offset to fit it over a different monstrous code, or put it in free space and have one of the blank formulas jump to it if you wish.


Magic damage with spell proc:


<Patch name="Formula 63 deals magical damage, spell proc, element">
    <Description>This turns formula 63 to magical evade, (ma+y)*ma/2, status proc, crit, element.</Description>
    <Location file="BATTLE_BIN" offset="123B98">
E8FFBD27
1000BFAF
6E21060C
00000000
20004014
00000000
3017060C
00000000
FF17060C
00000000
D121060C
00000000
00000000
00000000
3E19060C
00000000
5A19060C
00000000
B41B060C
00000000
FE1B060C
00000000
1980023C
902D428C
00000000
00004290
00000000
09004010
00000000
3F1C060C
00000000
3021060C
00000000
03004014
00000000
B91D060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

When using this formula, Y = power of spell, inflict status = the spell proc'd by this ability (in hex, max ff).  It works kinda like formula 02, only deals magic damage, scales better on monster skills and accepts elements. I put it over Formula 63 (vanilla throw) because I wasn't using it and needed something that's a monster of a code to fit this.  If you're still using 63, You can change the offset to fit it over a different monstrous code, or put it in free space and have one of the blank formulas jump to it if you wish.



MA based Drain HP:


<Patch name="Formula 4D (Absorb HP) changes">
    <Description>This changes Formula 4D (Absorb HP) to magic evade, (ma+y)*ma/2, critical hit, 100% status.</Description>
    <Location file="BATTLE_BIN" offset="1233D0">
E8FFBD27
1000BFAF
6E21060C
00000000
0B004014
00000000
3017060C
00000000
3E19060C
00000000
1622060C
00000000
921C060C
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

Now you can create a Blood Suck that doesn't deal unevadable fractional damage to bosses!  This spell does (MA+Y)*MA/2 damage, can be evaded, can critical, drains HP, and adds a status effect at 100%. 


Formula 2f/30 fix:



  <Patch name="Formula 2F (Absorb MP) uses Weapon Damage routine">
    <Description>This allows Formula 2F (Absorb MP) to accept status procs (100%) and to be used as a
monster skill.</Description>
    <Location file="BATTLE_BIN" offset="122C68">
      8E21060C
      00000000
      AD1F060C
    </Location>
  </Patch>


  <Patch name="Formula 30 (Absorb HP) uses Weapon Damage routine">
    <Description>This allows Formula 30 (Absorb HP) to accept status procs (100%) and to be used as a
monster skill.</Description>
    <Location file="BATTLE_BIN" offset="122CA8">
      8E21060C
      00000000
      AD1F060C
    </Location>
  </Patch>

As description says.  This allows formulas 2f/30 to accept status procs at 100% and be used as a monster skill; therefore making it more usable than the original formulas. :)  If the Weapon XA/YA rewrite hack is used, it can also accept a Y value.



Formula 42 does magic damage instead of physical:


  <Patch name="Formula 42 does magic damage">
    <Description>Formula 42 changed to MA*Y damage to target, MA*Y/x to self</Description>
    <Location file="BATTLE_BIN" offset="123184">
      2517060C
    </Location>
  </Patch>

By request, here you go! :)


Formula 41: Physical damage, 100% status


  <Patch name="Formula 41: Damage = (PA+y)*pa/2, 100% add status">
    <Description>Accepts element, evasion, status. :)</Description>
    <Location file="BATTLE_BIN" offset="123114">
E8FFBD27
1000BFAF
4421060C
00000000
0F004014
00000000
4017060C
00000000
FF17060C
00000000
7E21060C
00000000
DF21060C
00000000
05004014
00000000
3F1C060C
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

As description says.  Damage = (PA+Y)*PA/2, adds status at 100%.  Accepts evasion, element, status.  Replaces formula 41 (Galaxy Stop).


Formula 33 - MP Damage


<Patch name="Formula 33 = (PA+Y)*PA/2 MP damage, 100% status">
    <Description>Replaces Formula 33.</Description>
    <Location file="BATTLE_BIN" offset="122e28">
E8FFBD27
1000BFAF
4017060C
00000000
B722060C
00000000
1980033C
CE386394
1980023C
D0384294
00000000
18006200
1980033C
902D638C
20000234
250062A0
12100000
080062A4
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

As description says. Does not accept evade or element though.



Formula 08 - (Pa+Y)/2 * MA, Physical Evade, element, 100% cast other ability


<Patch name="Formula 08 = (PA+Y)/2 *MA damage, physical evade, 100% cast ability">
    <Description>Replaces Formula 08.</Description>
    <Location file="BATTLE_BIN" offset="121D84">
E8FFBD27
1000BFAF
4421060C
00000000
0F004014
00000000
5017060C
00000000
FF17060C
00000000
5912060C
00000000
DF21060C
00000000
05004014
00000000
3F1C060C
00000000
B91D060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

I wrote over formula 08 because it's the shortest formula I wasn't using that is of sufficient length to hold this formula.  To change the formula you write over, change the offset.

This will only animate the 2nd ability, but the damage of the formula will take place as well as effect/damage of second ability.  This can be used to create stuff like damage + item/stat break procs, and other things that can't normally be done with a regular formula.  The damage portion accepts elements, physical evade, and is affected by compatibility; but ignores attack/defense up modifiers and protect/shell.


Gravi2 applies status effect 100%:


  <Patch name="Formula 17 = Gravi2, status 100%">
    <Description>Drops HP to 1, Faith based accuracy.  Adds status at 100% upon success.</Description>
    <Location file="BATTLE_BIN" offset="12225c">
E8FFBD27
1000BFAF
7322060C
00000000
05004014
00000000
BB19060C
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

Looking for a cruel way to torment your players?  Or just a way to get the AI to use Gravi2 in a more appropriate/interesting way?  Say no more.  This is Faith based accuracy (Fa(MA+x)%), will add a status effect at 100% upon success.  A milder use for this would be to set it to dispel.  Or you can create a meaner Poison/Frog.. Plenty of evil uses here. ^_^


Formula 27: Improved Mana Battery


  <Patch name="Formula 27 = Improved Mana Battery">
    <Description>Heal Mp (PA+Y)/2 * MA, inflict status 19%</Description>
    <Location file="BATTLE_BIN" offset="122828">
E8FFBD27
1000BFAF
5017060C
00000000
1622060C
00000000
3B1D060C
00000000
3021060C
00000000
03004014
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

Exactly as description says - Heals MP, Procs status indexed on spell at 19%.  Replaces formula 27.  As always, to replace a different formula, change its offset.


Mana Bomb:


  <Patch name="Formula 0E = Mana Bomb">
    <Description>Deals damage equal to current MP of caster to target, with MP cost of damage dealt. 

Accepts elements.  Disable self-targeting on this formula!  Credit goes to Pride for rewriting this so it

works. :)</Description>
    <Location file="BATTLE_BIN" offset="121f90">
1980043C
982D848C
1980033C
942D638C
E8FFBD27
1A008310
1000BFAF
2C006294
1980043C
902D848C
00000000
040082A4
80000234
250082A0
00000000
B41B060C
00000000
FE1B060C
00000000
1980023C
902D428C
00000000
00004290
00000000
07004010
00000000
C721060C
00000000
03004014
00000000
AD1F060C
00000000
1980033C
942D638C
01000234
2C006194
1980043C
8C2D848C
00000000
000082A0
E7030334
2B106100
02004010
00000000
21086000
080081A4
20000334
250083A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

Replaces Formula 0E.  As usual, to replace a different formula, change the offsets and/or jump from a blank.  Exactly as description says, deals damage equal to MP of caster with effective MP cost of the damage dealt.  Accepts elements.  Do not allow self targeting (will just display 100% and deal the mp damage if you do).



Formula 15 - Fractional damage, immortal immune:


  <Patch name="Formula 15 = Y% damage, faith based accuracy, status 100%, immortal immune">
    <Description>Displays 100% but always misses on immortal target</Description>
    <Location file="BATTLE_BIN" offset="1221ac">
E8FFBD27
1000BFAF
1980023C
982D428C
00000000
05004290
04004230
09004014
00000000
8922060C
00000000
05004014
00000000
8919060C
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

This replaces formula 15.  As usual, to change the formula affected, change the offset.  This deals fractional damage (y%), at the faith based accuracy f(ma+x)%, and 100% status indexed if the formula hits.  Immortal targets are immune.  Will display a 100%, but have no effect whatsoever if you target an immortal target with it.


Immortal check routine:


  <Patch name="Immortal Check Routine">
    <Description>Routine causes attack to fail if unit is immortal.  Required for several formula hacks,

as noted in description.</Description>
    <Location file="BATTLE_BIN" offset="eb2d0">
E8FFBD27
1000BFAF
1980033C
982D638C
00000234
05006390
00000000
04006330
04006010
00000000
C310060C
00000000
01000234
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

FIXED! :)

This routine causes attacks to fail if target is immortal.  It is required for some of my formula hacks, as noted in their description.  If you want to edit formulas to use this yourself, put the following near the beginning of a formula (before what you want the formula to do):

jal 0x001522d0
nop
bne r2,r0,0x ? (replace ? with what you need)
nop

Branch goes to end of formula, lw r31,0x0010(r29) in most vanilla formulas


Endeavor:



  <Patch name="Formula 3f = Endeavor">
    <Description>Requires immortal check routine</Description>
    <Location file="BATTLE_BIN" offset="12302c">
E8FFBD27
1000BFAF
B448050C
00000000
0B004014
00000000
1980013C
982D218C
1980023C
942D428C
00000000
28004494
28002594
00000000
2318A400
900123A4
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

Fixed!

This replaces formula 3f.  Works like Endeavor in the Pokemon games (changes the target's HP to match the caster's HP).  It will heal the target if target hp < caster hp, and will deal damage otherwise.  Does not display the effect it has, just displays "100%" if you can hit the target, and "0%" if target is immune.  Requires immortal flag check routine (so bosses can be made immune).  I haven't fully tested if this formula would overflow in extremely unlikely situations (such as boss vs. boss with >32768 hp), but for normal/reasonable numbers it works as expected. :)



Formula 28 = Hybrid Deluxe:


  <Patch name="Formula 28 = Hybrid Deluxe">
    <Description>Uses vanilla geomancy routine. Interprets patcher flag "Magical attack" as applying M-ev, Shell, etc. and "Physical attack" as applying P-ev, Protect, etc.  Neither checked will make an attack that ignores defense and evade.  DONT CHECK BOTH! Accepts element and status.</Description>
    <Location file="BATTLE_BIN" offset="122870">
E8FFBD27
1000BFAF
5017060C
00000000
1980023C
D2F34290
00000000
01004230
09004014
00000000
4421060C
00000000
17004014
00000000
1518060C
00000000
B722060C
00000000
1980023C
D2F34290
00000000
02004230
07004014
00000000
6E21060C
00000000
09004014
00000000
D121060C
00000000
FF17060C
00000000
DF21060C
00000000
F121060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

This replaces formula 28.  Uses vanilla Geomancy formula routine - (pa+y)/2 * ma.  This allows you to create attacks that have properties of both physical and magical attacks depending on which flags you check off, or to create a defense/evade ignoring attack that is based off a character's pa/ma and can accept elements and status.  As description says, check "magical attack" to use m-ev, shell, etc. and "physical attack" to use p-ev, protect, etc.  Check neither to ignore defense/evade.  DON'T CHECK BOTH! (doesn't work).  This formula accepts elements and status effects (19% proc), can't crit.

**Note** Evade isn't working properly on here, a rewrite is in the works.


Formula 3B = Magic healing, faith based hit rate:


  <Patch name="Formula 3B = Magic healing, faith based hit">
    <Description>Uses quadratic magic formula, F*(ma+x) hit rate.  19% status proc, reverses on undead.</Description>
    <Location file="BATTLE_BIN" offset="11Fd58">
E8FFBD27
1000BFAF
6017060C
00000000
0022060C
00000000
0D004014
00000000
3017060C
00000000
1622060C
00000000
D41C060C
00000000
3021060C
00000000
03004014
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


999 HP/MP restore, 19% status, faith based hit rate:


  <Patch name="Formula 51 = Heal 999 hp/mp, 19% status">
    <Description>Hit F(MA+X)%, does not reverse on undead.</Description>
    <Location file="BATTLE_BIN" offset="1234e8">
E8FFBD27
1000BFAF
6017060C
00000000
0022060C
00000000
0E004014
00000000
E7030434
1980033C
902D638C
50000234
250062A0
060064A4
0A0064A4
3021060C
00000000
03004014
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

This is pretty much if you want enemies to use vanilla's elixir effect and give it a miss chance, not reverse on undead, not tie it to the item skillset, and proc a status.  Could also be used if you want your players to be OP as well.  999 hp/mp heal can be changed to any constant you want, if you want it to be more balanced for player access.  Change the bold number to what you want, bytes reversed (E703 = 0x03e7 = 999 in this example.)


Formula 54: Damage = Caster max MP - Caster current MP


  <Patch name="Formula 54: Damage = Caster max MP - caster current MP">
    <Description>Does not accept evasion, elements, anything else.</Description>
    <Location file="BATTLE_BIN" offset="123668">
1980023C
942D428C
1980053C
902DA58C
2E004394
2C004494
80000234
2500A2A0
23186400
0800E003
0400A3A4
    </Location>
  </Patch>

Self explanatory.


Formula rebalance pack:



This pack of hacks will change all the formulas in the game that are in the format w * (w+y)/2 to w * (w+y), where w = pa or ma, and y = patcher value:


  <Patch name="Store PA and PA+Y">
    <Description>Changes all instances of PA * (PA+y)/2 into PA * (PA+Y)</Description>
    <Location file="BATTLE_BIN" offset="11ed2c">
      00000000
    </Location>
  </Patch>

  <Patch name="Store MA and MA+Y">
    <Description>Changes all instances of MA * (MA+y)/2 into MA * (MA+Y)</Description>
    <Location file="BATTLE_BIN" offset="11ecec">
      00000000
    </Location>
  </Patch>

  <Patch name="Store MA and PA+Y">
    <Description>Changes all instances of MA * (PA+y)/2 into MA * (PA+Y)</Description>
    <Location file="BATTLE_BIN" offset="11ed6c">
      00000000
    </Location>
  </Patch>


These create a formula that divides the final damage by 2:


  <Patch name="Formula 5e - Magic, divide damage by 2">
    <Description>Divides final damage of Formula 5e by 2 (default with vanilla routines is same as truth formula divided by 2).  Requires elemental magic, divide damage by 2 routine.</Description>
    <Location file="BATTLE_BIN" offset="123ab0">
DC77050C
00000000
    </Location>
  </Patch>

  <Patch name="Formula 4e - Elemental physical, divide by 2">
    <Description>Changes formula 4e to a physical damage formula (default with vanilla routines is same as punch art formula divided by 2). Divides final damage of Formula 4e by 2.  Requires elemental physical, divide damage by 2 routine.</Description>
    <Location file="BATTLE_BIN" offset="123428">
4421060C
00000000
05004014
00000000
0078050C
00000000
00000000
    </Location>
  </Patch>

  <Patch name="Elemental magic, divide damage by 2">
    <Description>Inner routine required for formula 5e hack</Description>
    <Location file="BATTLE_BIN" offset="f6f70">
E8FFBD27
1000BFAF
3E19060C
00000000
3017060C
00000000
5922060C
00000000
1980043C
902D848C
00000000
04008384
00000000
02006104
00000000
01006324
43180300
040083A4
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

  <Patch name="Elemental physical - divide damage by 2">
    <Description>Inner routine required for formula 4e hack</Description>
    <Location file="BATTLE_BIN" offset="f7000">
E8FFBD27
1000BFAF
3E19060C
00000000
4017060C
00000000
FF17060C
00000000
7E21060C
00000000
DF21060C
00000000
0D004014
00000000
F121060C
00000000
1980043C
902D848C
00000000
04008384
00000000
02006104
00000000
01006324
43180300
040083A4
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>



The purpose of these hacks is to create damage/healing that scales better for the entire course of the game for general use, while preserving the old formulas as an option for if you want an attack that's weaker than W^2, but still scales well throughout the game.

Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on November 17, 2016, 12:39:19 am
New formula time!  This one needs a bit of a tutorial how to use it.  It replaces formula 11 (which does nothing anyway). Credit goes to Glain for helping me fix it. Damage portion accepts evasion, elements, 19% status proc.  Patcher X and Y values are interpreted as the stat or status effect byte that you want to use, and the value you want to assign to that byte, respectively.  Convert all values to decimal (regular numbers), not hex.  For example, if you want to make the ability raise the user's MA by 1: X = 21, Y = 129.


  <Patch name="Formula 11 = MA^2 to target, effect indexed to caster at fa% chance">
    <Description>Credit goes to Glain for helping me fix it. Damage portion accepts evasion, elements, 19% status proc.  Patcher X and Y values are interpreted as the stat or status effect byte that you want to use, and the value you want to assign to that byte, respectively.  Convert all values to decimal (regular numbers), not hex.  For example, if you want to make the ability raise the user's MA by 1: X = 21, Y = 129.  For more details see post on FFH.</Description>
    <Location file="BATTLE_BIN" offset="122124">
56780508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f7134">
1980013C
942D228C
00000000
37004290
00000000
D03822A4
CE3822A4
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f7158">
E8FFBD27
1000BFAF
6E21060C
00000000
24004014
00000000
4D78050C
00000000
5922060C
00000000
1980073C
942DE68C
64000434
5C00C390
2600C590
40006230
18004014
80006230
05004014
00000000
3378010C
00000000
12004014
00000000
1980073C
8C2DE68C
F938E390
FA38E490
01000534
0000C5A0
21086600
000024A0
17000134
23106100
04004018
00000000
08000134
02000010
00000000
01000134
2500C1A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


Documentation of relevant stat/status bytes:


   0x019e/0x12 - SP Change
         0x80 - Bonus Flag
   0x019f/0x13 - CT Change
         0xFF = "Quick"
         0x7F = "CT0"
         0x80 - Bonus Flag
    0x01a0/0x14 - PA Change
         0x80 - Bonus Flag
    0x01a1/0x15 - MA Change
         0x80 - Bonus Flag
    0x01a2/0x16 - Brave Change
         0x80 - Bonus Flag
    0x01a3/0x17 - Faith Change
         0x80 - Bonus Flag

   0x01a7/0x1b - Attack's Status Infliction 1
         0x80 -
         0x40 - Crystal
         0x20 - Dead
         0x10 - Undead
         0x08 - Charging
         0x04 - Jump
         0x02 - Defending
         0x01 - Performing
   0x01a8/0x1c - Attack's Status Infliction 2
         0x80 - Petrify
         0x40 - Invite
         0x20 - Darkness
         0x10 - Confusion
         0x08 - Silence
         0x04 - Blood Suck
         0x02 - Cursed
         0x01 - Treasure
   0x01a9/0x1d - Attack's Status Infliction 3
         0x80 - Oil
         0x40 - Float
         0x20 - Reraise
         0x10 - Transparent
         0x08 - Berserk
         0x04 - Chicken
         0x02 - Frog
         0x01 - Critical
   0x01aa/0x1e - Attack's Status Infliction 4
         0x80 - Poison
         0x40 - Regen
         0x20 - Protect
         0x10 - Shell
         0x08 - Haste
         0x04 - Slow
         0x02 - Stop
         0x01 - Wall
   0x01ab/0x1f - Attack's Status Infliction 5
         0x80 - Faith
         0x40 - Innocent
         0x20 - Charm
         0x10 - Sleep
         0x08 - Don't Move
         0x04 - Don't Act
         0x02 - Reflect
         0x01 - Death Sentence
   0x01ac/0x20 - Attack's Status Removal 1
         0x80 -
         0x40 - Crystal
         0x20 - Dead
         0x10 - Undead
         0x08 - Charging
         0x04 - Jump
         0x02 - Defending
         0x01 - Performing
   0x01ad/0x21 - Attack's Status Removal 2
         0x80 - Petrify
         0x40 - Invite
         0x20 - Darkness
         0x10 - Confusion
         0x08 - Silence
         0x04 - Blood Suck
         0x02 - Cursed
         0x01 - Treasure
   0x01ae/0x22 - Attack's Status Removal 3
         0x80 - Oil
         0x40 - Float
         0x20 - Reraise
         0x10 - Transparent
         0x08 - Berserk
         0x04 - Chicken
         0x02 - Frog
         0x01 - Critical
   0x01af/0x23 - Attack's Status Removal 4
         0x80 - Poison
         0x40 - Regen
         0x20 - Protect
         0x10 - Shell
         0x08 - Haste
         0x04 - Slow
         0x02 - Stop
         0x01 - Wall
   0x01b0/0x24 - Attack's Status Removal 5
         0x80 - Faith
         0x40 - Innocent
         0x20 - Charm
         0x10 - Sleep
         0x08 - Don't Move
         0x04 - Don't Act
         0x02 - Reflect
         0x01 - Death Sentence


Examples of what is possible as effect on caster:

Increase/decrease of stat - X = stat byte, Y = effect.  Keep in mind that in order to increase stat, value must be >128 (0x80 is "bonus flag"), otherwise would decrease.
Speed - X = 18, Y = 1 (decrease by 1), Y = 129 (increase by 1)
CT - X = 19, Y = 255 (Quick), Y = 127 (ct 0)
PA - X = 20, Y = 1 (decrease by 1), Y = 129 (increase by 1)
MA - X = 21, Y = 1 (decrease by 1), Y = 129 (increase by 1)
Br - X = 22, Y = 1 (decrease by 1), Y = 129 (increase by 1)
Fa - X = 23, Y = 1 (decrease by 1), Y = 129 (increase by 1)

Status inflict/remove - X = effect group byte, Y = add together the statuses you want.  Unfortunately they must be on the same byte to work.  Examples:

Add Haste + Shell: X = 30, Y = 24
Add Faith + Reflect + Charm: X = 31, Y = 162
Remove Darkness + Silence: X = 33, Y = 40
Remove Oil: X = 34, Y = 128

Remember to convert all hex in the documentation to decimal in the patcher x/y values!  Don't use values that don't make sense with these instructions, or confuse hex with decimal, or you might get strange bugs!  XML in first post updated with this! :)

**EDIT** 2 new formulas! :)

Psycho Shift (transfers active status effect to target at F(MA+X)%)


  <Patch name="Formula 58 = Psycho Shift">
    <Description>Hit F(Ma+x)%.  On a successful hit, user will transfer all active status effects to target, and cancel them on self.  Affects all statuses (positive or negative).  Will not cancel innate status, or inflict statuses to invalid targets (such as inflicting poison to a unit immune to it). </Description>
    <Location file="BATTLE_BIN" offset="123824">
E8FFBD27
1000BFAF
8922060C
00000000
25004014
00000000
1980013C
942D228C
902D238C
8C2D2A8C
21200000
58004590
59004690
5A004790
5B004890
5C004990
1B0065A0
1C0066A0
1D0067A0
1E0068A0
1F0069A0
200045A1
210046A1
220047A1
230048A1
240049A1
C912060C
00000000
1980013C
8C2D258C
902D238C
09004010
00000000
01000434
0000A4A0
000064A0
08000434
2500A4A0
250064A0
02000010
00000000
000062A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


Foul Play (Physical attack, uses target's PA instead of caster's):


  <Patch name="Formula 61: Damage = Target PA * (PA+Y)">
    <Description>Physical attack, uses target's PA instead of caster's.  Does not accept evasion or elements, but does accept status procs and can crit.</Description>
    <Location file="BATTLE_BIN" offset="123b18">
E8FFBD27
1000BFAF
834C050C
00000000
A921060C
00000000
3021060C
00000000
03004014
00000000
AD1F060C
00000000
1000BF8F
1800BD27
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ec20c">
1980013C
982D228C
902D248C
36004290
FA382390
CE3822A4
21104300
D03822A4
80000534
250085A0
0800E003
00000000
    </Location>
  </Patch>
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on December 03, 2016, 11:26:35 am
More new formulas!

This formula will remove any active statuses on the target and apply them to self. Accuracy is Fa(MA+x)%


  <Patch name="Formula 13 = Fa(ma+x)% hit, steal status from target">
    <Description>Will take status that is active on target, cancel it, and apply it to

self.</Description>
    <Location file="BATTLE_BIN" offset="122164">
4E470508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="ead38">
E8FFBD27
1000BFAF
8922060C
00000000
1E004014
00000000
1980013C
982D228C
902D238C
8C2D2A8C
21200000
58004590
59004690
5A004790
5B004890
5C004990
1B0045A1
1C0046A1
1D0047A1
1E0048A1
1F0049A1
200065A0
210066A0
220067A0
230068A0
240069A0
1980013C
8C2D258C
902D238C
01000434
0000A4A0
000064A0
08000434
2500A4A0
250064A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


This formula will steal a random item from the target.  If the target has Maintenance or is naked, it'll do MP damage instead.  It uses vanilla Geomancy routine (which with my Formula Rebalance Pack turns into (PA+Y)*MA).  Credit goes to Glain for helping me write the stealing inner routine. :)


  <Patch name="Formula 53 - Steal random item from target, MP damage if unit has Maintenance or is

naked">
    <Description>Requires "Convert Damage to MP Damage routine" and "Steal/Break random slot inner

routine" to work.</Description>
    <Location file="BATTLE_BIN" offset="1235e4">
E8FFBD27
1000BFAF
5D2F060C
00000000
4421060C
00000000
16004014
00000000
8378050C
00000000
07004010
00000000
1980033C
902D638C
10000134
100061A0
0C000010
00000000
5017060C
00000000
A921060C
00000000
F277050C
00000000
1980033C
902D648C
01000234
000082A0
E93862A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

  <Patch name="Convert Damage to MP Damage Routine">
    <Description>A small inner routine.  Use this after the damage calculation to make the formula

deal MP damage instead of HP damage.</Description>
    <Location file="BATTLE_BIN" offset="f6fc8">
E8FFBD27
1000BFAF
1980023C
902D428C
20000334
04004494
040040A4
250043A0
912E060C
080044A4
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>

  <Patch name="Steal/Break random slot inner routine">
    <Description>Credit goes to Glain for helping me write this. :)  To be used as an inner routine

for abilities which steal or break a random item from a target.  Routine will return r2 = 0 if unit

has Maintenance or is naked.</Description>
    <Location file="BATTLE_BIN" offset="f720c">
E8FFBD27
1000BFAF
1400B0AF
1980013C
982D218C
00001034
91002290
00000000
04004230
2B004014
00000234
0800A427
1A000734
FF000334
21000B34
0E00EB10
00000000
21482700
00002291
00000000
06004310
00000000
04004010
00000000
21289000
0000A7A0
01001026
0100E724
92780508
00000000
16000012
00000234
C388000C
00000000
1A005000
10100000
0800A427
21288200
0000A690
1980013C
982D2A8C
902D238C
80000934
1A000834
21584601
00006C91
00000000
1A006CA0
E6FFCE24
0648C901
190069A0
06000010
00000000
1980013C
902D218C
00000234
000022A0
100022A0
1400B08F
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


Also it's time to get rid of Distribute.  Through a bunch of testing, I've figured out that Distribute was causing problems for many of my new reactions.  This clears up a bunch of space, fixes Distribute bugs on any of the Multi-Reaction Deluxe reactions, and clears Distribute's slot for use for something else.  Distribute's slot is not compatible with Multi-Reaction Deluxe, but it is compatible with another hack I'll post after this one:


  <Patch name="Disables Distribute">
    <Description>Completely disables the effects of Distribute.  This frees up Distribute's slot for other use (not compatible with Multi-reaction deluxe without further coding), and eliminates any weirdness/bugs that are related to use of Multi-reaction deluxe.</Description>
    <Location file="BATTLE_BIN" offset="125c94">
2B330608
    </Location>
    <Location file="BATTLE_BIN" offset="1262a8">
0800E003
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="124168">
812C0608
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="115bbc">
30F30508
00000000
    </Location>
  </Patch>


This changes Distribute to Synchronize - if a unit is targeted with a status effect, it will react by applying all its current effects to the target.  It reacts at a Br% as usual.  Requires Disable Distribute, and this code will break Secret Hunt/Train's code.


<Patch name="Distribute = Synchronize (Status infliction on a target has a Br% chance to inflict all current statuses on the caster)">
    <Description>Disables Secret Hunt/Train (use instead of Disable Secret Hunt/Train hack).  Requires Disable Distribute.</Description>
    <Location file="BATTLE_BIN" offset="124984">
7661050C
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f15d8">
E8FFBD27
1000BFAF
19800A3C
982D488D
902D498D
8D000391
25002491
02006330
38006010
00000000
08008430
35008010
00000000
21200001
5A32060C
00000000
30004014
00000000
19800A3C
982D488D
00000000
24000591
3378010C
64000434
28004014
00000000
19800A3C
982D488D
902D4B8D
8C2D498D
58000291
1B006391
00000000
25104300
1B0022A1
59000291
1C006391
00000000
25104300
1C0022A1
5A000291
1D006391
00000000
25104300
1D0022A1
5B000291
1E006391
00000000
25104300
1E0022A1
5C000291
1F006391
00000000
25104300
1F0022A1
C912060C
00000434
07004010
00000000
19800A3C
8C2D498D
01000134
000021A1
08000234
250022A1
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Timbo on December 03, 2016, 01:01:03 pm
Wow! These are great. I especially like the Status Steal formula. Can you make one without Faith?
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on December 03, 2016, 10:10:31 pm
Since you didn't specify whether you want 100% or MA+X% accuracy, I provided both. :)  Copy/paste one of these in place of the larger bit of code in the hack for this formula.

MA+X%:


E8FFBD27
1000BFAF
A122060C
00000000
1E004014
00000000
1980013C
982D228C
902D238C
8C2D2A8C
21200000
58004590
59004690
5A004790
5B004890
5C004990
1B0045A1
1C0046A1
1D0047A1
1E0048A1
1F0049A1
200065A0
210066A0
220067A0
230068A0
240069A0
1980013C
8C2D258C
902D238C
01000434
0000A4A0
000064A0
08000434
2500A4A0
250064A0
1000BF8F
1800BD27
0800E003
00000000


100%:


E8FFBD27
1000BFAF
1980013C
982D228C
902D238C
8C2D2A8C
21200000
58004590
59004690
5A004790
5B004890
5C004990
1B0045A1
1C0046A1
1D0047A1
1E0048A1
1F0049A1
200065A0
210066A0
220067A0
230068A0
240069A0
1980013C
8C2D258C
902D238C
01000434
0000A4A0
000064A0
08000434
2500A4A0
250064A0
1000BF8F
1800BD27
0800E003
00000000


Hope this would work for you. :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on December 05, 2016, 12:42:58 am
New stuff! :)

Formula 18 = Universal stat change formula at MA+X%.  This can create any amount of bonus/penalty to PA, MA, Speed, CT, Brave, Faith, and can also be used for Quick and CT = 0. Can also be used to level up +1 or level down -1.  Directions for use in description:


  <Patch name="Formula 18 = universal stat change at MA+X%">
    <Description>Directions for use: MA+X% is accuracy. Y is the stat that you want to affect.  Use Y= 16 for level up, 17 for level down, 18 for speed, 19 for CT, 20 for PA, 21 for MA, 22 for Brave, 23 for Faith. DO NOT USE OTHER VALUES FOR Y OR BAD THINGS WILL HAPPEN!  Use the status effect field as what you want for the bonus/penalty amount in hex.  Add +0x80 for bonus amounts (example: 81 = +1), otherwise numbers up to 0x7f are penalty amounts.  If changing CT, you can use FF for Quick and 7F for CT = 0.  Level up requires 80, and level down requires 1.  Do not use other values in combination with 16/17 for the status byte or bad things will happen!</Description>
    <Location file="BATTLE_BIN" offset="12229c">
F5480508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="eb3d4">
E8FFBD27
1000BFAF
A122060C
00000000
0A004014
00000000
1980083C
FA380291
902D038D
FB380491
21084300
000024A0
01000534
000065A0
250065A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


This version of the same hack includes a check for an ability to grant immunity to stat penalties:


  <Patch name="Formula 18 = universal stat change at MA+X%">
    <Description>Directions for use: MA+X% is accuracy. Y is the stat that you want to affect.  Use Y= 16 for level up, 17 for level down, 18 for speed, 19 for CT, 20 for PA, 21 for MA, 22 for Brave, 23 for Faith. DO NOT USE OTHER VALUES FOR Y OR BAD THINGS WILL HAPPEN!  Use the status effect field as what you want for the bonus/penalty amount in hex.  Add +0x80 for bonus amounts (example: 81 = +1), otherwise numbers up to 0x7f are penalty amounts.  If changing CT, you can use FF for Quick and 7F for CT = 0.  Level up requires 80, and level down requires 1.  Do not use other values in combination with 16/17 for the status byte or bad things will happen!  This version of the hack includes a check for a support ability (coded to 0x01c8 slot) that blocks all stat penalties.</Description>
    <Location file="BATTLE_BIN" offset="12229c">
59770508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="f6d64">
E8FFBD27
1000BFAF
A122060C
00000000
15004014
00000000
1980083C
982D068D
FB380491
8F00C690
FA380291
2000C630
0700C010
902D038D
80008630
0400C014
00000000
C310060C
00000000
06000010
00000000
21084300
000024A0
01000534
000065A0
250065A0
1000BF8F
1800BD27
0800E003
00000000
    </Location>
  </Patch>


This changes Counter to be a bit more badass... :)  Counter works as normal at Weapon Range, but it works as Counter Magic functionality for the Countergrasp flag.  So for example if you flagged Earth Slash as Countergrasp, and you hit a unit with Counter, it will Earth Slash you back!


  <Patch name="Counter = physical counterpart to Counter Magic">
    <Description>Counter will counter with the same move used on target, going by Countergrasp flag.</Description>
    <Location file="SCUS_942_21" offset="4F3E4">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="1173d4">
0B000534
00000000
94F9050C
01000734
    </Location>
  </Patch>

Fixed a bug with it. :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on December 13, 2016, 12:45:59 am
This is a fairly common request fulfilled. :)  Changes some of the more useless values for setting level in the entd (party +50 and up) into party level -x.  Will set lv = 1 if lv - x < 1.  This copies over the code for party lv - random, so it will now interpret that (along with party lv) as party lv, and since party lv +50 is the starting "0" point for this code, it is also interpreted as party lv.  Set levels and party +1-49 work as normal.  Thank you Glain for telling me what entries in patcher correspond to what values. :)


  <Patch name="Party lv+ 50+ interpreted as party lv - x">
    <Description>Party level, Party lv - random, and Party lv +50 are interpreted as Party Level.  Party Level +51 is interpreted as Party Level -1, Party Level +52 is interpreted as Party Level -2, etc. through party Lv +99 is interpreted as Party level -49.  Set levels and party +1-49 are interpreted as normal.</Description>
    <Location file="SCUS_942_21" offset="4b5dc">
      FF000332
      03006010
      FE000234
      06006214
      6400622C
      0680033C
      08636390
      00000000
      9D6B0108
      00007034
      11004014
      21180002
      0680023C
      08634290
      9600042E
      09008014
      00000000
      96000434
      23200402
      23804400
      1100001E
      00000000
      9D6B0108
      01001034
    </Location>
  </Patch>
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Timbo on December 16, 2016, 10:20:04 pm
With your oil/undead hack work the same for innate undead creatures, regular units inflicted with Undead status, and units equipped with the Cursed Ring? Does it stack with other elemental weaknesses/immunities/absorptions or overwrite them?
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on December 17, 2016, 08:49:22 am
Works for all undead (innate/item/casting undead).  Overwrites items' effects if it has to do with Dark/Holy for undead, and Fire for oil; otherwise doesn't (so you can have an undead guy who's immune to ice for example).
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Timbo on December 17, 2016, 01:03:38 pm
Quote from: Emmy on December 17, 2016, 08:49:22 am
Works for all undead (innate/item/casting undead).  Overwrites items' effects if it has to do with Dark/Holy for undead, and Fire for oil; otherwise doesn't (so you can have an undead guy who's immune to ice for example).
You put a lot of thought into this hack. Very nice.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on April 19, 2017, 12:39:03 pm
By request, posting here the Monster Tactics hack folder.  :)  This includes many updated versions of my hacks, new hacks, and modified versions of others' hacks. :)  It also includes other people's hacks, since it is what is used in MT and not just my own stuff.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Lloyd2k4 on July 04, 2017, 06:10:19 pm
Great hacks!  I'm personally using the MP Regen from Wall and MP Poison from blank status hack, but I'm encountering some issues with the Wall replacement.

Whenever I have a unit with the new status that was previously Wall, the character cannot be healed by any potions or anything, and that unit's turn is sometimes skipped.  I've been trying to figure out what's causing this.  I figured it's some old setting with the Wall status that I may need to tinker with (potentially in patcher?).  Does anyone have any insight?

Does the Mist/MP Poison patch have a dependency on another Wall-related hack?
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on July 05, 2017, 10:02:49 am
You have to disable wall's vanilla effect.

Quote

0x124AE2
change 40 to 00

0x137F56
change 80 to 00

This makes the status itself blank, but allows the CT to be used elsewhere, or you can code your own status effect if you really wanted to.

Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Lloyd2k4 on July 05, 2017, 11:42:16 am
Is that the same as the 'Wall loses all hardcoding' ASM hack?  I'm using that right now in conjunction with the MP Refresh/Poison, and I haven't encountered any issues yet.

I only ask because there doesn't appear to be an XML for that hack you just showed, unless it is literally the same as the above mentioned.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Heisho on July 26, 2017, 02:50:39 pm
These are great hacks Emmy, thanks a lot.

I don't know if you are willing to fulfill a request but here is it:
Since I'm not going to use Geomancy at all I was wondering if Counter Flood can behave like Counter Magic so we can counter abilities with the Counter Flood flag.

Once again thanks for the hacks, especially White Wind and Psyco Shift which are going to be part of my Blue Mage class.

Cheers
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Emmy on July 26, 2017, 11:36:20 pm
This hack will make Counter Flood cast any indexed ability with the Counter Flood flag as trigger.  If you're not using geomancy at all, this means you can change it to cast any other ability in the game.


  <Patch name="Counter Flood uses Flood Ball">
    <Description>This allows for Counter Flood to work by using an ability instead of vanilla geomancy.  If you changed geomancy with my other codes, this is required to make Counter Flood work.</Description>
    <Location file="SCUS_942_21" offset="4f3df">
      29
    </Location>
    <Location file="BATTLE_BIN" offset="11731c">
      21202002
      0B000534
      F7F80508
      7E000634  <!-- Ability used is indexed here (0x007e default) -->
    </Location>
  </Patch>


Change the 7e00 to reference whatever ability you want (bytes reversed).  For example if you want it to cast ability # 0123, replace 7e00 with 2301. 

I'll have to take a better look at the code to figure out if what you want can be done.  Just got home from work now/not really in the right mindset to do asm.
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Heisho on July 27, 2017, 01:49:14 am
This is remarkable and very close to what I thought would not be possible.

Once again Emmy you deliver great. Even if what I wanted cannot be done this still can play very well on my project.

Thank you very much. Get some well deserved rest.  :)
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Myrmidon on February 22, 2018, 01:15:50 am
love these, plus the others in Monster Tactics, and want to use some (many) for my hack.

How would I move Anger Point over to another skill? I need M.Talk for my hack, and I'm not exactly using the math blocking skill you've got there.  I'd love to keep Secret Hunt, too, honestly.

Unless the Talk formula just affects monsters now, in which case, awesome, no worries.  Still like to keep Secret Hunt in, though (but I love that poisontouch skill)

I've editied this like, 4 times.  just gonna work around, still, love these ASMs, and they deserve to be on the front page, at least - since they're not linked to in the big ASMs stickied thread
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Orkney on May 23, 2020, 12:01:53 pm
Hi,

Not really sure to post this worksheet here.

This is a little sheet i've done for the Magic evasion by Job hack.

MagicEvByJob.xlsx
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Heisho on May 23, 2020, 08:59:35 pm
Quote from: Orkney on May 23, 2020, 12:01:53 pmHi,

Not really sure to post this worksheet here.

This is a little sheet i've done for the Magic evasion by Job hack.

MagicEvByJob.xlsx

Great!, thanks a bunch for making that hack dummy friendly pal.

Keep up the good work!
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: Bora on July 24, 2022, 06:06:38 pm
Hi Emmy,

I have a bit of request with regard to your Move XX Rewrite. Can you rewrite the patch into which the Move XP/JP would have the vanilla effect, but the other changes you made would still be the same?

I like the idea of move XX up ability to stack but I find the PA/Speed changes to be too much on what I plan to do. :lol:

If it's possible, thank you. If not, I'll just adjust what I have in mind.

Thank you.  :D
Title: Re: Emmy's ASM thread (better stuff for monsters!)
Post by: greentealatte on December 29, 2023, 11:14:10 pm
Hi Emmy,

I am interested to use the multi-reaction deluxe ASM. E.g i might want to change PA save to cast an ability. How should i be editing the ASM code that you provided in the main thread?


edit: I figured out - the documentation in detail is in page 3. I have written some scripts to automate the process. Will share once i have cleaned everything up