Final Fantasy Hacktics

Modding => Help! => Topic started by: bht on January 11, 2014, 10:50:45 pm

Title: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: bht on January 11, 2014, 10:50:45 pm
It works fine in an emulator. If I turn the game into an EBOOT with PSX2PSP, the damage reduction goes from XA*0.75 to XA*0.33.

I was wondering if there is a quick fix for this (it's the only ASM that I've run into an issue with on an EBOOT so far), and if so, do I need to get my Raw out or can I just patch it on top?

Thanks. And if it helps, this is the ASM:
BATTLE_BIN, offset 11F378, 4B4D0508
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: Angel on January 11, 2014, 11:03:23 pm
LOOOOOOOOOOTS of ASM hacks bork with PSP/console because of poor practices. Like, too many to list. Like, an embarrassing number. Someone will likely notice and fix eventually, though, especially since you mentioned it.
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: 3lric on January 11, 2014, 11:03:49 pm
Which version is it? Can you post your XML file into a spoiler and post it here?
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: Angel on January 11, 2014, 11:16:44 pm
According to Xifanie, that hack is written in such a way that makes 'wtf' a very appropriate response to looking at it. So yeah. It will be fixed, though.
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: bht on January 12, 2014, 12:08:17 am
Quote from: Elric on January 11, 2014, 11:03:49 pm
Which version is it? Can you post your XML file into a spoiler and post it here?


I think it's the one that comes with FFTPatcher suite 482.

<Patch name="Defend reduces physical dmg by 25%">
<Location file="BATTLE_BIN" offset="11F378">
4B4D0508
</Location>
<Location file="BATTLE_BIN" offset="11E48A">42</Location>
<Location file="BATTLE_BIN" offset="EC52C">
21204000
58008390
02006330
03006014
5B008290
E0180608
00000000
CE382384
21106000
40100200
21104300
82100200
CE3822A4
982D228C
5B004290
E0180608
00000000
</Location>
</Patch>


Quote from: Toshiko on January 11, 2014, 11:03:23 pm
LOOOOOOOOOOTS of ASM hacks bork with PSP/console because of poor practices. Like, too many to list. Like, an embarrassing number. Someone will likely notice and fix eventually, though, especially since you mentioned it.


The only other one I've had an issue with is Equip Crossbow also equips Bow, but I haven't tried too many. Might have to go emulator. Unfortunate, I like my psp.
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: Zenko on January 12, 2014, 10:30:57 am
This should do, and should work on console/PSP

<Patch name="Defend reduces physical dmg by 25%">
<Location file="BATTLE_BIN" offset="11F378">
4B4D0508
</Location>
<Location file="BATTLE_BIN" offset="11E48A">42</Location>
<Location file="BATTLE_BIN" offset="EC52C">
58004390
00000000
02006330
0A006010
00000000
CE382384
00000000
21106000
40100200
21104300
82100200
CE3822A4
982D228C
00000000
5B004290
E0180608
00000000
</Location>
</Patch>
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: Timbo on January 12, 2014, 11:09:12 am
Bad Ass! I've been waiting for this since 1.3 was this site's premier patch.
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: formerdeathcorps on January 12, 2014, 12:54:57 pm
This is an outdated version of the defend hack.  Please use the following.
  <Patch name="Status effect bonus damage hack">
    <Description>
      V1/V2/V3:
   0x80 - Faith
   0x40 - Innocent
   0x20 - Charm
   0x10 - Sleep
   0x08 - Don't Move
   0x04 - Don't Act
   0x02 - Reflect
   0x01 - Death Sentence
      W1/W2/W3:
   0x80 - Oil
   0x40 - Float
   0x20 - Reraise
   0x10 - Transparent
   0x08 - Berserk
   0x04 - Chicken
   0x02 - Frog
   0x01 - Critical
      X1/X2/X3:
   0x80 - Poison
   0x40 - Regen
   0x20 - Protect
   0x10 - Shell
   0x08 - Haste
   0x04 - Slow
   0x02 - Stop
   0x01 - Wall
      Y1/Y2/Y3:
   0x80 -
   0x40 - Crystal
   0x20 - Dead
   0x10 - Undead
   0x08 - Charging
   0x04 - Jump
   0x02 - Defending
   0x01 - Performing
      Z1/Z2/Z3:
   0x80 - Petrify
   0x40 - Invite
   0x20 - Darkness
   0x10 - Confusion
   0x08 - Silence
   0x04 - Blood Suck
   0x02 - Cursed
   0x01 - Treasure
      V1/W1/X1/Y1/Z1 correspond to status effects that multiply physical attacks by M1 / 128.
      V2/W2/X2/Y2/Z2 correspond to status effects that multiply physical attacks by M2 / 128. These stack with the M1 multiplier.
      V3/W3/X3/Y3/Z3 correspond to status effects that multiply magical attacks by M3 / 128.
        190% is M1/M2/M3 = F4
        183% is M1/M2/M3 = EB
        180% is M1/M2/M3 = E7
        175% is M1/M2/M3 = E0
        170% is M1/M2/M3 = DA
        166% is M1/M2/M3 = D6
        160% is M1/M2/M3 = CD
        150% is M1/M2/M3 = C0 (default)
        140% is M1/M2/M3 = B4
        133% is M1/M2/M3 = AB
        130% is M1/M2/M3 = A7
        125% is M1/M2/M3 = A0
        120% is M1/M2/M3 = 9A
        117% is M1/M2/M3 = 96
        110% is M1/M2/M3 = 8D
        90% is M1/M2/M3 = 74
        83% is M1/M2/M3 = 6B
        80% is M1/M2/M3 = 67
        75% is M1/M2/M3 = 60
        70% is M1/M2/M3 = 5A
        66% is M1/M2/M3 = 56
        60% is M1/M2/M3 = 4D
        50% is M1/M2/M3 = 40
        40% is M1/M2/M3 = 34
        33% is M1/M2/M3 = 2B
        30% is M1/M2/M3 = 27
        25% is M1/M2/M3 = 20
        20% is M1/M2/M3 = 1A
        17% is M1/M2/M3 = 16
        10% is M1/M2/M3 = D
      To figure out the correct number for a V/W/X/Y/Z variable, add up the numbers corresponding to all the status effects for a given variable. If you didn't use any statii belonging to a certain variable, that variable has value 00.
      For example, if I want Chicken and Frog to take 1.5x physical damage, then W1 = 4 (Chicken) + 2 (Frog) = 06 and M1 = C0. Notice that I also could have used W2 and M2, but NOT BOTH W1/M1 AND W2/M2.
      For example, if I want Blind and Confuse to take 1.33x magical damage, then Z3 = 20 (Darkness) + 10 (Confusion) =  37 and M3 = AB.
    </Description>
    <Location file="BATTLE_BIN" offset="11F3C4">
      5800648C
    </Location>
    <Variable name="V1" file="BATTLE_BIN" default="10" offset="11F3C8"/>
    <Location file="BATTLE_BIN" offset="11F3C9">
      004230
    </Location>
    <Variable name="W1" file="BATTLE_BIN" offset="11F3CC"/>
    <Variable name="X1" file="BATTLE_BIN" offset="11F3CD"/>
    <Location file="BATTLE_BIN" offset="11F3CE">
      013C
    </Location>
    <Variable name="Y1" file="BATTLE_BIN" default="08" offset="11F3D0"/>
    <Variable name="Z1" file="BATTLE_BIN" offset="11F3D1"/>
    <Location file="BATTLE_BIN" offset="11F3D2">
      2134
      24208100
      25208200
      08008010
      00000000
      1980043C
      CE388294
    </Location>
    <Variable name="M1" file="BATTLE_BIN" default="C0" offset="11F3EC"/>
    <Location file="BATTLE_BIN" offset="11F3ED">
      000134
      19004100
      12100000
      C2110200
      CE3882A4
      5C006290
      5800648C
    </Location>
    <Variable name="V2" file="BATTLE_BIN" offset="11F408"/>
    <Location file="BATTLE_BIN" offset="11F409">
      004230
    </Location>
    <Variable name="W2" file="BATTLE_BIN" default="06" offset="11F40C"/>
    <Variable name="X2" file="BATTLE_BIN" offset="11F40D"/>
    <Location file="BATTLE_BIN" offset="11F40E">
      013C
    </Location>
    <Variable name="Y2" file="BATTLE_BIN" offset="11F410"/>
    <Variable name="Z2" file="BATTLE_BIN" offset="11F411"/>
    <Location file="BATTLE_BIN" offset="11F412">
      2134
      24208100
      25208200
      08008010
      00000000
      1980043C
      CE388294
    </Location>
    <Variable name="M2" file="BATTLE_BIN" default="C0" offset="11F42C"/>
    <Location file="BATTLE_BIN" offset="11F42D">
      000134
      19004100
      12100000
      C2110200
      CE3882A4
      00000000
      00000000
      00000000
      00000000
      00000000
      00000000
      0800E003
      00000000
    </Location>
    <Location file="BATTLE_BIN" offset="11F4B4">
      5C004390
      5800448C
    </Location>
    <Variable name="V3" file="BATTLE_BIN" offset="11F4BC"/>
    <Location file="BATTLE_BIN" offset="11F4BD">
      006330
    </Location>
    <Variable name="W3" file="BATTLE_BIN" default="06" offset="11F4C0"/>
    <Variable name="X3" file="BATTLE_BIN" offset="11F4C1"/>
    <Location file="BATTLE_BIN" offset="11F4C2">
      013C
    </Location>
    <Variable name="Y3" file="BATTLE_BIN" offset="11F4C4"/>
    <Variable name="Z3" file="BATTLE_BIN" offset="11F4C5"/>
    <Location file="BATTLE_BIN" offset="11F4C6">
      2134
      24208100
      25208300
      07008010
      1980033C
      CE386294
    </Location>
    <Variable name="M3" file="BATTLE_BIN" default="C0" offset="11F4DC"/>
    <Location file="BATTLE_BIN" offset="11F4DD">
      000134
      19004100
      12100000
      C2110200
      CE3862A4
      0800E003
      00000000
    </Location>
  </Patch>

The default values are V1/W1/X1/Y1/Z1/M1 are 10,0,0,8,0,C0, which means that charging and sleep on target cause 1.5x physical damage.
The default values are V2/W2/X2/Y2/Z2/M2 are 0,6,0,0,0,C0, which means that frog and chicken on target cause 1.5x physical damage, and it stacks on the above.
The default values are V3/W3/X3/Y3/Z3/M3 are 0,6,0,0,0,C0, which means that frog and chicken on target cause 1.5x magical damage.

If you want to add in defend gives 25% DMG reduction:
1) Get an unaltered ISO
2) Apply the above ASM, but merge V1-Z1 with V2-Z2.  Specifically, this means that V1/W1/X1/Y1/Z1/M1 are 10,6,0,8,0,C0, which means that charging, frog, chicken, and sleep on target cause 1.5x physical damage.
3) Change V2-Z2 to 0,0,0,2,0,60, which means defend on target causes 0.75x physical damage, stacking with the above.

NOTE: This has a limitation that you can no longer stack frog with sleep to get double the damage bonus.
Title: Re: Specific issue with an ASM (Defend = 25% dmg reduction)
Post by: bht on January 12, 2014, 03:57:05 pm
Thanks!