• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
December 04, 2024, 11:12:04 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


Pride's ASM Thread

Started by Pride, April 28, 2017, 04:44:51 am

Pride

April 28, 2017, 04:44:51 am Last Edit: May 04, 2018, 02:10:35 am by Pride
Welcome to my hacking thread. Hopefully you'll find something you like. I do take requests but depending on how difficult the request is... I may decline.

Standard ASM Hacks

[01] MP Switch Overflows damage to HP

  • Any excess damage from MP Switch no longer goes to waste. It will damage the target's HP if there is any excess.

  • The Variable changes the % of damage (xx/128) that the MP portion takes, the default is the vanilla 1:1 ratio. Changing this number to x40 would cause the MP damage to take 50% less damage until MP is reduced into spillover range.

  • You can also set it to ignore spillover and increase/decrease the amount of damage MP takes alone.



[02] Remove Spill Over JP
  • Does what it says, no units will gain spill over jp.


[03] Earn no extra Gil from Level Bonus
  • Earn no Gil from the level bonus in the ENTD tab.


[04] % MP gained at turn start
  • Gain 5% (default) MP at the start of the unit's turn. Determined from variable/128, in hex of course.

  • Game crash: Causes the game to hang during tutorial fight. Investigating a solution.


[05] Enemies can now randomly spawn with PA Save, MA Save, and Speed Save.
  • Removes an (intended?) bug that removed PA Save, MA Save, and Speed Save from being randomly selected on enemies.


[06] Charge gains unique status effects.
  • Charge can have an assigned status inflict ID, overwritting the weapons status effect (IE Poison Shot inflicts Poison).

  • Use the Patcher to determine what Status ID to use under the "Inflict Status" tab.


[07] World Map script edit. ID x16 now uses a required level.
  • x16 now functions as a level check and the event or command will not run unless the unit is at least the required level. The level that its checked against is the highest leveled unit in the party. Works fully with any other World Map check (sprite ID, integer check, etc.).

  • Use World Map editor found in one of RavenOfRazgriz's spreadsheets to add to the requirements.

  • Format follows as: 1600 XX00 with XX being the desired level required. Example: 1600 0700 wouldn't allow the event to play unless the highest level in the party was at least level 7.


[08] Move the World Map script to kanji space.
  • Moves the World Map script to kanji space (x80142ae0) so you can't collide with other data if you're world map goes over the allotted space.

  • This, however, does not change where the World Map data is saved so you'll have to manually edit the .xml produced from the spreadsheet to its new location (62AE0 in world.bin).


[09] Ability Animation 07 00 00 will always swing weapon
  • Removes the Ability Flag 'Weapon Strike' from being required to swing a weapon during animation 07 00 00.

  • Should be no more unwanted punching while using an attack unless unequipped.

  • Removes the ugly glitched sword that normally appears when using the draw out animations (03 XX). This was not intended and testing other combinations where there might be an issue but appears to only affect animations where having the equipped weapon is preferred.

  • Useful if you're using another ASM that uses 'Weapon Strike' to merge the ability element and weapon element but you don't want to inherent the weapon element.



[10] Attribute Rewrite

  • Allows a secondary Item Attribute to be attached with the 1st unknown in the Item Data in the Patcher.

  • Also allows R/S/M to be attached to Items with the 2nd unknown using the Ability ID. x100 is added to the total so to add Short Charge to an item, you would set it to E2.

  • Allows you to set negative stats with values 255 - 128. 255 being -1, 254 being -2, etc. There isn't any protection about your units falling into negative stats, so be careful with that.
  • ??? Unit's will not have their HP/MP reset to 999 if they have a Helm/Armor equipped.

  • It also allows you to adjust HP/MP caps for both type of units, change the materia blade item, and change the items required for "Sword & Knight swords"



[11] Move disabled from Attacks

  • Weapon Ranged, Linear AOE, and Draw Out AOE type with a Charge Time all disable Movement while Charging.



[12] Status CT Timer Edit

  • Every Status can now have a CT by setting the time in the FFTPatcher and setting the variable x01 to x0F.

  • You are still limited to only 16 timers but they can share CTs. I.E. Poison and Regen can share a CT but will need to cancel and/or not allow them to stack on each other.

  • If the status does not have a CT, set the variable to FF.

  • It also comes package with two new Supports: To increase/decrease the length of the CT timers.

  • If you do not use my spreadsheet, you'll have to manually edit the information to change the needed data. Check the Battle Stats page on how to edit the supports and see the image for more information on how to edit the data.



[13] Move +1/2/3 & Jump +1/2/3 edits

  • Turns Move +1 into Move +?

  • Turns Move +2 into Jump +?

  • Turns Move + 3 into PA +?

  • Turns Jump +1 into MA +?

  • Turns Jump +2 into Speed +?

  • Turns Jump +3 into Class Evade +?

  • Keep the variables the same for the pairs otherwise you'll throw off the preview when you equip the movements.



[14] Transparent not lost on action or taking damage

  • Transparent status is no longer removed after taking an action or taking damage.

  • This is intended to be used with CT Magic. Unless you want permanent Transparent.



[15] Defend not removed on act

  • Defend status is no longer removed after taking an action.

  • This is intended to be used with CT Magic. Unless you want permanent Defending.



[16] New Support: Inflict Status (ID) to Weapon Attacks

  • Inflict Status: ID to weapon attacks (except Fists) that do not have a proc already.

  • Check your FFTPatcher to make sure you are adding (or cancelling) the status you want to be. Defaulted to 09 (Poison).

  • This is defaulted over Secret Hunt. Edit unit data to choose which data is checked. See http://ffhacktics.com/wiki/Data/Table_Locations for more information.



[17] Disable Secret Hunt

  • Removes the vanilla function of Secret Hunt; poaching monsters.



Spreadsheet Hacks

[01] Reaction Rewrite



[02] Generate Treasure Rewrite



If you want to see my old thread with older hacks; please refer to this thread. Its very old and several broken hacks, I would not recommend taking any ASM from there but I'll keep it there for anyone that wants to look.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Pride

May 03, 2017, 02:18:14 am #1 Last Edit: May 11, 2017, 02:10:28 am by Pride
Reaction Rewrite

A spreadsheet that allows you to change what triggers your reactions (HP Damage, MP Damage, Counter Magic Flag, Physical Attack, Ability uses CT, etc), your reaction roll (Brave %, Faith %, etc), and it allows multiple reactions to be equipped and ignoring the base games restrictions on this. The Settings tab allows you to alter the order the reaction support sets are read, ie if you change the first one to 8c, it'll allow the critical status abilities to be read before pa/ma save if both are equipped on the unit. It also comes with the ability to change the percentage amount of Damage Split, MP Switch, and Distribute allowing some buffs or nerfs those abilities. Hamedo and the evasion based reactions won't be affected by this but they can be used if new reactions are being used in their place, such as the assigning them a Counter Ability ID.

Counter Ability ID basically creates a clone of Counter Tackle and attacks with the assigned Ability ID. No dropdown box because it would be too large so you'll have to look up the ID either through the Patcher or the wiki here.

Known Bugs: Hamedo completely ignores this and only goes off of its original vanilla function. Abandon looks like it joins this as well. Currently investigating a solution.
Please let me know if you find any other bugs.

v1.0 - Initial hack created
v1.2 - Added additional requirements and added in the ability to assign an ability id to additional counters.

Current version is currently only for excel users, I'll update the original spreadsheet at another time. Left the old version up for anyone that needs a more simple version.

Thanks Xifanie for the Spreadsheet Template, Emmy for the original hack so I could understand what was going on, and fuck RavenOfRazgriz.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?


Choto

DOOOOOHHHHHHHHH PRIDE HACKS!!

Cheers to you buddy! Yes I've been drinking.

Pride

Cheers buddy!

* Pride pours a shot
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Xifanie

This reaction rewrite spreadsheet is cool stuff.

Question: What does "Normal Attack (Hamedo)" do?

I planned to make the make the 999 HP/MP cap hack at some point, but I kinda forgot about it... so it's cool I don't have to. :p

Btw, you really want to avoid using the "F" column in the Code sheet for anything, because that column is reserved for the raw hex when you import a xml; it's there in case that the spreadsheet wrongly assumes that the data is an opcode instruction... that way, you can just manually copy/paste the hex data back. Otherwise, converting 4 bytes that are not actually an instruction to one can result into data loss. There is a function called "Clear Hex Backup" which clears that column and hides it.
  • 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

RavenOfRazgriz

Quote from: Xifanie on May 05, 2017, 12:30:10 pmQuestion: What does "Normal Attack (Hamedo)" do?

This is the incorrectly documented "Normal Attack?" flag in FFTPatcher.  What this flag is actually for is (among other things) flagging the ability as being counterable by Hamedo.

Pride

Yeah raven reminded me that hamedo triggers off of that flag so I made it then hamedo doesn't care about my asm after playing around with it for a bit.  -shrugs-

Edit: ohhh okay good to know xiffy
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Pride

May 07, 2017, 12:22:09 am #8 Last Edit: August 03, 2017, 08:37:50 pm by Pride
Generate Treasure Rewrite

A spreadsheet that rewrites the Generate Treasure routine. Treasured unit's now can have up to 8 unique items, or fewer if you want to play around with the drop chance of each item, based on the unit's current level as a requirement for that item to be dropped. Any item with a level requirement of 0 is skipped and is then based on the equipment and if the unit is a monster, or naked, it then references the first entry on the spreadsheet to generate a generic drop list. The Chocobo Job is used as an example of how you can play around with the drop rates. At minimum, this asm can allow to control what items are treasured if you've changed the chemist items and may not want the enemies to drop them at all.

Known Bugs: None and hopefully it will stay that way.

version 1.1 - Initial hack created and publicly shared.
version 1.2 - Updated spreadsheet to be compatible with older versions of excel.

My notes (Xifanie's spreadsheet) are attached if you want to use that or just curious.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?


Pride

Reaction Rewrite updated. v1.2 - Added additional requirements and added in the ability to assign an ability id to additional counters, like how Counter Tackle functions.

see post for more information and download.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Pride

One hack was stealth added requested by Raven and the second adds some quality of life for Charge that I didn't see anywhere... -shrugs- At least you might be less inclined to remove Charge completely and save the ability space. Also fixed a bug in another asm.

Enemies can now randomly spawn with PA Save, MA Save, and Speed Save.
  • Removes an (intended?) bug that removed PA Save, MA Save, and Speed Save from being randomly selected on enemies.


Charge gains unique status effects.
  • Charge can have an assigned status inflict ID, overwritting the weapons status effect (IE Poison Shot inflicts Poison).

  • Use the Patcher to determine what Status ID to use under the "Inflict Status" tab.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Pride

Hey a couple more

[08] World Map script edit. ID x16 now uses a required level as a world map condition.
  • x16 now functions as a level check and the event or command will not run unless the unit is at least the required level. The level that its checked against is the highest leveled unit in the party. Works fully with any other World Map check (sprite ID, integer check, etc.).

  • Use World Map editor found in one of RavenOfRazgriz's spreadsheets to add to the requirements.

  • Format follows as: 1600 XX00 with XX being the desired level required. Example: 1600 0700 wouldn't allow the event to play unless the highest level in the party was at least level 7.


[09] Move the World Map script to kanji space.
  • Moves the World Map script to kanji space (x80142ae0) so you can't collide with other data if you're world map goes over the allotted space.

  • This, however, does not change where the World Map data is saved so you'll have to manually edit the .xml produced from the spreadsheet to its new location (62AE0 in world.bin).
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Xifanie

July 04, 2017, 02:08:49 am #13 Last Edit: July 04, 2017, 03:02:03 am by Xifanie
I actually wanted to move both the world map conditionals and the event conditionals into kanji space (to allow JotF to use only one disc, but then I remembered that we still needed more sprite space), but I figured it would be too much trouble. How bad was it?

http://ffhacktics.com/wiki/World_Map_Instructions#.3F.3F.3F.3F:_Unused

According to my notes, 0x0016 uses 2 half-words... shouldn't you be better off with just one?

EDIT: I fucked up somewhere hardcore in that documentation... 0x0016 has no half-word allocated to it by default.
  • 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

Pride

The world map conditions were easy to move, i traced it to be loaded from xd4764 but I couldn't find where it stored so took another option and searched for 80097234 to see if it was loaded from a pointer table and showed up at two locations. So I'm assuming the event conditions would be fairly similar and not very difficult.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Heisho

The charge and item drop hacks are awesome Pride, thanks a lot.
The procs on the charge hack is always 100% if all or nothing is flagged on the status?
  • Modding version: PSX
Grrr, arwg, hiss, and some other zombie noises...
  • Discord username: Heisho

Pride

I would need to double check that actually, but yes, they should
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Pride

July 28, 2017, 10:44:08 pm #17 Last Edit: July 28, 2017, 11:10:38 pm by Pride
Might as well post an asm too.

[10] Ability Animation 07 00 00 will always swing weapon
  • Removes the Ability Flag 'Weapon Strike' from being required to swing a weapon during animation 07 00 00.

  • Should be no more unwanted punching while using an attack unless unequipped.

  • Removes the ugly glitched sword that normally appears when using the draw out animations (03 XX), this was unintended and testing other combinations where there might be an issue

  • Useful if you're using another ASM that uses 'Weapon Strike' to merge the ability element and weapon element but you don't want to inherent the weapon element.

  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Heisho

Hi there Pride, I was checking around the Treasure  spreadsheet and came to a stomp.
On the XML tab the cell that has the treasure data suddenly changes to #NAME
I checked a few times and it changes from the original data (that has a lot of zeroes) to #NAME when I change something.
This of course can't let me see the code that generates from changes to the Treasure data tab.

I hope that I explained myself
  • Modding version: PSX
Grrr, arwg, hiss, and some other zombie noises...
  • Discord username: Heisho

Pride

I'm thinking the issue is that you're using an older version of Excel that doesn't accept a command (concat) that wasn't valid in 2010 or below? Xifanie pointed it out to me a while ago but I forgot to update spreadsheets that already used this command. I'll have a version that's compatible with previous versions of excel in the next few days so please check out my thread when I have a new post up on it.

Sorry about that!

Edit: Fuck it, just updated it. Check the post for a new download.


  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?