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

New Support Skillsets?

Started by Darkholme, May 07, 2014, 05:17:57 am

Darkholme

May 07, 2014, 05:17:57 am Last Edit: May 07, 2014, 05:31:20 am by Darkholme
So I'm looking for some assistance.

Earlier today I was pointed in the direction of this thread:
http://ffhacktics.com/smf/index.php?topic=10132.0

Here's the most relevant bit:
Quote from: Pride on December 08, 2013, 04:12:00 am
<?xml version="1.0" encoding="utf-8" ?>
<Patches> 
<Patch name="Support Equip Jump">
    <Description>Support skill below Non-Charge gives access to skillset x34</Description>
   <Location file="BATTLE_BIN" offset="F762C">
      E8FFBD27
     1000BFAF
     92004392
     00000000
     02006330
     03006010
     21302002
     7E69060C
     34000534
     12004392
     1000BF8F
     1800BD27
     0800E003
     00000000
     92006590
     00000000
     0200A230
     04004010
     00000000
     34000234
     000002A2
     01001026
     FF000234
     000002A2
     0800E003
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="11A4F0">
     9979050C
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="13347C">
     8B79050C
   </Location>
  </Patch>
</Patches>

x92 is the support set, x02 is the specific support skill in the set, and x34 is the skillset.


I'm trying to determine if this is doable for other skillsets, and in other locations.

Ideally, I would like to do this 3 more times. Once for Charge, once for Throw, and once for Item; then I can focus on giving those jobs more interesting skill lists.

changing the x34 to x39(throw), x9c(charge), and xa1(item) is straightforward.

I'm not clear on how I come up with the appropriate numbers to replace the x92 and the x02. Can someone give me a hand figuring that out? I was thinking I would use x01e5, x01e1, and if possible x01bb (which I no longer need since I have removed all of the item break skills). Can someone help me figure out how to get the "support set" and "support skill" within the set?

Choto

From the wiki: http://ffhacktics.com/wiki/Battle_Stats
Reaction abilities
0x008B:
0x80 = A Save
0x40 = MA Save
0x20 = Speed Save
0x10 = Sunken State
0x08 = Caution
0x04 = Dragon Spirit
0x02 = Regenerator
0x01 = Brave Up
0x008C:
0x80 = Face Up
0x40 = HP Restore
0x20 = MP Restore
0x10 = Critical Quick
0x08 = Meatbone Slash
0x04 = Counter Magic
0x02 = Counter Tackle
0x01 = Counter Flood
0x008D:
0x80 = Absorb Used MP
0x40 = Gilgame Heart
0x20 = Reflect
0x10 = Auto Potion
0x08 = Counter
0x04 =
0x02 = Distribute
0x01 = MP Switch
0x008E:
0x80 = Damage Split
0x40 = Weapon Guard
0x20 = Finger Guard
0x10 = Abandon
0x08 = Catch
0x04 = Blade Grasp
0x02 = Arrow Guard
0x01 = Hamedo
Support abilities
0x008F:
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:
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:
0x80 = Train
0x40 = Secret Hunt
0x20 = Martial Arts
0x10 = Monster Talk
0x08 = Throw Item
0x04 = Maintenance
0x02 = Two Hands
0x01 = Two Swords
0x0092:
0x80 = Monster Skill
0x40 = Defend
0x20 = Equip Change
0x10 =
0x08 = Short Charge
0x04 = Non-charge
0x02 =
0x01 =
Movement abilities
0x0093:
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:
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:
0x80 = Move in Water (yes, this should be named Walk on Water)
0x40 = Walk on Water (yes, this should be named Move in Water)
0x20 = Move on Lava
0x10 = Move Underwater
0x08 = Float
0x04 = Fly
0x02 = Silent Walk
0x01 = Move-Find Item


The R/S/M that a unit has active are set here in battle. So if the value at 0x95 in unit data had 0xF0, the unit would have move in water, walk on water, move on lava, and move underwater active. Just pick the corresponding Byte and Value for the support ability that you want. So 0x92/0x10 would be 0x1E1, 0x92/0x01 would be 0x1E5, etc.

You can only do this for one skillset the way this hack is currently set up though. Alternatively you could try the ALMA monster to add skillsets, but it's known to be buggy. Celdia could give you the best info for that.

Also, this topic should be in the help section :P Elric gonna yell at youuuuu

Pride

It can be expanded to include other skillsets (I made it, I should know) but you might run into issues with the AI not being able to use them because they'll have access to too many options depending on how large your skillsets are.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Darkholme

May 07, 2014, 02:09:57 pm #3 Last Edit: May 07, 2014, 03:06:26 pm by Darkholme
@Pride: Thanks, for the heads up. I knew about that particular limitation. I don't think that will be a large concern for me, though I may yank a few of the less necessary skills to make sure that doesn't happen. There aren't that many skillsets with more than 8 or 9 abilities, and I imagine I could trim down some of the ones that have more than that to cut out some of the nonessentials.

@Choto: Thanks Choto, I hadn't seen that page before. That's going to make this pretty straightforward.

Pride: If I were to change the value of x91/x04 (Maintenance) to give me a skillset, would it cease doing Maintenance? (I'm hoping for a yes)
Would it cause major problems? (hoping for a no)

I'm also cool with replacing Monster Skill, if that would work better.

Basically I need just one more slot of "Support Skill" than is empty, and I'm hoping to take a slot from one of those two. (I will go test them out now, but if you know of any hiccups it may cause that I might miss, I would appreciate the heads up.)

[Sorry about the doublepost. I Fixed it]

Choto

No, it won't cease doing maintenance. It only adds a skillset, that's all. Will this cause major problems? No other than the R/S/M will still perform its original function.

Although, it wouldn't be hard to set a breakpoint on that R/S/M value in unit data, find where it does the maintenance stuff and break it.

Also, use the edit button instead of double-posting or Elric will definitely yell at you. :P

Darkholme

So I tried them out, and the only one that's showing up selectable is Jump. My Customized Item, Charge, and Throw don't.

Here are the individual patches. Did I screw something up?

Quote<Patch name="Support Equip Throw">
    <Description>Support skill below Equip Change gives access to skillset x39</Description>
   <Location file="BATTLE_BIN" offset="F762C">
     E8FFBD27
     1000BFAF
     92004392
     00000000
     10006330
     03006010
     21302002
     7E69060C
     39000534
     12004392
     1000BF8F
     1800BD27
     0800E003
     00000000
     92006590
     00000000
     0200A230
     04004010
     00000000
     34000234
     000002A2
     01001026
     FF000234
     000002A2
     0800E003
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="11A4F0">
     9979050C
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="13347C">
     8B79050C
   </Location>
  </Patch>
 
  <Patch name="Support Equip Charge">
    <Description>Support skill above Move+1 gives access to skillset x9c</Description>
   <Location file="BATTLE_BIN" offset="F762C">
     E8FFBD27
     1000BFAF
     92004392
     00000000
     01006330
     03006010
     21302002
     7E69060C
     9c000534
     12004392
     1000BF8F
     1800BD27
     0800E003
     00000000
     92006590
     00000000
     0200A230
     04004010
     00000000
     34000234
     000002A2
     01001026
     FF000234
     000002A2
     0800E003
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="11A4F0">
     9979050C
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="13347C">
     8B79050C
   </Location>
  </Patch>
 
  <Patch name="Support Equip Item">
    <Description>Maintenance instead gives access to skillset xa1</Description>
   <Location file="BATTLE_BIN" offset="F762C">
     E8FFBD27
     1000BFAF
     91004392
     00000000
     04006330
     03006010
     21302002
     7E69060C
     a1000534
     12004392
     1000BF8F
     1800BD27
     0800E003
     00000000
     92006590
     00000000
     0200A230
     04004010
     00000000
     34000234
     000002A2
     01001026
     FF000234
     000002A2
     0800E003
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="11A4F0">
     9979050C
     00000000
   </Location>
   <Location file="BATTLE_BIN" offset="13347C">
     8B79050C
   </Location>
  </Patch>

Choto

It doesn't work like that... you're just rewriting over the same code twice. So whatever the last hack that orgASM applies is gonna stick. You'd have to rewrite the code a bit to account for more abilities.

Darkholme

May 07, 2014, 03:49:20 pm #7 Last Edit: May 07, 2014, 03:59:13 pm by Darkholme
Ah. I see. They're all saving over the same locations,  aren't they.

This is going to be a bit more involved than I originally thought then. Hmm.

Any advice on a good hex editor that will show me the MIPS  assembly in text form while I edit it?