Final Fantasy Hacktics

Modding => Hacking/Patching Tools => Topic started by: Atroe on January 29, 2021, 09:37:20 am

Title: Wingman: The tool nobody asked for
Post by: Atroe on January 29, 2021, 09:37:20 am
https://docs.google.com/spreadsheets/d/1WWJ0Umb5xJVT7uKaRpe5QwudBF8GjWuOG_y1c3DnBR0/edit?usp=sharing

So I did a thing.  It's in Gsheets, so that makes for maximum accessability.  But what does it do?

Nothing.  This won't make ASM, it won't mod the game, it won't actually DO anything.  It's a tool to make things look pretty.

Actual functions:

> Allows you to punch in abilities. Then you can use dropdowns to access those abilities from any of the various unit creation tabs.  Why? to make those pretty sheets you see in mod threads, and so that if you change a value it changes on everything.  Everything is cued by dropdowns, and designed to be user friendly.
> Allows you to display and track Items
> Tracks Item Attributes and Status Inflictions so you can tell at a glance if everything works out (look for the red tab)
> Stat Calculator for levels 1 to 99.  Includes Ramza, Male, Female, and Monster.  You can change the RAW data as well, and view comparisons on the Stat sheet.
> All lists are designed to function with most Excel/OpenOffice based tools. Just copy/paste the lists when you're done, and they'll copy with the proper words, not dropdowns and formulas
> Lots of notes about relevant hardcoding for certain items.  Seriously, look for those little tabs in the top right hand corner of cells, they're full of info.
> Awful explanations of how this shit functions because I'm tired.  I added some TLW data in there, so if anyone wants to take a peek and see how it functions better than I can explain it, feel free.

Taking suggestions for things to add, and things to explain better.  For now though; Bed. I'll update this later.

Update: March 6, 2021

Adding new posts to this.  I have fun testing shit, so in the theme of "Nodody asked" I'm posting the results of my testing here, basing them on what tabs they're on on Patcher (where I do most of my shit).  I'll also be adding in commonly asked simple questions I see in the discord, or various things that I've found that aren't immediately obvious.

If you have a specific question you'd like tested, ask me on Discord.  I'll take a peek, get back to you, and add it to this.

Stole some details from this https://ffhacktics.com/smf/index.php?topic=5164.0 to add to the questions
Title: Re: Wingman: The tool nobody asked for
Post by: Atroe on March 06, 2021, 07:53:17 am
Abilities


AI Flags


Flags below Ability Type


Flags at Bottom


Specific Ability Hardcoding

0000 Attack is the basic Attack command. Unflagging "Mimicable" doesn't prevent mimicing.  Changing the formula for this changes Unarmed Attacks.

do this later

do this later

The following secondary effects will not trigger without using formula 2A

0075 Persuade (CT00)
0076 Praise (Increase Brave)
0077 Threaten (Decrease Brave)
0078 Preach (Increase Faith)
0079 Solution (Decrease Faith)
007B Negotiate (Redirects to formula 27)

0010 Fire
0011 Fire 2
0012 Fire 3
Accessible by flagging Fire element

0014 Bolt
0015 Bolt 2
0016 Bolt 3
Accessibly by flagging Lightning element

0018 Ice
0019 Ice 2
0020 Ice 3
Accessible by flagging Ice element

The element of these attacks, when used by the weapons, goes off the skills, not the weapons.  So if you flag the Ice spells as Earth Elemental, they will do normal damage to a Goblin, and double to a Juravis

abilities used via Geomancy ignore MP and CT

I'm not going to bother listing these, it's obvious to anyone.

These slots can be used in any skillset, but are the only usable ones for Katana Inventory.

This can accept any formula.  If using a formula that {MayDisplay"Broken"}, the break chance is equal to WP.  Otherwise, break chance is 100%.

0028 (Summon Demon)
00B8 (Summon Angel)
00DB (Teleport 3: Send)
00DC (Teleport 3: Arrive)

These are used as calls for animations in cutscenes.  Do not change them without using the ASM available in TLW that frees these slots.

16F Frog Attack is the attack used when a Frog
A Frog with Blood Suck does nothing.


Reaction, Support, Movement

The Reaction, Support, Movement flags in the dropdown don't actually do anything - you need an ASM to have that flag work correctly

If Move-HP Up and Move-MP up are both equipped, Move-HP Up takes precidence.

Teleport stacks with all other Movement ability.
Title: Re: Wingman: The tool nobody asked for
Post by: Atroe on March 06, 2021, 07:53:32 am
Items


Equipment
Items can be moved to any area of Patcher that doesn't contain the correct hardcoding, but doesn't accept any stats exclusive to that type.

Guns do not use a damage formula. If you're increasing the number of guns, you will need to use an ASM to give Guns the WP*WP damage formula.

Weapons and accessories can be moved to the Shield slots, but cannot accept S-Ev.  No, a Cloak moved to the Shield slot cannot accept P-Ev or M-Ev anymore. Yes, it's weird. I assume this is why it's called P.Block and M.Block on shields, and P.Evade and M.Evade on accessories.

Armour can be turned into helmets like this (and vice versa) but where they fit on the body is hardcoded, so just making this change on its own will result in plate mail you wear on your head.

Accessories changed to weapons may or may not be able to thrown (TBD)


Chemist

Chemist items can accept the following formulas:

These are the formulas used in Vanilla, added for the same of completeness

38 (100%)
48 Heal_(Z*10)
49 MP Healing Item Formula
4A Elixer Formula
4B Heal_(Rdm(1..9)) 100% Status

These formulas will not work unless the user is holding a weapon

01 Dmg_(Weapon)   
02 Dmg_(Weapon)   
03 Dmg_(WP^2)         
05 Dmg_(Weapon)         
06 AbsHP_(Weapon)         
07 Heal_(Weapon)
2D Dmg_(PA*(WP+Y)) 100% Status
2F AbsMP_(PA*WP)
30 AbsHP_(PA*WP)
63 Dmg_(SP*WP) (Catch will block this and add it to your inventory)

Since XA is calculated twice, this makes an effective Bomb formula.  Note that since you cannot set X and Y values, damage will always be XA*(XA/2) and multi hit formulas will always hit once.

1E Dmg_((MA+Y)*MA/2) #Hit(Rdm(1,X))
1F Dmg ((100-CasF)*(100-TarF)*(MA+Y)*MA/2) #Hit(Rdm(1,X))
24 Dmg_((PA+Y)/2*MA)
31 Dmg_((PA+Y)/2*PA)
5E Dmg_((MA+Y)/2*MA) #Hit_(X+1) Status
5F Dmg_((MA+Y)/2*MA)
60 Dmg_((MA+Y)/2*MA) Status

This is the weird stuff you might not think of.

3C Heal_(CasMaxHP*2/5) DmgCas_(CasMaxHP/5)
3E Dmg_(TarMaxHP-1)
43 Dmg_(CasMaxHP-CasCurHP)
44 Dmg_(TarCurMP)
45 Dmg_(TarMaxHP-TarCurHP)
52 Dmg_(CasMaxHP-CasCurHP) 100% Add Status Caster in AoE: DmgSelf_(CasCurHP)
57 +Lvl(1) NS 100% Add Status on Caster
5A Dragon: Hit(100)%
5B Dragon: Heal_(Y)% 100% Add Status (this has a hard-coded Wish effect, allowing for monster-only heals via items)
5D Dragon: Set_Quick

This is stuff you definitely didn't think of.  This stuff is usable, but just (typically) barely. Interesting enough to note, though, and could be viable with some tweaking to the formula to set X or Y values to static numbers. (thankfully, these formulas are (typically) obscure enough that you could limit their use to potions and not really miss anything)

14 Set_Golem Hit_CasF/100*(MA+X)%

It works, but currently you need an absurd amount of MA to test it. Golem casted as an item appears to be fully functional, and will protect allies who have not had a Golem Potion thrown at them (so you may as well just have the caster use it on themself)

27 StealGil_(CasLVL*SP) Hit_(SP+X)%
28 StealExp_(Lowest of TarCurExp & SP+Y) Hit_(SP+X)%
32 Dmg_(Rdm(1...X)*(PA*3+Y))
37 Dmg_(Rdm(1...Y)*PA)
40 Undead: Hit_(SP+X)%
58 Generic: Set_Morbol: Hit(MA+X)%
5C Dragon: +Brave_(X) +PA/MA/SP(Y)
Title: Re: Wingman: The tool nobody asked for
Post by: Atroe on March 06, 2021, 07:53:58 am
Jobs


Jobs

Jobs are automatically hardcoded to have their ID match the sprite in ShiShi.  A unit with Job 08 (Arc Knight) and sprite 09 (Lune Knight) will show up erroniously when you check the menu, showing the learned abilities for Lune Knight.

The "Monster Type" flag in Patcher doesn't currently do anything (so I'm told)

Generic human units can be set to have a Monster Palette, but the colours don't populate properly on the Formation screen.

Formation Sprites, the left is the Unit Sprite (changable in ShiShi, matches UNIT.BIN value), and the right is the Portrait (ShiShi, WLDFACE.BIN value). As many units unintended to be recruited have a value of 0/0 for both, they will appear as CH1 Ramza if added to the party.

Units with a Jump value of >128 are considered "Large".  These units can be used as a stepping stone to reach a higher location, and their actual Jump value is 128 less than shown.


Job Levels

Units are generated with 100-200JP for each class

If you change the "JP Required" for L1 to a value above 100, then all units that are populated in battles will have that as a minimum JP value.  Ramza and purchased units will not have this, and will generate as L0 Squires with 100-200JP regardless of the minimum set.
Title: Re: Wingman: The tool nobody asked for
Post by: Atroe on March 06, 2021, 07:54:23 am
Skillsets


Skill Sets

Abilities are learned in descending order, using the JP gained through job learning.  So a Wizard will attempt to learn Fire 4 before it attempts to learn Lightning 1.  Leftover JP will be saved for player use, if recruited.

Blood Suck randomly uses a skill from set ## Blood Suck.  Changing the skills in here will change what Blood Suck does.


Monster Skills
Skills set in slot 4 will require the Monster Skill innate to access, even if "Requires Monster Skill" is not flagged in Abilities.


Action Menus

Skillsets 05-18 are hardcoded to align with their respective classes.  In order to have regular abilities placed into these, you will need to change their skillset from...whatever it is...to <Default>

The following is hardcoding that exists even after changint the skillset type to <Default>, as well as anything else noteworthy about the skillset.

Will not accept anything that's not an Item.

Units charging will be unable to move.

(TBD)

(TBD)

Despite being labelled <Katana Inventory>, these do not need to be Katanas.  The weapon slots are much more important.

Will not accept Items with the Weapon Inventory flag

Abilities are instant, Unreflectable, and cost no MP.  All abilities with an AoE has a lag between each animation that puts WotL summons to shame.
Title: Re: Wingman: The tool nobody asked for
Post by: Atroe on March 06, 2021, 07:54:50 am
ENTD


General Stuff
BS is shorthand for Brave Story, and is what appears when you review old cutscenes.  If you want to edit the free units Ramza gets at the beginning of CH1, use 188 Military Academy

A unit given a skillset it would otherwise have no access to will be able to use every action skill available in that skillset. If their Reaction/Support/Movement skills are set to <Random>, they may also equip the RSM skills of that skillset.


Genders

Units set to Genderless or Monster will default to Male settings for most things, including ability to equip perfume, and job wheel.

Units with a Genderless flag will have access to both Bard and Dancer. if in TLW and you have Dark Knight unlocked, then you will see Dark Knight and whatever matches the apparant gender of the unit (Generic Male or Generic Female). Genderless units start with 0JP in all classes, but are capable of gaining JP.  Genderless units do not have a death cry.  Stats for genderless units haven't been examined yet, but I'm assuming they will default to Male.

Generic units flagged as Monster for gender cannot be equipped.  They can still change jobs and learn skills, though they are unable to earn JP.  They will have access to both Dancer and Bard, and use the Male Job Wheel.

A Male/MON unit is affected by Talk Skill, both with and without Monster Talk, cannot be charmed by Male units, and can be charmed by Female units.  Female/MON works the same way.


Monsters (Jobs 5E-8D)

These function normally regardless of gender flag.

Monsters with a Genderless flag can equip items, and gain their benefits.  When brought to the formation screen, they will still appear as they do in vanilla - you will not be able to see or modify the items (but you will be able to see them again during the Deploy phase)

To Be Tested: Monsters with a Genderless flag, and innate "Equip Change"


Flags

Enemies flagged "Join After Event" are capable of doing so, if they don't crystalize

Units are generated in descending order, and once the sprite limit of 4 has been hit (9 total, counting your potential units) no new sheets will be generated.  Note that colour differences, such as Yellow/Black/Red Chocobos are still one sprite sheet being loaded, just different palettes.

You cannot create an enemy mounted unit by generating a Chocobo, then a second unit on top of it.  It requires eventing.
Title: Re: Wingman: The tool nobody asked for
Post by: Atroe on March 06, 2021, 09:32:20 am
Other Tools
Adding this in for common troubleshooting issues with various tools.


FFTPatcher

To change the names that appear in Patcher, you'll need to generate a Resources.zip.  Extract the relevant file, open it in your favourite text editor, change names (keep all other formatting the same), and place the new file back where you found it. Yes, even Asura.  That's how you tell the difference between Asura, Asura , and Asura  .


FFTacText
If you load an Iso, make changes, and apply the changes, TacText will kick back an error.  The fix is to save an FFTacText file, open the TacText File, and then patch.


ShiShi Sprite Editor
PSP Isos cannot be expanded.


Palette Editor
If you wind up with a strange looking spritesheet with all sorts of lines all over it, open the sheet back into Palette Editor again, click "null Palette", and save again.  Always click Null Pallette before saving to prevent this issue.

The selected colour when a sheet is loaded will always be 0/0/0 (black).  To prevent this, make sure the colour selected is always the one in the top left hand corner.

The "Copy Palette" button does not work.