• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 19, 2024, 12:55:16 am

News:

Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed! Find out how you can help in the Recruitment section or our Discord!


Xif's Fixes (ASM Hacks & Spreadsheets)

Started by Xifanie, September 12, 2008, 10:50:17 pm

Xifanie

September 12, 2008, 10:50:17 pm Last Edit: June 12, 2016, 04:36:35 pm by Elric
Formely known as "The little asm hacking reference"

Generally speaking, my spreadsheets require Microsoft Excel 2007+ and VBA activated. It doesn't matter which alternative you use; it will either not work or be cripplingly slow.

Index & Descriptions for Hacks in Xifanie.xml
Download Xifanie.xml here

(#+1%) Chance of Critical Hit
Example: Changing # to 63 (which is 99 in hex) would be 99% + 1% resulting in 100% Critical hit rate.

(#+1%) Chance of Knockback for Dash/Throw Stone
Example: Changing # to 63 (which is 99 in hex) would be 99% + 1% resulting in 100% Knockback for Dash/Throw Stone

(#+1%) Chance of Spell Casting (Formula 02)
Example: Changing # to 63 (which is 99 in hex) would be 99% + 1% resulting in 100% Spell Proc Rate.

2nd Squad is not mandatory
Allows starting a battle with an empty 2nd Squad, even if you have units available.
(More info Available HERE)

Activate Paletted Portraits for Special Units
Allows use of additional palettes on unique portraits for battles and events.

Blank support ability over Short Charge adds 25% bonus skill hit
Abilities like talk skill, spells, physical abilities gain 25% to hit unless they are 100% to hit to start with.

Bonus Money = (Level+X)*Y
For example: (Level+4)*20
Level 1: 100 gil
(More info Available HERE)

Brave becomes Fury (Version 1.02)
Fury is essentially Brave, but with Faith's aspects. The higher your Fury, the higher damage you can deal and receive.
The formula added at the end of all calculations is: (40+Caster_Fury)*(40+Target_Fury)*Total_Damage/10000
Basically 72 Fury will make your hits will be at 112% strength as well as your damage received.
Fury still keeps Brave's normal effects such as Move-Find Item and chance to activate reaction abilities.
Bye Bye constant damage! Zodiac compatibility doesn't affect nearly as much as this anyway.
(Alternatively you can download a .PPF of this Hack HERE)

Can view ??? units' stats
Allows viewing the stats of ??? units.
(More info Available HERE)

Cross Skip v3
Holding X (Cross button), will fly you through dialog text as if you were mashing the button.
(More info Available HERE)

Custom Palette for Special Units and Generic Humans
Allows use of additional palettes on unique and generic sprites for battles and events.

Custom Palette for Special Units, Generic Humans and Generic Monsters
Allows use of additional palettes on unique, generic and monster sprites for battles and events.

Disable the game music
Disables all in-game music.

Divide Bonus Money by 2
Divide Bonus Money received at the end of a battle by 2.

Divide Gained EXP in 2 (Version 1)
Divines EXP gained in half and also breaks minimal 1 Exp gain on success.
NOTE: BUGGY; Exp gain works fine but the JP and EXP Gain calculates and displays normally.

Equip Change Fix
Allows changing your Right Hand/Left Hand equipments without consuming your Act.

Event Instruction Upgrade Hack
Upgrades InflictStatus(), Allows editing more variables and Adds many instructions to use in events.
(More info Available HERE)

Formula 1E (Truth Skillset) becomes Dmg_(MA*Y) #Hit(Rdm{1,X})
Formula 1E - Dmg_((MA+Y)*MA/2) #Hit(Rdm(1,X)) becomes Formula 1E - Dmg_(MA*Y) #Hit(Rdm{1,X})

Formula 59 becomes Phoenix
Applies Heal_(Y)% Hit_F(MA+X)% NE to downed allies within effected area while still applying Dmg_F(MA*Z) ME NS to enemies within the same area.

Forces any unit to automatically recover HP/MP when it steps on a crystal
Recover HP/MP will automatically selected upon stepping on a crystal. You will not be able to learn abilities from crystals.

Frameskipper v1.1
Enable/Disable Frame skipping whenever you want!
(More info Available HERE)

Global C-Ev. (Version 2)
All units will have 100% of their C-Evade calculated for the front, 50% for the sides and 25% for the back.

Incremental Jump Range
Instead of choosing the highest value of the learned jump ability for the horizontal/vertical ranges, instead they are added all together,
meaning no one skill is ever going to be useless; it will always count towards your total horizontal/vertical range.
You could have Horizontal +2, Horizontal +1, Horizontal + 1, together would be the equivalent of Horizontal +4.

Item required to use skills using the 'Materia Blade' boolean
Allows you to change the Item ID that allows use of abilities using the 'Materia Blade' boolean set in FFTP.

Monster Skill is Disabled
All monsters can use their 4 skills as if Monster Skill never existed.
(More info Available HERE)

Move-Find Item is Player Only
As the hack states, only the Player can pickup items with the Move-Find Item skill.
(More info Available HERE)

Number of Maximum palettes that can be used
Allows you to increase the maximum amount of useable palettes to 8.
NOTE: A crystal from palette 6 will crash the game and 6-8 use a glitchy palette for treasure/crystal/frog/chicken.

Propositions Hack 2.1
Proposition Hack v2 with Gil Cost and the ability to abandon marks. By Xifanie (a bit of help from Pride's original hack)
This hack involves a few more steps than most and it should really only be used if you know what you are doing. This is the hack that is used for the 'Marks' System in Jot5.

This will allow you to unlock a Proposition based on Story Progress rather than Shop Progress. It also changes how propositions work.

First you will want to go to the propositions tab in FFTP. Since this hack changes Propositions to use Story Progress you'll have to either count out the entries to find the correct number or you can rename your shop progress to also include story progress, as I have in the picture here:

Once this is setup, you can check your game and upon reaching the set story progress, the Proposition should unlock in the Bar as normal. You will NOT be prompted to send out units or select an amount of days for the job. Instead you will be told the job details as normal (These are edited in section 2 of WLDMES.BIN) and you can choose to accept or decline. If you decline the listing remains posted. If you accept then the listing disappears and the variable for the Proposition is set to 2.
The variables for Propositions with this hack work as follows:
0 = Repeat
2 = Started, can call back
4 = Completed

The next thing you would do would be to edit your worldmap conditions to include something like this on the location where you want the Mark/Proposition Event to take place:
010066030200190013010100

What this breaks down to is: IF - Variable 366 = 2 - Run Event 113 - Agressively

NOTE: Variable 366 is the Variable for Envoy ship, Falcon one of the vanilla propositions, and is just an example here. Same with event 113, as it is what I chose to use for this example. Also, the 0100 - Agressively is when you step on a dot and it takes you to a battle, it does the swirl image thing, in comparison to having this set to 0200 - Calmly, which would be the fade out you'd get if you were instead being taken to a non battle cutscene.

So now, in this example, once you accept the job and walk onto the location you put the code on in the worldmap, the battle/scene will start.

VERY IMPORTANT: At the end of the scene or battle you also need to either change the Propositions variable to either 0 or 4. If you set it to 0, the Proposition will appear back in the Bar and can be repeated. If you set it to 4, the Proposition will be flagged as completed and a bravestory entry will be added to the bravestory. Make sure you don't leave the variable as 2, because the battle will repeat everytime you try to leave the dot on the map. Here's an example of what you'd want at the end of your event to mark the proposition as complete:
ZERO(x0366)
ADD(x0366,x0004)

You can also cancel a Proposition in case you want to pass a spot on the map due to a Proposition battle being too difficult or just wanting to put it off for later. Cancelled jobs will reappear the next time you enter the Bar.


Raise Palette Limit
Allows use of all 8 palettes on Spritesheets.
NOTE: A crystal from palette 6 will crash the game and 6-8 use a glitchy palette for treasure/crystal/frog/chicken.

Ramza (unit ID 01,02 and 03) can join as a Guest.
Allows Ramza to join as a guest under normal guest joining conditions.

Remove forced slowdown for Math Skill (Skillset ID 0x15)
Removes the slowdown associated with skillset x15, which is the Math Skillset in Vanilla.

Removes permanent brave alteration. (version 2.0)
Brave alterations both positive & negative are not retained after the battle ends.

Removes permanent faith alteration. (version 2.0)
Faith alterations both positive & negative are not retained after the battle ends.

Rumors use proposition space
Rumors use proposition completion notes slots based on town ID

Selling Items at 1/4 Price
Sell items to the store at 1/4 the retail price.

Sets the title screen default option from 'New Game' to 'Continue'
Pretty self explanatory. Use this ASM if you want the cursor to start on Continue rather than New Game when you start FFT.

Smart Encounters
This hack allows you to travel on the map, completely free of encounter.
If you wish to battle at a certain location, select the given location, and your random battle is guaranteed there.
(More info Available HERE)

Spell quotes always pop up
Spell quotes will always pop up on spells that have quotes.

Stat gain/break cap + Maintenance prevents stat break
WW/XX = Lower Limit which the stat can be reduced.
YY/ZZ = Upper Limit which the stat can be raised.
For example, a lower limit of 1/3 and a upper limit of 1/4 for someone with 18PA, would be:
lower cap: 18PA - (18PA * 1/3) = 12PA
upper cap: 18PA + (18PA * 1/4) = 22PA
This hack takes full consideration of equipment.

Undead Revival Chance
Chance that undead units will revive once their death counter reaches 0 and 100CT.
Examples:
0% revive: 0000
5% revive: F999

(More info Available HERE)

Weapon Strike Fix (Version 1)
In FFTP, If the Blank Box under Hit Allies are checked for that ability as well as 'Weapon Strike'
The ability will ignore the weapon's elemental and only take elemental damage from the ability.
Else, it will stack the elemental damage from bothe the weapon and the ability.





Spreadsheet Hack Links & Descriptions

Abilities Hardcode Recode (Requires VBA)
Allows you to edit which stat an ability increases/decreases, Which item type will be stolen/broken,
and in general anything regarding abilities that is tied to them but not editable in FFTPatcher.
*Not currently Available*

Alternate Animations (Requires VBA)
Allows you to aside Human sprites and Monster sprite different animations for the same move.
*Not currently Available*

Ability Requirement Hack 2.0 (Requires VBA)
Ability Requirement Hack 2.0 removes all tables and you are pretty much forced to ASM in the requirements that you want.
It is, however, as friendly as possible for coding that I could think/manage inside of Excel's limitations.
*Not currently Available, however you can find info HERE*

Guests in Randoms & Unit Restrictions (Requires VBA)
This allows you to bring guests into random battles. There is an option to make them uncontrollable in said random battles.
The restrictions don't only apply to guests; you can prevent any special character in your party to join the squad!

Learn Priority Hack (Requires VBA)
Allows you to change the AI's priority for learning skills.
*Not currently Available*

Skillset Behaviors (Previously known as "Generic Skillset Fix"; Requires VBA)
Change the skillset to behave like another. For example: make Elemental behave as a regular skillset (Basic Skill)

Soldier Office Upgrade (Requires VBA)
This hack allows you to set a price in the Soldier Office, and a unit will be generated given variables specified in the provided spreadsheet.
It is highly customizable, and has been tested on console.

Synthesis Shop (Requires VBA)
Turn the Fur Shop into a Synthesis Shop. Inspired by FFIX.




Xifanie's Tools

Arc Generator
An event tool that allows you to easily create perfect arcs for things like jumping and throwing items using Spritemove.

Camera Helper
This is an Excel 2007+ Workbook to help you create your Camera instructions.

Event Reorganizer (Requires VBA)
Combines the Attack.out GUI, Conditions Sheet, Worldmap Sheet, and much more into one convenient, organized and easy to use tool
*Not currently Available, however you can see a screenshot of the WIP HERE*

FFTP Helper (Requires VBA)
This tool rips data from your FFT Image... then will give you loads of useful information:
Which Effects are tied to which Ability, and a list of those that aren't
Where Abilities are used (Skillset, Job Innate R/S/M, Weapon strike, Ability cast) and a list of the unused ones
Where Inflict Statuses are used (Abilities, Weapon strikes), and a list of those which aren't used on top of pointing out every duplicate entry
Which Item Attributes are tied to which Item, and a list of those which aren't used on top of pointing out every duplicate entry

FFTText Editor (Requires VBA)
This tool allows to conveniently edit a .ffttext file generated by FFTacText, then generate a new one
to load in FFTacText and easily + quickly generate/update your resources.zip.

Index Manager (Requires VBA)
Allows you to change all the file links on the ISO, both read by the game and the CD Index, you can create, remove, move files and batch import and shit.
Lots of awesome stuff, basically.
*Not currently Available*

Palette Editor
Allows you to easily edit a spritesheet's palettes.
  • 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

Vanya

September 13, 2008, 12:49:15 am #1 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
Dude! I think I love you, man! =D

How'd you discover that?
  • Modding version: Other/Unknown
¯\(°_0)/¯

Pixy

September 13, 2008, 02:03:19 am #2 Last Edit: December 31, 1969, 07:00:00 pm by Pixy
So I suppose you can edit how much temp. Br/Fa is needed for 1 perm. Br/Fa as well?

As in 30 Temp = 1 Perm instead of 4=1?

Regardless, what a find indeed.
*is FFTRamza*
no, I mean what I said. Perhaps if I said it in Japanese it'd become magically better for you. - philsov

Vanya

September 13, 2008, 10:15:19 am #3 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
It's doable but it depends on what the data at these addresses are. They are probably pointers, but if they're the actual ASM instructions they just need to be disassembled to figure out what parts do what.
  • Modding version: Other/Unknown
¯\(°_0)/¯

Xifanie

September 13, 2008, 10:52:47 am #4 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
+ max levels

I just debugged Vanya.

And yes you could make it 1 point per 30 temp but that'd be kinda useless... unless you want a range of 30-70 for brave/faith on everyone.
  • 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

Vanya

September 13, 2008, 11:00:47 am #5 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
I haven't been able to wrap my head around these debuggers. Which one are you using? I really want to do something about the Mime, but I need better debugging/ASM skills to do it. Right now I'm stuck on just figuring out what address to place a break point at.
  • Modding version: Other/Unknown
¯\(°_0)/¯

Archael

September 23, 2008, 12:56:13 am #6 Last Edit: December 31, 1969, 07:00:00 pm by Archael
:D  :o   :D

Xifanie

September 27, 2008, 10:19:52 pm #7 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
+ Money related stuff
  • 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

Vanya

September 27, 2008, 10:48:58 pm #8 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
That money selling thing is great for limiting the spamming of items and such! =)
  • Modding version: Other/Unknown
¯\(°_0)/¯

LastingDawn

September 27, 2008, 10:57:30 pm #9 Last Edit: December 31, 1969, 07:00:00 pm by LastingDawn
This is truly incredible Zodiac! Keep up the good work!
"Moment's anger can revert to joy,
sadness can be turned to delight.
A nation destroyed cannot be restored,
the dead brought back to life."

Art of War

Beta & Gretchen Forever!!!!

Vanya

September 27, 2008, 11:00:14 pm #10 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
Zodiac, I wonder if we can get you to post a tutorial about how you're finding these things so we can work on it, too! =)
  • Modding version: Other/Unknown
¯\(°_0)/¯

LastingDawn

September 27, 2008, 11:01:59 pm #11 Last Edit: December 31, 1969, 07:00:00 pm by LastingDawn
It apparently involves high level math, which... is beyond my fragile mind. You might be able to understand it though.
"Moment's anger can revert to joy,
sadness can be turned to delight.
A nation destroyed cannot be restored,
the dead brought back to life."

Art of War

Beta & Gretchen Forever!!!!

Xifanie

September 27, 2008, 11:02:52 pm #12 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
Incomplete? MIPS instruction Reference
http://www.mrc.uidaho.edu/mrc/people/jf ... IPSir.html

And I use pSX's debugger. You need to know how to debug and r3000 assembly to do this stuff. :/
  • 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

Vanya

September 27, 2008, 11:05:28 pm #13 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
I can work a debugger more or less, my question is what are you doing to come up with addresses to place breakpoints on?
  • Modding version: Other/Unknown
¯\(°_0)/¯

Xifanie

September 27, 2008, 11:22:43 pm #14 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
I have 3 ways of finding memory addresses:

1: Notes and gameshark codes.
The first part of GS codes are memory addresses themselves, if needed, change the first number to 8.

2: Memory Editor.
Search for the value and save state when you do. Then I copy the area where I found the value at and search it in the savestate.
It's also possible to subtract some value from the Memory searcher's address but I don't mess with huge numbers normally.

3: Hex Editor.
I don't know for other versions, but with 1.11 (I don't use 1.13 as it is incompatible with my full game pack of savestates), offsets in the savestate file are 0x2B0 higher (0x2B0 and not 0x280). So just subtract 0x2B0 to convert the offset to a memory address and add 0x2B0 for the opposite.

And finally to find the code In the files, well I just copy and search a small block of instructions in the concerning files. :P
  • 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

Vanya

September 28, 2008, 02:08:49 am #15 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
Cool. I'll try using this info! Thanks! =)
  • Modding version: Other/Unknown
¯\(°_0)/¯

Zozma

September 28, 2008, 03:02:17 am #16 Last Edit: December 31, 1969, 07:00:00 pm by Zozma
thanks for this post zodiac, i got the divided money thing working now :D
  • Modding version: Other/Unknown
Wiegraf: Draw your sword Ramza!
Ramza: But im a monk!!

Xifanie

September 28, 2008, 08:07:37 am #17 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
+ Halve Exp
  • 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

Xifanie

September 28, 2008, 04:26:01 pm #18 Last Edit: December 31, 1969, 07:00:00 pm by Xifanie
+ Weapon Strike Fix
  • 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

LastingDawn

September 29, 2008, 10:59:42 am #19 Last Edit: December 31, 1969, 07:00:00 pm by LastingDawn
Weapon Skill fix? You're fixing where the game programmer's themselves could not, haha! With you at the forefront of hacking there is no doubt that the game will soon be completely under our control!
"Moment's anger can revert to joy,
sadness can be turned to delight.
A nation destroyed cannot be restored,
the dead brought back to life."

Art of War

Beta & Gretchen Forever!!!!