• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
November 10, 2024, 02:22:34 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.


[FFTA] Is it possible to reorder abilities? And other questions.

Started by Sharp, October 09, 2023, 06:51:18 am

Sharp

Looking at the AIO editor, it seems that job skillsets are determined by selecting a range of abilities. I intend to consolidate some jobs to free up room for new skills, so I must reorder the action, reaction, support, and combo abilities so they are contiguous for each job.

However, I don't see anything related to the ability animations, unless they are also hardcoded to the ability names and descriptions.

1. How and where are ability animations stored, if this is known?
2. Is it possible to reorder skills and have those skills just work, or is there anything else I must edit?

Since the AIO editor doesn't have a way to rearrange abilities (or anything else), I'm considering making a tool to do this form me by processing data dumped from the game and stored in text form. Looking at the data crystal entries for FFTA, they appear out of date.

https://datacrystal.romhacking.net/wiki/Final_Fantasy_Tactics_Advance:Items
This page for example doesn't have anything for the abilities taught for an item, or the jobs which learn those abilities.

3. Is there a more up to date source for FFTA data?

I want to add new spells to the game. I specifically want to add new spells for all 3 levels of the air, water, earth, holy, and dark elements, among other things.

4. Is it possible to add new ability animations, and if so how would I do that?

I want to move some skillsets to other races. For example, I want to move the Beastmaster skillset to Bangaa.

5. Does moving skillsets to another race just work, or must I add new animations for Bangaa to handle this?

I noticed that while you can choose effects for an item or ability to have, you can't edit the effects themselves.

6. Is it possible to edit individual item effects?

7. Is it possible to edit individual ability effects?

8. What limitations are known to exist for stacking item and ability effects on items and abilities?
  • Modding version: PSX

FlamingZelda

Sup, welcome to TA hacking.

Before I get started, I just want to mention that if you join the FFHacktics discord you can usually get answers to questions much quicker than you will here on the board.

1. Dunno where the actual animations are themselves off the top of my head, but the ability animation index is easy to find in the aio ability editor
Ability animation index.png

2. Not sure what you mean by "just work." Like don't need any extra patches or finagling? Anyways,
Go to "Job Editor"
Click the "Other" tab
Click the pencil icon "Edit abilities"
This opens the Race-Ability table. This menu is actually one of the most important things in all of AIO and it's a shame it's so hidden out of the way (and so buggy). Like the main value from using aio is in the item editor, job editor, "formation" editor (not actually editing formations btw, it's just a unit editor with a crappy name) and the Race-Ability Table.

Now that you have the Race-Ability Table open, you can assign abilities to jobs as you please. Just select the ability name, ability type, which ability it is, then assign it a description index (this description is different from the one in the ability editor btw), and an AP cost. (the "AP" value in the ability editor seems to go unused)

2-2. Documentation for FFTA is terrible. Right now we mostly just have smatterings of notes from a variety of romhackers, and a (mostly) comprehensive gamefaqs mechanics guide. Pretty much anything you find on the internet (or on paper for that matter) is going to have serious errors.

3. Not compiled. It's split between Darthatron's work/notes, and Leonarth's work/notes. Us lesser hackers have found tidbits of things, and corrected errors in previous documentation, but most of it isn't stuff worth making a thread over. If you'd really like more info on data structures, routines, etc. then I recommend you join the FFTA Hacking Discord Server.

4. Possible? yes. How? No idea. Animations and image data in general are way outside my skillset. (Right now I don't think there's a tool/easy method to export and import image data to the game)

5 part 1. Each job only has a limited number of animations. The animation types are:
1. Swinging
2. Casting
3. Shooting
4. Stabbing

As long as the job has access to the appropriate animation type you're fine.

5 part 2. Editing effects is easy. Just download the nightmare modules (Link in one of the pinned posts) as well as nightmare 2.

6. Items are pretty unexplored atm. I imagine you could simply change their ability effects and you should be fine. (change the potion item to deal fire damage for example)

7. Yes. See question 5 part 2.

8. Apparently the 4th ability effect slot doesn't work in aio. no clue if this is an aio bug (there are a lot of those btw) or a default behavior of the game. A lot of ability effects reference ability effect 1 (so if you want to make an effect contingent upon effect 2 you'd need to do some assembly.) Each effect has its own targeting criteria, just because effect 1 is able to hit the target doesn't mean effect 2 can and visa versa.

I would say "let me know if you have any other questions!" but I only check this board maybe 2-3 times a year so I won't see them. Hop into one of the discords if you need more help. :)
  • Modding version: Other/Unknown

Sharp

1. I think that will work.

2. I didn't notice that, but it makes more sense than how I thought it was implemented. Looks like each species (and Item) has their own array of abilities, and each job within that species can select a subarray within that.

If all the species arrays are stored sequentially within the rom and the method by which they are delimited is known, then it should be possible to change the size of the array each species has for its learnable skills. Though if there's no free space this operation is zero sum. I can make that work.

6 & 7. But there is no way to edit the effects themselves, rather than place existing effects on items or abilities? The existing effects are rather limited, even if some of them can be linked.
  • Modding version: PSX

FlamingZelda

sup, I know I said I wouldn't see more questions, but I came back to check anyway.

2.There's a single race-ability table which is subdivided based on a list of pointers (which are at 0x051BA84). So yes, you could move the bangaa array start to be later which would give humans more abilities and give bangaa less abilities.

It is zero sum unless you want to repoint the entire thing to the end of rom.

7. Not in AIO there isn't. You've gotta download the Nightmare Modules and Nightmare 2 (found on romhacking.net)

EDIT: If you mean ability effects then you can use nightmare. if you mean "ability effect effects" (Our terminology is terrible too), then you need to open no$gba debugger and whip out an assembly manual.
  • Modding version: Other/Unknown

Sharp

2. I intend to consolidate many of the non-monster multi-species skills and skillsets, so I will have a ton of free room in this array. Even with new spells.

6 & 7. Yes, I mean ability effect sub-effects, and item effect sub-effects.

I'm not at all proficient with assembly. I've found data just by thinking very hard about how it's stored and then searching for that, so if I get around to it I'll try that. Usually there are only a few ways you can reasonably/sanely store certain kinds of data, and things like gameshark codes clue you in to how it's stored elsewhere.

If you have any idea how it's probably stored - if it's a series of data tables, or if it's entirely hardcoded - that could save me a lot of effort.

I think there's a good chance it's entirely hardcoded, but it's possible it could be something like the formulas in FFT but broken down into smaller parts. Then those parts are linked together in a data table. The effect is something like a de-hardcoded formula/effects system, or a limited scripting/bytecode just for these effects.

Unrelated: I was going to ask about mission data - rewards, requirements, and everything else - and it looks like everything else is in the Nightmare modules. I'll look over them, the notes in their thread, and everything else in their thread.
  • Modding version: PSX

Leonarth

For the race ability lists, you can repoint them and such to get the max number of entries on each race at the same time, there shouldn't be an issue there, but you still can't easily give humans more abilities.

This is because of how AP for mastering abilities is stored. Each unit has about 0x90 bytes to store their AP progress for each ability. There may be a few bytes free in there, I haven't tested it thoroughly, but, considering this starts at +0x40 in the unit data and +0xD0 holds the CT, at most we are looking at 0x90 bytes, with humans already having 0x8D abilities.

If you do use the 1bit abilities engine hack then you no longer have to worry about that, since AP is completely removed and (as the name implies) mastery is stored in a single bit, leaving a lot of bytes free even after raising the limit to ability 0xFF.
  • Modding version: Other/Unknown

Sharp

Thank you for this detailed information on species ability lists.

My plan was to give Bangaa all the melee jobs, Nu Mou all the mage jobs (except Blue Mage), humans and viera a mix of the two, and Moogles all the jobs that don't require high offensive stats to be useful. This corresponds to my proposed stat growths of each species:
  • Bangaa: best physical, worst magical, good speed, best hp, worst mp
  • Nu Mou: worst physical, best magical, good speed, worst hp, best mp
  • Viera: great offense, worst defense, good speed, average hp & mp
  • Human: good all around but varies based on job, fewer weaknesses, average speed
  • Moogle: all stats poor but not worst, best speed

Humans would get the greatest variety of jobs, having access to almost all of them, while Bangaa, Nu Mou, and Moogle need at most about half of what the humans get. Viera get the jobs that require high offensive stats, so they need maybe 2/3 the abilities that humans do. I intend to consolidate many of the abilities with duplicate effects such as Blitz & Take Aim, Faster & Greased Bolt, and the near duplicate Ninja Veils & Gunner/Gladiator elemental/debuff weapon strikes.

Bangaa, for example:
Stats: High PAtk, High PDef, Okay Speed
  • Warrior: Rush, Beatdown, Blitz, Wild Swing, Faster, weapon range stat/equipment breaks; uses swords & greatswords
  • Spellsword: Advice, Elemental Shift, Gladiator/Gunner/Paladin style elemental weapon strikes for every element; uses swords & greatswords

Stats: High PAtk, Okay PDef, High Speed
  • Thief: Throw, Mug, Sensor, Steal [equipment], Steal Gil, Capture, Dual Wield; uses knives & bows
  • Ranger: Boost, Doubleshot, Gunner/Archer/Hunter/Fencer debuff weapon strikes; uses bows & greatbows

Stats: High PAtk, Good PDef, Good Speed
  • Monk: Air Render, Earth Render, Backdraft, Far Fist, Chakra, Revive, Meltdown, possibly other bangaa skills; uses claws
  • Dragoon: Jump, 3+ elemental breaths, Tremor, Lancet, Wyrmkiller, Bangaa Cry; uses spears
  • Samurai: ranged Fencer skills, short range anti-monster attack, Tremor, medium range AoE minor buffs (Defense, Expert Guard, Astra, Cheer), Warcry, Lifebreak, Holy Sign, Gil Toss; uses katanas
With that and a few more abilities for each monster family - including several reaction and support options - I think I can make it work in the space provided as each species does not need the maximum number of abilities.

I do not plan to use the 1 bit abilities, instead my plan is to reduce grind and frustration by reducing AP costs and making more items available at game start.
  • Modding version: PSX