• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
January 25, 2025, 06:16:08 pm

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!


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - FlamingZelda

1
FFTA/FFTA2 Hacking / FFTA: AutoBattle
December 27, 2024, 06:27:32 am
Sup.

Vanilla FFTA but the in-game AI controls all actions during battle. (found by Rurusachi)
I also applied a levelcap mod. (made by Aya and Myself)

I was planning to do a big release post but I'm feeling uninspired at the moment.

Download
FFTA AutoBattle1.0.zip

Documentation

Level caps
SnowballFight 1
LizardMen 1
HerbPicking 2
ThesisHunt 3
TheCheetahs 4
DesertPeril 5
TwistedFlow 7
Antilaws 8
DiamondRain 9
HotAwakening 10
MagicWood 12
EmeraldKeep 12
PaleCompany 13
JagdHunt 14
TheBounty 15
GoldenClock 16
ScouringTime 18
TheBigFind 19
DesertPatrol 21
QuietSands 22
MateriteNow 22
PresentDay 24
HiddenVein 25
ToAmbervale 26
OverTheHill 27
RoyalValley 29
PostGame 30

"Fight" Priority Values
Soldier   70
Paladin   60
Fighter   70
Thief   60
Ninja   50
White Mage   15
Black Mage   10
Illusionist   10
Blue Mage    30
Archer   70
Hunter   70
Warrior   70
Dragoon   70
Defender   70
Gladiator   70
White Monk   70
Bishop   20
Templar   70
Time Mage   10
Alchemist   30
Beastmaster   50
Morpher   50
Sage   20
Fencer   70
Elementalist   30
Red Mage   40
Summoner   10
Assassin   60
Sniper   60
Animist   60
Mog Knight   70
Gunner   70
Juggler   30
Gadgeteer   20

A-ability Priority Values (if a move is not in this list it is because the AI will not use it)
Name   PV   Target unit with low/high HP
Cure   80   Low
Cura   65   Low
Curaga   50   Low
Esuna   100   Low
Life   100   Low
Full-Life   100   Low
Auto-Life   40   Low
Shell   20   Low
Protect   20   Low
Dispel   30   Low
Holy   30   Low
Barrier   20   Low
Judge   20   High
Break   40   High
Water   70   Low
Aero   70   High
Drain   60   Low
Blind   40   High
Raise   70   Low
Giga Flare   30   Low
Bio   50   Low
Ultima Blow   30   Low
Fire   70   Low
Fira   60   Low
Firaga   50   Low
Thunder   70   Low
Thundara   60   Low
Thundaga   50   Low
Blizzard   70   Low
Blizzara   60   Low
Blizzaga   50   Low
Sleep   40   High
Quicken   10   Low
Slow   80   High
Reflect   20   Low
Stop   40   High
Quarter   70   Low
Demi   50   Low
Silence   40   High
Haste   40   Low
Prominence   40   Low
Tempest   40   Low
Freezeblink   40   Low
Star Cross   40   Low
Stardust   40   Low
Deluge   40   Low
Soil Evidence   40   Low
Wild Tornado   40   Low
Fire Whip   70   Low
Earth Heal   70   Low
White Flame   70   Low
Shining Air   70   Low
Evil Gaze   100   Low
Heavy Dust   70   Low
Sliprain   70   Low
Elementalshift   20   High
Astra   10   Low
Rasp   30   High
Death   30   High
Meteor   30   Low
Flare   30   Low
Poison   40   High
Toad   40   High
Unicorn   60   Low
Ifrit   30   Low
Ramuh   30   Low
Shiva   30   Low
Kirin   20   Low
Carbuncle   10   Low
Phoenix   100   Low
Madeen   30   Low
First Aid   60   Low
Powerbreak   30   High
Mindbreak   30   High
Magicbreak   30   High
Speedbreak   30   High
Mug   30   Low
Provoke   30   High
Body Slam   80   Low
Greased Bolt   80   Low
Downsize   80   High
Nurse   70   Low
Saint Cross   80   Low
Holy Blade   80   Low
Defense   10   Low
Drop Weapon   30   High
Tremor   60   Low
Hibernate   30   Low
Mow Down   70   Low
Aura   20   Low
Expert Guard   10   High
Meltdown   10   Low
Whirlwind   80   Low
Earth Render   80   Low
Chakra   70   Low
Revive   80   Low
Exorcise   50   High
Holy Sign   50   Low
Air Render   80   Low
Far Fist   80   Low
Air Blast   80   Low
Backdraft   10   Low
Rush   80   Low
Wild Swing   80   Low
Beatdown   60   Low
Blitz   20   Low
Fire Sword   80   Low
Bolt Sword   80   Low
Ice Sword   80   Low
Ultima Sword   30   Low
Warcry   40   High
Cheer   30   High
Soul Sphere   30   High
Lifebreak   80   Low
Jump   90   Low
Lancet   50   Low
Fire Breath   80   Low
Bolt Breath   80   Low
Ice Breath   80   Low
Wymkiller   80   Low
Bangaa Cry   80   Low
Mog Attack   80   Low
Mog Guard   20   Low
Mog Lance   60   Low
Mog Rush   60   Low
Mog Shield   20   Low
Mog Aid   70   Low
Ultima Charge   30   Low
Swarmstrike   80   Low
Shadowstick   30   High
Checkmate   30   High
Featherblow   60   Low
Swallowtail   80   Low
Manastrike   30   High
Piercethrough   80   Low
Nighthawk   80   Low
Throw   90   High
Wood Veil   80   Low
Fire Veil   80   Low
Earth Veil   80   Low
Metal Veil   80   Low
Water Veil   80   Low
Unspell   60   Low
Oblivion   30   High
Shadowbind   30   High
Last Breath   30   High
Aphonia   30   High
Nightmare   30   High
Ague   30   High
Rockseal   30   High
Ultima Masher   30   Low
Steal: Armor   20   High
Steal: Shield   20   High
Steal: Access.   20   High
Steal: Helm   20   High
Steal: Weapon   20   High
Steal: Gil   50   High
Steal: EXP   50   High
Steal: JP   50   High
Steal: Ability   20   High
Boost   30   Low
Aim: Legs   80   High
Aim: Arms   60   High
Cupid   50   High
Burial   60   High
Take Aim   80   Low
Faster   80   Low
Blackout   60   High
Sonic Boom   80   Low
Advice   30   Low
Aim: Vitals   30   High
Addle   30   High
Ultima Shot   30   Low
Sidewinder   5   Low
Hurl   90   High
Ring   30   High
Firebomb   60   Low
Ball   30   High
Dagger   60   Low
Smile   20   Low
Gil Toss   50   Low
Beso Toxico   80   Low
Death Sickle   30   High
Doom Archer   80   Use at LowHP
Doubleshot   80   Low
Aim: Armor   30   High
Aim: Weapon   30   High
Aim: Wallet   30   High
Sheep Count   30   High
100% Wool   20   Low
Cuisine   70   Low
Tail Wag   30   High
Chocobo Rush   80   Low
Frogsong   30   High
Friend   60   High
Catnip   30   High
Fireshot   80   Low
Boltshot   80   Low
Iceshot   80   Low
Confushot   80   Low
Charmshot   80   Low
Blindshot   80   Low
Silenshot   80   Low
Stopshot   80   Low
Red Spring   30   High
Blue Screw   30   Low
Green Gear   30   High
Silver Disc   30   High
Gold Battery   30   Low
Black Ingot   30   High
Chroma Gem   30   High
Yellow Spring   30   Low
Potion   50   Low
Draw Weapon   100   Low
Goblin Punch   80   Low
Magic Hammer   30   High
Mutilate   30   Low
Acid   30   High
Sacrifice   70   Low
Blowup   100   Use at LowHP
Flame Attack   80   Low
Chill   80   Low
Mighty Guard   20   Low
Guard-Off   30   High
Dragon Force   20   High
Night   30   High
Twister   40   Low
Hand Slap   60   Low
Poison Frog   30   High
Kiss   30   High
LV3 Def-less   20   High
Sandstorm   40   Low
LV5 Death   20   High
Suffocate   40   High
Resonate   40   High
Limit Glove   70   Use at LowHP
Matra Magic   40   Low
Munch   20   Low
Knife   100   Low
Karma   100   Use at LowHP
Voodoo   100   Use at LowHP
Poison Claw   60   Low
Hastebreak   30   High
Rend   60   Low
Blaster   60   High
Bad Breath   60   High
Goo   60   High
Soundwave   60   Low
Stare   30   High
Roulette   20   High
Devil Gaze   30   High
Circle   20   High
Drain Touch   60   Low
LV? S-Flare   20   Low
Miasma   30   Low
Zombify   50   High
White Wind   60   Low
Angel Whisper   60   Low
Meteorite   30   Low
LV?D Holy   30   Low
Explode   80   Low
Stillness   50   High
Azoth   90   High
Omega   30   Low
Abyss   30   Low
Life Render   80   Low
Heart Render   50   High
Ripcircle   80   Low
Furycircle   80   Low
Lawshift   30   High
Amber Gleam   30   High
Alpha   80   Low
Descent   80   Low
Magi   80   Low
Spellbind   80   Low
Breath of God   80   Low
Lightspeed   80   Low
Firestream   80   Low
Howl of Rage   30   High
Presence   80   Low
Logos   100   High
Judge Sword   80   Low
Bind   80   Low
Judge Sword   80   Low
Yellow Card   30   Low
Palaistra   40   High
Blank Card   40   High

Explanation of PVs: https://ffhacktics.com/smf/index.php?topic=13028.msg233661#msg233661
(It's just weighted probabilities)

My Discord

https://discord.gg/dzk4jP4Nhf

Happy Holidays.
2
FFTA/FFTA2 Hacking / Re: FlamingZelda's Stuff
December 27, 2024, 06:02:20 am
(Reserved)
3
FFTA/FFTA2 Hacking / Re: FlamingZelda's Stuff
August 21, 2024, 12:11:07 am
FFTA ENEMY AI

Step 1: Scan every ability that the unit knows and add that ability's "Priority Value" (PV) into a pool. (Fight's PV is called "Agressiveness" in AIO)

Step 2: Roll a number from 1 to [total of all PVs]

Step 3: Attempt to execute whichever move is landed on. If the move cannot be executed go back to step 2. (Fight will always be executed)

Step 3 cont.
A move cannot be executed if it:
A. Violates the current laws and the unit does not have the boss flag
B. The unit does not have enough MP
C. The ability is set to "Do not use" in the targeting editor (Listed as A-Ability Editor -> AI Data -> AI Behavior -> "Unknown" in AIO)
D. Has no valid targets

D Cont.
Valid targets:
The game checks the ability's effects. Each effect has a group of valid or invalid targets.
Additionally, the ai will not do negative effects on allies or positive effects on enemies.
The ai does not check Equipment or Abilities.
(If Fight has no valid targets then just move without performing an action)

Step 4: Select a square to use the action on

Step 5: Choose a square to move the unit to in order to be able to target the square selected in step 4.

Step 6: Complete the action.

Step 7: Select a facing.

Misc info:
A PV of 100 does not mean "the unit has a 100% chance of performing the action" as many people keep trying to insinuate.

Fight is never invalidated. If a unit would use fight and can't they instead move toward whichever square they would fight from.
This means a unit with a higher fight value will more often do nothing or just walk on their turn. Units with a low fight value are more likely to use abilities.
4
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.
5
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. :)
6
(Reserved)
7
Important:
For ios and andriod installation I recommend using retroarch emulator with the mgba core installed. Shattered Dream was made using mgba 0.9.3 and users have reported bugs when using older gba emulators.

Releases
(To check that the game patched successfully, start a new save file and check Mewt's hp. If he has 7 hp you are playing shattered dream)
(You may get a checksum mismatch error when patching the game. No issues have been observed from this.)

- Version 1.0
A Shattered Dream.zip

- Version 1.01
A Shattered Dream 1.01.zip
Changelog
Fighter:
HP 21.2 -> 21.0
MP 1.7 -> 1.9
Def 8.0 -> 8.2
Speed 1.3 -> 1.4

Dragoon:
Speed 1.4 -> 1.3

Templar:
W.Atk 9.2 -> 9.0

Nu mou Black Mage:
MP 3.1 -> 3.7

Nu Mou Animist:
Speed 1.6 -> 1.5

Shaman:
Def 6.8 -> 6.4

Moogle Black Mage:
MP 2.7 -> 2.8

Masamune:
Power 75 -> 65
 
Masamune 100:
Power 89 -> 75

Rods:
Speed 8 -> 9

Souls:
Speed 10 -> 8

Toad:
MP Cost 24 -> 28

Air render:
Vertical range 2 -> 3

Unspell:
MP Cost 0 -> 6

Elementalshift:
Range 4 -> 3

Updated mission ranks

Fixed clan Shalo not auto-leveling

Ninja is now weak to Holy magic

Nu mou Doublesword AP cost 100 -> 800
8
Because I saw values which were not the highest values possible, I assumed that the unit had undergone normal variance. That was a mistake on my part.
9
Help! / Can FFhackticks display gifs?
February 14, 2023, 10:30:33 pm
Title.

Can I display a gif in my post and if so how.
10
Help! / Re: FFTA Crash
February 14, 2023, 10:29:15 pm
Pretty sure a post like this belongs in the FFTA board. https://ffhacktics.com/smf/index.php?board=47.0

That said, I have no clue what is causing your crash. You'd need a gba hacking expert who has your rom and .sav to figure it out, and even then it could be a time consuming process to fix.

FFTA saves are almost entirely undocumented so creating a workaround would be difficult as well.

The only thing I can suggest is cancel caravan guard from the pub menu and hope the crash is only with that particular mission.
11
What does this edit do? I tried it and the recruited unit still had stat variance. (jobs growths were set to whole numbers so no variance there)
12
FFTA/FFTA2 Hacking / FFTA: A Shattered Dream (1.01)
February 11, 2023, 08:57:45 am
Intro
Final Fantasy Tactics Advance: A Shattered Dream is a full game mod for Final Fantasy Tactics Advance.

Key Features:
- Level cap changed from 50 to 30
- Enemies autolevel to match your clan's level (Clan's strongest unit's level - 1 + rng(0-2))
- Mp gained per turn is [maxmp]/8 +2
- AP costs are reduced (100 -> 100, 200 -> 150, 300 -> 200, 800 -> 400)
- Shop prices are increased, gil rewards from missions are reduced
- Beastmaster, Morpher, and Nu Mou Time Mage jobs are replaced with Nu mou Animist, Shaman, and Astrologer.
- Base stats are based on race, growths are based on job
- Speed is affected by your equipped weapon type
- Each element type has a different effect:
    Fire - Strong against warrior type jobs
    Lightning - Strong against rogue type jobs
    Ice - Strong against mage type jobs
    Water - Strong against basic jobs
    Wind - Strong against advanced jobs
    Earth - Strong against the five main races
    Dark & Poison - Strong against healers, heals undead
    Holy - Strong against undead, heals holy jobs
- Adjusted lawsets and reduced penalties for breaking laws (No more Equipment Fine or Stat Down)
- Rebalanced every Item, Job, and Ability in the game
- Reduced the number of mission items
- Reduced the length of several extremely complex mission chains
- Reworked every enemy formation except wandering enemy clans
- Reworked totema and combo abilities
- A whole bunch of other stuff

Explanation:
I made this hack because I liked FFTA as a kid, but found the second half to be very disappointing. I've taken inspiration from FFT, FFTA2, and the Fire Emblem series in my reworks. The goal was to create something which feels like vanilla ffta but progresses into a higher echelon of power and epicness than the original.

Testimonials from my playtesters: (These are paraphrased)
"Wait, what did you even change?"
"I was surprised how much everything felt like the original."
"Wait that was part of your hack? I thought that was from the original game!"

Screenshots
(I wanted to post gifs of epic boss fights and cool abilities, but mgba kept crashing so here are some screenshots of casual gameplay instead)
Final Fantasy Tactics Advance A Shattered Dream-12.png
Final Fantasy Tactics Advance A Shattered Dream-15.png
Final Fantasy Tactics Advance A Shattered Dream-16.png
Final Fantasy Tactics Advance A Shattered Dream-3.png
Final Fantasy Tactics Advance A Shattered Dream-6.png
Final Fantasy Tactics Advance A Shattered Dream-14.png
Final Fantasy Tactics Advance A Shattered Dream-5.png
Final Fantasy Tactics Advance A Shattered Dream-13.png
Final Fantasy Tactics Advance A Shattered Dream-7.png
Final Fantasy Tactics Advance A Shattered Dream-22.png
Final Fantasy Tactics Advance A Shattered Dream-27.png
Final Fantasy Tactics Advance A Shattered Dream-24.png
Final Fantasy Tactics Advance A Shattered Dream-35.png
Final Fantasy Tactics Advance A Shattered Dream-63.png

Downloads
Hacktics won't allow me to attach any more files, so either go to post 2 or my discord for downloads.

Credits
Darthatron (FFTA All In One Editor v0.7)
bcrobert (FFTA Nightmare Modules v19)
Hextator (Nightmare 2)
Victotem (FFTA TextEditor)

Bluhen
Dck
ScarletMagi
Leonarth
Darthatron
Mohawkjoe
Aya
Ninjapenguin

Discord
https://discord.gg/CCuQz9n5dQ

11-2-2024 - A few weeks after my progress was deleted I found a random game file from December 2023. This was enough work regained for me to pick up work on the project again. I've been making progress at an extremely fast pace. I'm currently trying to get the next version ready for release in the next few months.

- Hey all. Wrote a paragraph explaining the situation but then it got deleted. The short version is I lost the romfile for this project. The last saved version (September 2023) is on my discord server. I've lost so much work though that I've decided to let this project die. Feel free to use and edit as you wish. Sorry you guys couldn't get see the final version (It was really cool).

- The project is currently on hiatus. I am very slowly making progress on this between other things. I will hopefully have the next version out sometime before February of next year. Making a full game hack for FFTA is a very large and time consuming process. I hope you will be patient and understanding in waiting for the completed game.

Intro
Final Fantasy Tactics Advance: a Shattered Dream (FFTA:SD) is a rebalance mod for FFTA. I began the conceptual work on this mod February of 2019 and began making edits June/July of 2020. The mod is now over 90% complete. I had initially intended to release this mod in its completed form, however I believe there is room for more playtesting and a few bugfixes before the mod is truly considered complete. I will edit this post (and the title) when it is time for the official release.

A word on design philosophy
FFTA:SD seeks to remain faithful to the original FFTA's unique design and identity. For this reason I have forgone making changes which could hurt the game's structural identity. This means controversial mechanics like the law, JP, and AP systems are in full effect. While it would be easy to remove these, FFTA is one of the only TRPGs with these systems and I feel they are necessary for the authentic FFTA experience.
There are a couple places where I chose to go against FFTA's natural design, these will be underlined when they come up.

Key Features

- Max level is set to 30.
- Enemy levels scale to the highest unit level in your clan.
- Jobs have been fully rebalanced.
- Many game breaking strategies have been removed.
- Fixed many broken or near useless abilities.
- Reworked Item stats. Weapon power is more appropriate for weapon type.
- Shop tiers are based upon story progression.
- Base Stats are based on race.
- Job's stat growths have been reworked to be more forgiving.
- Learning abilities is smoother. Slightly more AP is gained per mission and less AP is needed per ability.
- Elements have effectiveness against different types of units.
- Enemy formations remain conceptually similar to FFTA, but adjustments have been made to make for a more engaging experience.
- The Beastmaster and Morpher jobs have been replaced. We now have the Apothecary and Shaman jobs instead:
    The Apothecary is a physical support unit which crafts items to use from long range. They start weak, but become powerful in the endgame.
    The Shaman is an offbeat spellcaster which uses monster souls to toy with enemies. At first they seem strange, but their dark magic can be incredibly useful.


A word on difficulty
Aside from its lack of clear explanation for its mechanics, FFTA is possibly the easiest videogame I have ever played (No really, it's easier than pokemon). While this is not explicitly a difficulty hack it does bring the difficulty to a level more comparable to FFT on playstation. In the latter half of the game (a place where I feel the original falls off) FFTA:SD enjoys experimenting with powerful enemy compositions and encouraging the player to experiment with its mechanics. This comes to a head with the final boss fights which take a decent level of prep and strategy to defeat (Something which is commonplace for a Final Fantasy game, but is missing from FFTA.) It is my hope that both players new to FFTA and returning players alike can enjoy this mod.


Downloads
https://www.dropbox.com/sh/r102qfrhf4xitwe/AAB1e8igojgZDpwYmeKgv1_ja?dl=0
https://drive.google.com/file/d/1-QIlI9Amrc-zwDLqac_GnhcyI1HvlxIN/view?usp=sharing

Patch to a "Final Fantasy Tactics Advance (USA)" rom.

Credits
Darthatron (FFTA All In One Editor v0.7)
bcrobert (FFTA Nightmare Modules v19)
Leonarth (Tutorial skip)
Hextator (Nightmare 2)
Victotem (FFTA TextEditor)

Discord for this and my other projects: https://discord.gg/CCuQz9n5dQ
13
This tool is incredible. I'm only a few weeks out from releasing my finished hack now and this has been super helpful. It should definitely be added to the "FFTA Editors and Modules" pin.
14
FFTA/FFTA2 Hacking / FlamingZelda's Stuff
February 04, 2023, 12:57:55 pm
Important
Please do not post in this thread!
FFHacktics only allows around 10-14 file uploads for the lifetime of a post. I'm getting very close to this limit (each time I update a mod it requires a new file upload) so I request that people do not post in this thread. If you have any questions about these mods or how to use them please either ask in the FFTA channel of the FFHacktics Discord (https://discord.gg/ePeXxgewh6) or in a separate thread.

Intro
Hey all, through the last 5 years of editing FFTA I've learned a few things. So here I'm going to share a handful of doodads that I created and found which aided me in the creation of my romhack. (A Shattered Dream)

1. Nightmare Modules

This is an improved set of nightmare modules which includes the following:
Ability Effect Editor
Combo Editor
Card Shop Editor
Formation data editor (Unit data begins at 0x852A4D0 for those of you who want to repoint formations)
Lawset editor
Law editor (Doesn't seem to work properly)
Mission data editor (includes mission and cutscene triggers)
Mission rewards editor
Recruited Unit Editor
"Special Characters" (??? don't use this. Included in the upload by accident.)
"Throw" & "Hurl" Item Lists Editor
FFTA nmm.zip

2. Regen and Poison Calculations

"To make Regen use the same formula as poison, paste 00 B5 FF F7 D5 FF 02 BC 08 47 at 1303FC in rom"
By default, Hp Regeneration and Poison have different value calculations. I don't remember the exact calc, but HP Regen varies from about 12 points to 25 for the entirety of the game, meanwhile poison scales to 1/8th of your max hp. You can use the above instruction to skip the hp regen routine altogether and just use the poison calc instead. (I found this makes hp regen a viable option for healing and unit sustainability)
If you want to edit the game's poison calculation I went ahead and made an event file for that. Just follow the instructions in the txt to change the poison calc and then load into eventassembler.
FlamingZeldas_Regen__Poison.txt

3. Unit position data
I'm sure I've mentioned this before, but in the formation editor in AIO there are 6 values in the bottom right listed as "Unknown Values."
The values are as follows: Unit X coordinate, Unit Y Coordinate, Unit Facing, Unit Class type, Buffer, Buffer.
This is useful if you ever add new units to a pre-existing formation (If only there was a tool to do that *cough* *cough*)

4. Custom Crit and Advice Calculations
In FFTA a unit's crit% = JobEvade/10
I made an Event File (run with event assmbler) to change crit% to a set value. Additionally you can use this file to edit how much of a crit chance boost Advice status gives. (For example in my hack I made a move "Meditate" which sets the user's crit chance to 70% for the rest of the battle)
FlamingZeldas_Crit_Change.txt

5. Weapon animation types
The game has 4 weapon animation types:

Bludgeoning/Slashing: Blades of all kind/ Sticks of all kind/ Instruments/ Knuckles/ Unarmed
Ranged: Bows/Greatbows/Guns
Piercing: Rapiers/Spears
Casting: Performing magic A-Abilities

This is contrary to what is documented elsewhere on this site.

6. Enemy AI
In my time here I've also worked out how the game's ai system works. This isn't a rigorous explanation but a functional one which should be helpful for anyone seeking to make custom formations. It's a bit complicated so I've put it in the next post.

7. Mission Chart
I also made a chart of every combat mission in the game and when it gets unlocked. I have it listed below, just open in a new tab and download to view.

8. Counter/Bonecrusher & Reflex/Strikeback
Counter and bonescrusher activate if the ability targeting the user is physical (even if it's a healing move)
Reflex and strikeback activate if the ability targeting the user is "fight" (or combo in the case of doublesword)
Bonecrusher does not activate if the enemy's attack misses
Strikeback does not activate if the user cannot attack the enemy (out of range or disabled)
As such, Counter provides more consistent damage payout than Bonecrusher and Reflex provides more defensive coverage than Strikeback

9. AutoBattling
Write "05 E0" at "0x092578" in the romfile to enable automatic battling. This should work for any version of FFTA including romhacks. (Credit: Rurusachi)

10. Level Caps
This is an EventAssembler mod which allows the user to set custom level caps for each of the story missions. Open the .event file with a text editor to edit and view these level caps.
(Made in collaboration with Aya)
FFTA Level Caps by Story Progression.zip
15
There isn't a way to do this currently. If you were to remove the special character status from march and montblanc when they're loaded into your party you'd get two vanilla units instead, but any story mission with march or montblanc would load in a separate march or montblanc with nulled stats. If you keep the special status, you keep the costume.
16
FFTA/FFTA2 Hacking / Re: Customizing AI of enemies
September 05, 2022, 02:11:30 pm
All units in FFTA use the same AI as far as we know. What makes a White Mage enemy act differently from a Fighter is what moves/abilities they have. Each A-Ability has a pointer for ability type and a value for the priority to give that move. "Life" for example, is a healing type move with high priority (70 or 100 I think) Which means if the AI can use life on a dead ally it will.

Some moves are set as player only, meaning the AI will not use these moves (all of the morph abilities fall into this category).

The default settings for the move "Defense" are: Use when at low HP, 10 Priority.
This means the AI will only use defense if at low HP and there is no other option (like attacking or using a potion)
Change these two settings till you find something you like.
17
Each monster type is it's own race. Each race has a number of animations associated with it. Each ability calls an animation. A bomb will not call Fire punch because it has no animation for punching. This is why most monster spells are different from their human counterparts.
18
Quote from: Leonarth on November 14, 2021, 01:46:33 pmAnyway, I put together some notes on maps, I'd like to know if there's any part of it that people feel needs further explanation.
Map table starts at: $569104
Number of entries: 0xA3
Size of an entry: 0x58

When accessing this table map ID is decreased by 1, so map ID 1 is the first entry, map ID 0 has no entry and instead produces a completely black map.

Map table:
0x00 Word Tileset graphics, relative offset (these are loaded to 0x06000000)
0x04 Word Tile arrangement for both layers, relative offset
0x08 Word Top layer behavior, relative offset
0x0C Short Relative offset to map palette for LCD A
0x0E Short pad?
0x10 Word Terrain map, relative offset
0x14 Word Main tile animations, relative offset
0x18 Word Main tile animation graphics, relative offset
0x1C Word Target VRAM offset for Main tile animations
0x20 Word Extra tile animations 1, relative offset
0x24 Word Extra tile animations 2, relative offset
0x28 Word Extra tile animations 3, relative offset
0x2C Word Extra tile animations 4, relative offset
0x30 Word Extra tile animation 1 graphics, relative offset
0x34 Word Extra tile animation 2 graphics, relative offset
0x38 Word Extra tile animation 3 graphics, relative offset
0x3C Word Extra tile animation 4 graphics, relative offset
0x40 Word Target VRAM offset for Extra tile animations 1
0x44 Word Target VRAM offset for Extra tile animations 2
0x48 Word Target VRAM offset for Extra tile animations 3
0x4C Word Target VRAM offset for Extra tile animations 4
0x50 Word pad?
0x54 Byte Sky palette id for LCD A
0x55 Byte Sky palette id for LCD B and TV
0x56 Byte Map palette id for LCD B and TV
0x57 Byte pad?

Relative offsets in Tile animations are added to their corresponding Tile animation graphics.

A map palette table entry is a short, relative offset to the start of that color mode's table.
Map palette tables start at:
LCD B: $42CC80
TV: $427A04
There is no LCD A table, as the LCD A map palettes are referenced through relative offsets.

All other relative offsets are always relative to the start of the table, $569104

Sky palettes do not work in the same way, I haven't really looked much into them, though.

Data accessed through relative offsets has a compression header.
Not all data can use every mode, for example, Tile arrangement only checks for modes 0x01, 0x10 and 0x11.

Palettes accessed through palette ID are always lzss compressed, with no compression header.

The compression header looks like this:
0x00 Byte Mode

if Mode is 0x00 or 0x02 (raw):
0x01 3Bytes Uncompressed data length
The rest of bytes are raw, uncompressed data

if Mode is 0x01 (raw, fixed size):
0x01 3Bytes Unused
The rest of bytes are raw, uncompressed data, Uncompressed data length is 0x4000 bytes

if Mode is 0x10 (lz77):
0x01 3Bytes Uncompressed data length
The rest of bytes are lz77 compressed data

if Mode is 0x11:
0x01 3Bytes Offset

if Offset is 0xFFFFFF:
Call the decompress routine again, passing the offset + 4 as the argument. For some reason.
I have only ever seen the mode on the new decompress call be 0x10, not sure what the point is.
else:
Get the word at Offset, and divide it by 256 (or >> 8), call this NewID.
Call decompress for Tile arrangement of map NewID (without substracting 1 from NewID).

if Mode is 0x12 (lz77):
0x01 Word Unused
0x05 3Bytes Uncompressed data length
The rest of bytes are lz77 compressed data

if Mode is 0x20 (lzss):
0x01 3Bytes Unused
0x04 Word Uncompressed data length
The rest of bytes are lzss compressed data

if Mode is 0x21:
??? Seems to never be used.
If modes 0x01 and 0x11 are anything to go by, this could be a map specific lzss mode.
That would simply mean the Uncompressed data length is fixed.
As it is never used, I never really bothered checking.

if Mode is 0x22 (lzss):
0x01 7Bytes Unused
0x08 Word Uncompressed data length
The rest of bytes are lzss compressed data

Data is decompressed before it can be accessed, the structures explained here are for the decompressed data.

Tile arrangement:
2 layers of:
64 rows of:
64 columns of:
0x00 Short Tile

The Bottom layer is first, the Top layer is second.
These tiles are stored in WRAM and then copied to VRAM as needed, so their format is just that of a regular GBA tile.
Layers are simply what the map looks like, they technically have no impact on gameplay.

The Bottom layer goes below the units, it contains most of what the map looks like.
Stuff on the Top layer goes above the Bototm layer. It goes below the units as well, unless specified otherwise by the Top layer behavior data.
The Top layer can easily be used as a way to add more detail to maps, which is something vanilla doesn't take advantage of.

Terrain map structure:
16 rows of:
16 columns of:
0x00 Byte Height of the terrain
0x01 Byte Type of the terrain
Positions start with the top left one, going right and down, as if reading.

Type of the terrain is actually a bitfield (not heavily tested):
0b0000 0000: No bits set, regular terrain
0b0000 0001: Can look at but can't walk on, however, can fly over
0b0000 0010: Water (can jump over, can stand on)
0b0000 0100: Can look at but can't even fly over
0b0000 1000: Can't look at and can't walk on
0b0001 0000: Nothing special?
0b0010 0000: Nothing special?
0b0100 0000: Nothing special?
0b1000 0000: Nothing special?

Top layer behavior:
64 rows of:
32 columns of:
0x00 Short Behavior
As you may have guessed, each column in the Top layer behaviour data affects two tiles of the Top layer in the Tile arrangement data.
Behavior is a packed struct that looks like this:
0b--YY YYHH HHH- XXXX
- denotes unused bits.

For example, if we had an X of 8, a Y of 12 and a H of 5:
X: 0b---- ---- ---- 1000
H: 0b---- --00 101- ----
Y: 0b--11 00-- ---- ----
Putting it all together:
0b0011 0000 1010 1000
Or, as a Short:
0x30A8

The purpose of this data is to determine when something in the Top layer goes in front of units, and when it goes behind them.
The X and Y components should correspond with the Terrain map tile this Top layer "object" would be "standing" on.
H should correspond with the height of that same Terrain Map tile.
I have not actually looked into how the game handles this data and what the actual checks look like, but going by these rules works fine enough.

Tile animations:
0x00 Short Length of graphics for each frame
0x02 Short Number of entries in the list
Then, for each entry:
0x00 Short Duration
0x02 Short Graphics relative offset (this gets multiplied by 0x20 after being read, which is the size of a tile)

Thank you this is very helpful

Quote from: Leonarth on November 13, 2021, 01:11:50 pmEither way, what is wrong with your move descriptions? "broken" is very undescriptive.

They're not broken, they're just totally inaccurate. Subdue for example used to deal 1-12 dmg, now it does a weak strike and stuns an enemy for a turn. I'm just gonna have to release a txt file alongside my hack which gives all the jobs' abilities and growth rates alongside an updated job tree.
19
Three years later did the map editor ever find its way to a releasable form? I ask because Custom maps would be a huge boon to the FFT community and as another user mentioned, would add a level of strategy currently not present in the game.

Additionally, any chance on a Text editing tool for non Buildfile/EA users? I started my hack with AiO 2-3 years ago and I can't afford to restart in order to fix move descriptions.
20
Greetings! I have good news.

I have discovered what the first three "Unknown Values" in Unit Formation Data in FFTA's AIO editor are:

The First value is the unit's X position with horizontal position being: Byte1 value = X
The Second value is the unit's Y position with vertical position being: Byte2 value = Y
This is with the upper-rightmost part of the map being "up" (Y coordinate equals 0), and the upper-leftmost part of the map being "left" (X coordinate equals 0).
The third value is the unit's orientation: 0 = Down, 1 = Left, 2 = Up, 3 = Right.

All of this is overridden by mission events (The little cutscenes before or during a battle), so at the moment you can only change the position of units which are not programmed to have a little "walking" animation at the beginning of the battle (as seen in "Herb Hunting")

Hopefully this information is useful and finds inclusion in the eventual 0.8 release of the AIO editor.