• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
November 10, 2024, 02:48:24 pm

News:

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


Total Request ASM: All armor replaced by shoes

Started by pokeytax, January 02, 2011, 10:16:01 am

pokeytax

January 02, 2011, 10:16:01 am Last Edit: February 20, 2013, 08:08:35 pm by pokeytax
Bugfixes/Improvements


WORLD_WORLD_BIN
0x42D6C
40100700
2010E200
00210200
0680023C
20204400
B8108424
01008290
FF00C330
06006210
0F008330
0E006328
FAFF0314
02008424
02000010
00000000
0040C634
01001026
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
0x44B08
0680013C
0x44B28
0680013C
40280300
20286500
00290500
20082500
B8102124
01002294
62008594
00000000
0200A214
02002124
620080A4
0F002530
F8FF0514
00000000
F8FF2120
01002294
64008594
00000000
0200A214
02002124
640080A4
0F002530
F8FF0514
00000000
F8FF2120
01002294
66008594
00000000
0200A214
02002124
660080A4
0F002530
F8FF0514
00000000
F8FF2120
62008194
64008294
00000000
02004114
00000000
620080A4
66008294
00000000
02004114
00000000
620080A4
64008194
00000000
02004114
80101400
640080A4

Instead of preventing Chemist & Throw Item / Mediator & Monster Talk / Ninja & Two Swords / Monk & Martial Arts, this hack prevents all inherent abilities from being equipped. So in vanilla it alters nothing, but it will adjust to whatever you do in FFTPatcher. If you're feeling silly, you can do things like giving Knights innate Equip Armor / Equip Sword / Equip Shield to prevent the player from equipping junk. It does not stack with the previous hack; you can't ban specific combos.

It also prevents equipping multiple copies of a single R/S/M ability, which again has no effect in vanilla, but is probably desirable if you're using a "merge Support/Movement" hack.


BATTLE.BIN
0x11C0B4
53000492


0x11C104
54001F92


0x11C110
40008430


0x11C11C
0100FF33


0x11C124
82210400


0x11C12C
24F89F00


0x11C140
2530DF00


0x11C1c0
54001F92
02008010
0100FF33
0FFFC630
00F91F00
2530E603
1000C230


SCUS_942_21
0x4E28C
23105502
03000334
E4700508
1A004300

BATTLE_BIN
0xF5390
12100000
00006392
06006492
0400632C
08006014
02000334
80008330
05006014
25180000
40008330
02006014
01000334
03000334
0580013C
20082200
0C000434
18008300
12200000
20202400
0CF18490
05000234
18004300
12100000
20102200
3CF14290
80230400
40130200
20104400
23100202
1B005700
12100000
AB760108
23800202


Hacks & Edits


Units with the specified support ability (value XX on byte WW) equipped are treated as having the specified job/skillset (job YY, skillset ZZ) for the duration of learn-on-hit checks. So if you specify byte 91, value 10, job 51, skillset 0c, units with Monster Talk equipped learn Time Magic (e.g. Haste 2 and Slow 2), not their current skillset. It should not interfere with the support ability's ordinary functioning.

A previous version of this hack functioned only for the Support slot, not for Reaction/Movement or innates. This version should be fine.

BATTLE.BIN
0xF2F14
03000292
1680053C
12000492
549FA524
0800A2A0
WW000292
0400A4A0
XX004230
04000210
ZZ000234
120002A2
YY000234
030002A2
DE390608
00000000

0xF2F54
52FF7322
0C000234
51000334
120062A2
030063A2
623A0608
00000000

0x127774
c5670508

0x127774
25104202
000062A0
D5670508



A quick fix to make all learn-on-hit checks succeed X% of the time instead of "Chance to learn" %. Obviously you could do this in FFTPatcher, but with this ASM you can manipulate that flag for crystallization/AI learning purposes instead.

BATTLE.BIN
0x127844
XX000534


BATTLE.BIN
0x10fc70
XX000534
1800A300
3378010C
12280000


XX = status bit from here (e.g. $10 for Undead, $78 for Regen + Protect + Shell + Haste)
YY = status bit offset - 3C (1C, 1D, 1E, 1F, 20)

examples:
Transparent + Chicken
XX = $10 + $04 = $14
YY = bit 3 = $1E

Innocent:
XX = $40
YY = bit 5 = $20

Sunken State
BATTLE.BIN
0x00124020
XX000234

0x00124028
YY0062A0

Caution
BATTLE.BIN
0x00124038
XX000234

0x00124040
YY0062A0

Dragon Spirit
BATTLE.BIN
0x00124050
XX000234

0x00124058
YY0062A0

Regenerator
BATTLE.BIN
0x00124068
XX000234

0x0012406c
YY0062A0


XX:
10 = level
11 = level, down
12 = speed
13 = CT
14 = PA
15 = MA
16 = Brave
17 = Faith

YY = desired boost + $80

example: XX = 16, YY = E4 converts to Brave + 100

Speed Save
BATTLE.BIN
0x124008
YY000234
862C0608
XX0062A0

A Save
BATTLE.BIN
0x123fe0
YY000234
862C0608
XX0062A0

MA Save
BATTLE.BIN
0x123ff4
YY000234
862C0608
XX0062A0

Brave Up
BATTLE.BIN
0x124090
YY000234
862C0608
XX0062A0

Faith Up
BATTLE.BIN
0x1240a4
YY000234
862C0608
XX0062A0



BATTLE.BIN
0x11AA34
E4670508

0xF2F90
F800A88F
06000810
XX000234
18005100
YY000234
12880000
1A002202
12880000
92060608
00000000


BATTLE.BIN
0x11F064
0x186064
0F000214
04006230
0D000210
1980023C
D9384290
0A000210
1980023C
CE384284
XX000134
18002200
YY000134
12100000
1A004100
12100000
1980013C
CE3822A4
1980023C
942D428C


BATTLE.BIN

Disables Potion slot
0x117798
20100000

Disables Hi-Potion slot
0x1177AC
20100000

Disables X-Potion slot
0x1177c8
20180000


BATTLE_BIN
0x118038
0c00a534


WORLD_WORLD_BIN
AAAA - BBBB: Action Abilities (fiddling not recommended)
CCCC - DDDD: Reaction Slot
EEEE - FFFF: Support Slot
GGGG - HHHH: Movement Slot

Note that these are all half-words, with the lowest byte first. So CCCC defaults to A601 for 01A6 (A Save).

0x429B8
AAAA0334
0x429C0
BBBB0234

0x429D0
CCCC0334
0x429D8
DDDD0234

0x429E4
EEEE0334
0x429EC
FFFF0234

0x429F8
GGGG0334
0x429FC
HHHH0234


SCUS_942_21
0x4E278
80FF0234

0x4C0FC
80FF0234


WORLD.BIN
0x4539C
B0008228

WORLD.BIN
0xAD7E0
09

SCUS_942_21
0x483E8
AFAEADAC
ABAAA9A8
A7A6A5A4
A3A2A1A0
9F9E9D9C
9B9A9998
97969594
93929190
FFCFCECD
CCCBCAC9
C8C7C6C5
C4C3C2C1
C0BFBEBD
BCBBBAB9
B8B7B6B5
B4B3B2B1
B0FF


Outstanding (for my own benefit, not ordered):

FFTorgASM XML is attached.

I have some vague ambitions about hacks for my own use, but I'm not sure how to do most of them yet. So in the meantime, I'm going to try to fill requests, since the last request thread seems dead - I know there is a lot of mundane stuff out there that can be done to augment FFTPatcher so might as well practice on that.

Requests will get filled in order of:
- personal interest
- applicability to ongoing project(s)
- utility-to-effort ratio

Just like every other request thread, lots of requests will never get filled, it doesn't mean you are unloved. I am pretty new to this so it may just be beyond me.
  • Modding version: PSX

RavenOfRazgriz

So this is an add-on to a Support Ability of choice that allows it to Learn on Hit the specified set but still allows the original function of the specified Support Ability to work unhindered?

Stealing this.  Very nice.

Pride

You could have also had this go over one of the empty support skills around equip change but this is very nice, adds some to a normally weak support, and I'll have to test it out later
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

RavenOfRazgriz

Quote from: Pride on January 02, 2011, 05:30:14 pm
You could have also had this go over one of the empty support skills around equip change but this is very nice, adds some to a normally weak support, and I'll have to test it out later


He did say you can map which slot it adds the effect to yourself, you know, which is honestly better than outright overwriting anything.

pokeytax

January 02, 2011, 05:50:15 pm #4 Last Edit: January 02, 2011, 05:53:56 pm by pokeytax
Quote from: RavenOfRazgriz on January 02, 2011, 05:26:16 pm
So this is an add-on to a Support Ability of choice that allows it to Learn on Hit the specified set but still allows the original function of the specified Support Ability to work unhindered?


Yes, exactly. However, while it is equipped, you will lose the ability to learn your current primary (e.g. Summoner with TM Learning cannot learn Zodiac, just Slow/Haste 2).

If there's interest in doing it with something besides support it's doable; you could even make Learning a true passive, by checking whether the skill is known instead of equipped, although if you have more than one LoH skillset that makes a mess of things. I just did it this way to best match series tradition.
  • Modding version: PSX

Vanya

Well that's just freakin' awesome! I'll definitely be using this. Thanks for posting it! ^_^
  • Modding version: Other/Unknown
¯\(°_0)/¯

formerdeathcorps

Let's give a concrete example to see if I understand.

If I have a Summoner with TM Support, which of the following is true?
A) The Summoner can only use Haste2/Slow2 if he had already learned it.
B) The Summoner can only use Haste2/Slow2 even if he hadn't already learned it.
C) The Summoner can use his summons but can learn Haste2/Slow2, not Lich/Salamander/Zodiac/Leviathan
D) The Summoner can use his summons but can learn Haste2/Slow2, on top of Lich/Salamander/Zodiac/Leviathan
The destruction of the will is the rape of the mind.
The dogmas of every era are nothing but the fantasies of those in power; their dreams are our waking nightmares.

philsov

January 04, 2011, 07:07:53 am #7 Last Edit: January 04, 2011, 08:13:56 am by philsov
Requests:

The ability to modify any/all of the self-statii reactions (dragon spirit, regen, sunken state, caution) to stuff like auto-protect, auto-shell. Preferably auto-XX, but I won't be too picky.  Suggest starting with sunken state?  It's most likely to go.
Teleport chances are reduced by 20% (or XX?) per additional tile past base movement

There's a whole trove of requests in Raz's thread if you take a peek in there.
Just another rebel plotting rebellion.

FFMaster

QuoteTeleport chances are reduced by 20% (or XX?) per additional tile past base movement


I've tried this one before. I ended up with the AI Teleport hack =p

If you can do this one, point out how you found the location for me. I need to learn.
  • Modding version: Other/Unknown
☢ CAUTION CAUTION ☢ CAUTION CAUTION ☢

Vanya

There is tons of demand for edited formulas. Do you think you could do something with all those blank slots so they can be usable as custom formulas?
  • Modding version: Other/Unknown
¯\(°_0)/¯

pokeytax

January 04, 2011, 08:10:39 pm #10 Last Edit: January 04, 2011, 09:18:31 pm by pokeytax

BATTLE.BIN
0x10fc7c
80280500


I am short on time tonight, but I'll go into more detail later and add variables. It's two bit-shifts and an addition, so XX is hard but I can get close to whatever you need. (The current formula to work with is per-tile penalty of P%, P = (2^X + 1)*2^Y; currently X = 2, Y= 1, I changed it to X = 2, Y = 2.) Can't directly test but seems to work fine (move+5 teleport always fails, etc.)

Quote from: formerdeathcorps on January 04, 2011, 04:50:13 am
If I have a Summoner with TM Support, which of the following is true?


The Summoner can use his summons but can learn Haste2/Slow2, not Lich/Salamander/Zodiac/Leviathan.
I should also point out this is a virtual support, not a real one, so I'm 99% sure it won't work as a job innate.

Quote from: FFMaster on January 04, 2011, 07:18:37 am
If you can do this one, point out how you found the location for me. I need to learn.


- set a Memory Read breakpoint at the unit's Move attribute (unit 2, so 0x19268c + 0x3a)
- F9'd through the action and took the address closest to the teleport (starting point to scan)
- set a Memory Write breakpoint at the unit's X attribute (unit 2, so 0x19268c + 0x47)
- wrote down the address this is written after the teleport (ending point to scan)
- bumbled incompetently for a while
- saw a call to the RNG at 0x176c78 [jal 0x0005e0cc]
- ran to cursor a few lines before this, saw the code I was looking for (basically I got lucky)

Quote from: Vanya on January 04, 2011, 07:56:50 pm
There is tons of demand for edited formulas. Do you think you could do something with all those blank slots so they can be usable as custom formulas?


Good question! I'll look at it when I have more time, maybe the weekend. Custom formulas, preferably automating formula editing, is on the list for sure. I haven't been around long enough to know where to look for previous work - was it SentinelBlade who was working on a formula editor?

Quote from: philsov on January 04, 2011, 07:07:53 am
The ability to modify any/all of the self-statii reactions (dragon spirit, regen, sunken state, caution) to stuff like auto-protect, auto-shell.


Should be doable, Float is basically Auto-Float + Move on Lava. Just enable Auto-Status and disable the usual reaction...
  • Modding version: PSX

RavenOfRazgriz

So if I wanted to make Teleport fail beyond range 100% of the time, just change X to 6, then get P% = (2^6+1)*2^1, or 64 * 2, or 128, and since P%> 100, the Teleport will fail beyond range?

The math seems more than easy enough to work with once you clarify what things to toggle about to adjust X/Y.  Being able to control it in general is good, people can go learn to do basic math if you can't get XX without rewriting the entire procedure.  Though, with a convoluted procedure like that, it'd probably save a lot of space to do so...

Tigerspike

@Philsov

PickleGirlFanboy already found the BATTLE.bin offset for Sunken State.  It is at 0x123FA8.  Change the 5A to whatever effect you want.  To quote him from the thread I had started:

Quote from: Pickle Girl Fanboy on June 20, 2010, 06:42:25 pm
Change Sunken State Effects

Gameshark Code
d018afa7-005a
8018afa7-00??

BATTLE.BIN Offset (not tested yet, CDMage doesn't like my ISO)
0x123FA8

??
57 = +1 PA (A Save)
58 = +1 MA (MA Save)
59 = +1 SP (Speed Save)
5A = Transparent (Sunken State)
5B = Defending (Caution)
5C = Reraise (Dragon Spirit)
5D = Regen (Regenerator)
5E = +3 Brave (Brave Up)
5F = +3 Faith (Face Up)
60 = Restore HP to max (HP Restore)
61 = Restore MP to max (MP Restore)
62 = Quick (Critical Quick)
63 = Deal damage to self in amount of max HP (Meatbone Slash)

There may be more effects that correspond to the other Reactions, but this is all I can do for now.
As you can see, it doesn't make a whole lot of sense.


Still not much luck in finding the Cheer-up formula, but Sunken State is ripe for the picking.
Oh come now. That doesn't even make sense. How can flimsy paper possibly beat the raw density of stone?

Vanya

January 05, 2011, 03:17:00 am #13 Last Edit: January 05, 2011, 03:22:57 am by Vanya
Quote from: pokeytax on January 04, 2011, 08:10:39 pm
Good question! I'll look at it when I have more time, maybe the weekend. Custom formulas, preferably automating formula editing, is on the list for sure. I haven't been around long enough to know where to look for previous work - was it SentinelBlade who was working on a formula editor?


SB was indeed working on something, but IIRC he lost all his work in a crash or his computer got stolen or something.
I do remember seeing a thread with info that included some existing formula hacks.
Edit: it was FFMaster's thread.

Here's something that I found while reading the FF5 Algorithm FAQ that might be interesting to consider:

********************************
7.2) ABILITIES THAT MODIFY STATS
********************************

Note that none of these modifiers are applied if it ends up lowering a
character's stat (i.e. Knight with Equip Whip will retain his own Strength
value and not the Mediator's Strength).

WHITE
Magic Power = White Mage Magic Power - 2 * (6 - White Mage Job Level)

BLACK
Magic Power = Black Mage Magic Power - 3 * (6 - Black Mage Job Level)

SUMMON
Magic Power = Summoner Magic Power - 4 * (5 - Summoner Job Level)

DIMEN
Magic Power = Time Mage Magic Power - 2 * (6 - Time Mage Job Level)

BLUE
Magic Power = Blue Mage Magic Power

RED
Magic Power = Red Mage Magic Power - (3 - Red Mage Job Level)
If Red Mage Job Level = 4, Magic Power = Red Mage Magic Power

X-MAGIC
Magic Power = Red Mage Magic Power

MAGIC SWORD
Magic Power = Mystic Knight Magic Power - 2 * (7 - Mystic Knight Job Level)
Strength = Mystic Knight Strength - 2 * (7 - Mystic Knight Job Level)

EQUIP SWORD
Strength = Knight Strength

EQUIP SPEAR
Strength = Dragoon Strength

EQUIP KATANA
Strength = Samurai Strength

EQUIP AXE
Strength = Berserker Strength

EQUIP BOW
Strength = Hunter Strength
Agility = Hunter Agility

EQUIP WHIP
Strength = Mediator Strength
Agility = Mediator Agility

EQUIP HARP
Magic Power = Bard Magic Power
Agility = Bard Agility

BRAWL
Strength = Monk Strength

DBL GRIP
Strength = 37 (applied before Character bonuses)


Maybe you could do something to tack stat multiplier boosts to some of the more pathetic support abilities?
  • Modding version: Other/Unknown
¯\(°_0)/¯

philsov

Quotebut Sunken State is ripe for the picking.


Not really.  From what you posted I'm free to change sunken state into... another, already existing reaction effect?  That won't do any good =\
Just another rebel plotting rebellion.

pokeytax

January 05, 2011, 10:48:58 am #15 Last Edit: January 05, 2011, 10:51:38 am by pokeytax
Quote from: philsov on January 04, 2011, 07:07:53 am
The ability to modify any/all of the self-statii reactions (dragon spirit, regen, sunken state, caution) to stuff like auto-protect, auto-shell.

To be clear:
change Regenerator to Auto-Regen (or Auto-XX), the way Float is Auto-Float? and ditch the reaction?
change Regenerator to inflict Auto-XX for the remainder of the fight when triggered?
change Regenerator to inflict XX instead of Regen?
  • Modding version: PSX

philsov

January 05, 2011, 11:12:58 am #16 Last Edit: January 05, 2011, 12:26:51 pm by philsov
change Regenerator to inflict XX instead of Regen, please.

Just another rebel plotting rebellion.

Pickle Girl Fanboy

January 05, 2011, 12:42:00 pm #17 Last Edit: January 05, 2011, 12:46:21 pm by Pickle Girl Fanboy
Cheer Up Formula gains MA instead of Brave
d018c124-0024
8018c124-0037

I think I found this in BATTLE.BIN.
0X125124.


IIRC, this changes every incidence of Brave gain for every formula that gains brave into MA gain.

Tigerspike

Yeah, that's what my tests indicated.  I tried Cheer Up, Praise, and Brave-Up.  All three changed to MA after swapping the 24 with 37.  I did not, however, test instances where the game alters your brave through your story responses (like rescuing Algus).

@philsov, the work may not be complete on sunken state, but there is a solid starting point for a more experienced hacker to tweak the ability.  Please don't dismiss PGF's work outright just because it was only tested with pre-existing reactions.  I'm sure a more experienced hacker can find the offsets that correspond with each of those values listed for the other reaction abilities.
Oh come now. That doesn't even make sense. How can flimsy paper possibly beat the raw density of stone?

philsov

Quotebut there is a solid starting point for a more experienced hacker to tweak the ability.


Certainly, and I thank you for bringing this data to pokey.  I didn't mean any disrespect :)
Just another rebel plotting rebellion.