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

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

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

Emmy

I got a different version to replace Move +3 if you don't want to mess with the Float movement.  This version requires my "Disable equip x/female equipment" hack because I coded it in that area.  You can move it somewhere else in the scus if you disabled something else.


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

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

  • Modding version: PSX

Emmy

Update - Bugfix on Move +3 grants Undead/buffs hack.  Also added a couple formulas and a few r/s/m grants status. :P
  • Modding version: PSX

Emmy

Updated with a monster m-ev hack. :)  Currently don't know how to do this by class though. :(
  • Modding version: PSX

Xifanie

It's actually very easy; you have all the variables there.
You can just create a table with a byte for every job, and add the job ID to the start of the table.
You have the address of the unit in r4, so just, for example (assuming you shift your code after the table):
[indent=2]lbu r2, 0x0003(r4) //Load the job ID
lui r1, 0x8015
addu r1, r1, r2
lbu r2, 0x2140(r1)
[/indent]
...and bam, you got your custom M-Ev for that job ID.

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

It would also be nice to display the value properly on the status screen, but I couldn't fault you for giving up/not bothering, since the game kinda forces that display value to be 0.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Emmy

April 29, 2016, 02:04:27 am #24 Last Edit: April 29, 2016, 11:34:47 pm by Emmy
**EDIT** Works now, hack in first post. :)  Thanks Xifanie. :)
  • Modding version: PSX

Adhelbert

Hello Emmy ..

I have a small request and 2 quistions ..

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

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

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

Sorry if i asked too much & thanks for the
useful hacks :D
  • Modding version: PSX

Emmy

May 17, 2016, 10:11:57 am #26 Last Edit: May 17, 2016, 10:22:08 am by Emmy
The reason those hacks require disabling equip x/female equip hack is because it needed to be written in Scus.  Scus doesn't have any free space normally - you have to create your own either by writing it over features you're not using or rewriting existing routines to be more efficient. I know some people have talked about how there's some sections of horribly inefficient code there, but rewriting them to be better is something I don't know how to do yet.

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

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


<Patch name="Blank 1 (Between Equip Change and Short Charge) = +5 speed in critical, Blank 2 (between Non-Charge and blank 3) = double speed while berserked">
    <Description>Speed bonus removed when unit is no longer critical.</Description>
    <Location file="BATTLE_BIN" offset="11C964">
4C420508
00000000
    </Location>
    <Location file="BATTLE_BIN" offset="e9930">
38003792
92002292
00000000
10004230
07000210
00000000
5A002292
00000000
01004230
02000210
00000000
0500F726
92002292
00000000
02004230
07000210
00000000
5A002292
00000000
08004230
02000210
00000000
40B81700
5B0E0608
00000000
    </Location>
  </Patch>
  • Modding version: PSX

Emmy

Updated with Move XP/JP up changes. :)

Unfortunately do not know how to change the display so that it mirrors reaction abilities or other move X ups (such as by displaying the sword and +1 like PA save does).  However if you check the character screens, these abilities work.  Still is better than the vanilla ones. :P
  • Modding version: PSX

Adhelbert

Hi  :D

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

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

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

Thanks emmy for your help, i'm looking forward to
Use your "Move XX up" hack  :mrgreen:
  • Modding version: PSX

Emmy

Are you looking to just make something double speed always? :o  The conditional bit is what makes these interesting in enemy formations.

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



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

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

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



First one disables vanilla's effect, replacing it with adding poison instead of invite.  Second one runs the poison effect throughout the  physical routine, so that it applies to any physical attacks (even stuff like Earth slash or custom formulas, whether or not they deal damage to the target, as long as it touches the physical routine).  The third one is required because I had to move the Transparent check to make both of those hacks work, and moving transparent happens in the third hack.  Apply all 3 hacks and you get both Sicken and Arcane Focus.  Hope that makes sense.  :)
  • Modding version: PSX

Fosil

I've a question, that I'm sure you can answer, as I'm delving into my own modifications:

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

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

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


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

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

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

Can you please shed some light on these? Again, thank you!
  • Modding version: PSX

Emmy

I have a boss chocobo which uses skillset 33, and Missile (Choco ball in vanilla) in my mod.  Wasn't sure if monster skillsets would somehow screw that up so thought it was safer to use that as the skillset when I tested it.  You can change that to whatever skillset contains whatever ability you are using.

C/p from Data locations:


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


91 is the group where you can find Monster Talk, and 10 is the hex that refers to it specifically.  Which other things are you looking to modify?
  • Modding version: PSX

Fosil

Ah hah! Derp. That completely explains it! I should have known, being I'm familiar with the similar tables for the statii. Thank you!

I have no further questions, at the moment!
  • Modding version: PSX

Adhelbert

Quote from: Emmy on May 19, 2016, 06:15:18 pm
Are you looking to just make something double speed always? :o  The conditional bit is what makes these interesting in enemy formations.


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

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


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

However, thanks for clarification  :D
  • Modding version: PSX

Emmy

Updated with a couple new formulas, and a bugfix for monster talk = 2x damage in critical. :)
  • Modding version: PSX

nitwit


Emmy

Updated with several things: Shed Skin, Disable Secret Hunt/Train, Disable Gain XP Up, etc.
  • Modding version: PSX

Emmy

August 13, 2016, 01:56:07 pm #37 Last Edit: August 14, 2016, 05:47:57 pm by Emmy
So I'm still not 100% sure how the reaction flags work (they're largely undocumented), but these are my findings, tested with my Multi-Reaction Deluxe:

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

Since I'm not sure if there's hard coding elsewhere related to these flags, stick with using 29 for reacting with ability on caster.  0d seems to work if you want a reaction that casts an ability on the user.
  • Modding version: PSX

Ashiel

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

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

If you open FFTacText, select "Skillset Descriptions", towards the bottom you'll find monster skillsets (entry 176+). I'm fairly certain that if you place text for them, their skillset will appear as something other than a blank selectable in the menu. However, another issue seems to be present even if that works. The monster skillset entries only go from Chocobo through Vampire, so unless some of the many blank entries route to other monsters, I'm not sure how to assign them descriptions.

Elric

  • Modding version: PSX