• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 02:55:59 pm

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


Emmy's ASM thread (better stuff for monsters!)

Started by Emmy, January 03, 2016, 02:11:06 pm

Ashiel

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

Emmy

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. :(
  • Modding version: PSX

Emmy

October 29, 2016, 03:03:07 pm #42 Last Edit: October 29, 2016, 09:26:23 pm by Emmy
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:









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. :)



**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. :)
  • Modding version: PSX

Timbo

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.
  • Modding version: PSX
  • Discord username: Timbo

Emmy

Just change in Attack.out to second state instead of first state. :)  You need those files too.
  • Modding version: PSX

Emmy

November 13, 2016, 03:17:07 pm #45 Last Edit: November 13, 2016, 03:54:01 pm by Emmy
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 :) :) :)
  • Modding version: PSX

Emmy

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.

  • Modding version: PSX

Emmy

November 17, 2016, 12:39:19 am #47 Last Edit: November 22, 2016, 01:34:49 am by Emmy
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>
  • Modding version: PSX

Emmy

December 03, 2016, 11:26:35 am #48 Last Edit: December 03, 2016, 10:03:57 pm by Emmy
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>
  • Modding version: PSX

Timbo

Wow! These are great. I especially like the Status Steal formula. Can you make one without Faith?
  • Modding version: PSX
  • Discord username: Timbo

Emmy

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. :)
  • Modding version: PSX

Emmy

December 05, 2016, 12:42:58 am #51 Last Edit: December 07, 2016, 12:17:14 pm by Emmy
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. :)
  • Modding version: PSX

Emmy

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>
  • Modding version: PSX

Timbo

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?
  • Modding version: PSX
  • Discord username: Timbo

Emmy

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).
  • Modding version: PSX

Timbo

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.
  • Modding version: PSX
  • Discord username: Timbo

Emmy

April 19, 2017, 12:39:03 pm #56 Last Edit: May 17, 2017, 05:41:04 pm by Emmy
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.
  • Modding version: PSX

Lloyd2k4

July 04, 2017, 06:10:19 pm #57 Last Edit: July 04, 2017, 09:02:35 pm by Lloyd2k4
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?
  • Modding version: PSX

Emmy

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.

  • Modding version: PSX

Lloyd2k4

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.
  • Modding version: PSX