• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

ASM Request: Stat Down Skills Accept Element

Started by Eternal248, January 22, 2012, 06:10:32 pm

Rfh

The game freezes with the second or he third hack.
  • Modding version: PSX
  • Discord username: rfh

Glain

I think I figured out what the problem is. I'm loading in a value from memory in a way that isn't really valid on real hardware but works on emulators (Loading a halfword from a non-even memory address). I'll have to rewrite the code that figures out the element and test, etc.
  • Modding version: Other/Unknown

Glain

All right, I've got another version of the patch that should hopefully fix the problem.


<Patch name="All formulas apply elemental">
    <Description>All formulas apply elemental</Description>
    <Location file="BATTLE_BIN" offset="1249F0">
      FE1B0608
    </Location>
    <Location file="BATTLE_BIN" offset="11FFE0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121794">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121E2C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="122D20">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12361C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5C78">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF1C">
      1980083C
      902D098D
      8C2D0A8D
      04002B95
      00000000
      43580B00
      04002BA5
      06004BA5
      00000000
      00000000
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF64">
      1980083C
      902D098D
      8C2D0A8D
      10002395
      04002485
      00086334
      40200400
      100023A5
      040024A5
      060044A5
    </Location>
    <Location file="BATTLE_BIN" offset="120010">
      4C73050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5D30">
      1980083C
      F4380991
      F3380E91
      004A0900
      25482E01
      F7381091
      04390C91
      D6380D91
      04200A34
      24582A01
      05006A11
      00000000
      0300A011
      00000000
      5D730508
      00000000
      25800C02
      043900A1
      0800E003
      F73800A1
    </Location>
    <Location file="BATTLE_BIN" offset="11DEB8">
      1980033C
      902D638C
      6873050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5DA0">
      1980083C
      902D0E8D
      8C2D098D
      40000F34
      80000A34
      0400CD95
      06002B95
      0400C0A5
      2500CFA1
      0600CDA5
      060020A5
      25002AA5
      0800E003
      04002BA5
    </Location>
    <Location file="BATTLE_BIN" offset="11DF50">
      8073050C
    </Location>
    <Location file="BATTLE_BIN" offset="F5E00">
      1980083C
      942D0E8D
      902D098D
      7100CE91
      8C2D0C8D
      2470C501
      0800C011
      04002A95
      05000B34
      18004B01
      12680000
      0200AD21
      83680D00
      04002DA5
      06008DA5
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12002C">
      1980033C
      902D638C
      00000000
      04006284
      00000000
      40100200
      040062A4
      22006290
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1200FC">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11EFA4">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120060">
      00000000
      25008890
      00000000
      08000835
      250088A0
    </Location>
  </Patch>
  • Modding version: Other/Unknown

Rfh

With your new hack, the game isn't freeze, but happen a extrange thing,  the damage isn't showing with some formulas,  including the attack command.
  • Modding version: PSX
  • Discord username: rfh

Glain

Is the damage just not showing up in the projected damage or does it actually not happen?
  • Modding version: Other/Unknown

Rfh

Quote from: Glain on February 28, 2012, 11:12:25 am
Is the damage just not showing up in the projected damage or does it actually not happen?

Damage occurs, but not shown in the table of information (only you can see the status that you can cause and the percentage to hit) and you can't see the damage while you doing the damage.
  • Modding version: PSX
  • Discord username: rfh

Glain

This is a puzzler. I can't reproduce this, so I'll have to ask some questions about it. This is all in an effort to isolate the code that's causing the damage not to show up:

1. Does it happen with the first patch in the thread? (Damage not showing)

2. Does it happen with this partial version of the patch?

<Patch name="All formulas apply elemental (partial)">
    <Description>All formulas apply elemental (partial)</Description>
    <Location file="BATTLE_BIN" offset="1249F0">
      FE1B0608
    </Location>
    <Location file="BATTLE_BIN" offset="11FFE0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121794">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121E2C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="122D20">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12361C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5C78">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF1C">
      1980083C
      902D098D
      8C2D0A8D
      04002B95
      00000000
      43580B00
      04002BA5
      06004BA5
      00000000
      00000000
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF64">
      1980083C
      902D098D
      8C2D0A8D
      10002395
      04002485
      00086334
      40200400
      100023A5
      040024A5
      060044A5
    </Location>
    <Location file="BATTLE_BIN" offset="120010">
      4C73050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5D30">
      1980083C
      F4380991
      F3380E91
      004A0900
      25482E01
      F7381091
      04390C91
      D6380D91
      04200A34
      24582A01
      05006A11
      00000000
      0300A011
      00000000
      5D730508
      00000000
      25800C02
      043900A1
      0800E003
      F73800A1
    </Location>
  </Patch>
  • Modding version: Other/Unknown

Rfh

Quote from: Glain on February 28, 2012, 07:59:38 pm

1. Does it happen with the first patch in the thread? (Damage not showing)

No


2. Does it happen with this partial version of the patch?

No
  • Modding version: PSX
  • Discord username: rfh

Glain

Hmm... not what I was expecting. I have to narrow it down a bit more.

What about this one?

  <Patch name="All formulas apply elemental (Partial)">
    <Description>All formulas apply elemental (Partial)</Description>
    <Location file="BATTLE_BIN" offset="1249F0">
      FE1B0608
    </Location>
    <Location file="BATTLE_BIN" offset="11FFE0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121794">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121E2C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="122D20">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12361C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5C78">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF1C">
      1980083C
      902D098D
      8C2D0A8D
      04002B95
      00000000
      43580B00
      04002BA5
      06004BA5
      00000000
      00000000
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF64">
      1980083C
      902D098D
      8C2D0A8D
      10002395
      04002485
      00086334
      40200400
      100023A5
      040024A5
      060044A5
    </Location>
    <Location file="BATTLE_BIN" offset="120010">
      4C73050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5D30">
      1980083C
      F4380991
      F3380E91
      004A0900
      25482E01
      F7381091
      04390C91
      D6380D91
      04200A34
      24582A01
      05006A11
      00000000
      0300A011
      00000000
      5D730508
      00000000
      25800C02
      043900A1
      0800E003
      F73800A1
    </Location>
    <Location file="BATTLE_BIN" offset="11DEB8">
      1980033C
      902D638C
      6873050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5DA0">
      1980083C
      902D0E8D
      8C2D098D
      40000F34
      80000A34
      0400CD95
      06002B95
      0400C0A5
      2500CFA1
      0600CDA5
      060020A5
      25002AA5
      0800E003
      04002BA5
    </Location>
    <Location file="BATTLE_BIN" offset="11DF50">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5E00">
      1980083C
      942D0E8D
      902D098D
      7100CE91
      04002A95
      2470C501
      0700C011
      8C2D0C8D
      80680A00
      2168AA01
      0200AD21
      83680D00
      04002DA5
      06008DA5
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12002C">
      1980033C
      902D638C
      00000000
      04006284
      00000000
      40100200
      040062A4
      22006290
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1200FC">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11EFA4">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120060">
      00000000
      25008890
      00000000
      08000835
      250088A0
    </Location>
  </Patch>
  • Modding version: Other/Unknown

Rfh

With this partial patch, the damage isn't showing.
  • Modding version: PSX
  • Discord username: rfh

Glain

I've made an attempt at fixing this.


<Patch name="All formulas apply elemental">
    <Description>All formulas apply elemental</Description>
    <Location file="BATTLE_BIN" offset="1249F0">
      FE1B0608
    </Location>
    <Location file="BATTLE_BIN" offset="11FFE0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121794">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121E2C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="122D20">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12361C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5C78">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF1C">
      1980083C
      902D098D
      8C2D0A8D
      04002B95
      00000000
      43580B00
      04002BA5
      06004BA5
      00000000
      00000000
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF64">
      1980083C
      902D098D
      8C2D0A8D
      10002395
      04002485
      00086334
      40200400
      100023A5
      040024A5
      060044A5
    </Location>
    <Location file="BATTLE_BIN" offset="120010">
      4C73050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5D30">
      1980083C
      F4380991
      F3380E91
      004A0900
      25482E01
      F7381091
      04390C91
      D6380D91
      04200A34
      24582A01
      05006A11
      00000000
      0300A011
      00000000
      5D730508
      00000000
      25800C02
      902D098D
      043900A1
      04002A91
      25002B91
      F73800A1
      02004011
      80006C35
      25002CA1
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DEB8">
      1980033C
      902D638C
      6873050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5DA0">
      1980083C
      902D0E8D
      8C2D098D
      40000F34
      80000A34
      0400CD95
      06002B95
      0400C0A5
      2500CFA1
      0600CDA5
      060020A5
      25002AA5
      0800E003
      04002BA5
    </Location>
    <Location file="BATTLE_BIN" offset="11DF50">
      8073050C
    </Location>
    <Location file="BATTLE_BIN" offset="F5E00">
      1980083C
      942D0E8D
      902D098D
      7100CE91
      04002A95
      2470C501
      0700C011
      8C2D0C8D
      80680A00
      2168AA01
      0200AD21
      83680D00
      04002DA5
      06008DA5
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12002C">
      1980033C
      902D638C
      00000000
      04006284
      00000000
      40100200
      040062A4
      22006290
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="1200FC">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11EFA4">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120060">
      00000000
      25008890
      00000000
      08000835
      250088A0
    </Location>
  </Patch>


If the above doesn't fix it, try removing the two <Location> blocks near the bottom of the patch that just contain 0800E003 and 00000000 and let me know if that partial patch shows the damage.
  • Modding version: Other/Unknown

Rfh

With this partial patch, the damage is showing. But in this patch there are still things to fix, like the elemental strength, and elemental absorb.
  • Modding version: PSX
  • Discord username: rfh

Glain

Hmm, all right. I take that to mean the attempted fix didn't work, then?

In the partial patch, is the problem with strengthen that it does too much damage (XA * (5/4) * WP) * (5/4)?
In the partial patch, is the problem with absorb that it does 0 healing?
  • Modding version: Other/Unknown

Rfh

Quote from: Glain on March 02, 2012, 10:36:07 am
Hmm, all right. I take that to mean the attempted fix didn't work, then?

In the partial patch, is the problem with strengthen that it does too much damage (XA * (5/4) * WP) * (5/4)? Yes
In the partial patch, is the problem with absorb that it does 0 healing? Yes


And I think that some formulas can't strengthen... Basically the same things that happens in EBOOT  happens in ePSXe.
  • Modding version: PSX
  • Discord username: rfh

Glain

This is an attempt at the full patch. Does this work?


  <Patch name="All formulas apply elemental">
    <Description>All formulas apply elemental</Description>
    <Location file="BATTLE_BIN" offset="1249F0">
      FE1B0608
    </Location>
    <Location file="BATTLE_BIN" offset="11FFE0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121794">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121E2C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="122D20">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12361C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5C78">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF1C">
      1980083C
      902D098D
      8C2D0A8D
      04002B95
      00000000
      43580B00
      04002BA5
      06004BA5
      00000000
      00000000
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF64">
      1980083C
      902D098D
      8C2D0A8D
      10002395
      04002485
      00086334
      40200400
      100023A5
      040024A5
      060044A5
    </Location>
    <Location file="BATTLE_BIN" offset="120010">
      4C73050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5D30">
      1980083C
      F4380991
      F3380E91
      004A0900
      25482E01
      F7381091
      04390C91
      D6380D91
      04200A34
      24582A01
      05006A11
      00000000
      0300A011
      00000000
      5D730508
      00000000
      25800C02
      043900A1
      0800E003
      F73800A1
    </Location>
    <Location file="BATTLE_BIN" offset="11DEB8">
      1980033C
      902D638C
      6873050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5DA0">
      1980083C
      902D0E8D
      8C2D098D
      40000F34
      80000A34
      0400CD95
      06002B95
      0400C0A5
      2500CFA1
      0600CDA5
      060020A5
      25002AA5
      0800E003
      04002BA5
    </Location>
    <Location file="BATTLE_BIN" offset="11DF50">
      8073050C
    </Location>
    <Location file="BATTLE_BIN" offset="F5E00">
      1980083C
      942D0E8D
      902D098D
      7100CE91
      04002A95
      2470C501
      0700C011
      8C2D0C8D
      80680A00
      2168AA01
      0200AD21
      83680D00
      04002DA5
      06008DA5
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12002C">
      1980033C
      902D638C
      00000000
      04006284
      00000000
      40100200
      040062A4
      22006290
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120060">
      00000000
      25008890
      00000000
      08000835
      250088A0
    </Location>
    <Location file="BATTLE_BIN" offset="120124">
      501C0608
    </Location>
    <Location file="BATTLE_BIN" offset="11EFA4">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11EFFC">
      0800E003
      00000000
    </Location>
  </Patch>


One other thing I didn't mention: Everything is based on the element of the ability, not the weapon, unless you're using the Attack command (00) or the "Weapon Strike" flag and the flag under "Hit Allies" in the bottom section of FFTP are checked for the current ability, in which case the ability's element is combined with the weapon's. (For example, by default, swordskills don't use the weapon element.)
  • Modding version: Other/Unknown

Rfh

In your last patch happens the same problems.
  • Modding version: PSX
  • Discord username: rfh

Glain

Er, what? You're saying you actually get different results (in amounts of damage!) between trying this on an emulator and on the eboot? The latest patch doesn't double apply strengthen, for example, and doesn't do it in my testing on both emulators. If that's happening, it's never happened before, as far as I know.

Also, the latest patch doesn't overwrite everything the old patches did, so best to try each version on a clean ISO (backup).
  • Modding version: Other/Unknown

Glain

Found a problem where absorb would happen before strengthen, so if you absorbed, you'd only absorb the non-strengthened damage. This patch should fix that. I'm interested to hear feedback from anyone trying this out.


  <Patch name="All formulas apply elemental">
    <Description>All formulas apply elemental</Description>
    <Location file="BATTLE_BIN" offset="1249F0">
      FE1B0608
    </Location>
    <Location file="BATTLE_BIN" offset="11FFE0">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121794">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="121E2C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="122D20">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12361C">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5C78">
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF1C">
      1980083C
      902D098D
      8C2D0A8D
      04002B95
      00000000
      43580B00
      04002BA5
      06004BA5
      00000000
      00000000
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DF64">
      1980083C
      902D098D
      8C2D0A8D
      10002395
      04002485
      00086334
      40200400
      100023A5
      040024A5
      060044A5
    </Location>
    <Location file="BATTLE_BIN" offset="120010">
      4C73050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5D30">
      1980083C
      F4380991
      F3380E91
      004A0900
      25482E01
      F7381091
      04390C91
      D6380D91
      04200A34
      24582A01
      05006A11
      00000000
      0300A011
      00000000
      5D730508
      00000000
      25800C02
      043900A1
      F73800A1
      80730508
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11DEB8">
      1980033C
      902D638C
      6873050C
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="F5DA0">
      1980083C
      902D0E8D
      8C2D098D
      40000F34
      80000A34
      0400CD95
      06002B95
      0400C0A5
      2500CFA1
      0600CDA5
      060020A5
      25002AA5
      0800E003
      04002BA5
    </Location>
    <Location file="BATTLE_BIN" offset="F5E00">
      1980083C
      942D0E8D
      902D098D
      7100CE91
      04002A95
      2470D001
      0700C011
      8C2D0C8D
      80680A00
      2168AA01
      0200AD21
      83680D00
      04002DA5
      06008DA5
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="12002C">
      1980033C
      902D638C
      00000000
      04006284
      00000000
      40100200
      040062A4
      22006290
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="120060">
      00000000
      25008890
      00000000
      08000835
      250088A0
    </Location>
    <Location file="BATTLE_BIN" offset="120124">
      501C0608
    </Location>
    <Location file="BATTLE_BIN" offset="11EFA4">
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11EFFC">
      0800E003
      00000000
    </Location>
  </Patch>
  • Modding version: Other/Unknown

Eternal

To be clear, if I set Drain to be Dark Elemental, it would properly not affect Lucavi now if they null Dark?
  • Modding version: PSX & WotL
"You, no less human than we? Ha! Now there's a beastly thought. You've been less than we from the moment your baseborn father fell upon your mother in whatever gutter saw you sired! You've been chattel since you came into the world drenched in common blood!"
  • Discord username: eternal248#1817

Glain

  • Modding version: Other/Unknown