Final Fantasy Hacktics

Modding => Non-FFT Modding => FFTA/FFTA2 Hacking => Topic started by: Leonarth on July 16, 2018, 12:14:58 am

Title: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 16, 2018, 12:14:58 am
Hello, everyone.
I have been romhacking for quite a while now, but I just recently took interest in hacking FFTA, about two or three weeks ago.
FFTA was a game I played a ton as a kid so I have affection for it, I was susprised to find out there isn't much for it in the way of tools, though the AIO editor is pretty cool.

I have been poking at the game with an edited version of Event Assembler that a friend from the Fire Emblem hacking community put together and the old trusty debugger that totally never crashes for no reason: making adding text easy, documenting event opcodes and making EA raws for them to make event editing a breeze, taking notes on tables and structures...

Today I finished making a script to turn Tiled .tmx files into insertable maps.
(the bush going over the characters took me a while to get right, in fact it took 4 of the 5 days...)

I don't think any of the tools are ready to be shared yet, but I figured I would share a video here:


And here you can check what the maps are like in Tiled:
(https://i.imgur.com/FG2tDS2.png)

I still haven't found a good solution for making height maps so for now I make them by hand, if you guys have any ideas please let me know.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on July 21, 2018, 01:37:48 am
Looks cool! On the topic of height maps, Advance Map faced a similar problem. Pokemon games have tiles with assigned values to mean things like surfable, not passable, etc. The program therefore has a separate tab just for editing those values, which in this case would be height, in which the tiles are displayed as a visual aid for the modder.

Of course I know that making something like that for an isometric game offers some more challenges but...closest thing that came to mind. Good luck!
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: dck on July 21, 2018, 09:37:13 am
This is really interesting, I didn't think anyone was working on ffta like this and it covers an area nobody to my knowledge has gone into before- with the exception of tret handling.

It's inspiring to see development like this tbh, FFTA is a very dear game to me and modifying it on this level would open for a lot of really neat choices.
Can't lie, this actually got me to work on my own hack for a lot longer today than I otherwise would haha.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on July 21, 2018, 11:40:06 am
Thanks for the comments!

I have tried making isometric maps in tiled but I haven't found a good way to place the map as an image below the isometric grid, I might end up trying to make a custom tool for it, though I would first need to learn how.

Right now I'm working on fixing monsters in the party, after that I will start making the cutscenes for this map.
I figured I would post an update, this is how the map looks now:
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: dck on July 21, 2018, 12:46:16 pm
Pretty neat, vanilla doesn't make much use of narrow passages or strong defensive positions in maps, other than in one or two examples, so even that custom map is already looking quite promising in comparison.

Party monsters and monster making in general are things I'm personally more familiar with, so if you need help with that feel free to bring it up.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on July 26, 2018, 02:34:16 am
In addition to the bottleneck, I also like how the grassy plains terrain can transition into a section without vegetation. Too many maps in vanilla are like, "Um...haven't I been here before?"

Any progress in map editing is huge because there are very few maps in FFTA that offer any strategic challenges.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on August 01, 2018, 03:09:53 pm
I haven't shown anything in a while so I figured I would post what I'm up to right now:


I have been working on making custom party sprites and portraits work, as well as making completely new jobs.
(Well, new to tactics advance, I'm pretty sure anybody reading this would know where that gria is from)

I wanted to make events for the map but I got sidetracked.

Party sprites and portraits use pretty weird formats which probably explains why I haven't been able to find anybody that had done much with them, I modified the routines in order to add the possibility of loading uncompressed graphics for both of those things, as well as making assigning them to jobs and characters easier.

(https://i.imgur.com/5egi1Ta.png)
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Blunderpusse on August 01, 2018, 03:37:37 pm
The progress you're showing restores all my faith in Humanity. And seeing that you've been able to put a gria sprite in FFTA, makes me wanna learn spriting so I can make my own custom sprites (and share them, obviously XD).
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Miona on August 02, 2018, 01:31:26 am
Quote from: Leonarth on August 01, 2018, 03:09:53 pm
[...]

Party sprites and portraits use pretty weird formats which probably explains why I haven't been able to find anybody that had done much with them, I modified the routines in order to add the possibility of loading uncompressed graphics for both of those things, as well as making assigning them to jobs and characters easier.

(https://i.imgur.com/5egi1Ta.png)


Woah, nice!
Could you please explain, how and where you modified the routines?
With that, playable Llednar would be complete: FFTA: Llednar as playable character - Problems & questions (http://ffhacktics.com/smf/index.php?topic=10685.0)
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on August 02, 2018, 04:38:26 am
You can find the source for my ASM here, as well as instructions on how to apply it.

Since I'm using Event Assembler for everything it might be hard to deal with for people that aren't using it though.
The initial installation shouldn't be a problem, but dealing with the tables without EA sounds like a pain, maybe you can use the .nmm modules by changing the offset or something, I haven't used nightmare in years so I wouldn't know.

https://www.dropbox.com/s/cmvqbril78938t9/ffta%20party%20sprites%20and%20portraits.rar?dl=0
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Miona on August 02, 2018, 06:46:51 pm
Thank you, this is very useful!
Not long until playable Llednar is complete. :D
Adding / changing new sprites and portraits is interesting, too.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on August 04, 2018, 08:41:25 pm
Changing the loading routine is a bold fix. I like it. There was a time when I toyed with the idea of removing races and race-based mechanics. Which of course would mandate all human sprites.

But yeah the awkward formats were...blech. I've had limited free time so I just gave up on that idea at the time. :p
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on August 04, 2018, 11:40:05 pm
Today I got sidetracked yet again:
(https://i.imgur.com/HHbdsVf.png)

This is what I have been working on today, I noticed that JP is stored as a short, I never liked judges or combos so I went ahead and:


Things that I still need to do for this to be complete include:
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on August 05, 2018, 05:30:54 am
On the note of movement abilities: I seem to remember the boots having "abilities" assigned to them that are unlearnable and hidden. Those might actually be fully coded movement abilities that were already buried in the ROM. I never looked into it though.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: dck on August 05, 2018, 12:19:14 pm
That wasn't exactly the case. Boots with innate movement/standing type overrides break when they have their skillsets manipulated in AiO, but to me that doesnt translate to them having any remnants of movement abilities- just that AiO doesn't account for the override information being there to begin with.

Getting sidetracked to expand on cool ideas like this sounds perfectly to me btw. Bear in mind the Descent ability slot by itself points at the totemas though.

I am only now realizing, in practice the 3 effects per ability isn't as real a complexity cap as I thought because one could just use Descent-like functions to have a certain slot call from a pool of multiple abilities.
That's annoying and probably going to get me to redo multiple abilities, aaa
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on August 05, 2018, 11:49:17 pm
Three? Four effects per ability. And instead of gambling abilities, why not look at an ability like Bad Breath? It actually has more than four effects. It only has "one" effect in the structure because each value essentially points to the ID value of a subroutine.

EDIT. Well technically it points to a structure that eventually points to subroutines. Can you tell I'm a little rusty? Haven't reviewed my notes in years. :p

The only use I ever found for effects like Descent or Friend was to effectively shove all of the Gadgeteer's crap skills into one big gamble skill lol.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: dck on August 06, 2018, 03:24:01 pm
There actually is no fourth effect available, that's just a misinterpretation of the structure. It could be it's dummied out in the general routine, or it could be it's actually related to JP gain on kill like TFergusson suggests in his mechanics in-depth look. However you look at it though- nothing on that slot is ever actually run; so without changing that, all abilities are fixed to using 3 effect slots at most.

The bad breath idea is pretty cool though, I'd rather not derail further but I'll look int it for sure. Just figured I'd mention since I think all public structures for abilities show that "fourth" slot as being functional, AiO included.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on August 06, 2018, 08:40:43 pm
(https://i.imgur.com/TzcCcZE.gif)
It still needs some polish but currently learning works and the first movement ability is complete, including a replacement for the Combo icon made by a friend.

Units can also earn JP to spend on abilities by just earning EXP, with a 1 to 1 ratio.
(https://i.imgur.com/6bgpl6s.gif)
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on August 06, 2018, 11:33:44 pm
@dck; Well damn. I'm glad you told me that before I got back into FFTA lol.

@Leonarth; I noticed the features you're working on seem to be thematically linked to porting FFT's mechanics forward. A version of FFTA that borrows more from its famous roots might be interesting.

EDIT. Actually I just realized the gria is obviously new. This could ultimately lead to a version with the best elements of all three games. The TRPG of my wet dreams is getting so close to being a reality. :p
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on August 06, 2018, 11:46:54 pm
I never liked combos or totemas, combos don't add much, movement abilities are a way better alternative in my opinion.

The final goal with the JP learning is to have abilities be either learnt or not so that they only take one bit in the save data, this will give way more space for saving other things, meaning the limit of abilities by race (which is currently about 0x82 due to how the game saves the AP for the abilities) will be able to be increased to 0xFF, a different pool of JP for every job would potentially be possible, or other data like custom unit names could be saved.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: dck on August 07, 2018, 03:16:50 am
Ah, by movement abilities I thought you meant active ones restricted by an external mech or something like that. The idea of support movement exclusive abilities is rather cool, but it might overstep into the field of actual support skills later on when youre balancing it. Either that, or without some pretty crazy options all units would probably default to movement boosts- might not making so different from just upping the movement stat itself for the job.
Regardless, great potential on that change.

A friend of mine who got mildly into ffta hacking a year back but never ended up releasing anything had a similar goal to your JP learning, wanting to reduce the space used up in save data so he could keep track of units dead in jagds and add a sort of cemetery mechanic, with the ability to resurrect them as non-humanoids after death.
Technically he actually made it functional, so yours will def be achievable too.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on August 07, 2018, 06:50:59 am
The only overlap issue I can really see is the shoes vs the abilities. But that's as easy as removing the shoes or setting a priority check. I'm just excited to see new ability options. FFTA's short list of passives and reactions has been totally eclipsed by newer TRPGs at this point. Which makes sense logically but still sucks since I love the unique feel of these games.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: dawnbomb on August 24, 2018, 04:36:20 pm
i sent a PM to Lenarth. i'm extremely interested in this. please check your PMs!
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Zeke_Aileron on August 30, 2018, 10:06:58 am
As much as i highly dislike FFTA, but after seeing the possibility of map editing and learning abilities in a similar fashion to FFT has made me fanboy a bit more since i loved FFT and FFTA2.

So keep up the outstanding work on your progress with these since it opens up a lot more of modding potential for FFTA.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on September 05, 2018, 12:46:43 am
I haven't posted anything in a while so I figured I would get something together in case anybody wants to check it out, I'm releasing the first version I made of the skill purchasing, it includes no balance changes (other than disabling combos and totemas), it's purely the engine hack.

Please, notify me of any bugs you encounter.

Explanation and Features:

With this engine hack units will be able to learn abilities by using their JP.

The units earn JP points at a rate of 1 for every EXP point they obtain, judges will still grant JP but that will hardly matter. The max JP a unit can have is 999, this number is by-unit and is shared between all their jobs, unlike in FFT.
Units can't learn an ability for a job they don't have access to.
JP cost of an ability goes down as the unit earns AP for it.

To purchase an ability you need to visit the abilities menu (Pick Abilities -> Press R (info)), simply scroll to an ability of a class the unit has access to and press A, if the unit has enough JP a prompt with the cost will appear, otherwise nothing will happen (for mastered or unpurchasable abilities) or a message saying there is no JP available will show up.
All abilities for all unlocked jobs will show up even if the unit has 0 AP for it and doesn't have the corresponding item equipped, so you can go for your favorite abilities right away.

All blue magic that is mastered through Learn has had its cost changed to 0, making it unpurchasable.

Combos and Totemas can't be used. Units can still learn combos, they just can't use them.

Download Links:

The patch for vanilla FFTA:
https://www.dropbox.com/s/vv44ec74uof50xl/FFTA_JP_Skill_Purchase.ups?dl=0

The source buildfile, which you can use to apply this to any FFTA romhack:
https://www.dropbox.com/s/cbjl8bahx29rpyq/ffta%20skill%20purchase.rar?dl=0

If you are trying to apply the engine hack to a FFTA romhack you will need to find where freespace starts and change the FreeSpace definition at the top of the ROM Buildfile.event file.

Known Issues:

After purchasing enough A-Abilities to unlock a job you will need to visit the job changing menu for it to get unlocked, that's just how the game works, I don't consider that important enough to fix it for a demo.

After purchasing abilities and exiting the menu you can see the old JP value flash for one frame, again I think this isn't important enough.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: ExL on September 05, 2018, 12:59:58 am
That's a breakthrough in FFTA hacking for sure :v/:
All that can be asked for at this stage is separate patch without Combo/Totema changes so people can use it as a base for their projects. Ability buying system may find it's place in different hacks and can be a good start for them.
Personally I like vanilla system more and think it's one of the best parts of FFTA/A2 games, but taste differs among players. Not that it's bad or I won't give it a go of course :lol:
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on September 05, 2018, 01:04:22 am
The combo/totema disabling is just a one instruction change, it's in the jpLearn.event file, in line 7, removing line 7 and building the rom again would enable combos and totemas but any unit would be able to use totemas every other turn which is why I disabled them.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on September 12, 2018, 11:34:48 pm
Combos and totemas were too broken anyway. There's probably a better way to implement totemas and combos can be replaced with movement abilities or a second passive ability slot. The only thing that I'll miss about the combos is the really cool animation.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on September 14, 2018, 11:41:02 am
This is an update to the skill purchase system, I have been updating the files on dropbox these past days but I thought I would make a post here about what's changed.

To anybody that is wondering, you can use this engine hack with existing saves for both vanilla and hacked FFTA versions without issues.

The only thing that I think is left would be to change the judge reward graphics (JP1, JP10), I might do that at some point but I do not consider it important. I would say the patch is now at a 100% playable state.

I want to remind people that this patch makes it impossible to use combos and totemas.

(https://i.imgur.com/nLahfee.png)(https://i.imgur.com/uPVpVsl.png)

Fixes and Changes:

First of all, I made a lot of changes so sorry if I forget about some of them.


Options:
This is a list of things you can easily change by just opening the buildfile.

The default base damage for Steal: JP is 20, with 10 up and down variance, the judge reward is also 20 by default, judges are NOT removed by default.

Download Links are still the same:

The patch for vanilla FFTA:
https://www.dropbox.com/s/vv44ec74uof50xl/FFTA_JP_Skill_Purchase.ups?dl=0

The source buildfile, which you can use to apply this to any FFTA romhack, as well as to customize the whole thing:
https://www.dropbox.com/s/cbjl8bahx29rpyq/ffta%20skill%20purchase.rar?dl=0

(A friend has been testing Skill Purchase with Grim Grimoire, so I thought I would add an .ups file for it)
The patch for Grim Grimoire, apply over a rom with Grim Grimoire already patched:
https://www.dropbox.com/s/eccmgnwwrnoitfo/FFTA_JP_Skill_Purchase_GG_Beta_0.993.ups?dl=0
Keep in mind that this mod might update in the future, rendering this .ups patch unusable, if that happens use the buildfile download.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Diedrik on November 04, 2018, 10:26:31 pm
The buildfile failed to create a UPS file, I am presuming I am missing some other tool. The FFT_hack file though worked well enough for my purposes at the time.

I am assuming that it is not possible to have both the custom AP display and the fill bar? I tried adjusting it a bit, and found that letting it use any of the old schema at all mostly just lead to it messing up. Possibly as a side effect of the hoops necessary to display all of the abilities at once.

I do want to keep combos as a mechanic, but I think they require a lot of tweaking, and would definitely rather have a movement ability type to equip instead. Especially since there are only two combo abilities really. (100% hit rate combo, or combo that can be activated by someone else while the character is at a distance, both of which are kind of terrible in their own way). And therefore it is a waste of a slot space.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on November 05, 2018, 07:54:22 am
Creating the .ups file is not integral to building the rom so there isn't any real issue, you can create an .ups file manually using NUPS. If you look at the .bat file it calls for ups/ups.exe, I actually don't know if there is any repository specifically for this tool but you can download it from this one https://github.com/FireEmblemUniverse/SkillSystem_FE8/raw/master/ups/ups.exe

I had both the bar and the number of AP in the past, I eventually discarded this, the number tells you everything you need to know and worrying about the bar working at the same time was just wasted effort.

I have some ideas about implementing combos at the same time as skill purchasing but it will take me some time to get to that since I'm on a break right now and I have some other projects started too.

A way to get a lot of free saved space on every unit would be to remove the whole slowly learning abilities thing, that way we could make them take just one bit (maybe two, one for learnt, one for equipped), you would be able to equip abilities that weapons grant you but you would never master them unless you purchase them. You would get points to purchase with for performing actions, but also from the regular AP rewards after a battle.
With this we could keep track of how many levels with each job a unit has, their kill count, have custom names for units and many other things. How would you guys feel about that change?
Also, shoes could be made to grant a movement ability you can equip instead of always giving the effect.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Diedrik on November 05, 2018, 08:45:31 pm
Thanks.

I really like the bar, but just because it looks nice and is a faster more clear way to see the AP progression.

Ooo, I really like the dual learning system as it currently is, far more than I expected. However, having the AP reward also grant fungible points would be pretty good.

Custom names sound really good. I think all in all it would be a really beneficial trade off, so I am all for it. I do not think we actually really need job levels, partial mastery does make sense for unlocking more jobs, but having more variable space to work with on units in general would be awesome.

Do enemy units also keep track of AP? Could utilize that same space for them as well.

The main things I want for units that they currently lack:
Gender (at least for Humes), single bit, but unlikely to be useful given the lack of sprite variety.
Factors that affect AI, such as Personality, Morale, Fear, etcetera
Feats/Badges (I really liked how they granted passive bonuses, and unlocked classes in TO:KoL) One bit per feat.

Do you know how many bytes the AP and Combo systems are currently using?

Can we make Items just an available action for everyone? Since you do not have to learn skills in it, it does not make as much sense for it to take up a skill slot. It would be kind of interesting if you could equip usable items for use in battle, like in TO.

I think my ideal skill learning system would work like this:
1. Select skill you want to learn.
2. Skill becomes useable, but has a chance to fail (possibly success = jp/cost)
3. When jp ≥ cost, the cost is subtracted from jp, and the skill is mastered.

Just keeping the JP Purchase as is, delinking it from combos, and cutting out AP to free up more bytes for character data though would be awesome.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on November 30, 2018, 06:39:00 am
Sorry for the delay, I've been very busy lately, I tried to address all your points.

Enemy units are in every way the same as player units, the only two differences between player and non-player units is where they are loaded to in ram (non-player units are loaded after the last unit of the clan, even if it's empty) and a bit that determines if they are red/green.

Using one bit for gender would make sense, but I would have to look into it to see what would be easier, making gender a bit or a new race, I want to work on adding new playable races at some point anyway.
I guess gender could be something unrelated to race, since people might want monsters to have genders too, but some races could always be male or female.
Another possibility is making it be two bits, one for male, one for female, some things, like boxes, would be neither, some monsters might be both (flans maybe?), but unless new abilities that interact with this or some monster breeding side activity is added it would be pretty pointless.

To me units in FFTA always looked androgynous enough to not worry about it but if people care about it enough to make alternate animations for the genders I would be glad to add them in.

As for personality, AI is something that's hard to mess with, the only variables that are easy to interact with are the job's aggressiveness level and the ability AI properties, I worry that changing them only a bit wouldn't be noticeable to the player and changing them too much would make the AI exploitable. Other factors that could possibly be played with are current hps, making a unit thing they have less hp left than they actually do or that they target is lower on health, etc.

I know nothing about feats/badges, depending on how they are granted some of them would take more space (number of kills, total damage dealt, number of tiles traversed, etc) but it sounds like a possibility.

Combos take 3 bytes total, one for the equipped combo ability and two for the total JP (even though it maxes at 10...) and AP takes 0x90 bytes, each byte being the AP the unit has for the corresponding ability index of that race, with the first bit being used to mark if the ability is usable (because it's mastered or because an item is granting it).

Making Items available to everyone would probably not be too hard since it's already programmed in for alchemists. Having an individual inventory for each unit sounds possible if abilities are made to take just one bit, but a menu for it would need to be made though and if we get the AI mixed into it... it would take a lot of effort.

I think making abilities have a chance to fail would lead to people just not using them until they are mastered, some abilities already have a lower hit%, some cost mp and some aren't good enough to risk an extra chance at not landing, it would also take some work and I don't know how it should affect abilities that aren't actions.

I took combos out because I plan on turning that slot into movement abilities instead, nothing is really preventing combos and totemas from being allowed to exist within the JP purchase system, they would just be constantly available since getting JP is extremely easy.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on December 04, 2018, 04:25:48 pm
It has been a while since the last update to the skill purchase system.

This version is still compatible with existing savefiles. This will however likely change in the future, when ability progress is made to take up 1 bit instead of 1 byte.

(https://i.imgur.com/cgavL25.png)(https://i.imgur.com/FP7Dlxd.png)
The newly included "Move +1" ability.

(https://i.imgur.com/iTBw6S2.png)
The new limit for JP, 9999. Together with the other graphical changes this allows for abilities to cost more than 999 JP.

(https://i.imgur.com/VY6Omwi.gif)
The new, optional, movement confirmation system, which prevents movements from being undone.

Changes:

A few changes may seem like downgrades at first, this is because they are preparing the groundowrk for 1 bit abilities, getting rid of AP in exchange for save data space.
I might do a version that still has the AP stuff in the future, but many engine hacks I'll work on will use this new save space.


Fixes :


Options:

In order to access these options you need to download the buildfile version of the hack to modify "Rom Buildfile.event" and rebuild the patch.
Feel free to discuss about your option preferences as it might influence what is left as deault false or true in the future.


Download Links are still the same:

The patch for vanilla FFTA:
https://www.dropbox.com/s/vv44ec74uof50xl/FFTA_JP_Skill_Purchase.ups?dl=0

The source buildfile, which you can use to apply this to any FFTA romhack, as well as to customize the whole thing:
https://www.dropbox.com/s/cbjl8bahx29rpyq/ffta%20skill%20purchase.rar?dl=0

The patch for Grim Grimoire, apply over a rom with Grim Grimoire already patched:
https://www.dropbox.com/s/eccmgnwwrnoitfo/FFTA_JP_Skill_Purchase_GG_Beta_0.993.ups?dl=0
Keep in mind that Grim Grimoire might update in the future, rendering this .ups patch unusable, if that happens use the buildfile download.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Diedrik on December 05, 2018, 06:57:24 pm
Do not worry about delays, we understand this is a hobby in your spare time, something nobody has much of.

I definitely like the multiple bits for sex idea, but also agree that it would be superfluous without a dramatic quantity of additional content.

Having each unit have a modifier applied to their job's aggressiveness and their perceived HP, MP, etcetera would be a really satisfying way to add personality types in my opinion.  Especially if we can have a morale/terror system that adjusts those modifiers.
That would also be very useful if we could have an auto-battle system. Are we able to flip the guest bit mid combat?

I really like the badge system in KoL, and would prefer to have something like it to learn skills and unlock classes, but I think it falls in the same category as sex, interesting, but not worth adding unless a much more drastic overhaul is planned.

Just having items available for use without costing an action ability slot would be pretty good, are we able to add abilities to the list? Like drop weaon? Thereby allowing some of the uses of equip change.

I definitely prefer movement abilities over combos, especially since most of the combo abilities were just copy pastes of eachother. I really like the idea of combos, but they need a significant overhaul and should be divorced from the JP system.

Many people have said the non-final movement is a key selling point, so having an option to have canceled moves just take back the benefits of the font like abilities might be a good idea, or granting them at the end of the turn. I do have to say though that one of the main appeals of them in FFT was to use them mid turn in order to make other actions possible.

Can we get an option to only get JP as the mission reward instead of also as a duplicate of exp? I am interested in this option for two reasons:
1. I am interested in level flattening, and thus might want to take out exp entirely at some point.
2. I find the fact that I gain more AP for doing an action leads me to act against my units best short term interests for the benefit of their long term interests (ability mastery).
Pretty sure I can do this just by editing the build file, but it would be nice to have it as an option on the front.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Leonarth on December 05, 2018, 07:57:15 pm
Today I decided to work on something I always wanted as a kid, it doesn't change the game much but I think it's a big quality of life improvement.

(https://i.imgur.com/6qh51Qq.gif)

I call it manual sort, it allows the player to customize the party order.
Tomorrow I'll try to work on adding sound effects to it but the patch is otherwise completed.

I will make a release after it has gone through more testing.

EDIT: Sound proved to be way easier than I expected. I guess I'll release it today.
Here's the download: https://www.dropbox.com/s/14hyhegmbnqnlvg/FFTA_Manual_Sorting.rar?dl=0
Includes both the .ups patch (for vanilla) and the buildfile.

How to use:

There are options to set Marche and Montblanc to be impossible to swap, in case it causes issues, but it is not enabled by default.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: bcrobert on December 06, 2018, 04:41:31 pm
Huh. I always wanted manual sorting but it never comes up in conversation. Very nice.

Unrelated: I am personally against the idea of having an individual inventory for each unit. The game has plenty of micromanaging already.
Title: Re: My progress in FFTA hacking (map, events and text editing mostly)
Post by: Diedrik on December 06, 2018, 07:30:41 pm
Yeah, I agree it can get kind of overbearing in TO

Manual sorting is the sort of quality of life thing that is not necessary if it does not exist, but is totally required if it does exist. It also gets me hopeful for an invite/diplomacy function for recruiting enemies. Has anyone tried forcing the recruitment dialogue to appear after a mission? If we could copy enemy data there that would be awesome, especially if you could queue a few at once like in Tactics.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 07, 2018, 05:56:12 pm
I haven't tried to make recruitments happen, but since the game itself can already do them it shouldn't be too hard. I have documented a lot of event codes and one of them is the special character recruitment, which can even happen mid-battle, there is an issue with getting multiple recruitments to happen after battle, though:
When the mission complete animation happens and the battle ends, all enemy data is cleared. This means that even if we had an enemy that was invited, the enemy wouldn't be there anymore by the end of the battle to accept this invitation, there are several solutions to this, the one that makes the most sense to me is making the game not clear the data as soon, making it be cleared after the recruitments or when a battle begins instead.

Right now I'm working on other stuff though, I want to change how abilities are tied to jobs, how the game checks which jobs are available to each race and how the game checks for job unlocking. These things are too limited right now in my opinion. I'm doing it as a part of the jp purchase system but I will try to make it compatible with vanilla as well.
When I'm done the result should be:

Please note that when I say "unlocked jobs" it can mean two things: when a unit unlocks a job they can change into it, but it also becomes "unlocked" for the rest of the game, which makes it appear on the job wheel for units that can't yet change into it, if you have any good idea about what to call these two different things that would be nice.

As for the 12 jobs limit on the wheel, I was thinking a way to handle it would be to split the wheel for units that have more than 12 jobs into several wheels of equal size (so a unit with 13 jobs available would have a wheel of 7 and a wheel of 6), being able to change between them with L and R and maybe showing the current wheel you are on in the corner. I would think that at absolute worst someone would want 3 wheels for 36 jobs but I would try to make it handle up to 9 (for a possible total of 108 jobs... No idea who would want so many of them).

If anybody wants to help with this: feedback on the ideas is welcomed, it would be very nice if you could check if after loading your files the area from 0x2001F80 to 0x2001FAF is empty or not after reaching the world map (I haven't been able to find any use for this area even though it saves) and also if you know of any set of sprites that could be used to make a custom job please let me know.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: bcrobert on December 12, 2018, 04:48:43 pm
"Unlocked" and "revealed" maybe?

Also another possible take on the invite ability: It could temporarily store the character in the clan data. So even though it mechanically is giving you the option of whether to delete the temporary character or not at the end of the battle, it would look to the player like it's just a typical recruit option. There would need to be a check that makes the invite automatically fail if the clan is full but that check should be there either way imho.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on December 13, 2018, 05:46:17 pm
Having them join mid battle would work pretty well too I think.

So would we be able to add an arbitrary ability to a job? That would be a huge improvement. I also like the idea of custom requirements, such as how KoL disabled the priest job if you killed too many people, but unlocked the dark knight job.

I would probably use unlocked to mean that the job is in the list of jobs you have acquired, and available to mean the selected character can currently use that job.

I think it would be really interesting to have the wheels grouped by types, such as Tank, Healer, Offensive Magic, Utility, Mixed Classes, etcetera. I think that your just numbering of them and incrementing upward would work fine though, especially if you made it so only available jobs were shown. It might be interesting to make it also show the next tier of jobs, but that sounds like it would take far too much work to bother implementing checks for.

If you mean sprites from other games then Tactics Ogre: Knight of Lodis uses a nearly identical visual style if I recall, and should have most, if not all of the sprites necessary, I do not think downed sprites are commonly used in the game, but I am pretty sure that all of the classes have them. As a pie in the sky side note, it would be amazing to have the KoL classes in FFTA as an expansion to the Hume race, and a new race for the female human classes from KoL. I know the main character's sheet at least is available at the Spriter's Resource.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: ExL on December 14, 2018, 02:05:46 am
Eh... once I've tried to recolour and slap ears on valkyrie from KoL, didn't end well on ears phase, something went wrong and I've scrapped it altogether :( and I so wanted spear viera with thunder and healing abilities... Oh well.
Don't forget Onimusha Tactics (also available on Spriters Resource and Sprite Database to some extent, at least they are in same style) and of course A2 is most wanted.
I always wanted vanila FFTA with as much A2 content as possible crammed in there and everything updated to A2 abilities/stats(and all items available through normal play of course).
Even though TO's features are very tempting would be great to have QoL hack staying as close to vanilla as possible :roll: You know, for those who want more than there was in original game, yet don't want radical changes like whole different mechanics for ability gaining or permanent death.
Don't think I'm discouraging you, I love TO:KoL and it would be great to see stuff from it blend into FFTA! Just that I like FFTA too and having it same, but better would be neat alongside mods with completely different flavour...
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 14, 2018, 04:16:46 am
I don't know if there was some confusion here but I'm not making one single patch, I'm not making a mod, I'm making engine hacks people can use to make their mods, I might make a complete mod in the future but that is not what this is. If you want to mix and match the engine hacks you will have to do that yourself.

Nothing prevents you from getting the JP purchase system but not the permadeath (which isn't even included with the purchase system to begin with), or getting only the manual sort hack without anything else, these are all their own things, the patches I release are just so people can easily check them out and even those patches don't have everything in them, if you downloaded the manual sort patch you would notice that it's ONLY the manual sorting for vanilla, no purchase system, nothing else.

This is as modular as it can get, I can't imagine a way to offer more customization than this, you can download whatever parts you want, include them on a buildfile and use Event Assembler to install them EVEN on an existing mod.

However, for some stuff leaving the default vanilla systems alone is just not possible, there is just no way to add more jobs to humes without making abilities take up less space, there would be nowhere to save the AP of the new abilities to, if people want more abilities for humes (so that they can have more jobs that aren't just a mix of the other jobs) they will need to use the 1 bit abilities patch I'm working on. This patch frees up a lot of saved space for each unit so it will be mandatory for many things.

That said, the job/ability assignation rework I'm making will have a customization option so you can set it to either 1 bit or regular AP abilities, if you do set it to AP you won't be able to add more jobs to humes but you could add more jobs to other races.
This will be included in the purchase system (because the purchase system will require it), but will also be available on its own, as usual.

Anyway, have a sneak peek, Ezel with access to all Nu Mou jobs, on top of his expert job, using the job/ability assignation rework.
Of course I also made sure that other Nu Mou don't get access to Hermetic (it won't even show on their list).
And a gif that shows a soldier with a custom ability list purchasing an ability and unlocking it on another job as well, because I made them share an index.
(https://i.imgur.com/GYKI06m.png)(https://i.imgur.com/8HEEqG7.gif)

This will take a while to get completed, pretty much every place that checks for abilities or similar needs to be adjusted, I have done a lot of progress though, the status menu is almost done, the job change menu is the only thing missing there, then after that I need to work on the job icons (those things that say stuff like SLD and GUN), both so that they are easy to change and set and so that the screen that shows which jobs can equip which items can show all jobs (I will probably make it have a page for each race, although I'm unsure what to do about experts).
After that, there's still the whole battle side of things missing, there needs to be new routines to check and make the list of abilities you can use in battle, make the enemy know which abilities they can use too, and also rework "Steal: Ability" and "Doublecast" so that they use the new ability lists.

Currently you can either set a custom list of abilities to a job or let it use the vanilla system, you can add extra checks on top of the vanilla job unlock checks and also on top of what I call "show" internally (jobs that you can see but can't change into), for example, Hermetic has a "is this character Ezel" check, if the check isn't passed the job won't even show up on the list, for monsters and other similar jobs there is a routine that always returns false that can be used.
You can also specify which jobs can't set item as their secondary command (by default alchemist and monsters) and which ones get it as a third option (by default just alchemist).
There's also an option to set which jobs are set as unlocked by default, because apparently that's hardcoded in vanilla, even if you made all jobs have no requirements they would still not show up on your command list until you visit the job change menu.

As I said this will take a while, but other than the change jobs menu this is going to be tedious work rather than challenging work so I don't have any doubt it can get done. Once it's finished I will update the purchase system with it (and a few other changes) and I will probably make a new post just for the job/ability assignation hack so that people can leave their feedback and questions about it there.

Edit:
https://www.dropbox.com/s/14hyhegmbnqnlvg/FFTA_Manual_Sorting.rar?dl=0
I have been updating the manual sorting hack silently, the link is still the same as always but a few things have changed, mostly bugfixes, I think it's complete now so here is the list:

Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on December 16, 2018, 12:28:40 am
Quote from: Leonarth on December 14, 2018, 04:16:46 am
I'm making engine hacks people can use to make their mods.

Anyway, have a sneak peek, Ezel with access to all Nu Mou jobs, on top of his expert job, using the job/ability assignation rework.
Of course I also made sure that other Nu Mou don't get access to Hermetic (it won't even show on their list).
And a gif that shows a soldier with a custom ability list purchasing an ability and unlocking it on another job as well, because I made them share an index.

Kudos Sir!!
The iron-man mod is also very nice.
I am no hacker and I never once thought such things were even possible.

I want to ask a few questions
FFTA has some things that if fixed, would make the game better.


I had already asked these questions a while ago in this thread (http://ffhacktics.com/smf/index.php?topic=10776.0), but they were not implemented.

Quote from: Leonarth on December 05, 2018, 07:57:15 pm
Today I decided to work on something I always wanted as a kid, it doesn't change the game much but I think it's a big quality of life improvement.

I also wanted manual sorting as a kid.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 16, 2018, 06:05:19 am
I'm not informed on how the mechanics work so there's a lot of things I wouldn't know the desired effect of:

I don't see any reason why any ability couldn't be given its own modifier with some ASM, Magic Resistance+ would be pretty easy considering I already made Move+1, space is not a concern, there is plenty of space available on the ROM, for a-abilities the table would need to be repointed though, but if repointed it can handle up to 65535 ability effects, way more than anyone would ever need.

Also, new sneek peak, a gif of the new job wheel working (after setting all jobs to hume for testing):
(https://i.imgur.com/YjBzC0S.gif)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on December 16, 2018, 10:57:35 am
Quote from: Leonarth on December 16, 2018, 06:05:19 am
What is the bonus damage you get from attacking from the back in FFTA2? Is it some % increase?

-In FFTA damage is 100% from any direction.
-In FFTA2 damage is 50% facing front, 75% facing side, 100% facing back.

Quote from: Leonarth on December 16, 2018, 06:05:19 am
Does the directional damage bonus apply to abilities in FFTA2?

-It applies to most abilities, except magical ones.
-In FFTA2 magic is highly accurate and does the same damage from all directions.

Quote from: Leonarth on December 16, 2018, 06:05:19 am
What are "fixed damage" abilities? Do you mean abilities that do the same damage as Fight?

-By "fixed Damage" I mean skills like air render, back-draft and all magic. Their damage is not dependent on equipped weapon.

Quote from: Leonarth on December 16, 2018, 06:05:19 am
Are abilities that do 1.5x damage not boosted?

-They are boosted by Wpn Atk+, but not by Double-hand.

Quote from: Leonarth on December 16, 2018, 06:05:19 am
What does the bonus damage from berserk apply to?

-Since berserked units only fight, it may apply only to that, I do not know.

Quote from: Leonarth on December 16, 2018, 06:05:19 am
I don't see any reason why any ability couldn't be given its own modifier with some ASM, Magic Resistance+ would be pretty easy considering I already made Move+1, space is not a concern.

Thank you :) Any comments on Double-hand?

In case you wanted to know if anything else needed fixing, maybe you can also check these out:
Damage>MP cause HP damage to use MP instead.
"Damage>MP" in FFTA damage does not overflow into HP when MP becomes zero.
"Damage>MP" in FFTA2 damage overflows into HP when MP becomes zero.
eg:
in FFTA, 300 damage on target with 50 max mp ---> 50 mp damage, remaining 250 is truncated. Animation still displays 300.(This is a easy way to avoid a large amout of damage. 999 hp damage can be easily avoided with a minimal 1 mp)
in FFTA2, 300 damage on target with 50 max mp ---> 50 mp damage and then 250 hp damage. Animation displays 300 (damage overflows into HP).
A method to achieve this has been posted (hex changes) but it did not behave well for me. Times-like not activating when its supposed to, only overflowing some times.

Maybe you can also check out this other support ability called "Evade magic", its similar to "Reflex".
Reflex - avoids all fight damage.
Evade Magic - avoids all magic. (This exists in FFTA2 because magic is highly accurate).
There is a check box in the FFTA-AIO for skills that checks if they are physical/magical, maybe use with this.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on December 16, 2018, 04:40:01 pm
The support abilities that mess with damage in vanilla would benefit a lot from being able to modify them, currently we can only cover the accuracy but there's scenarios like doublehand that make no sense whatsoever in their current state:

2. Attacker's Support Check

       The various Support abilities are checked for bonuses to Att.

       2a. If the Attacker has Weapon Att+ set and the Ability is Physical:
             Att = [Att * 307 / 256] (approximate 20% increase)

       2b. If the Attacker has Magic Pow+ set and the Ability is Magical:
             Att = [Att * 307 / 256] (approximate 20% increase)

       2c. If the Attacker has Turbo MP set and the Ability has a greater
           than 0 MP Cost:
             Att = [Att * 332 / 256] (approximate 30% increase)

       2d. If the Attacker has Doublehand set, the Ability being used is
           Fight and the weapon being used is single-handed, while not holding a shield:
             Att = [Att * 307 / 256] (approximate 20% increase)

  3. Attacker's Status Check

       Now the Attacker's Statuses are looked at for bonuses to Att.

       3a. If the Attacker is Berserk and the Ability is Physical:
             Att = [Att * 307 / 256] (approximate 20% increase)


These are then modified by other things like whether Att or MPow stat buffs or debuffs are present, giving a +/-10% to physical or magical damage if so. For comparison the stat buffs for defensive stats are 60% just like the protect and shell spells are, which is kind of crazy since they stack.
Although it should be kept in mind defense points in FFTA are in practice 1/2 as effective as offense, so it's not as ridiculous.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on December 17, 2018, 09:51:52 am
Something that has not been solved till now would be..."Doubleshot"

Doubleshot - Hit the target twice for half damage on each hit.

Changing the damage bytes in the AIO does not affect it. Even giving it an MP cost and combining it with Turbo MP does not boost damage.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on December 17, 2018, 11:51:06 am
That wheels switching looks awesome.

Do you plan to incorporate customizable Innate abilities to your ability overhaul? That would be pretty great.

What emulator do you use for testing? I have been mostly using RetroArch and an android emulator for playtesting, but I do not think either of those lets you monitor addresses with much ease.

When the recruit menu pops up in Vanilla, how does it generate the units? Are they randomly generated, or are they pulled from somewhere? It would be pretty awesome if we could get a TO style recruit option in cities. (picking race and level, and paying a price based on that.)

I would also be interested in cannabilizing the clan skill system for saved space.

I feel like we are derailing your topic, we might want to start a separate one to cover some of these questions.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 17, 2018, 12:30:09 pm
I'm fine with questions here, I guess at some point I should start a compilation topic with download links, this would stay as the discussion topic, for now I don't think it's a big issue though.

I have no clue how the game generates the recruitment units, I haven't looked into it at all, I think I saw some nightmare module at some point so that would be nice documentation to start with.
I was thinking about reworking the prison into a recruitment center, I haven't done any research on that so this is just a random idea.

For testing I use No$gba Debugger, when I play casually I use mGBA. I also use mGBA when I want to get certain graphics from games.

I love that you guys are leaving so many ideas here but please understand that I will take a while to work on them, I want to focus on one thing at a time. I'll be looking here when I want a new idea to work on.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on December 17, 2018, 12:43:41 pm
I have been keeping an as up to date an index of many of your patches as I am aware of, you can check the FFT/TO flavor patch list pinned topic for some of them, so no need to worry about that for now.

That would be pretty awesome, and honestly would make a lot of thematic sense even if it remained a prison.

Okay, thanks.

Do not worry, I think alot of us are looking for information, and an estimate of feasibility/difficulty, we do not expect you to do all of it yourself, certainly not anytime soon, as awesome for everyone else as that would be.

Edit: Bad news, the most recent version of the JP Skill Purchase, and Manual Sorting, do not appear to be compatible.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 21, 2018, 03:58:03 pm
I haven't shown anything on events in a long time so here's a new thing I made:
(https://i.imgur.com/OPxgjjQ.gif)
This event allows you to skip the first two fights, but still name the main character and the clan, all without breaking rumors and missions (as far as I can tell).
It skips the tutorial on placing world map symbols, too.

I have a lot of tiny hacks like that, I can't really think of a good way to distribute them so I just add them as options to the JP purchase system, I could also add an option to not install the JP purchase system in case people only want the small stuff, or I could make a dropbox folder with all of them and trust people to know how to install them. What do you guys think?

Also, I made a minor update to the JP purchase system to fix some broken stuff, it shouldn't affect the .ups files but if you downloaded the buildfile please redownload it.

Work on the job/ability assignation rework is going pretty well, it has many features already and all that's remaining is the most tedious stuff, like making sure "Steal: Ability", "Doublecast" and the Morpher job are all working, stuff like that. Once it's done it should also mean that the 1bit abilities for the JP purchase are complete, since I'll be able to replace the core ability checking routines to change all other routines at once.

Here's the new "can equip" menu, with a page for each race in order to support up to 42 jobs for each playable race, you can also customize which races show up in the menu so if you want to remove all races but humes you can do that:
(https://i.imgur.com/iExWLss.gif)
If you pay attention you'll notice some new icons, which are another feature that will be included, although they wouldn't show up by default (I changed the special character's races so they would show up).
Another thing to note is that only jobs that have been unlocked will show up on this list, and there is a way to flag a job to just never show in case someone wants to do that. This could be used for things like Chocobo Knight having a job entry for each color, but only showing on this list once, or to have new female versions of existing jobs not show up either, making only the female-exclusive ones show up.

I'm starting to wonder if the new ability lists are worth the effort, there's not too much work left to do so I'll try to complete it but I think the ability to control job changing for all races and all that is the main feature here, the ability lists don't really add anything new, they just make adding/removing abilities from a job easier. I started this whole thing because I didn't want to hardcode a way for viera Red Mages to learn "Cure" at the same time as viera White Mages do for the JP purchase system, I guess that got a bit out of hand.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on December 21, 2018, 11:27:48 pm
Quote from: Leonarth on December 21, 2018, 03:58:03 pm
I haven't shown anything on events in a long time so here's a new thing I made:
(https://i.imgur.com/OPxgjjQ.gif)
This event allows you to skip the first two fights, but still name the main character and the clan, all without breaking rumors and missions (as far as I can tell).
It skips the tutorial on placing world map symbols, too.

quality of life :cool:

EDIT:
Quote from: Leonarth on December 17, 2018, 12:30:09 pm
I love that you guys are leaving so many ideas here but please understand that I will take a while to work on them, I want to focus on one thing at a time. I'll be looking here when I want a new idea to work on.

Sorry to have burdened you.
I have compared the damage formulae in FFTA and FFTA2 and found that its better not to implement directional damage in FFTA.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 25, 2018, 11:24:57 am
Small Christmas update, today I decided to make something I always wanted as a kid, as a kind of gift to my child self

When I was a kid I heard from my cousins that morphers could transform into monsters and use their abilities, to me that was the coolest thing I had ever heard about this game so I started training a Nu Mou just to see it, once I had a morpher I found out I also needed a hunter so I had to get one of those too.
When I finally figured out how to capture a monster I was extremely disappointed by the fact that after "transforming" morphers would look like they were late to school, waving their arms and sweating, nothing to do with what I had imagined, they only transformed for abilities and then immediately went back to looking silly.

So here I am, 15 years latter, fixing the issue and making my imagination into reality:

(https://i.imgur.com/YU0e9w6.gif)

This will be included as an option for the job/ability assignation rework.
In case it's not clear yet, this engine hack makes morphers actually transform into monsters, changing their aspect and their movement types.
Morphers will still use the same palette they were using before morphing so player morphers will always be blue or green.
I call it: Morphing Morphers Morph.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on December 25, 2018, 12:17:54 pm
That is so awesome. So basically, imagine I assign the "Morph" command to a Blue Mage (for example), that Blue Mage could also morph into monsters without glitching the graphics?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 25, 2018, 01:22:08 pm
To give morph to blue mages you would also need to port the abilities from the nu mou to the hume race, there wouldn't be enough space to do that without replacing existing hume abilities on the list, you would need to replace existing hume abilities or use the 1bit abilities thing I'm working on (so no AP).

Other than that, yeah, it should work as long as the name of the moveset is Morph.

I think other races being able to morph is not a highlight of this though, custom animations aren't that hard to do, you could have just made new animations for the blue mage being morphed, or used the standing ones for it.

The custom animation talk reminded me I should finish my hunter gria too.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Zeke_Aileron on December 25, 2018, 09:43:09 pm
Gria's in FFTA, hmm now I'm interested, and the Morpher thing is very nice.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: ExL on December 26, 2018, 04:56:18 am
Narrator: "...and Mighty Morphing Morph transforms into giant(or not so) mecha flan!"
Actually that's probably the coolest thing I've seen in isometric tRPGs!
It only saddens me how to see all other cool stuff with abilities tied to new ability buying system as I love AP system(if it's misunderstanding of mine, I'm very sorry, I've got that other changes are modular, but not this one)... Nonetheless progress is great, you doing to FFTA things no one ever imagined being possible! :shock:
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 26, 2018, 06:47:20 am
I think you misunderstood what's going on.

The job/ability assignation rework system does not need the JP purchase system, the JP purchase system needs the job/ability assignation rework, these are two completely different things:

The JP purchase allows for abilities to be bought, with this new way to get abilities and the job/ability assignation rework working together, we can have 1bit abilities and save a bunch of character data space for other things. 1 bit abilities will be an option in the JP purchase system, not mandatory, at least that's what I hope.
This system also includes the movement abilities, which replace combos. Combos would be completely broken anyway since you would be able to use them once every turn, since you would get JP awarded for just attacking.
I am thinking of ways to get combos back though: Maybe a FFTA2 style thing, a chance at the beggining of the turn to get the Combo command for that turn only, this would only happen if you had mastered the job, or it would happen more often the more abilities of that job you have mastered (compared to the total number of abilities on that job), the combo performed would depend on the current job.

The job/ability assignation rework is a completely different thing which doesn't need the JP purchase system for anything (unless you want 1bit abilities), it allows the assgination of custom lists of indexes of abilities to jobs instead of the vanilla approach of from X to Y, it adds new options to make expanding the number of playable jobs and races possible and it adds new editable options for things like default unlocked jobs, job unlock conditions, job icons and jobs that can't use items.
None of those things have anything to do with removing AP and in fact by default the system uses AP to check if abilities are mastered.

The morpher thing will be included with the job/ability assignation rework because I felt it's too small of a thing to go on it's own, since it's job related that seemed the best place to put it in, if you guys want the thing on its own I can do that too. Or you could wait for the job/ability assignation rework and grab it from there, same thing.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on December 26, 2018, 06:36:28 pm
With all the college assignments, I can totally wait.

Btw, with the job/ability assign rework you can add the job wheel to special characters like Ezel. Does it work the other way around, like, giving special job ONLY to Marche or Ritz? (I apologize if the answer is obvious and failed to understand it :p).
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 26, 2018, 07:26:49 pm
To give a wheel to Ezel the easiest way would be to make him a Nu Mou, once everything is ready I will include an easy way to do that with the download.
You can totally give a special job to Ritz or Marche and have only them be able to switch to it (or even see it, which I recommend), with Marche you would have the issue of not having any free abilities on the hume race, unless you have 1bit abilities, but for Ritz you should have no issue at all.

Ezel wouldn't get a wheel by default because he has no jobs available on his default race, since I already made a routine to lock Babus' and Cid's jobs to their character IDs.
This is a section of the table:
(https://i.imgur.com/jQme4K2.png)
The first pointer is the ability list, it's 0 which means that the vanilla list of abilities will be used.
The second pointer is the unlocking condition.
The third pointer is checked even after the job is unlocked, and prevents units from seeing the job if they can't fulfill it.

Only units that can see more than one job for their race get a wheel, otherwise the job change option is greyed out.

There's only one job that I made a list for so far, other than for testing, Red Mage:
vieraRedMageAbilities:
BYTE 0x16 0x17 0x18 0x19 0x21 0x1B 0x1C 0x1D 0x1E 0x1F 0x20 0
This list is the same as the vanilla one, but the Cure ability is replaced with the same Cure that white mages have, freeing one ability and making sure they are mastered at the same time even when using the JP Purchase system.

If the system can't find a custom ability list it will use the vanilla one so there's no need to make lists for most of the existing jobs.

On a different note, I finished all the Gria Hunter animations, including water ones:
(https://i.imgur.com/WWkdmBJ.png)

A friend helped me with the portrait too, making a version with colors that play nice with palette swaps:
(https://i.imgur.com/tWJmrNR.png)(https://i.imgur.com/YxURFOV.png)
I also figured it would be nice to be able to set which races get which random names so I added that to my list of things to include. I have some ideas on how it should work but there's a few routines to worry about so it might take a while to complete.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on December 26, 2018, 08:26:08 pm
Thank you.

I have some question on the sprites, though.
1 - Are you ripping the sprites from the ROM itself or from Spriters Resource?
2 - Which software are you using to edit them?
3 - What are the specs for the spritesheets for when I want to insert custom animations on the ROM (ex. width, height, number of rows/columns, etc.)?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 26, 2018, 09:58:02 pm

There are two different sprite sizes, 0x10 and 0x18, 0x10 is used for playable jobs and 0x18 is used for monsters, Grias use 0x18 because there would be no way to fit them in otherwise.

0x10 sprites may have up to 10 unique 8x8 tiles in any arrangement, 0x18 sprites may have up to 20 8x8 tiles in any arrangement.
I don't really know why they are 0x10 and 0x18 but those are the numbers the game uses.

Animations are actually metasprites, composed of several multiple sprites, on top of making the graphics you also need to make sure to use (or create!) the right metasprite data for them. This is what I mean when I say "any arrangement", your sprites don't need to stick to the same rectangular shape every time, in fact, vanilla doesn't, many poses have special metasprite data for them, often specific to only that pose, and even though monsters always use the same data and are all 32x40 sprites nothing is preventing us from using different data to use a different shape.
Something similar happens with portraits, the Gria portrait I made is composed of 11 different sprites that move together, which means I had to go and make the data for this collection of sprites.

There is no limit to how long your sheet can be (you would sooner hit the limit of the ROM size), or to how many frames an animation can have (well, there is, it's 4294967295 frames), your spritesheet can be of any shape as long as the tiles end up in the right order, I used 32x(40*ammount of frames) for the gria animation, along with a script I wrote to reorder the tiles correctly.

I need to use a script because the way the sprites look to us is not the way the are stored in the rom, the GBA will just make sprites from left to right, top to bottom using tiles ONLY from left to right, there is another method of reading tiles for sprites but the game does not use it, and for good reason, even though it is a more human readable way of loading them it makes having as many possible sprites on screen a giant pain, these are often called 1d and 2d mapping modes, check the link at the bottom if you want to learn more. Anyway, this means the game needs a different order than the one that is natural to us, here is an example:
(https://i.imgur.com/FUB8tW4.png)
On the left, what we end up seeing and what my sheets look like, on the right is what the game needs and what my script outputs if given the image on the left.
Now the same image, with every sprite that forms the complete frame marked with a different color, maybe that will be easier to understand:
(https://i.imgur.com/9CEZE10.png)

Only one frame is ever loaded at a time so there is no limit to the size of the sheet, sprites don't even need to be on a sheet, you can have the tiles of one frame at the beggining of the rom and the tiles for the next at the end of the rom.

In the end the animations aren't really difficult to do (not talking about graphics here, just the data for the animation), the process is just tedious as you are likely going to be referencing existing animations over and over. Luckily unless you want some special animation, like some non-generic characters have, you are likely just going to want the same animations for every job, this means we can build a templete that can be used for any new job, with only the graphics needing to be replaced.
I already did this for the Gria so when I make the next one I'll already have most of the tedious work done, however this one only works for monster sized sprites, which are much easier to work with, doing this same thing for small sprites will take a lot more time, and a much more complex tile reordering script. I guess I could just make several different scripts, too, that should be easier.

If you want to learn more about how sprites work in the GBA, give this a read: https://www.coranac.com/tonc/text/regobj.htm
Section 8.2.1 is the most relevant to what I explained.
If you are interested in how the GBA works I recommend to give the whole Tonc text a read!, I'm personally not interested in C hacking so I skip over that stuff, but just the data on the GBA itself is worth a read even if you don't care about the rest.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on December 27, 2018, 08:17:50 pm
When you say data animation, are you referring to battle motions? For example, by default, the Sage sprite doesn't have a motion for ranged attack weapons. But by fiddling with data animation, you can make that sprite have said motion (like, making the rom use graphics the sprite already has)?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 27, 2018, 09:35:31 pm
When you assign a Battle Sprite what you are truly asigning is an index on a table.

In this table there's a pointer for every battle sprite.
If we follow one of these pointers we'll find another list of pointers, one for each animation this battle sprite has, some of these are 0 because the game has no need for them, we can simply create an animation elsewhere in the rom and point to it in this list, making it use graphics it already has or new ones, doesn't matter.
You could even use the pointer for an animation of a different job and it would also work just fine.

When I say animation I'm talking about a list of data for each frame, just that: data of the location of the graphics, the location of the data for the oam, duration, position...

Generally speaking all playable jobs have the graphics for all animations of all other jobs, excluding race exclusive things (such as Advice and Morphing). There aren't that many different unique graphics, all attacking animations use the same 3 (or 6 I guess since there's different graphics for when they have their back turned towards the camera), sometimes mixing in the graphics for walking too.

The animations are always in the same order, lance/rapier animations will always begin with the 47th one:
(https://i.imgur.com/nWuajJq.gif)

A different issue we would run into is that some jobs have different animations in slots they would normally not use, marche has story animations where his lance animations would go, I have already planned a workaround for this though, which will take advantage of the free space that exists in the tables.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on January 01, 2019, 12:10:20 am
Marche with rapier! Huzzah!

I am definitely looking forward to the job/ability one, I do think that you should separate out the tiny patches, like the steal shoes one they are good enough to be on their own. Especially the mighty morphin morphers, and the tutorial skip.

How much work would it be to make all classes able to use any weapon type? Oh, also is the update for Skill Purchase now compatible with Manual Sorting? And/or do I need to change the offset in the build file for that or something? I know last time when I just tested the UPSes together they resulted in a reliable crash.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on January 01, 2019, 03:35:18 am
Quote from: Diedrik on January 01, 2019, 12:10:20 am
I do think that you should separate out the tiny patches, like the steal shoes one they are good enough to be on their own. Especially the mighty morphin morphers, and the tutorial skip.

yes please.

Quote from: Leonarth on December 25, 2018, 11:24:57 am
Morphers will still use the same palette they were using before morphing so player morphers will always be blue or green.
I call it: Morphing Morphers Morph.

does this mean that if I change morpher to sprite 2 all his monsters will use sprite 2??

I like the unused yellow sprites (makes morpher unique).
They are all numbered as "2" in the AIO.
(https://imgur.com/9FtHyid.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 01, 2019, 08:08:17 am
Quote from: Diedrik on January 01, 2019, 12:10:20 am
How much work would it be to make all classes able to use any weapon type? Oh, also is the update for Skill Purchase now compatible with Manual Sorting? And/or do I need to change the offset in the build file for that or something? I know last time when I just tested the UPSes together they resulted in a reliable crash.

Giving all jobs animations for all weapons it would just be some tedious work, the graphics already exist, it's only a matter of making the data for the frames, I have an idea that will allow that without replacing the special animations the jobs may have.
As for the patches, they have always been compatible, if you have trouble mixing them send me a pm and I'll walk you through it.

rrs_kai:
That's the palette, not the sprite, if you set the player morpher to be yellow then his monsters will be yellow, which are the rarest, it's the least used palette by far but it's not unused, Montblanc, creams, thunderdrakes and some npcs use it.

As I have explained before there is no need to "separate" the thiny patches, they are already separated, they are just included in the same download, you can go grab them from the jp purchase system and use them on their own, If you guys need a tutorial on that just let me know. If you are talking about making .ups patches for all of them, that's not possible.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on January 03, 2019, 01:44:08 pm
Quote from: Leonarth on December 26, 2018, 07:26:49 pm
A friend helped me with the portrait too, making a version with colors that play nice with palette swaps:
(https://i.imgur.com/tWJmrNR.png)(https://i.imgur.com/YxURFOV.png)
I also figured it would be nice to be able to set which races get which random names so I added that to my list of things to include. I have some ideas on how it should work but there's a few routines to worry about so it might take a while to complete.

Nice Gria :)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 11, 2019, 09:16:00 am
This update is a pretty big one!
It includes my recently released job/race customization stuff, which means 1bit abilities are here.
For now that doesn't change much but look forward to new things that make use of the freed up save space!

Please remember that saves done with 1bit abilities on are NOT compatible with saves made with 1bit abilities off and vice cersa.

[Download] (https://www.dropbox.com/s/cbjl8bahx29rpyq/ffta%20skill%20purchase.rar?dl=0)

Changes:

   
Fixes:


Options:


Here are two screenshots comparing 1bit abilities and non-1bit abilities things:
(https://i.imgur.com/nY4DE73.png)(https://i.imgur.com/3Re7gFF.png)
(https://i.imgur.com/vrkCTq5.png)(https://i.imgur.com/XFJ2twy.png)

There were a lot of changes, I think I covered all of them but I might have missed some, sorry if that's the case.

Next on my list is to continue with reducing tiles in animations, which I talked a bit about in a previous post.
The idea is to get animations that use too many tiles to use 20 or less.
Playable jobs use up to 16, which I have lowered to 12 just in case, currently I'm working on monsters.
The point is that if we manage that we'll be able to use big (monster-sized) animations only.
This would grant more freedom on animations and make them easier to work with and install.
It would allow 13 monsters on the map at once, making a 6v6 of monster sized units and a judge possible.
Currently if you tried to do that you would find that you can only have 11 units on the map before they go invisible.
Of course, doing this without changing what the animations look like is quite difficult so it might take a while.

As for what will be done with the freed up space, I was considering a few things:


Also, in my testing I was unable to get the enemy to ever use "Steal: Ability", do you guys know if they CAN?
If you have a method to make them use it, please tell me.
And I mean a proved method that has worked for you, not just an idea that might work, I tried all I could think of for days.

Remember, if you have any features you would like to see in (or changed), let me know, there's several things I want to touch up, like how JP is earned in combat, any suggestion you drop here will be considered when I add new stuff.

[Download] (https://www.dropbox.com/s/cbjl8bahx29rpyq/ffta%20skill%20purchase.rar?dl=0)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on January 14, 2019, 03:02:21 pm
Quote from: Leonarth on January 11, 2019, 09:16:00 am
Remember, if you have any features you would like to see in (or changed), let me know, there's several things I want to touch up, like how JP is earned in combat, any suggestion you drop here will be considered when I add new stuff.

I would like to see these:
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on January 14, 2019, 03:22:07 pm
QuoteRemember, if you have any features you would like to see in (or changed), let me know, there's several things I want to touch up, like how JP is earned in combat, any suggestion you drop here will be considered when I add new stuff.


Now that you mention it, what about setting special characters (such as Montblanc and Ritz) go on dispatch missions? And even Marche (it could skip the required days just as if he had been arrested).
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 14, 2019, 04:05:54 pm
Special characters can already go on dispatch missions, the only ones that can't are Montblanc and Marche because of story reasons, All others, even Cid, can go on dispatch missions and even have text specific to this (I think Marche has that text too), I don't know about letting Marche go on dispatch but I'll think about Montblanc being able to do so after the first Jagd has been cleared (he would be treated as dead for story events, so the alternate scenes would play).

As for the Exp request, do you guys know details about the Exp formula?
I'll probably be touching Exp stuff after I'm done with the animation template I'm working on, I'll be trying to split the JP gained message into it's own thing and have earning JP through actions be optional, as well as probably a new formula for it (right now it's just the same as Exp), if you guys have ideas about formulas that would work (or think that the current one is fine) please let me know.

After that I would be interested in working with status effects, I still don't know where the counter for most of them is kept.

I had never heard of this unrecoverable drops thing, my guess is that what is actually happening is this:
When you use Dragon Force, the ATK up flag is set.
When you get hit by Power Break, the ATK up flag is unset, the ATK down flag is set.
And this is where the issue would happen: When you use Dragon Force while having the ATK down flag set, the ATK up flag is set but the ATK down flag is never unset. In my opinion it should work the same as Power Break, it should set the ATK up AND unset the ATK down flag, it not doing so sounds like an oversight to me.
I haven't checked how it actually works though, this is just my guess.

I'll keep in mind the ability requests but right now I have no plans on working with abilities in the near future, at least not until I get the steps taken counter working, with a proper way to check if a unit teleported/flew.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on January 14, 2019, 05:00:55 pm
Personally I think that's the better way to go, the groundwork you're setting up already enables modders to make really drastic changes that would've not been possible before; I think that has a way higher impact than being able to fine-tune abilities that may need balance one way or another.
I think the current experience formula is decent, so long as the enemies are made to follow the scaling system in the game and that scaling is done according to the highest player unit- If this is not the case then the system encourages interacting with your own units in order to grind levels which I don't believe is a desirable outcome.

I had a question before I forgot to bring up if you don't mind. With your way of repurposing the combo slot as another passive ability, did you find out if the formation structure actually handles combo abilities at all? It's less important in mods that use it as an actual combo ability, but your approach is interesting and I was wondering how you'd go about actually giving units those movement abilities, since to the best of my knowledge they can't be set from that structure at least.


@rss_kai: For the record, debuff length has already been modified in FFTAGG iirc, albeit I don't know if the means to do so are public or not or since I never looked into it more.
Also, the % stat increases and decreases are not very consistent in their effect: Atk UP/DOWN give a 10% increase and decrease, while for example Def UP gives 40% increase and DOWN gives a 30% reduction.
Bear in mind defensive stats are half as effective as offensive ones are, so the differences aren't as big as they may seem and increasing attack values can get out of hand pretty quick.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 15, 2019, 04:44:37 am
There's two bytes in the unit data for formations that go completely unused as far as I can tell, never read, it would just be a matter of having the game read one of them and store it into the combo ability slot.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: giado123 on January 15, 2019, 08:52:36 am
hi! im newbie in EA. How do you change the battle sprites and the portrait? Can you make tutorial for this?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 15, 2019, 09:42:32 am
Please check the thread for the job and race customization hack, as that's a question that is best suited for that thread:
http://ffhacktics.com/smf/index.php?topic=12169.msg225244#msg225244

I haven't finished making the battle sprite template yet, explaining all of the data that goes into an animation is well beyond what can be taught in one post.

As for portraits, there isn't really much special about them (as long as you are using my uncompressed graphics loader, which should be included) but you'll have to know how sprites work in GBA (and again check the other topic).
I attached the first portrait I made as an example (please note that I did not draw it, I only made it insertable), but all there is to it are the tiles, the palette and the OAM data for the sprites, that and including pointers to those in the table.

The limitations are 64 tiles max, 8bpp graphics, 48 colors (starting with the 6th palette, or 96th color), and I would recommend staying below 10 objects.
You'll want to use a tool that can work with those limitations, I recommend usenti.

Information on OAM data:
https://www.coranac.com/tonc/text/regobj.htm

There's a readme included with the job and race customization download in the other thread that includes some links, one of those is a tutorial on EA.

You can also use this macro and definitions for making OAM data in EA, once you have read the tutorials:
#ifndef dataOAMinstalled
#define dataOAMinstalled 0
#define square 0x0000
#define rectangleH 0x4000
#define rectangleV 0x8000
#define flipH 0x1000
#define flipV 0x2000
#define flipVH 0x3000
#define 4bppMode 0x0000
#define 8bppMode 0x2000
#define dataOAM(Y,X,Shape,Size,Tile) "SHORT 0|(Y&0xFF)|(Shape) 0|(X&0x1FF)|((Size&3)<<14) 0|(Tile&0x3FF)"
#define dataOAM(Y,X,Shape,Size,Tile,Flip) "SHORT 0|(Y&0xFF)|(Shape) 0|(X&0x1FF)|((Size&3)<<14)|(Flip) 0|(Tile&0x3FF)"
#define dataOAM(Y,X,Shape,Size,Tile,Flip,Priority) "SHORT 0|(Y&0xFF)|(Shape) 0|(X&0x1FF)|((Size&3)<<14)|(Flip) 0|(Tile&0x3FF)|((Priority&3)<<10)"
#define dataOAM(Y,X,Shape,Size,Tile,Flip,Priority,ColorMode) "SHORT 0|(Y&0xFF)|(Shape)|(ColorMode) 0|(X&0x1FF)|((Size&3)<<14)|(Flip) 0|(Tile&0x3FF)|((Priority&3)<<10)"
#endif
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: giado123 on January 15, 2019, 11:49:13 pm
Thank! I successfully change the battle sprites by using tile molester. The problem here is i cant find the location of the party sprites and the portrait in rom to change. Can you help me for this? I created 2 new party sprite for samurai and dark knight.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 16, 2019, 03:42:07 am
I don't use tile molester, I use EA, just make the images in some image editing tool and insert them with EA... There is no need to mess with the ROM directly at any point doing this. You should NOT be using tile molester, or any other tool that edits the graphics of the ROM.

Look in jobAndRaceCustomization\Graphics, there you will find a folder called party which has the party sprites and a file called Job Party Image Installer.event which inserts them.

Just do the same, put your party images (with the right palette and size) in the folder, include them in Job Party Image Installer.event and put the label in the table at jobAndCharacterPartyTable.event

In case it's not clear, .event files are text files, open them with your text editor.

Even if you found the right location for the portraits and party sprites those are compressed so it wouldn't be of any help to you, on top of that you would still need to change the portrait palette and OAM data anyway. Just use the thing I made, it exists for a reason.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: giado123 on January 16, 2019, 09:37:48 am
Thank for your help! i just have one more questions:
- the party image you created is 32x40, larger than the sprites which is 16x16. So which size should i create for the new party image?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 16, 2019, 10:19:16 am
The party images are 32x40, there is nothing to discuss there, just open the game in an emulator, check the sprites used and you will see these are 32x40 (there are actually two sprites, a 32x32 one and a 32x8 one but all the tiles are in the same order we see them so there is nothing to worry about there).
When in doubt just do the same I already did, I did it that way for a reason, the reason being that's just how it is.

Also the battle sprites are not 16x16, or 16x40, there is no fixed dimensions to them as I explained in an earlier post.
Some are 16x40, some are 16x32, some can't even be described as a single rectangle.

Remember to use the correct palette, with the correct order.
The only actual important part is the order but having the right colors will help you see how it's going to look in-game. Checking the images you made I can see they don't have neither the right order or the right colors, please use one of the already existing images as a reference, and be sure to use a tool that can correctly handle palettes and indexed images, like Usenti.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: KyleTheRunner on January 16, 2019, 12:49:22 pm
Hello. Thanks for the hard work!
Since you are very experienced in FFTA hacking, could you, please, provide me with text editing tools?
I'm trying to do a full Portuguese translation for this game.
Thanks in advance!
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 16, 2019, 01:26:25 pm
I don't have any text editing tools, nor would I know how to make them, I barely have any programming experience and I've never made any kind of GUI, I use Event Assembler for text. As far as I know other people just use a hex editor.

There are many things we don't know about the text system, but you can find some data on it here:
https://datacrystal.romhacking.net/wiki/Final_Fantasy_Tactics_Advance:Strings

A lot of games use pointers or a text table (also with pointers) to indicate where the text is, this can often be a fairly simple thing. It's not like that in FFTA. Text in FFTA is pretty complicated, it comes in two forms (1 byte per character and 2 bytes per character), I'm unsure if there's compressed text or not, control codes are mostly unknown and the worst part: the text is all over the place.

There is no one text table, there are a lot of them, some kinds of text are split into multiple tables, some use pointers, some use relative offsets, even for someone that knew everything that's going on making a tool to deal with all of it would be a pain.
I only have documentation on 6 of these tables and I've seen many others, I can't understate how complicated it gets.
From what I know every mission has it's own little text table.
On top of that, this is a game with a huge ammount of text.

If you are still interested in trying (using Event Assembler) send me a private message.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: KyleTheRunner on January 16, 2019, 01:43:38 pm
OMG!
Too much for simple me :lol:
But thanks for the reply!
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on January 30, 2019, 10:33:35 am
How much free space do the various engine hacks take? And is there a limit to it? If say I want to install all of them, where should I put the free space start for the next one?

If you are going to include most of the minor ones in the JP system, you might want to also include the Manual Sort in it as well. Are you planning to have it be a master hack that allows you to toggle each of the parts in the options file? That would work pretty well.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 30, 2019, 11:50:43 am
You don't need to know how much each one takes, neither do I know, and you don't need to set the freespace for anything other than the first time it's checked, the others should be ignored by EA like this:
#ifndef FreeSpace
#define FreeSpace 0xA39920
ORG FreeSpace
#endif

If FreeSpace is already defined, it does nothing. If any of the hacks don't do it like this please let me know.
The whole point of using EA is that, other than when you first set FreeSpace, you never have to worry about space management or even the specific location the stuff ends up at.

The limit is 32MB total for GBA games, it can actually go higher with bank switching but that's just a mess and as far as I know only GBA Video carts ever used this (for example, Shark Tale and Shrek are both 64MB, in case someone doesn't know: yes, the movies, the actual movies on GBA). We aren't going to be hitting 32MB anytime soon. Or ever probably. Vanilla uses about 10 to 11MB, the rest being free. It's pretty hard to hit 32MB unless you start inserting a lot of graphics and use .wav for your new music.
In order to show how little space text actually takes: the EUR ROM of FFTA only takes up 3.5MB more than the USA one. It has 5 languages, so we could say the whole text of the game takes less than 1MB, and this is including graphics that are different in each language.

QuoteIf you are going to include most of the minor ones in the JP system, you might want to also include the Manual Sort in it as well. Are you planning to have it be a master hack that allows you to toggle each of the parts in the options file? That would work pretty well.

The manual sorting has been in the JP purchase for a while now: http://ffhacktics.com/smf/index.php?topic=12036.msg225249#msg225249
And yeah, that's the idea, and how it already works, you can just comment out (or undefine) stuff to have it not be installed, or go mess with it manually to customize it if you want.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on January 30, 2019, 01:03:49 pm
Okay thanks. Good to know we have plenty of space to work with.

Duh, sorry I did not see that line. I did not see the toggle in the Buildfile, so I just assumed it was not in yet.

The Race and Customization in the JP Skill Purchase is not as up to date right? It does not appear to have the animation work done yet. Can I just copy paste the updated one from the release thread into it in order to update it?

How hard would it be to make a class that could select skills from other classes in the skill learning menu? Also, can we have racial skills that can be used no matter what class you are?

Edit: I just looked with a bit more depth at the engine hacks folder, and it looks like it includes the Ironman and FFT Death hacks, can we get options for that in the buildfile as well?

Editedit: Can we enable retreat as an option in the no judges?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 30, 2019, 03:28:08 pm
Manual sorting is one of those things I just assumed nobody would want to turn off anyway so if there isn't a toggle for it, that's the reason. I guess I'll add an option just for the sake of it.
I don't think I meant to include the death hacks, if they made it in at some point then that's because I'm not very organized, I don't think they are included right now but I guess I can include them too.

The job and race customization thingy doesn't have the animation stuff yet, the downloads at the bottom are just so people can start making their sheets and whatnot, the actual template (which is already all working by the way) will be added on the next update, once I finish the last feature I want to implement. When that happens I will also update the JP purchase with some new stuff.
I think there have actually been 0 updates so far to the job and race customization, other than adding in the readme I forgot the first time I uploaded it.
Also, I have a completely new surprise ready for the next update, shouldn't take more than a few days.

As for making a job that can use abilities from other jobs, that's already a thing with job and race customization, in fact the viera red mage fix does just that, it has a custom list that uses the white mage's ID for cure instead of the red mage's.

If you wanted to make racial skills all jobs can use then the easiest way to do it would be to make new ability lists for all the jobs, including the new abilities you want them all to share, then they could be purchased from any of the jobs and this would unlock them for all of them.
A more fancy way to do it, which would require some new ASM, would be to make a new job that is not displayed on the wheel and can't be chosen as a secondary command, make new lists for all the jobs, have the shared abilities not display on the purchase menu for any job other than the new job. You could also set them to cost 0 AP/JP which in the next update will make them automatically unlocked.
Finally, a third way to do it (which would also require new ASM) would be to add a new job that maybe can't be selected or seen anywhere, but that can be used as a command in-battle, like what happens with Item for the alchemist.

I'll look into the judges retreat thing.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on January 30, 2019, 04:17:37 pm
That makes sense. I would definitely like to have the options for them there.
Two new options I would like, though I do not know how popular they would be: toggling whether the countdown is visible, and the option for everyone to have a revival chance like the undead. Would be especially cool if you could specify the percentage of revival for both normal and undead in the buildfile.

The Job and Race Customization has a few subfolders that are not in the latest Skill Purchase, such as the fixed animations. I am assuming though that the one currently in Skill Purchase is outdated and inactive, waiting for your next update to remerge them.
Sounds awesome, I am very excited.

True, but I meant assigning abilities in game. I was thinking basically having a handful of dummy abilities and then replacing the data for them with the data of the selected ability on the learning menu.

Thanks, those are pretty good ideas. I definitely would like more access Alchemist style options. It also reminds me, do we have any access to innate passives yet?

Thanks.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on January 30, 2019, 05:03:01 pm
Quotetoggling whether the countdown is visible, and the option for everyone to have a revival chance like the undead

If there's demand for that I'll look into it, otherwise I always include the source so anybody can play with the routines.

QuoteThe Job and Race Customization has a few subfolders that are not in the latest Skill Purchase

The job and race customization does not have those folders yet.
I did upload them on their own so people can test them, but they are not in the main download.
Quotewaiting for your next update to remerge them.

You won't need to merge anything because the update will be included on the JP purchase download.

Quotehaving a handful of dummy abilities and then replacing the data for them with the data of the selected ability on the learning menu

I don't understand your assigning abilities idea. I don't know what you mean.
Maybe you mean a job that can choose up to X abilities from any other job and use them or something like that? Because that would need to be saved in some way, it would also need a completely new menu, this would be pretty hard for what sounds like an extremely specific feature.

Quotedo we have any access to innate passives yet?

It's not a "not yet" thing, there's just no good way to do this.
There isn't one routine that gets the support/reaction/combo ability, each routine that needs them gets them on its own, this means that to make a passive abilities system were the user could just change a byte on a table to give a job an ability I would need to edit possibly over 100 routines. I'm not going to do that.
What can be done is add specific passives in, but each one would need to be programmed individually. Then there would be a list of jobs that get this passive, instead of jobs having a table of what passive they get. So, for example there could be a passive that changes the unarmed damage formula for a specific list of jobs.
There's also the issue of overlapping effects, what would happen if a unit had Counter but also Absorb MP? Or if a unit had Doublehand but also Monkeygrip? The game is not made to handle that.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 02, 2019, 08:02:24 am
New update, here's the changelog:


   
Be sure to check the job and race customization thread for the changelog on that, remember that it is included in this!
http://ffhacktics.com/smf/index.php?topic=12169.msg225244#msg225244

And here's the download, same link as always: https://www.dropbox.com/s/cbjl8bahx29rpyq/ffta%20skill%20purchase.rar?dl=0
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on February 02, 2019, 05:23:51 pm
Proper nice. :)

Speaking of moving abilities. How doable is it to make an ability usable only when the caster is standing on a certain terrain type (simulating the Geomancer job)?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 02, 2019, 06:15:10 pm
Quote from: Leonarth on January 30, 2019, 05:03:01 pm
I don't understand your assigning abilities idea. I don't know what you mean.
Maybe you mean a job that can choose up to X abilities from any other job and use them or something like that? Because that would need to be saved in some way, it would also need a completely new menu, this would be pretty hard for what sounds like an extremely specific feature.

Pretty much, I would not worry about it. It is just a feature that I think would be pretty interesting in an ability based tactics game, instead of having characters be a class, having them select a limited loadout of skills from the classes they have trained in.

Quote from: Leonarth on January 30, 2019, 05:03:01 pm
It's not a "not yet" thing, there's just no good way to do this.
There isn't one routine that gets the support/reaction/combo ability, each routine that needs them gets them on its own, this means that to make a passive abilities system were the user could just change a byte on a table to give a job an ability I would need to edit possibly over 100 routines. I'm not going to do that.
What can be done is add specific passives in, but each one would need to be programmed individually. Then there would be a list of jobs that get this passive, instead of jobs having a table of what passive they get. So, for example there could be a passive that changes the unarmed damage formula for a specific list of jobs.
There's also the issue of overlapping effects, what would happen if a unit had Counter but also Absorb MP? Or if a unit had Doublehand but also Monkeygrip? The game is not made to handle that.

I see, there are two things that I was thinking of here. One is having the Blue Mage learning be innate to all classes, and use it as an alternate overlapping method of learning skills. Along with other possibilities if this was something we could easily accomplish.
And the other is precisely the overlapping issue, one of the really interesting things about Worker 8 in FFT is that he had Hamedo, and Counter. He would use counter if Hamedo (Which is essentially strikeback) failed.

Very nice, happy to see more movement abilities. An interesting take on teleport, which would probably cooperate with the AI is to make it randomize your move stat per turn.

Thank you for fixing retreats.

Not sure if I would actually want the file level fixed. If you are playing a generics only run, it would make sense to have it list the first character's level instead of Marche's.

Does this include the new animations, and the weapon animation expansion?

Oh, also how hard would it be to add a skip intro yes/no? That way the decision could be made on a per run basis rather than at the patching level.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 02, 2019, 07:14:45 pm
QuoteHow doable is it to make an ability usable only when the caster is standing on a certain terrain type (simulating the Geomancer job)?

That's something I have been thinking about (remember that I was working on Grias), however I can't think of a good way to do this so we would need to make terrain type maps for all maps in the game, I think what I would do is have a placeholder terrain type while I (or we) work on making terrain type maps for all maps.
So for example while in the herbs mission all tiles would count as grass or something, until a proper terrain map is made.
I was thinking each tile could have up two 2 different types of 16 different types, like say a tile that counts as ground and grass, or one that counts as stone and water because it has a puddle or whatever.
As for making the abilities themselves not being usable under specific conditions, that doesn't sound so hard, I could just make the game think that the unit doesn't have enough MP for that specific ability (even if it costs no MP) if conditions aren't met.
For something similar: look forward to the Primed status in the near future. Probably.

QuoteOne is having the Blue Mage learning be innate to all classes

That would be as easy as making whatever routine checks for Learn being equipped always think it is equipped, likely a 2 byte change.
I actually stopped writting this post to go look for it, go to 0xA7B96 and write 00 00, should make everyone have Learn, even if they have something else equipped.

QuoteAn interesting take on teleport

Just to be clear, teleport works the same as vanilla, the other description of how teleport would work is just an idea and would probably be a different ability.

QuoteNot sure if I would actually want the file level fixed. If you are playing a generics only run, it would make sense to have it list the first character's level instead of Marche's.

I'll make it an option on the next update.

QuoteDoes this include the new animations, and the weapon animation expansion?

Yes.

Quotehow hard would it be to add a skip intro yes/no?

I haven't seen any event that deals with a yes/no condition yet, events are a pretty undeveloped thing so this would actually be pretty hard to do. I'll keep it in mind for the future but don't expect anything on it anytime soon.

QuoteThank you for fixing retreats.

No problem! Thank you for letting me know.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 02, 2019, 08:41:49 pm
Making terrain maps reminds me, are you still working on custom maps? I feel like some of your testing ones are a lot more interesting tactically than many of the default ones.

Quote from: Leonarth on February 02, 2019, 07:14:45 pm
Just to be clear, teleport works the same as vanilla, the other description of how teleport would work is just an idea and would probably be a different ability.

Yeah, definitely. Having a few teleport variants would actually be really cool.

Quote from: Leonarth on February 02, 2019, 07:14:45 pm
I haven't seen any event that deals with a yes/no condition yet, events are a pretty undeveloped thing so this would actually be pretty hard to do. I'll keep it in mind for the future but don't expect anything on it anytime soon.

I know some of the clan challenge encounters give you a Join "" or Engage option. Which is essentially a two option choice. In fact all of the ones I have seen would still flow well if the options were replaced with yes or no.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 02, 2019, 10:16:19 pm
Quoteare you still working on custom maps?

Not really, I got them to work and then kinda stopped there, I guess it would be good to get a better tool for them at some point but I don't really know much of anything about making stuff like that.

QuoteI know some of the clan challenge encounters give you a Join "" or Engage option.

If you mean the blue units on the overworld, I don't think that's related to events, at least not the same type, that's a whole different thing.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 06, 2019, 11:44:43 am
On the topic of ExL's suggestion:
So if I am understanding that suggestion right, it is that the behavior would change to this?:
1. Move - Attack > turn ends
2. Attack > turn ends
3. Attack - Move > turn ends (Only possible if cunning equipped)
If so, I am not sure if I would like the default behavior to be changed to that. Or rather, I feel like that is the sort of thing that should be unlocked permanently for a character, rather than having to be equipped instead of other movement options. And/or should be available much earlier than other movement options.
Would definitely be cool to see, but not sure if I would want it to be bundled with the movement skills. The rest give more access to existing functionality, or add functionality, whereas this one removes it, in a somewhat interesting way.

On the topic of changing movement mechanics there are two things that I think would be really interesting, but both would probably much more work.
1. Decreasing the ability to circle enemies in some manner, that is one of the primary weaknesses of FFT, the best option was often to circle to the back of your enemy to attack, so it resulted in some battled where two people were just constantly walking around eachother. One solution is more subtle, remove the facing accuracy system, and instead have it be based on how many opponents they are adjacent to.
2. Make movement into an action, and then let you do two actions. That way you can sprint by using movement twice, or double down on your DPS by attacking twice. Adding defense as an option for everyone that could boost your damage reduction or evasion, or both, would also improve this system. I think the base hit chance should be higher in this case to incentivize using defense, and make concentrate less mandatory. Attacking twice without defending would be similar in effect to reckless swing in D&D, where you have higher damage potential, but anyone attacking you also does. It might make sense to have attacking twice outright decrease your defense/evasion, in order to make it riskier than moving and attacking.

We cannot use the yes/no from the naming menu for the skip option can we? Oh, also are you still planning to add custom names for NPCs?

How hard would it be to flip the guest bit on an actor mid battle? Is that something that is only read while spawning characters?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 06, 2019, 02:26:29 pm
I fixed some bugs and there should be a small update soon, I'll let you guys know when that's done.

QuoteOn the topic of ExL's suggestion: [...] I am not sure if I would like the default behavior to be changed to that.

It would be off by default, and the movement skill would not be inserted unless on.

QuoteOr rather, I feel like that is the sort of thing that should be unlocked permanently for a character

As always the source would be open so you could add any checks you wanted.

QuoteDecreasing the ability to circle enemies in some manner

Wouldn't lowering base movement to 3 help with that? What about outright preventing a (walking) unit from standing directly behind an enemy unit if they started their turn in front of them?
I don't have any plans on working on these things right now, it sounds more of a balance thing so that would be down to whoever is making a hack using my stuff, although options for directional damage and hit are something I would like to look into in the future.

QuoteMake movement into an action, and then let you do two actions.

This would be very, very complicated, I would need to edit a huge ammount of stuff and even then I'm not sure if the AI would like it, getting the AI to work with it might be extremely difficult since there might not be a centralized way to check if the movement or action bit has been set (this game is allergic to reusing code).

QuoteAttacking twice without defending would be similar in effect to reckless swing in D&D, where you have higher damage potential, but anyone attacking you also does.

Keeping track of if the units has moved and attack or attacked twice or whatever else would also need more memory, this kind of data isn't stored between rounds either so for your other ideas new status effects would be needed.

QuoteHow hard would it be to flip the guest bit on an actor mid battle?

It would be no different than setting a status.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 06, 2019, 02:58:13 pm
Quote from: Leonarth on February 06, 2019, 02:26:29 pm
Wouldn't lowering base movement to 3 help with that? What about outright preventing a (walking) unit from standing directly behind an enemy unit if they started their turn in front of them?

I would rather not decrease the available movement, I think the latter option would actually work pretty satisfactory, and would give spears a realistic edge over sword fighters.

Yeah I figured the other one is outside the scope of what FFTA is comfortable doing. Speaking of exploiting statuses to achieve new mechanics, if you are downed does it clear your statuses, and/or does it display them? I was debating using the immobilized status to track whether you have been stabilized in the FFT Death system, since bandages cure that by default anyway.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 06, 2019, 04:27:31 pm
Statuses are generally not drawn while downed, and I don't know if all of them get cleared but I know some do.
An exception could be mode for a status to be displayed while downed, that's not an issue. The undead raise counter is a status too and that certainly displays.
Changing what an item does shouldn't be terribly hard either.

After a bit of testing it seems that the ones that aren't reset are:
One that seems unused (status 0), Frog, Zombie and 3 other ones that seem unused (the highest statuses, one seems to have something to do with Marche but doesn't seem to do much of anything as far as I can tell).
There are some that I couldn't really test because they are not very compatible with dying but I would assume they would be reset too.

One thing I never mentioned is that with the new fixed animations there's a bunch of object tiles that are now free, new status effect bubbles should be possible with these, I'm guessing we could fit about 10 or 11 new ones. I was thinking of making a test with Primed, but that can probably be done with just the Boost bubble using a different palette, it's a red hourglass in A2 anyway.

Edit:
https://github.com/LeonarthCG/FFTA_Engine_Hacks

I moved my stuff over here, I'll let you guys know if big stuff happens, like always. This new update is only a few new fixes though.
Please look at that repo for future updates, I will not be updateing the dropbox link.
To download it simply select "Clone or download" and then "Download ZIP".

I think this just makes sense and is something I should have done a while back.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 07, 2019, 11:39:19 am
Okay, thank you for looking into that, one of the unused ones might be the best choice, do you know if the status clearing happens on death, or every turn?

Can we draw status effect info as an underlay? Or will it always display as an overlay?

Yeah, using Git should make things simpler, I have updated the link in the pinned topic so the master installer goes there. I will test the new update to see if guests still have the ability menu issue. Thanks.

The discussion in the randomizer topic made me think of the 3 things I think I would want to use the extra space from 1bit abilities for:
1. Custom Character names
2. The ability to disable and enable characters changing sprite sets on job change
3. A morale/brave variable that other things could hook into

I also just thought of a hack that should be pretty simple that I think would make a big difference for some people, disabling the idle walking animation. Making it so characters just stand there when not moving or acting. I know that quirk of the genre has turned off many people I have encouraged to try it throughout the years.

A harder one that I thoguht of in the middle of typing that one, how hard would it be to draw a character's weapon and/or shield on them during battle?

Would it be possible to have two characters occupy the same space? Such as allowing someone to stand on top of a body, or place traps at their location, etcetera? Also, can we make new characters mid battle for the aforementioned traps? I think would be interesting if you could stand on difficult terrain/bodies, but it lowers your evasion and increases your chance of getting knocked back.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 07, 2019, 12:26:59 pm
Quotedo you know if the status clearing happens on death, or every turn?

Looks like on death.

QuoteCan we draw status effect info as an underlay? Or will it always display as an overlay?

Can you explain further? I don't know what you mean with underlay.

Quotehow hard would it be to draw a character's weapon and/or shield on them during battle [...] Would it be possible to have two characters occupy the same space? Such as allowing someone to stand on top of a body [...] place traps at their location [...] can we make new characters mid battle for the aforementioned traps?

This stuff is not possible because of how the GBA works.
There is a limit to how many sprites you can have on-screen at once, there is both a graphics limit and an object limit, even if all the sprites were identical you would hit a limit. Unit sprites use 6 objects in this game, the cursor adds a few more, the status bubbles, the height... Long story short, the object slots are taken, vanilla is already running extremely close to the limit, it even goes above it with certain ability animations, sometimes you see units blinking, that's why. Add a few more sprites and this would be permanent.

You would also just not have space for the graphics for all the weapons the units could be holding.

For standing on bodies, it's an issue of sprite priority, when a unit is just walking from one spot to another it's just a moment, but having two units stay on one location for long would just look weird, with one unit's shadow above the corpse of the other and stuff like that: shadows are only their own object when the unit is moving, they are baked into the standing animation when still, if the game didn't do this it would run out of objects very quickly.

Spawning new units in, especially if it's just to have them act as traps, would be extremely wasteful considereing there is a 13 units on the battlefield limit, RAM won't handle more, and more won't be saved. I have some ideas about traps already, they would only be visible when you try to move a unit and they would be a background element (like the range squares), not a sprite and much less a unit.

Quotedisabling the idle walking animation. Making it so characters just stand there when not moving or acting

But how would you know a unit has Stop then?
There is also no animation that has the characters just standing there, the way the game does this is it just prevents the walking animation from advancing, having the characters stand still would actually be more difficult than it sounds.

QuoteCustom Character names

Already planned, but quite difficult.

QuoteThe ability to disable and enable characters changing sprite sets on job change

I have some ideas about how this would work already.

QuoteA morale/brave variable that other things could hook into

I'm actually not sure what uses this could have.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 09, 2019, 03:56:52 am
By underlay I mean it displays behind the unit instead of in front of them.

Stop could be signified by a status bubble, it is essentially indistinguishable from the combination of don't act and don't move.

A morale/valor variable would be of no value at the moment, but  it could be useful for other things later, such as tying unarmed attack to it like in FFT, or adjusting AI by tying aggression or perceived HP to it. It could also be used to adjust the trigger rate for things like reflex and strikeback, making them less broken. The nuance afforded to FFT by their brave, faith, and morale systems were pretty amazing.
I suppose the engine hack part is pretty much already done by your one bit abilities, the only other part that would need something as intensive as what you have been doing is displaying the valor/morale value.

Edit: Something I forgot to ask earlier:
Are we able to add things to the item command?
Can we make Draw weapon not require you to not have a weapon?
It is a little sad that there is no equip change equivalent like in FFT, framing a character around stealing your opponents equipment and using it yourself is a pretty interesting mechanic.

A minor niggle, how hard would it be to swap the rumors and missions options in the pub? When I wanna go fast I go there specifically for missions, and most especially not for rumors.

P.S. I got my blue mage style learning patch completed and have been testing it in the randomizer, not very far in, but so far it appears to be working well, that said none of my units have learned any techniques yet, but a lot of my opponents have, which is kind of interesting, and makes me want a combat recruitment option even more. Thanks for isolating that address for me.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 11, 2019, 03:24:33 am
QuoteAre we able to add things to the item command?

Kinda. There's really no difference between Items and any other race, the only issues are:
Item actions are tied to item count of specific types of item, except for Draw Weapon.
The ammount of Item actions the game will read is hardcoded.
I have no clue how Item AI works. I'm pretty sure I have seen them using potions before but that's about it.

I have some ideas about items so I'll eventually be touching that topic.

QuoteCan we make Draw weapon not require you to not have a weapon?

Maybe, I would have to look into it. I don't know much about how the inventory is handled.

Quotehow hard would it be to swap the rumors and missions options in the pub?

I'll eventually be looking into this type of menu so it will have to wait.

Quotenone of my units have learned any techniques yet, but a lot of my opponents have

I didn't even know enemies could Learn, that's pretty cool.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 11, 2019, 01:22:48 pm
It is very cool, however none of my units have learned anything yet, and the enemy learn rate seems to be pretty high, between ~40 ~60 percent just from a gut guess.
Also I have seen enemies learn skills from themselves, such as a soldier who cast shell on him and his mates and learned shell from it.
Also apparently auto-regen works like critical-quick, it calls on the Kirin ability. I know because a thief reacted to freeze blink with auto-regen, and learned Kirin.

The learn rate difference might still just be that I use more skills than most enemies, but it still seems a little odd that I have learned none at all despite going up against a handful of dedicated spell casters, like the Ice Flans and the Ice Wizard, etcetera. One of the Ice Flans learned fire, and I was really hoping he would be able to use it, but sadly he perished first.

Getting Draw weapon to not check if you have a weapon first is pretty much the final step in the full equipment versatility I am looking for. Being able to equip armor would be cool, but far less important than changing weapons mid battle.

If we could get NPCs to use pheonix down and revive every once in awhile, that would be pretty awesome.

The next patch I think I will try to focus on is tweaking your FFT Death a little in order to allow for stabilization, etcetera. I am still pretty lost on assembly though. If you could point me in the direction of like beginner's guide or a definition list that would be great. If I get that down I would also like npcs to be able to use bandages to stabilize their comrades as well some day.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 11, 2019, 01:54:34 pm
Quotethe enemy learn rate seems to be pretty high, between ~40 ~60 percent just from a gut guess

Learn is a 100% chance, as long as you are hit with an ability your race can learn.

QuoteI have seen enemies learn skills from themselves

Learn would check if the unit is an enemy, you can't learn from a blue unit, so if the soldier was getting Shell from an item he can teach it to himself. Or perhaps another hume job had Shell, so he learnt Shell for a different job.

QuoteAlso apparently auto-regen works like critical-quick, it calls on the Kirin ability.

That's good to know, thanks.

Quoteit still seems a little odd that I have learned none at all despite going up against a handful of dedicated spell casters

Yeah, no clue, you should automatically learn anything your race can get.

QuoteOne of the Ice Flans learned fire, and I was really hoping he would be able to use it, but sadly he perished first.

It can't use it, Ice Flan is like a job in the Flan race, it learnt Fire for the Jelly job but it doesn't have that action command equipped so it can't use it.

QuoteI am still pretty lost on assembly though. If you could point me in the direction of like beginner's guide or a definition list that would be great.

this tutorial should get you started:
https://feuniverse.us/t/gbafe-assembly-for-dummies-by-dummies/3563

and here's a list of all opcodes:
http://re-eject.gbadev.org/files/thumbref.pdf
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 11, 2019, 02:12:27 pm
Is that percentage adjustable at all, and also does it require the skill to successfully hit you?

Thank you very much for the guides.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 11, 2019, 02:24:47 pm
There's just no percentage, it's automatic, the spell does need to hit you.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 14, 2019, 01:34:41 pm
Okay, well it is definitely broken at the moment, my units do not trigger it at all, and all enemy units trigger it for everything, I have checked a few enemies that have triggered for abilities they should be able to learn, and it does not show up in their known ability list. The only changes are the 00 00 at the address you gave me, and setting all of the playable skills to trigger learning in the AIO.

Enemy units also trigger themselves, such as a soldier using first aid, and subsequently learning first aid.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 15, 2019, 05:01:26 am
Are you trying this on vanilla though?
Or using other engine hacks?

Learning isn't really working right now with 1bit abilities I think, on top of that as far as I know learning never checks if your race CAN have that ability, it just gives it to you if it has the learnable bit set and you have learnt equipped, since only humes can have learn and only abilities humes can learn have the bit set.
For other races I don't really know what happens but it certainly isn't working well.

At least it seems to be checking if the two units are on the same side or not instead of just checking if the unit is an enemy.

I'll look more into it in the future.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Diedrik on February 15, 2019, 07:08:58 pm
The vast majority of my testing is using other engine hacks because I was doing it at the same time as building a team of gladiators to test 6 ignore heights at once. Speaking of which I think jump + 1 and ignore height should be swapped, because right now the gladiator has ignore height, and the dragoon has jump + 1.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 16, 2019, 04:19:40 am
QuotePlease note that I'm just replacing the combos by order of ID, this is not a suggestion as to which jobs should get them [each movement ability].

If you want them changed you'll have to do so yourself.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on February 16, 2019, 04:26:53 am
This might be far from what you've been working on but I'm curious, have you looked into controllable allied units in battle? The functionality is already there, but after the battle ends if these units haven't been somehow deleted (jagd death etc), all of their inventory will linger unavailable in yours. I'm not certain how it interacts with team slots but I got some time over the weekend so I'll be learning more on that with any luck.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on February 16, 2019, 08:29:20 am
I've never looked into how guests behave in the party, I don't know much about items either.
However, there's a solution I think would work: When the heal party opcode (present in all missions) is called, we would also kill any guests in the party, or any deployed guests.

A new event opcode could also be made but that would only be useful for custom missions.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on February 16, 2019, 09:11:12 am
Hah, I like it. That's actually the type of solution I had in mind since I don't think setting it up in a way that wouldn't organically affect preset fights would be worth the effort.
Wouldn't have thought of changing the healing opcode for it though, thats clean.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on March 23, 2019, 06:36:30 pm
I got sidetracked with other projects but learning should now be fixed.
I made sure it checks properly if the ability is known or not and that it correctly sets it as masetered.

The fix should also have prevented some other potential unreported bugs, I also found a pretty interesting routine that is used to get the effect of the equipped support ability so that does open the doors to some passive abilities being added.

I also added two new options, one is a list of jobs that get learning as a passive, so they can learn without having it equipped, it only includes blue mage by default, the other option is a % chance of learning to trigger so if you really wanted to you could make learn only work 30% of the time or something (set to 100% of the time by default).

And yesterday I worked on a new animation which I think is looking pretty good, it was also much easier to port over than the gria:
(https://i.imgur.com/DWx8uMW.gif)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on March 23, 2019, 07:11:08 pm
The Spellblade looks proper neat on GBA palettes. :)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Gokajern on May 25, 2019, 05:16:11 pm
Hello, I installed this hack, though only the movement abilities, morphers morph, manual sorting, quick start, steal shoes and generic save level.
Something strange I noticed is that my one redmage (Eldena) can't learn new redmage abilities. When I equip a new ability it shows that it was learned, but when I remove the item it appears unlearned again. I was able to learn cure but only through the white mage. I've learned other abilities normally, both with her and the other characters.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on May 25, 2019, 05:22:19 pm
By learn do you mean by purchasing or gaining AP like in vanilla?
And when you say equipping an item makes the ability learnt, do you mean it says MASTER? or is it just usable with 0 AP like vanilla would do?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Gokajern on May 25, 2019, 09:48:40 pm
By learned I meant that the ability shows MASTER when I equip her the weapon. Without the weapon equipped the ability is unusable and no AP is gained.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Gokajern on May 26, 2019, 07:35:31 pm
Here's something else weird about this error. I took the save and opened it in a version of the rom patched only with the steal shoes patch (yes I mean the patch not the Engine Hack thing) and while I couldn't change Marche's job, the red mage had the AP gained previously (in the Engine Hacks version it's either MASTER or 0 AP for every red mage ability). Everybody else could change jobs and everything else seemed normal.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on May 28, 2019, 04:12:19 am
I'm working on other stuff at the moment but I will keep this in mind for when I continue working on the FFTA stuff.

Red Mage does have something special about it, it's the only class that I made a custom learning list for (so that learning Cure on White Mage gives it to Red Mages and viceversa).
If you disable that, Red Mages would work like any other class, you can do that by removing this line from the buildfile and rebuilding the rom:
https://github.com/LeonarthCG/FFTA_Engine_Hacks/blob/master/Engine%20Hacks/jobAndRaceCustomization/options.event#L11

If you do this you should notice that your Red Mage forgot Cure, consider it for a temporary fix.
Please report back, I will default it to off if that fixes it.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Gokajern on May 28, 2019, 01:08:01 pm
It worked. She had AP learned. I finished learning thunder and then gave her a different rapier, the new ability (and thunder) was usable in battle and more AP was gained normally.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on August 01, 2019, 04:27:21 pm
Here's something I've been meaning to ask. How do you edit action abilities with these engine hacks? Imagine I want to make "Cure" cost 4 MP and require 300 AP to be learnt. How would I do that using your editor?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 03, 2019, 03:09:03 am
I'm not sure what you mean by my editor, so I'll assume you are talking about Event Assembler.

The answer is: however you want.
I haven't done much stuff like that so I don't have a way to do it, but as long as the right values get to the right places that's all you need.
Since I only neede to change a few abilities all I do is specify the address with ORG and then just insert whatever data is needed.

There's a table at 0x851BA84, this table has a pointer for each of the races, if you wanted to change a bangaa ability you would get the corresponding pointer and then figure out the offset of the ability from there.

The structure of the abilities in those tables is:

0x00 SHORT name id
0x02 SHORT description id
0x04 SHORT ability id (effect)
0x06 BYTE ability type
0x07 BYTE ap cost/10

So you would multiply the id by 8 and add it to the offset of the race's table, then you can change whatever data you want.

Here's a macro I just made, untested:

#define actionAbility(label,index,name,desc,effect,type,ap) "PUSH; ORG label+(8*index); SHORT name desc effect; BYTE type ap; POP"


So to use this you would, for example (and I'm making the numbers up here), do this:
actionAbility(bangaaTable,1,700,700,4,1,1)
Where bangaaTable would be either a label you have for a new or repointed table or a definition for the original table, which I think is at 0x851BFD4

Finally, let's say you wanted to change only the AP cost, we can make a macro specifically for that, looking at the original macro:

#define actionAbility(label,index,name,desc,effect,type,ap) "PUSH; ORG label+(8*index); SHORT name desc effect; BYTE type ap; POP"

AP is the last value, which means it's 7 bytes after the data for the ability starts, so we can do this change:
label+(8*index) -> label+(8*index)+7
And remove the stuff we aren't using, so the result is:
#define actionAbility(label,index,ap) "PUSH; ORG label+(8*index)+7; BYTE ap; POP"
This way you could modify AP without having to worry about any of the other values.

If you want to learn more about EA you can check this tutorial (https://tutorial.feuniverse.us/), it's focused on Fire Emblem but it should teach you the general stuff EA can do, although it also gets into custom companion tools that aern't relevant to what we are discussing here. Buildfile basics will be the most helpful section to just learn how EA works.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on August 05, 2019, 04:34:00 pm
Thanks. :)

(And yes, I was talking about the EA :P)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: HolySD on August 16, 2019, 09:14:37 pm
Godamnn that's awesome!
I'd like to help with anything I could if possible.
Long ago (2k11?) I have tried to change sprites but with no success...
I'm now beginner java programmer, hope it can be of any help.
Nice work! I'll stay up to any activity on FFTA mod
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 16, 2019, 09:34:10 pm
If you want to try to get your sprites in the game you can check this thread:
http://ffhacktics.com/smf/index.php?topic=12169.msg225306#msg225306

Although it's not finished yet, you should be able to test them just fine.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 26, 2019, 11:49:41 pm
Earlier I saw an old post saying that Marche's starting Combo ability is something hard to change.
I thought I would drop here why: It's set directly through ASM, specifically for Marche.
The mastering part is just the regular stuff, set it on the Party Formation editor just like job and everything else.

The ability itself is stored into Marche's Combo slot at 0x80CA066 on boot, when the game prepares the data for a new game.
Technically it's stored with the instruction at 0x80CA068, but 0x80CA066 is where the value to store is loaded.

To change which Combo Marche gets just change the formation data to change what he's mastering and then go to 6CA066 in your hex editor, you should see "0B", 0x0B is the ID of Combat Combo, you can change this to any Combo (or non-combo ability, really, but that's probably just not going to work) you want (of the same race!), including 00 for none.
The Combo abilities are always the last one of the job, so if you want to quickly check the ID for a combo ability you can go into the Job Editor and look at the Job's "End" ability, right here:
(https://i.imgur.com/uRjng6T.png)

If you are using my EA stuff, you can do this instead:
PUSH; ORG $6CA066; BYTE 0x0B; POP //change 0x0B to your desired ID

Of course this is all specifically for the USA version of the game.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on August 27, 2019, 09:32:56 am
Quote from: Leonarth on August 26, 2019, 11:49:41 pm
If you are using my EA stuff, you can do this instead:
PUSH; ORG $6CA066; BYTE 0x0B; POP //change 0x0B to your desired ID


(Possibly) Silly question:
Will the othe EA hacks have any sort of conflict with this? I tried building the ROM file with the "fixed animations", "quick start", "jp learn", etc, but Marche still comes with the "Combat Combo/Move+1" ability mastered.

On another note:
In the "jobAbilityTable.event", the second pointer is used to determine extra conditions for unlocking jobs. However, imagine I want to change the base unlocking conditions/requirements. How would I do that (through EA)? According to RHDN's Data Crystal, job requirement data starts at 0x5231A4 and its data is 0x4 bytes long.

Thanks in advance.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 27, 2019, 01:30:01 pm
PUSH; ORG $6CA066; BYTE 0x0B; POP would only change the ability Marche starts equipped with, not the abilities Marche has mastered.

If we read it:
PUSH (save cursor position)
ORG $6CA066 (change cursor position to 6CA066)
BYTE 0x0B (write 0x0B at cursor, advance 1)
POP (restore cursor)


So this is equivalent to going to 6CA066 in your hex editor and changing the byte there

As for changing job requirements, there's two places you would need to change, the one you listed is a table of job requirement data, so for example if we go to $5231A4+(5*4) (base offset+index times length of an entry) we'll see requirement 5, this does not mean the requirement is for job 5.
Job requirements look like this: BYTE jobIDNeeded1 skillMasteredNeeded1 jobIDNeeded2 skillMasteredNeeded2
So to change them you would just write bytes to that location.
To change which job requirement from the table a job uses you would go into job data and change the job requirements index, Elementalist for example has id 5.

If you wanted to add requirements more specific than vanilla uses you would need to make ASM for them, if you wanted to add more requirements to the table you would need to repoint it, that means copying the data, placing it into freespace and changing all pointers to the old data to point to the new one.
Or if you wanted to you could set the job requirement to 0 and just write your own requirement in asm, even if it's pretty much just a vanilla-like requirement, macros for that could probably be made pretty easily.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on November 15, 2019, 08:35:56 pm
Haven't posted in a while. I have an announcement to make, not a huge one but still an important one.

I just fixed a pretty nasty bug related to reading new animations, if you had tried to build your own patch using my buildfile (found in github) and it randomly didn't work, this was likely to be the cause.

Even if you hadn't encountered this issue (with the game freezing seemingly at random) you should still update, not many files changed so it shouldn't be a hard process.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on November 16, 2019, 08:26:28 pm
Any update is welcome (and thank you for that  :cool:)!

On a sorta side note:
I remember someone asking about making a job exclusive to Marche. For some "unknown" reason, I decided to try and do just that. So Marche's character ID is 02, so, if you go to jobAbilityTable.event, you can make a new "ALIGN 4" thingy for Marche.

(this thingy)
ALIGN 4
isMarche:
isCharacter (0x02)

If you open AIO and go to the "New Formation Editor", opening the "Special Character" dropdown list, you can get the order of special characters, starting at "Error" (0x00, as my powers of deduction tell me XD). If, by any chance, you want to give Montblanc a job of his own, his ID matches 0x08 (only tested it with Marche, though, but I predict it checks out).

Don't know why I haven't tried before...
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on November 16, 2019, 08:57:17 pm
Yeah, all you said is correct.

The issue with giving Marche a new job is just that you would need to be using JP learning with the 1bit abilities option, because otherwise there's just no room to save more learnt abilities for Hume characters.

Another option would be to just give Marche a mix of abilities from different Hume jobs, or remove some abilities from some Hume jobs to repurpose them and add them to Marche's new custom job.

You also need to repoint the data for the race's abilities if you want to add more of them, but that applies to all races.

Hume is the race with the most abilities so vanilla isn't prepared to save more than that, other races have less abilities so you could add new ones to other races without the 1bit abilities option as long as you don't make them have more abilities than Humes have in vanilla.

TLDR: You can't give any race more abilities than vanilla Humes have unless you use the 1bit abilities option.

Edit: I'm fixing some other issues I had noted down, the issue with Red Mage reported by Gokajern (Viera Red Mage not gaining AP) should now be fixed, although as far as I can tell this was only visual.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on November 18, 2019, 09:38:13 pm
I fixed a small visual issue with item ability lists.

Also, I don't remember who asked for this but I think it's a good change so:
(https://i.imgur.com/HUMUoUy.png)

This was harder than I expected, mostly because I wanted it to be easy for people to customize the order easily.
I've selected Rumors by accident more times than I can count so this is nice QOL.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: SqueakyChair on December 27, 2019, 12:59:45 pm
Hello Leonarth!

I need some help regarding your Engine Hacks. I've tried to patch my game as instructed, making no changes to the options. When I booted the game up in my emulator, everything seemed fine at first, and I can enter the first battle quest at Giza Plains, but when I access the law screen during battle, the graphics got corrupted somehow so I can't see what's the laws during battle, but I can still press the buttons to grapple my way out of the law screen and then the graphics screen cleared again and it shows the battlefield. I probably can proceed through the battle but I won't be able to check what's the laws in battle, but I can still check it on the world screen before I enter the battle.

Any idea what's going on here? I appreciate your help.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 27, 2019, 04:18:28 pm
Thanks for the report, this seems to be an issue with the quick start option, there's probably something missing, I'll look into it.

In the meantime you can either disable laws or disable quick start.

Edit: It should now be fixed.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: SqueakyChair on December 28, 2019, 11:43:39 am
Yep, that solved the issue on my end. Many thanks, Leonarth!

A question:

Inside the ROM buildfile, at noStatVariance, it states "look at "Engine Hacks/newLevelup.event" for more options". I am interested in options such as newMaxLevel 99. Do I need to do anything else to get this option, meaning when I run ROM Buildfile it also includes the hacks from the included files? Or do I need to, like, copy the newMaxLevel hack codes into the main buildfile so it gets executed?

A suggestion:

I'm also interested in the Death Systems hacks you made, but I feel that they are too punishing for my taste. Permadeath feels too heavy a cost if I were to permanently lose high leveled and heavily trained units; AP's especially are very slow to grind back. I can still recruit new units, but they'd be a blank slate and I'd have to painstakingly train their abilities back up to get them useful again. We all know how much of a time suck and lengthy game this can be LOL.

Therefore, can I suggest a middle ground, where instead of the unit permadying at the end of battles, can you prevent them from participating in the next few battles? I think of this as if they were too heavily injured to recuperate quickly, but the judges still function as usual preventing permadeath outside of the jagds. Functionally and graphically, I imagine this to work similarly to the unit being dispatched for missions or getting jailed, preventing them from joining a few battles while they recover from their injuries. After a few battles (I imagine 3 or 4 should be enough), a popup appears informing that the unit has recovered. Maybe in the party screen such units can be labelled "incapacitated", "recovering" or "maimed". Whichever fits the text area.

With this type of death system there will be some repercussions to letting units die in battle, but not a ragequit inducing one, or leading to reloading a save. This makes me feel a bit more pressure to strategise better, but I'll be relieved knowing it won't be a total waste of time if I decide to just press forward with the consequences. Players will be forced to use other units while the maimed one recovers, or just make do with a smaller team for the next few battles (which I anticipate I will do often since I don't usually train the other units outside of the original six members). Maybe we can call this the Time Out Death System.

Thanks for your time.  =)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 28, 2019, 07:20:36 pm
QuoteOr do I need to, like, copy the newMaxLevel hack codes into the main buildfile

If you look at the buildfile you'll see lines that say "#include soandso.event", that is the same as if that whole file had been copied and pasted in, so you don't need to copy anything anywhere.
You would want to uncomment (remove the // that's in front of) noStatVariance so that it gets installed, after that you can just change the definition for newMaxLevel to whatever you want the max level to be.

As for the death system idea, I don't think it's a bad idea but I'm not really interested in implementing it, mostly because there's so many different ways it could work: it could be made to trigger when downed at the end of a battle, when downed for 3 turns or both at once, I could also see people wanting increasing punishments for this, ending in death maybe? or people wanting to mix it with permadeath, it all sounds like a headache.
Maybe you can just impose it on yourself as a challenge?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: SqueakyChair on December 29, 2019, 12:08:02 am
I see, so the attached files are included already, so I can just include or comment out the hacks in the relevant files just like in the main buildfile. Got it.

Ok I see the complications in implementing this thing, so I'll just do it as a personal challenge. Thank you.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on December 29, 2019, 01:42:16 pm
Just to be clear, you don't need to include anything, everything is already included.
You don't need to uncomment anything outside of the main file either.

Some things are not installed but that's not because the hacks themselves are commented out or not included, rather the definitions that are checked for installing them are what's commented out, you should only uncomment those (in rom buildfile, the main file) and not the hacks themselves (which wouldn't be commented to begin with) if you just want to install them.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on March 24, 2020, 10:43:42 am
I have a question about importing custom sprites. Through the EA and instructions you provided, you can import new battle sprites into free space in the ROM file, correct? Is there any way to import them and overwrite existing sprites? For example, imagine I want to overwrite the Viera Red Mage sprite with a Viera Green Mage. Can I do that?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on March 24, 2020, 12:34:27 pm
You don't want to import the new graphics over the old graphics, and you can't, because the animation template graphics are bigger than the vanilla animations.

What you can do is simply make the game not use the old animation. Open the animation template and change the TEMPLATEID definition to the ID of the animation you want to replace. For example, if you wanted to replace the Soldier you would set the ID of the template to 0x00 and the ID of the water template to 0xBC.

It will work exactly the same as if you were using a new ID.

Alternatively, you can insert the animation with a new ID and change the ID of the battle sprite for the class. It really makes no difference, the space used is the same, you can't save space by replacing the old graphics or anything  like that.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on March 30, 2020, 04:44:03 pm
Thanks for the answer. I have another question regarding sprites, though. So, you have those semi-secret characters (Littlevili, Quin, etc.). Imagine I want to give them their own sprites. How do I make them NOT change sprites when changing jobs?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on March 30, 2020, 07:16:18 pm
The semi-secrets do not have a character ID to them, they are just generics with forced names.
If you want to give them special sprites, you will have to give them a character ID.

Once you've done that, they will work just like any other non-generic and their sprites will never change when changing jobs.

If you are using the intro cutscene removal patch, you can reuse the character IDs for the kids.
I haven't looked into editing the data for special recruitments, though, so I can't really help you on that.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on March 31, 2020, 04:28:33 am
No biggie. I was fooling around with NPC sprites on the ROM and that occurred to me.

On the nightmare modules, when opening the "recruitment.nmm" with Notepad(++), right on top there's the offset "0x529788". I don't know if that's the offset where all recruitment on the ROM takes place.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on March 31, 2020, 12:18:07 pm
That would be the base offset of the table.
A nightmare module is structured like this:

1
Name
Base offset
Number of entries
Length of an entry in bytes
Dropdown list .txt file (or NULL)
NULL

After that, you get to specify the values to edit, like this:
Name
Offset
Length in bytes
Type of data
NULL

The types of data are not very important right now, what we need to know is just the base offset, the length of an entry and the offset of the data we want to edit.
The data we want to edit would be at (base + id*length of entry + offset of the data)
(id = entry, it's just a different name for the same thing)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Taxxa88 on April 10, 2020, 06:01:47 pm
Good morning, Leonarth. I hope you're feeling well.

I wanted to write you because I'm a big fan of all Final Fantasy Tactics sagas (It's my favorite game), this mod you are creating is super cool I look like a kid with a new toy and I would like to play it as soon as possible.

I ask you:

- Will we see it very soon?

- If I can donate something to help you or what you can tell me, I would be happy to do so.

- Do you already have a playable version to start in this quarantine time?

Thank you very much for everything and a big hug to all of you in the ffhacktcis community, you are the best.

Translated with www.DeepL.com/Translator (free version)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on April 11, 2020, 03:44:18 am
Hello!
I am not exactly making a mod, you can think of what I do as making tools that people can use for their mods. These can, of course, also be used directly with the normal game, if that is what you want to play.

Everything you can see on this thread is publicly available and you can get it at https://github.com/LeonarthCG/FFTA_Engine_Hacks

As this is meant to be used as a starting point from which people can make mods there are many options to choose and customize. That is one of the reasons this is not distributed as a patch, like you might have expected or be used to. If you need help setting it all up, feel free to send me a private message.

I also have a mod that was released last year and uses some of the features shown in this thread. It follows the normal game but you are forced to capture and use monsters instead of normal units.
https://ffhacktics.com/smf/index.php?topic=12212.0

I don't feel comfortable accepting donations but I appreciate the sentiment. Thank you and stay safe.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on April 12, 2020, 11:37:39 am
Speaking of the Monster Taming hack, I've got a couple of questions:

1. How did you change the formula for the "Capture" ability?

2. Although you removed it on the hack, monsters still were added to the Monster Bank. What did you do for that? (I tried checking the "Enable Capture" box on AIO's Job Editor, but it did nothing :p)

3. Do you know how to make an universal "Control" (and also a "Morph") ability that affects all monster classes, instead of having one ability for each monster class ([Control] Goblin, [Control] Panther, etc.)?

4. While testing the "Enable Capture", I happened to visit the Monster Bank and the instead of the monster battle sprites, it only showed the shadow at their feet (screenshots attached).
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on April 12, 2020, 03:44:19 pm
Quote1. How did you change the formula for the "Capture" ability?
I simply found where the vanilla formula was and added my own stuff to the code.
I think I just check for space in the clan and them being a monster?
I don't remember changing the hit% at all, other than making it able to hit monsters it can't in vanilla, and being unable to hit if the clan is full.

Quote2. Although you removed it on the hack, monsters still were added to the Monster Bank. What did you do for that? (I tried checking the "Enable Capture" box on AIO's Job Editor, but it did nothing :p)
All of the code for the capture effect was rewritten, it does unlock the monsters in the bank but just barely, I mainly did this just to see if it would get that one mission where the monsters escape to work. I'm not sure what you mean with "What did you do for that".
Each monster type has a set place in ram it gets stored to for the bank, if the monster can be found in the bank in vanilla then it gets stored, if not then it doesn't.

Quote3. Do you know how to make an universal "Control" (and also a "Morph") ability that affects all monster Jobs, instead of having one ability for each monster class ([Control] Goblin, [Control] Panther, etc.)?
For "Control" you would just change which Jobs can be targeted, no? It's not something I've looked into.
Morph is more complicated. When you Morph the game actually stores which race you morphed into so you would need to rework whole all of that works.

Quote4. While testing the "Enable Capture", I happened to visit the Monster Bank and the instead of the monster battle sprites, it only showed the shadow at their feet (screenshots attached).
The Monster Bank shouldn't be possible to visit, at least last time I checked it didn't even show up in the map.
I don't store all of the info for the monsters so that could be why they don't show properly.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: bcrobert on May 18, 2020, 09:18:14 am
Just thought I'd comment on the Control/Morph question. For Control you may have to use my Ability Effects nightmare module (not the main Abilities module, the other one). I'm not sure if AIO supports changing targetable race, but I'm 99% sure that one of my modules covered it. Basically you would be looking for the targeted race and just changing it to target all monsters. (The function already exists for effects like Sidewinder, no need for coding.)

As for Morph, that's a whole thing. Since it draws so much data from the Monster Bank, you'd want to essentially cut it off from its initial functions completely. The abilities would need to be rewritten to ONLY change your available A-ability lists, instead of reading a tamed monster's data and changing your stats and blah, blah. (Otherwise you'd need to eff with how the ROM interacts with monster bank data in RAM at every possible point, including making any monster that's morphable capturable. Which would ALSO be a whole thing. That's why I suggest just cutting it off of its original functions and rewriting the ability from scratch.)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on June 06, 2020, 04:56:29 pm
Could you help me with the engine hacks.

I followed your instructions and was able to implement your engine hacks to vanilla FFTA. Then I used my hack's .ups and patched over it even though it gave a warning. I tested a bit and found everything to be fine.
Is there a better way of patching? You've written about free space offset but I did not understand it.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 06, 2020, 08:31:10 pm
You should do the opposite. An .ups patch can't be made to adapt to a different ROM, my engine hacks easily can.
First patch your ROM, then apply the changes to it afterwards.
(However, ideally you would make all of your changes exclusively through .event files.)

If your .ups patch uses any freespace, it would write all over the engine hacks. However, even if your patch uses freespace, the engine hack starting offset can be changed in order to avoid conflicts. This is why the order matters.

Anyway, when applying the engine hacks to a patched ROM, you first need to make sure the FreeSpace definition is still correct.

If you have never looked at the ROM in a hex editor, there's a point after which there's just nothing, even though the file continues going on, it's all filled with FF (or 00 in some ROMs), FreeSpace should be defined as the offset after which there is no more data, only dummy bytes like that.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Delsait on June 07, 2020, 06:01:51 pm
Has there been any progress on the Morpher hack and has the patch been released?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 07, 2020, 06:26:11 pm
I'm not sure what Morpher thing you are talking about in particular but everything I made is on github.
https://github.com/LeonarthCG/FFTA_Engine_Hacks
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on June 07, 2020, 07:44:00 pm
Quote from: bcrobert on May 18, 2020, 09:18:14 amFor Control you may have to use my Ability Effects nightmare module (not the main Abilities module, the other one). I'm not sure if AIO supports changing targetable race, but I'm 99% sure that one of my modules covered it. Basically you would be looking for the targeted race and just changing it to target all monsters. (The function already exists for effects like Sidewinder, no need for coding.)

That's what I ended up doing. On your "ability eff" module, by changing the "viable targets" from "control targeting" to "monster", the effect hits any monster race (goblin, lamia, malboro, etc.) I also used that same module to change Capture's accuracy formula.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Delsait on June 07, 2020, 11:05:56 pm
Quote from: Leonarth on June 07, 2020, 06:26:11 pmI'm not sure what Morpher thing you are talking about in particular but everything I made is on github.
https://github.com/LeonarthCG/FFTA_Engine_Hacks

This one.

Quote from: Leonarth on December 25, 2018, 11:24:57 amSmall Christmas update, today I decided to make something I always wanted as a kid, as a kind of gift to my child self

When I was a kid I heard from my cousins that morphers could transform into monsters and use their abilities, to me that was the coolest thing I had ever heard about this game so I started training a Nu Mou just to see it, once I had a morpher I found out I also needed a hunter so I had to get one of those too.
When I finally figured out how to capture a monster I was extremely disappointed by the fact that after "transforming" morphers would look like they were late to school, waving their arms and sweating, nothing to do with what I had imagined, they only transformed for abilities and then immediately went back to looking silly.

So here I am, 15 years latter, fixing the issue and making my imagination into reality:

(https://i.imgur.com/YU0e9w6.gif)

This will be included as an option for the job/ability assignation rework.
In case it's not clear yet, this engine hack makes morphers actually transform into monsters, changing their aspect and their movement types.
Morphers will still use the same palette they were using before morphing so player morphers will always be blue or green.
I call it: Morphing Morphers Morph.

Also, this is just an idea from someone who has never done gamehacking, but what if the Morpher's monster form has a unique palette not used by any monster variants? Like the Floateye is Green, the Dragon is Purple, ETC?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 08, 2020, 05:57:06 am
QuoteThis one.
That was available before I even made the post you quoted. It's on GitHub like everything else.

Quotewhat if the Morpher's monster form has a unique palette not used by any monster variants?
A unique palette for each one? Impossible, there's only so many palettes you can use at once (16) and all the slots are already pretty much taken, and even if they weren't if you wanted a unique palette for each monster you would potentially need a slot for each Morpher you can have in your team, which is unreasonable.

However, if you wanted to have a green or purple version of a monster you wouldn't need a new palette at all, those colors are already available, what you want is new graphics that use those colors. You can do that for your hack, I have no interest in including it. I think it makes no sense to do, a hack can easily include a new monster type that uses those colors anyway which makes it no different compared to just using one of the already existing ones for the Morpher.

If you want to learn more about how the GBA works I recommend reading http://www.coranac.com/tonc/text/
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Delsait on June 08, 2020, 02:38:46 pm
Quote from: Leonarth on June 08, 2020, 05:57:06 amThat was available before I even made the post you quoted. It's on GitHub like everything else.

I see

Quote from: Leonarth on June 08, 2020, 05:57:06 amA unique palette for each one? Impossible, there's only so many palettes you can use at once (16) and all the slots are already pretty much taken, and even if they weren't if you wanted a unique palette for each monster you would potentially need a slot for each Morpher you can have in your team, which is unreasonable.

However, if you wanted to have a green or purple version of a monster you wouldn't need a new palette at all, those colors are already available, what you want is new graphics that use those colors. You can do that for your hack, I have no interest in including it. I think it makes no sense to do, a hack can easily include a new monster type that uses those colors anyway which makes it no different compared to just using one of the already existing ones for the Morpher.

Ok, it was just an idea. I don't think any monster in the game uses a green palette, bar the Malboro. So a green morphed monster would look unique for almost any monster class.

Would it be possible to allow morphers to do a basic "fight" command in monster form? That was something I always felt should be in the game for monsters that lack attack moves.

I remember a youtube trailer for a FFTA hack that showed morphing into zombies/vampires, I'll see if I can find it. Do you have an an all common monsters capturable hack?

Quote from: Leonarth on June 08, 2020, 05:57:06 amIf you want to learn more about how the GBA works I recommend reading http://www.coranac.com/tonc/text/

I'll do that, thanks for the link.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 08, 2020, 10:12:51 pm
QuoteI don't think any monster in the game uses a green palette, bar the Malboro.
The Malboro uses the exact same palette as, for example, the Floateye or the Soldier.
There are only 3 palettes normal units use, blue/green, red/purple and yellow/emerald.
There are also slots that are reserved for special palettes used in totema battles.

QuoteSo a green morphed monster would look unique for almost any monster class.
In vanilla, maybe, but people could add them to their hacks, which is what my whole point was.
To do this I would have to make new graphics (not palettes, graphics) for the monsters, which people could then just use in their hacks, defeating the whole point of giving the Morpher those colors in the first place.

QuoteWould it be possible to allow morphers to do a basic "fight" command in monster form?
It sounds like a good idea, currently I'm not really developing these hacks further though, I'm focusing on other things.

QuoteDo you have an an all common monsters capturable hack?
No, this would require an extensive rework of the monster bank as well as the game save data. It is something I would like to do (and I actually have notes on what it would look like) but it's not something you should wait for. Whenever you see a hack that allows you to capture some new monster that just means that it's either not going to be sent to the bank or that it's replacing a previously capturable monster. The monster bank only has so many slots and each slot is specifically reserved for one type of monster, the game doesn't even save the job id of the monster when storing it in the bank, it deduces it entirely from the slot it is saved to.

Either way, even with a rework you would never get to have all of the types of monsters captured at once, at least not easily and not without a cost, there is only so much save space. The rework would only make it so monster types are not tied to the slot they are stored in, so you could have repeat monsters and whatnot, same total of slots but used in a different way.

I do however have a monster taming hack, which does allow you to capture all common monsters. They are not sent to the bank, though, they are added to your clan.
https://ffhacktics.com/smf/index.php?topic=12212.0
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Delsait on June 08, 2020, 10:46:39 pm
Quote from: Leonarth on June 08, 2020, 10:12:51 pmThe Malboro uses the exact same palette as, for example, the Floateye or the Soldier.
There are only 3 palettes normal units use, blue/green, red/purple and yellow/emerald.

Right, so it sounds like you can't do a custom palette. I wasn't aware of that limitation, but it makes sense.

Quote from: Leonarth on June 08, 2020, 10:12:51 pmThere are also slots that are reserved for special palettes used in totema battles.

Kinda of like how in alot of beat em up games for the Genesis, enemy change palette by area then?

So when a morpher morphs in your hack does it take the palette of the first monster of that type? Like will a Morpher in Dragonform always be a FireDrake until he uses say ice breath?

Quote from: Leonarth on June 08, 2020, 10:12:51 pmIn vanilla, maybe, but people could add them to their hacks, which is what my whole point was.
To do this I would have to make new graphics (not palettes, graphics) for the monsters, which people could then just use in their hacks, defeating the whole point of giving the Morpher those colors in the first place.

How is the Morpher's "Raving/Transformed" state spriteset handled? Is there any reason why the developers went for that when making the game.

Basically my idea was all morphers would use a "Morpher palette." Like all Morphers in Dragonform would be a green dragon. It sounds like it isn't really possible though, unless you like added something like Poisondrakes.

Quote from: Leonarth on June 08, 2020, 10:12:51 pmIt sounds like a good idea, currently I'm not really developing these hacks further though, I'm focusing on other things.

Would it be to ask if you're focused on creating another hack?

Quote from: Leonarth on June 08, 2020, 10:12:51 pmNo, this would require an extensive rework of the monster bank as well as the game save data. It is something I would like to do (and I actually have notes on what it would look like) but it's not something you should wait for. Whenever you see a hack that allows you to capture some new monster that just means that it's either not going to be sent to the bank or that it's replacing a previously capturable monster. The monster bank only has so many slots and each slot is specifically reserved for one type of monster, the game doesn't even save the job id of the monster when storing it in the bank, it deduces it entirely from the slot it is saved to.
I think I found the hack trailer(link here), notice the tonberry listed among the morpher skills.

Either way, even with a rework you would never get to have all of the types of monsters captured at once, at least not easily and not without a cost, there is only so much save space. The rework would only make it so monster types are not tied to the slot they are stored in, so you could have repeat monsters and whatnot, same total of slots but used in a different way.

I do however have a monster taming hack, which does allow you to capture all common monsters. They are not sent to the bank, though, they are added to your clan.
https://ffhacktics.com/smf/index.php?topic=12212.0
[/quote]

I heard about that and want to try it.

If I can ask another hack question, does the engine of FFTA allow enemy recruitment the way it worked in the original Final Fantasy Tactics as well as the Tactics Ogre Knights of Lodis? Or just a capture for humanoids?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 09, 2020, 05:42:21 am
QuoteRight, so it sounds like you can't do a custom palette. I wasn't aware of that limitation, but it makes sense.
Keep in mind that even if you can't make a new palette, you CAN make monsters of "new" colors, making a green Flan is as easy as grabbing the already existing one and changing the index of the colors it uses. In vanilla all the recolored enemies use the exact same graphics as their other versions, but there is nothing forcing it to be that way.

QuoteSo when a morpher morphs in your hack does it take the palette of the first monster of that type?
You can specify which monster the Morpher morphs into in the morphedTable in morphingMorphersMorph.event.
It's a bit hard to read, but it's just a list of the job ids the Morphers transform into for each of their abilities.

QuoteHow is the Morpher's "Raving/Transformed" state spriteset handled? Is there any reason why the developers went for that when making the game.
Sprites for playable jobs are smaller than sprites for monsters, I think they were concerned a player with 6 Morphers could glitch the game (visually) so they opted for an animation that was the same size as a regular player unit. That's just a guess, though.

QuoteIt sounds like it isn't really possible though unless you like added something like Poisondrakes.
It is very much possible, the new dragons wouldn't even need to have any abilities or anything, the would pretty much only use their looks and walking type, I just don't like the idea.

QuoteWould it be to ask if you're focused on creating another hack?
I've been working on the engine hacks for the Minish Cap randomizer, lately I'm focusing on studies though.

QuoteIf I can ask another hack question, does the engine of FFTA allow enemy recruitment the way it worked in the original Final Fantasy Tactics as well as the Tactics Ogre Knights of Lodis? Or just a capture for humanoids?
The question is not "does the engine allow for" or "is this possible", the GBA is a computer, if you program it in, then it will do that, the issue is with the workload that comes with developing new features. I have to want the feature enough that I want to put in the time to develop it.

For me the biggest issue with changing recruitment is that there's a bunch of ways to go about it:
Would a persuaded enemy instantly leave the battlefield and join your clan if there's space?
Should persuade just fail if there's no space in the clan?
Should the unit have to survive through the whole battle to be recruited?
Should there be a prompt at the end to confirm the recruitment?
Should player units be able to be persuaded?
Can units be persuaded back? what determines the persuade chance?
Which enemies can you persuade?
And many more, there's too many things to decide.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Delsait on June 10, 2020, 02:26:53 am
Quote from: Leonarth on June 09, 2020, 05:42:21 amKeep in mind that even if you can't make a new palette, you CAN make monsters of "new" colors, making a green Flan is as easy as grabbing the already existing one and changing the index of the colors it uses. In vanilla all the recolored enemies use the exact same graphics as their other versions, but there is nothing forcing it to be that way.

You can specify which monster the Morpher morphs into in the morphedTable in morphingMorphersMorph.event.

It's a bit hard to read, but it's just a list of the job ids the Morphers transform into for each of their abilities.

Thank you for the information, I wasn't aware of that and assumed like for the Floateye, the regular blue Floateye animation would be used for all animations, even when using Ahriman abilities.

Can you expand on the point on recolored enemies using the same graphics? Do you mean you could make the Ahmiran use entirely new graphics instead of being a recolor, relatively easily?

Quote from: Leonarth on June 09, 2020, 05:42:21 amSprites for playable jobs are smaller than sprites for monsters, I think they were concerned a player with 6 Morphers could glitch the game (visually) so they opted for an animation that was the same size as a regular player unit. That's just a guess, though.

That seems reasonable.

I'm guessing the graphical glitches would be flickering or parts of sprites being cut off?

Quote from: Leonarth on June 09, 2020, 05:42:21 amIt is very much possible, the new dragons wouldn't even need to have any abilities or anything, the would pretty much only use their looks and walking type, I just don't like the idea.

Hearing about how morph graphics work, I see the pointlessness of a morpher Palette, now myself.

That being said, how hard would it be to add player Monster class palettes, just like the main races have player and enemy palettes? Like going with Floateyes again, player Floateyes would have a sea green palette as opposed to the straight up blue palette of the enemy Floateye.

Something like that could be added for the player monsters in Final Fantasy Tactics (PSX) and Tactics Ogre: Knights of Lodis assuming its possible to add faction palettes for them?


Quote from: Leonarth on June 09, 2020, 05:42:21 amI've been working on the engine hacks for the Minish Cap randomizer, lately I'm focusing on studies though.

That sounds interesting.

Quote from: Leonarth on June 09, 2020, 05:42:21 amThe question is not "does the engine allow for" or "is this possible", the GBA is a computer, if you program it in, then it will do that, the issue is with the workload that comes with developing new features. I have to want the feature enough that I want to put in the time to develop it.

Makes sense, I am curious about whether something is relatively easy or not?

Quote from: Leonarth on June 09, 2020, 05:42:21 amWould a persuaded enemy instantly leave the battlefield and join your clan if there's space?

I imagine it could be set like capture works where the enemy instantly leaves and then at the end of the battle asks to join your clan.

Quote from: Leonarth on June 09, 2020, 05:42:21 amShould there be a prompt at the end to confirm the recruitment?

That would be the most preferable, but it all depends on how hard it would with the FFTA engine?

Quote from: Leonarth on June 09, 2020, 05:42:21 amShould player units be able to be persuaded?
Can units be persuaded back?

In Final Fantasy Tactics (PSX) and even the newest version of Tactics Ogre, enemies never use persuade. So this would be the same.

Quote from: Leonarth on June 09, 2020, 05:42:21 amwhat determines the persuade chance?

I imagine it'd be similar to capture such as enemy health and status.

Quote from: Leonarth on June 09, 2020, 05:42:21 amWhich enemies can you persuade?

Ideally it'd be like how boss units are immune to skills like Oust/Parley. Generic non boss units would be persuadable.

Quote from: Leonarth on June 09, 2020, 05:42:21 amAnd many more, there's too many things to decide.

Its just a suggestion I threw out there. For all I know the engine of FFTA could have to be re-assembled to allow this.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 10, 2020, 11:16:13 am
QuoteCan you expand on the point on recolored enemies using the same graphics?
There's not really more to expand on?
If you change the graphics for the Floateye, the graphics for the Ahriman also get changed, they are literally the same graphics, they just have different palettes applied to them.

QuoteDo you mean you could make the Ahmiran use entirely new graphics instead of being a recolor, relatively easily?
I mean, yeah?, but what I explained makes it harder to make them use entirely different graphics, because in vanilla they don't... And the only other alternative would be that they do, so this is harder. It's not hard, but it is harder.

QuoteI'm guessing the graphical glitches would be flickering or parts of sprites being cut off?
No, it wouldn't look like that at all.
The units themselves would look just fine, what would be broken is stuff like the cursor and the status bubbles, which would get the sprites for the units written on top of.

QuoteThat being said, how hard would it be to add player Monster class palettes, just like the main races have player and enemy palettes? Like going with Floateyes again, player Floateyes would have a sea green palette as opposed to the straight up blue palette of the enemy Floateye.
I already explained the palette slots are taken. You can't do that. A palette is not just the colors a sprite uses, it's a set of 16 colors in a specific order which are applied to indexed graphics, you can't apply the palettes in a different way, if you want a green Floateye or a purple Ahriman or an emerald one, you need new graphics. You could have a yellow one with no new graphics, though.

In short, what you are asking for is having different graphics, not just palettes, based on side.
It would be possible, but it would mean you would need two versions for every monster, which I really don't like the sound of, this cuts on the available color variations you could otherwise use in your hack and doesn't really add anything, in my opinion.
Also monsters changing colors when recruited sounds plain weird to me for some reason.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Delsait on June 10, 2020, 03:43:42 pm
Quote from: Leonarth on June 10, 2020, 11:16:13 amIf you change the graphics for the Floateye, the graphics for the Ahriman also get changed, they are literally the same graphics, they just have different palettes applied to them.

Thats what I thought.

Quote from: Leonarth on June 10, 2020, 11:16:13 amI already explained the palette slots are taken. You can't do that. A palette is not just the colors a sprite uses, it's a set of 16 colors in a specific order which are applied to indexed graphics, you can't apply the palettes in a different way, if you want a green Floateye or a purple Ahriman or an emerald one, you need new graphics. You could have a yellow one with no new graphics, though.

But what if Ahriman was removed as an individual class and its abilities were given to the regular floateye.

Would it then be possible to have player Floateyes be the regular blue and enemy Floateye be Ahriman red?

Quote from: Leonarth on June 10, 2020, 11:16:13 amIn short, what you are asking for is having different graphics, not just palettes, based on side.

How do the player class palettes work?

Quote from: Leonarth on June 10, 2020, 11:16:13 amIt would be possible, but it would mean you would need two versions for every monster, which I really don't like the sound of, this cuts on the available color variations you could otherwise use in your hack and doesn't really add anything, in my opinion.

What do you mean by cuts on the available color variations?

I know Tactics Ogre: Knights of Lodis is a different game, but that has for example: Player Ninjas(Green), Enemy Ninjas(Red) and Predator Class(Purple).

Quote from: Leonarth on June 10, 2020, 11:16:13 amAlso monsters changing colors when recruited sounds plain weird to me for some reason.

It happens in the Tactics Ogre series with humanoid monsters and humans. Like a red Lizardman will instantly turn green as soon as he's persuaded onto your side.

Large Monsters, which don't use weapons, such as Griffons, only possess one palette used for both ally and enemy units, however. The only exception being Giants.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 10, 2020, 07:00:21 pm
QuoteWould it then be possible to have player Floateyes be the regular blue and enemy Floateye be Ahriman red?
It is, and it's not different from how playable jobs work. You can do that in a hack if you want, I'm not going to do it.
In case you don't yet know this, I'm not making a romhack here, I'm making tools people can use to make their romhacks, you can take my stuff and go make your own thing if you want the features you are suggesting.

QuoteHow do the player class palettes work?
There's only two palettes jobs use, and they are the same that monsters use (minus the yellow palette, which no playable job uses, only monsters and special characters like Montblanc use that one), each job has a different palette based on the faction the are in.
You CAN make Floateyes be blue when on the player side and red when on the enemy, side, you CAN'T make them be green or purple or whatever, without changing their graphics. If you don't make new graphics they can only be blue, red or yellow.

I think you still haven't understood what a palette is and how it works, so I'll try to explain it:
(https://i.imgur.com/znIR2AM.png)
These are the three palettes.
When a unit is using the blue palette, it can only use the colors you see in the top row.
If that unit changes palettes, you can't just decide what color each color becomes, the palettes are shared for all units so you can't just change them. blue becomes red, green becomes purple, you don't get to choose.
Therefore, if you want a Floateye that is not red, blue or yellow, you need new graphics that use the green/purple/emerald color slots. I suggest you look up "indexed color" on google if you don't understand what I'm saying.

QuoteWhat do you mean by cuts on the available color variations?
Say someone wants to make new types of Ahrimans. For each one, they would need to make two new colors instead of one, and they would have half as many possible variations as a result, for example, they wouldn't be able to have a green one because it would be used by player Floateyes and they wouldn't be able to use a purple one because it would be used by player Ahrimans. As a result, they could realistically only make one new type of Ahriman. Making a change that's going to have to be undone by anyone that wants to add new monster types doesn't sound very productive.

However, if all the Floateye types have the same palette regardless of side, you can easily have at least 6 different types of them. This doesn't make an impact on playable jobs becuase each one has different graphics anyway, but for recolored monsters it can be pretty important.

Anyway, again, just don't like the idea. I'm not going to work on something I don't want to see.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Delsait on June 10, 2020, 09:23:05 pm
Quote from: Leonarth on June 10, 2020, 07:00:21 pmIn case you don't yet know this, I'm not making a romhack here, I'm making tools people can use to make their romhacks, you can take my stuff and go make your own thing if you want the features you are suggesting.

Sure, I'm going to download your tools and see what I can do.

Quote from: Leonarth on June 10, 2020, 07:00:21 pmHowever, if all the Floateye types have the same palette regardless of side, you can easily have at least 6 different types of them. This doesn't make an impact on playable jobs becuase each one has different graphics anyway, but for recolored monsters it can be pretty important.

I think I'd like to see the monster variant classes all streamlined into a singular class. Like instead of Firewyrm, Icedrake and Thundrakes, it'd simply be one Drake class that could learn all abilities via accessory equipment just like the main classes.

In this idea, I think it'd be good if monster classes scaled not via more powerful variants but simply later monsters having more skills like the mainline classes. There wouldn't be any monsters with flatly terrible stats like goblin.

All that being said, I'm new to modding FFTA, so I'll start small.

Thank you for lending me your time to explain palettes in the FFTA engine.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on June 12, 2020, 04:02:43 pm
Quote from: Leonarth on September 05, 2018, 01:04:22 amThe combo/totema disabling is just a one instruction change, it's in the jpLearn.event file, in line 7, removing line 7 and building the rom again would enable combos and totemas but any unit would be able to use totemas every other turn which is why I disabled them.
I want to know if these are possible, and if so, could you tell me how to implement them:

The AIO lists totema as an A-ability. So, would it be possible to replace totema command with another skill?
If yes, does it work fine without messing up Li-Grim's Descent skill (summons random totema)?

I want to replace totema with "Abate" (Judgemaster Cid's skill that stops the Judge).
Spend 10JP to stop laws/judge, but lose out on the 20JP judge reward for KO/abiding law.

Another thing, the game increases laws per battle from 1 to 3 as you progress. How to make it stay at 1 law the entire game?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 13, 2020, 08:01:00 pm
QuoteThe AIO lists totema as an A-ability. So, would it be possible to replace totema command with another skill?
I mean, possible, yes, of course. I have not looked into it, though.

QuoteIf yes, does it work fine without messing up Li-Grim's Descent skill (summons random totema)?
If you edit the Totema skill themselves then yes, it would mess up Descent, if you edited which ability the Totema commands use then no, it would not mess with Descent at all.

QuoteHow to make it stay at 1 law the entire game?
Have not looked into this either.
If I had to guess it's just some flag that gets set? So you would change the events so that they are not set or (more likely) change the check for it so that it's always false.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on June 13, 2020, 09:32:24 pm
Quote from: Leonarth on June 13, 2020, 08:01:00 pmI mean, possible, yes, of course. I have not looked into it, though.
If you edit the Totema skill themselves then yes, it would mess up Descent, if you edited which ability the Totema commands use then no, it would not mess with Descent at all.
Have not looked into this either.
If I had to guess it's just some flag that gets set? So you would change the events so that they are not set or (more likely) change the check for it so that it's always false.
Thanks for answering.

A question about movement abilities:
Moogles only got one movement ability and I want to add the remaining. So, should I edit "movement name.s"? Could you explain what to edit here.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 14, 2020, 01:46:21 pm
QuoteSo, should I edit "movement name.s"?
I have no idea what file you are talking about, but if it has a .s at the end the answer is no, that is asm source code, the engine hacks are made so that you never have to edit any of the source code (unless you actually want to change how the systems themselves work).

You edit movement abilities the same way you would edit any ability, you don't need to do anything special.
Certain combo ability effects have been replaced with movement ability effects, and that is all, if you make a Moogle combo use the Combat Combo effect (combo effect 1), then that Moogle combo will also be Move+1, if you made that same Moogle combo have effect 7 then it would be Ignore Height. And to change the name you can, again, do it like you would do with any other ability. If you set the name to 0x701 it would be Move+1, 0x702 for Move+2, and so on.
Here's a table:
(https://i.imgur.com/CZFGWJG.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on June 15, 2020, 01:44:49 pm
Quote from: Leonarth on June 14, 2020, 01:46:21 pmif you make a Moogle combo use the Combat Combo effect (combo effect 1), then that Moogle combo will also be Move+1
That's quite a simple fix.
Thanks, I did not think this way :D

On another note, This happened a few times and I am not sure if its a bug.

I had the JP reset. Here 269 became 79.
All I did was one battle. I started at 269 and earned around 200JP (used Judge to steal JP from enemies) and then it reset.

(https://i.imgur.com/ETf1LYY.png)

It happened a few times, sometimes mid-battle, and other times just after the battle finishes. Once I had two characters reset.
I tested a few times by repeating the same actions but I could not replicate it.
The move Judge may be not the cause, I had many battles go fine. Even Steal: JP worked fine.

I've always observed it reset the 100th digit.
This happened both before and after the JudgeReward fix.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 15, 2020, 04:04:01 pm
Can't really do much if there's no replication steps.
I don't know why this would happen, much less why it would happen just sometimes.

If you can get me a savestate of just before you lose the JP and tell me which action makes you lose it that would allow me to easily fix the issue.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on June 27, 2020, 06:17:56 am
Quote from: Leonarth on January 11, 2019, 09:16:00 amRemember, if you have any features you would like to see in (or changed), let me know, there's several things I want to touch up, like how JP is earned in combat, any suggestion you drop here will be considered when I add new stuff.

In case you're still taking suggestions, I'd like to request this QOL improvement:

Make all party members earn the battle reward AP (or JP) instead of just the members that participated.
This idea is from FFTA2.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on June 27, 2020, 07:01:10 am
That's something I actually already made, but it's untested, try it out and let me know if it works:

#define rewardAllBattle //makes all units gain JP from regular mission rewards, regardless of if they participated
#define rewardAllDispatch //same as above but for dispatch missions

#ifdef rewardAllBattle
 PUSH
 ORG $45D34; SHORT 0x46C0
 ORG $45D3C; SHORT 0x46C0
 ORG $45D44; SHORT 0x46C0
 ORG $45D5A; SHORT 0x46C0
 ORG $45D5E; SHORT 0xE000
 POP
#endif

#ifdef rewardAllDispatch
 PUSH; ORG $47748; SHORT 0x46C0; POP
#endif
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on June 27, 2020, 12:04:03 pm
The rewardAllBattle worked fine for missions, but not for random clan battles. The text also displayed correctly for all non-participating party members.

The rewardAllDispatch did not work well. The game bugged out at the mission summary screen and went into a loop showing random ability names.

(https://i.imgur.com/SY5uPyH.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 06, 2020, 04:51:02 pm
Mobo found a bug when he was playing my mod with engine-hacks. When we open the ability screen of Fairy/Galmia/Feather shoes, the game freezes. The shoes' effects are working fine in battle.

These engine-hacks were enabled:
-intro scene skip
-manual party member sorting
-stealable shoes
-morpher looks like monster

I've tested this bug and its also present in vanilla, if we apply any engine hacks. I think that this is because of the re-arranging of the shoes' abilities done by jobAndRaceCustomization. So, I've disabled jobAndRaceCustomization from the _MasterHackInstaller by commenting it out; this solved the shoes' bug, but Marche and Montblanc started with no classes just a hyphen - and stats set to zero.
(https://i.imgur.com/zmTD43T.png)
Is there a fix to shoes' bug? Or is this way to make the minor hacks apply without also applying jobAndRaceCustomization?

Sidenote: If we use BOOST on a morphed Morpher then his monster sprite changes to a Rockbeast that's continuously jumping. The jumping that happens when a unit levels up. After the Boost status is gone he reverts to the monster he previously was. Game works fine, no freezing.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 07, 2020, 10:07:09 am
Quote from: undefinedWhen we open the ability screen of Fairy/Galmia/Feather shoes
I don't know what this means.

Quote from: undefinedre-arranging of the shoes' abilities done by jobAndRaceCustomization
? No clue what you mean.

Quote from: undefinedMarche and Montblanc started with no classes just a hyphen
You need to make a new save if you disable jobAndRaceCustomization, I can't really be sure of what you did or didn't do, I can't offer support for everything, if you touch something outside of the configuration options then anything could happen.
Marche and Montblanc are using the blank jobs you were asking about in the other topic.

Quote from: undefinedIs there a fix to shoes' bug?
I don't know because I don't understand what the issue actually is... Can you at least provide screenshots of what should happen if it were working or something?

Quote from: undefinedmake the minor hacks apply without also applying jobAndRaceCustomization?
No. Many things depend on the patches in job and race customization, making it optional doesn't make sense.

Quote from: undefinedIf we use BOOST on a morphed Morpher then his monster sprite changes
Noted.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 07, 2020, 03:48:22 pm
Quote from: Leonarth on July 07, 2020, 10:07:09 amI don't know what this means.
By ability screen, I meant the screen that appears when we press R on any item.
Game freezes when we press R on those three boots, even on vanilla with mentioned hacks enabled.
(https://i.imgur.com/vPgVuyz.png)

Quote from: Leonarth on July 07, 2020, 10:07:09 amYou need to make a new save if you disable jobAndRaceCustomization, I can't really be sure of what you did or didn't do, I can't offer support for everything, if you touch something outside of the configuration options then anything could happen.
Marche and Montblanc are using the blank jobs you were asking about in the other topic.
I took a vanilla ROM, commented out jobAndRaceCustomization in _MasterHackInstaller, and enabled these hacks:
-intro scene skip
-manual party member sorting
-stealable shoes
-morpher looks like monster

I did not do anything to Marche and Montblanc, their classes just became blank. The other 4 party members are fine.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 07, 2020, 05:45:24 pm
Quote from: undefinedThe other 4 party members are fine.
There are several places where the job of a character is specified, a character's job may not be the same as the displayed job name and their first action command, this is what happens with Marche and Montblanc in vanilla, they actually use a special job unique to them, which they always have set (0x50 and 0x52, like we discussed in your other thread) which essentially only changes their unarmed damage (yes, it does).
If you are curious, Ritz has 0x51, Babus has 0x53, Ezel has 0x54 and Shara has 0x55.

The patches fix these remnant and make the job ID actually be the job ID, doing away with these special jobs and freeing them for repurposing, that's part of why you can't just disable job and race customization, it works together with other things.

So in short, their class became blank because it actually always was the case in vanilla, it's just now the game is showing it to you.
If you start a new game with the patches properly applied, Marche will start as a soldier, if you don't then Marche will start as job 0x50 like he does in vanilla. You disabled the fix for this, but didn't disable the code that changes how the game gets the job name, etc.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 08, 2020, 01:08:22 pm
Quote from: Leonarth on July 07, 2020, 05:45:24 pmIf you are curious, Ritz has 0x51 and Shara has 0x55.
Yes I am, thanks for these.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 09, 2020, 08:17:11 am
After trying to fix the shoes issue for a while I noticed they have abilities assigned to them, for some reason... This is probably a remnant of how they used to work? The issue here is that the job the assigned abilities are for is 0xFF, which is not a valid job, this leads to weird stuff, essentially.

I had a special case for job 0, which is used for blank entries, but I guess I'll go ahead and add cases for job 1 and job 0xFF as well. The change should make sure even vanilla items work just fine.

Anyway, thanks for letting me know about the issue. The fix should be up later today. As for the Morphers one, I have yet to look into it but I have a guess of what's going on.

On a side note, if you wanted to you could assign these shoes and other items with special "fake" abilities for "fake" jobs, to have their passive effect show up on the ability list. With a special icon that says "Item" or "Boost" or something. Just an idea.

Edit:
So, two things, first of all I noticed an issue when generating new saves, so I guess I'll have to look into that.
Second, it looks like Morphers, when morphed and boosted, are trying to go find the "boosted" animation for their current monster. However, since monsters have fewer animations this results in it overshooting and grabbing an animation for the next monster family. I guess I'll have to make it so morphed units don't get those special animations.

Edit 2:
Okay, everything should be fixed now.
Just keep in mind the Morpher issue was not really a morpher issue, but rather an issue of missing animations for monsters.
If you want monsters to be able to work with Boost and other similar abilities you are going to have to make new animations for them.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 12, 2020, 12:14:08 am
Quote from: Leonarth on July 09, 2020, 08:17:11 amyou could assign these shoes and other items with special "fake" abilities for "fake" jobs, to have their passive effect show up on the ability list.
How do I get them to show up as support abilities in the AIO?

Quote from: Leonarth on July 09, 2020, 08:17:11 amOkay, everything should be fixed now.
Thanks Leonarth.
I like the snowball fight and the intro scene, but Quick Start is so good for testing.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 12, 2020, 07:19:35 am
QuoteHow do I get them to show up as support abilities in the AIO
Dunno. I don't use AIO. Why do you need them to show up as support abilities?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 12, 2020, 09:10:12 am
Quote from: Leonarth on July 12, 2020, 07:19:35 amWhy do you need them to show up as support abilities?
I misunderstood.
You were speaking of adding an icon to display a name, correct?
I was thinking we could give the item's passive abilities to classes, like you did in the movement abilities.

Quote from: Leonarth on July 12, 2020, 07:19:35 amDunno. I don't use AIO.
Darthatron made the AIO very user-friendly.
You use a modified Event-Assembler, right? How much more complex is it to use?

Another question:
Sephiran found that we can give ITEM to all playable classes and not just the alchemist.
Change the bytes at 0x080C8232 to 2B 28 00 DC
This works on the base game, but not after I apply any of your hacks.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 12, 2020, 01:03:44 pm
Quote from: undefinedI was thinking we could give the item's passive abilities to classes
You can't do that because they just aren't abilities.

Quote from: undefinedYou use a modified Event-Assembler, right? How much more complex is it to use?
No, I use the regular Event Assembler, no modifications.
With Event Assembler you essentially have to know how to do the thing you want to do, there's no user interfance, it's all just text, so if you want to repoint something for example you have to do it by yourself, there's no button for it. It gives you total control, though.

If you look at the engine hacks, that's it, that's all there is to it, that's what I use.

Quote from: undefinedSephiran found that we can give ITEM to all playable classes and not just the alchemist.
Change the bytes at 0x080C8232 to 2B 28 00 DC
This works on the base game, but not after I apply any of your hacks.
That's because my engine hacks make this modular, instead of hardcoded.
In "\Engine Hacks\jobAndRaceCustomization\data.event" look for the 0 terminated list under the label "newItemJobs", jobs in that list always have Item. By default the list only contains the ID for the Alchemist.

Also, if you went ahead and introduced the change to 0x080C8232 that you listed then you may have broken code expected by the engine hacks.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 12, 2020, 03:44:32 pm
Quote from: Leonarth on July 12, 2020, 01:03:44 pmIn "\Engine Hacks\jobAndRaceCustomization\data.event" look for the 0 terminated list under the label "newItemJobs", jobs in that list always have Item. By default the list only contains the ID for the Alchemist.
So, I just add the class BYTEs to the list?
(https://i.imgur.com/6vwCiaE.png)

What about hiding?
If I make every class have ITEM, do I just comment out the whole "hiding" portion of the code?
(https://i.imgur.com/JyKtoqN.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on July 12, 2020, 07:55:34 pm
I think I might have something to show that's related to the current discussion. I was trying to make the special/playable race ability list the same as the hume's. I took screenshots of my attempt.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 13, 2020, 03:48:12 pm
Quote from: undefinedSo, I just add the class BYTEs to the list?
You want to add it to both the newItemJobs list, so that they always get item, and the newNoItemEquipJobs list, so that they can't equip item. Otherwise they could have two Item commands which is just silly.

Quote from: undefinedWhat about hiding?
This has absolutely nothing to do with your previous question. The hidden abilities are abilities that just don't work, as you can see just under "Item", there is "Mythril", these are essentially just garbage abilities and you should only edit the invisible ability list if you repurpose them into working abilities. It has nothing to do with Alchemist getting to use Item. It may have been the case that this Item ability was how at some point the Alchemist accessed the Item command, or at least that it was how it was planned to work, either way it's not the case at all in vanilla.

QuoteI was trying to make the special/playable race ability list the same as the hume's.
If that's all you want to do, just change the race's ability list pointer to be the same as the hume ability list pointer.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 27, 2020, 04:57:35 am
Quote from: rrs_kai on June 15, 2020, 01:44:49 pm[...]

This happened a few times and I am not sure if its a bug.

I had the JP reset. Here 269 became 79.
All I did was one battle. I started at 269 and earned around 200JP (used Judge to steal JP from enemies) and then it reset.

(https://i.imgur.com/ETf1LYY.png)

It happened a few times, sometimes mid-battle, and other times just after the battle finishes. Once I had two characters reset.
I tested a few times by repeating the same actions but I could not replicate it.
The move Judge may be not the cause, I had many battles go fine. Even Steal: JP worked fine.

I've always observed it reset the 100th digit.
This happened both before and after the JudgeReward fix.

I'm pretty sure this has now been fixed, you can see the details here:
https://github.com/LeonarthCG/FFTA_Engine_Hacks/issues/2

I knew from the start that the hundreds digit had nothing to do with anything (that would just simply not make any sense), but I could never replicate any unit losing JP at any point like that, turns out the answer was already on an issue in my repo... Shouldn't have made those wait so long, I guess.

The short of it is that when the "Judge PTS?" option is set to Off a different part of the code grants rewards, I was not aware of this, as I just don't use that option. The result was that rewards under these conditions were simply vanilla: 1 point for obeying a law, 10 for Hunting and JP capped is at 10. That last part was the reason JP was being reset.

Please, PLEASE, let me know immediately if after this fix the issue stills persits.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 29, 2020, 12:57:11 pm
Quote from: Leonarth on July 27, 2020, 04:57:35 amThe short of it is that when the "Judge PTS?" option is set to Off a different part of the code grants rewards, I was not aware of this, as I just don't use that option. The result was that rewards under these conditions were simply vanilla: 1 point for obeying a law, 10 for Hunting and JP capped is at 10. That last part was the reason JP was being reset.
I was using that option. I did not think it important because a textbox is just cosmetic.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on July 31, 2020, 08:51:38 am
Hi Leonarth, hope you're doing well.

I was going through the new things you've been setting up over the year and I was wondering; when an option can be commented out in one of your engine hacks, is there any functional difference between acually commenting it out with // or just setting its state from 1 to 0?

My understanding of this kind of stuff is only enough to follow basic instructions and logic leaps with previous examples, so apologies if it's a dumb question- I just had reapply that levelup patch you made a few years back (forgot to write new freespace even though pointed it out back then), and I was wondering if it changes anything to just set them to 0 instead of commenting everything out.

Happy you actually stumbled upon Marche's default combo, too. One more thing crossed off the list!
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 31, 2020, 09:04:56 am
It depends on the option, some take a number, some don't.
For those that don't take a number changing the number isn't going to do anything, it only matters if they are defined or not. The only reason some of those have a 0 or 1 afterwards is that I was having issues with an earlier version of Event Assembler when defining something without a value.

So, for example, in "#define installMovementAbilities 0", the 0 does nothing, you can change it to any number or remove it or whatever and it will still install, as long as it is defined.

If you mean the "noStatVariance" option, the value in that definition does nothing, it only checks if it exists or not. I guess I should remove those numbers now, so as to not confuse people.

On a sidenote, yesterday I added support for the display of negative stat numbers from items, negative stats show up red in the shop and inventory and actually substract from stats instead of making them huge. If you guys can try that out and test it more for me that would be helpful, if you are interested in the option.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on July 31, 2020, 09:12:04 am
Quote from: Leonarth on July 31, 2020, 09:04:56 amOn a sidenote, yesterday I added support for the display of negative stat numbers from items, negative stats show up red in the shop and inventory and actually substract from stats instead of making them huge. If you guys can try that out and test it more for me that would be helpful, if you are interested in the option.
Yess please.

This might interest you:
The game shows MOVE and JUMP values beyond 9 as 0. Seems like it can only display a single digit.

I wanted to ask:
If you could make JP upto 4 digits, why not HP as well? The max DMG is fine being capped at 3 digits.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on July 31, 2020, 09:18:15 am
Was already trying it actually, I got my FFTA files yesterday so after I realized unit names were corrupted because of applying changes to the original FreeSpace I went looking for your github.

It seems functional to me at a glance, but I couldn't test it for an extended period of time yet. That said, weren't negative stats already working in actual gameplay? I remember trying that a long time back and everything worked as it intended other than the mess it caused in the UI.

EDIT: Also thanks for the clarification, after looking at more of the .event files I got the conclussion those 1s just marked something I didn't understand but definitely weren't equivalent to commenting out the line, since many files would have other structures and not even use numbers at all sometimes.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on July 31, 2020, 01:55:00 pm
Quote from: undefinedThe game shows MOVE and JUMP values beyond 9 as 0. Seems like it can only display a single digit
I do know about that. It's not that it shows them as 0, it's that it only shows the first digit, if you have 12 movement then it'll show a 2.
Also it's only the unit stats menu and shop that only show one digit, the inventory does show up to two.

Either way, it's an easy thing to change so I went ahead and added it right before posting this.
Now Move and Jump should display at least up to 99 on every screen and Evade should display at least up to 999 on every screen. Move and Jump may go up to 999 in some screens, but not all of them.

Quote from: undefinedIf you could make JP upto 4 digits, why not HP as well? The max DMG is fine being capped at 3 digits.
I don't think it would fit.

Quote from: undefinedThat said, weren't negative stats already working in actual gameplay?
Sure, I didn't change anything about gameplay, this is only a display thing, like I said on my post.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on July 31, 2020, 03:38:40 pm
Cool, then as far as I can tell it works fine. Will mention if I see anything odd.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on August 02, 2020, 11:47:22 am
Quote from: Leonarth on July 31, 2020, 01:55:00 pmSure, I didn't change anything about gameplay, this is only a display thing, like I said on my post.
It displays properly.

Also, awesome work on the animations. Every job can use Llednar's jump and Bangaa jump :)

I was using your randomizer on my mod and found that the humans bugged when using the Gladiator's elemental swords. The screen dimmed, the characters are still moving but the game froze. The same thing happens in vanilla if we give these skills to any other job, so I think that Humans are missing the animation.
Moogles were fine.
(https://i.imgur.com/UoWneXx.gif)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 02, 2020, 11:57:47 am
QuoteI think that Humans are missing the animation.Moogles were fine.
Well, they literally have the same animation data so that's clearly not the issue.

Which jobs did you use the ability with? Which ability was it? Which weapons did you try it with?

More importantly, did you use the patch included with the randomizer? Or did you use the engine hacks?

The patch is only meant for people that don't know how to apply the engine hacks/can't be bothered, if you want your randomizer playthrough to be of any use for finding bugs you have to use the engine hacks.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on August 02, 2020, 01:55:38 pm
Quote from: Leonarth on August 02, 2020, 11:57:47 amWhich jobs did you use the ability with? Which ability was it? Which weapons did you try it with?
Human White mage - Staff - Bolt sword
Human Archer - Shortbow - Fire sword
Moogle Thief - Knife - Fire Sword (working)

I randomized again and now it's working for humans but not for Viera.
Viera White mage - Staff - Bolt sword
Human Thief - Knife - Bolt Sword (working)

Quote from: Leonarth on August 02, 2020, 11:57:47 amMore importantly, did you use the patch included with the randomizer? Or did you use the engine hacks?
I did not apply the .ups, just used the engine hacks.

Edit: I tested again on vanilla and my mod with the engine hacks, and no bugs were found. Somehow not with the randomizer, so maybe just ignore it.
I added some extra jobs for all the races in the unused slots. They have proper stats and sprites but no abilities similar to the Battle Queen. This may be causing the randomizer to have problems?

Edit 2: Tested more without the randomizer and found that the Human thief was fine but White mage and Archer got bugged.
FFTA_hack_Randomized.zip
FFTA_hack_Randomized_2.zip
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 02, 2020, 03:49:01 pm
Quotethe animation exist for Human thief but not for White mage and Archer.
It does exist, all jobs have all animations, what happened here is that even though this is an ability, it uses a weapon animation, and the new code is not prepared for that.

I assumed abilities that use weapon animations would just either have a special animation for it or just use the weapon animation getter, but apparently not.

Also, unrelated, but I did make the option to display up to 9999 hp, have you tested that yet?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on August 02, 2020, 04:29:24 pm
Quote from: Leonarth on August 02, 2020, 03:49:01 pmIt does exist, all jobs have all animations
I apologize if that sounded rude, my intention was to say that I've come across a bug. I edited my post.

Quote from: Leonarth on August 02, 2020, 03:49:01 pmAlso, unrelated, but I did make the option to display up to 9999 hp, have you tested that yet?
Wow, it works! What more can I say, its awesome and I like it!!
(https://i.imgur.com/PLcoEP4.png)
All I have left is say is the problems vanilla has:
-HP and MP can only be 255 base, but the remaining stats can be 999. Odd design choice.
-Max growth rate for any stat is only 25.5. The 2800 is the max possible and that too because you've allowed Lv.100. If we had a growth rate of 99 then we'd be hitting the 9999 mark. Either way, it's great having 4 digits for HP.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 02, 2020, 04:35:54 pm
Quote-HP and MP can only be 255 base, but the remaining stats can be 999. Odd design choice.
-Max growth rate for any stat is only 25.5. The 2800 is the max possible and that too because you've allowed Lv.100. If we had a growth rate of 99 then we'd be hitting the 9999 mark.
I don't think these are really issues...
Big numbers for big numbers' sake don't add anything to the game.

I think allowing HP to go higher like this is good only because it allows distinction between units that would have capped at say 1000ish and others that may go much higher, we don't need to inflate the HP all the way up to 9999.

That said, I think if I made a hack I'd rather make all numbers smaller.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 02, 2020, 05:07:33 pm
Funnily enough uncluttering the stats was one of the first things I did in LN, to allow more scale in differences between the player's party and other units. Recently had to up hp slightly though, to make a few differences less rough.

Anyway, I tested this too and target stats display seem to be offset (by two digits) whenever looking at them from the movement or attack aiming prompts:
(https://cdn.discordapp.com/attachments/507960187890565131/739589086419091586/unknown.png)
That unit in particular had 206/92 HP/MP.

Forgot to mention earlier, good thing you guys were talking about it.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 02, 2020, 05:20:41 pm
Not really sure why the tile offset of the numbers was brought up, is there something wrong with that?
That was a conscious decision, it's not a bug.

The display on the left with the portrait and the smaller one on the right are actually essentially unrelated.
They are not drawn through the same routines, they aren't even made of the same stuff, the one on the left is made of two background layers and some sprites for the portrait, the one on the right is entirely made out of sprites.

Anyway, I figured that since the max HP won't fit anyway it would be best to give some breathing room between the HP and MP icons and their numbers.

Either way, that is not what it looks like for me.
I'll have to look more into it
(https://i.imgur.com/OISlpEz.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 02, 2020, 05:38:50 pm
Sigh, nevermind. I meant the shorter display used for tergetting units while moving/attacking, but I forgot you can actually toggle off the level displayed by pressing select, works (and looks) very good when you actually do that.
(https://cdn.discordapp.com/attachments/507960187890565131/739597881618595840/unknown.png)


Sorry about the bother!
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 02, 2020, 05:41:49 pm
Quotebut I forgot you can actually toggle off the level displayed by pressing select
I never knew this.

I'll have to rework the stuff to take this into account
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 04, 2020, 09:42:30 pm
I just pushed a big new feature that I've been working on and off on for a long while now.
Although, honestly, most of it was done in two big pushes, one about a year ago and another one the last few days.

Remember when I kept saying that 1bit abilities would open up a lot of possibilities thanks to the unit data space that it would free?
Well, it's taken a while but I've finally made one of these dream features I wanted from the start: Nicknaming.

(https://i.imgur.com/2McWE6b.gif)

It's what it sounds like, you can set a unit's name to whatever you feel like.
You don't like the name you chose for Marche? Change it.
You wish a generic had your friend's name? Change it.
You got bored of your clan's name? Well, too bad, that's not what this feature does.

I know it might feel like a let down, that after all this time the first thing I do with this free space doesn't even impact gameplay in any way, but this is something I always wanted to see in the game as a kid, so it takes priority.

Anyway, nicknaming a unit is very easy, first of all it has to be a unit that's allowed to be nicknamed, you can change which units can be renamed in the options.event file. By default, only Marche and generic units can be renamed, so not special characters like Montblanc or the named secret characters like Eldena.
(Even if you nickname a unit, that won't change what others call them in the story (except for Marche), so that's why by default renaming forced name characters is not allowed. Feel free to change it, though).

Once you have the character you want to (and can) rename, just go to the unit menu, this has to be done outside of battle, if the unit can be renamed you will see a new button saying "Start: Name".
(https://i.imgur.com/g5fD63U.png)

Simply press the Start button and enter your desired name, just like when naming Marche.
(https://i.imgur.com/b0Jha97.png)

Andt that's it, you are done, you will be taken to the party menu and you can keep playing just like normal, but with a customized character.
(https://i.imgur.com/9OL2cLW.png)

On top of nicknaming, this engine hack also expands the character limit from 9 to 10, although the width limit is unchanged because of technical reasons (yes, there's a width limit for names in vanilla).

As always, any bug reports are very much appreciated, just be sure to read the included info beforehand, just so you don't go reporting intended things as not working correctly.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 05, 2020, 03:18:09 am
Haha, that is super cute. I actually kind of expected you to release something like this- not sure if because you mentioned in the past or because I thought if you already fiddled with when naming happens for the tutorial skip, porting the feature to all generics would be a natural thing to want.

Also I dont think anyone will be disappointed it doesn't impact gameplay. I think this is something almost everyone who's ever been into ffta wanted at some point!

I'll try it out in a few hours and edit in some feedback about how it works later :D
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: ExL on August 05, 2020, 07:29:21 am
Bah, I don't care for the names of those pesky minions of mine! Though calling them minion 1, minion 2, etc. may help giving them commands... :twisted:
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on August 05, 2020, 07:53:45 pm
I seem to have run into a problem. I just updated/redownloaded the Engine Hacks and when I ran the "MAKE HACK" I get an error saying the "nocash-sym" doesn't exist. I assume I have to get that file, but I just can't find it on your GitHub.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 05, 2020, 08:04:29 pm
nochash-sym is a flag, not a file, you don't need to get the .sym file, rather it will be generated for you.
The .sym file contains the offsets of all the labels, it's only really useful if you are debugging with no$gba.

Anyway, if you are getting this error that just means your ColorzCore is old, get an updated one.

The old Core.exe assembles regardless of flags, it just ignores the flags it doesn't know and gives a warning about them (which does not prevent building), ColorzCore in the other hand will throw an error if the flag is unknown, so it seems the version you have is from before this feature was added.

You can always get the newest ColorzCore.exe from this link:
https://github.com/FireEmblemUniverse/ColorzCore/raw/master/ColorzCore/bin/Release/ColorzCore.exe

Download it, rename it to Core.exe and drop it in your Event Assembler folder.
ColorzCore is way faster than the old Core, so I recommend anybody reading this to get it.
It will drop your build time from a few minutes (at worst) to just a few seconds.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on August 05, 2020, 08:32:05 pm
Solved. Thanks. :)

Quote from: Leonarth on August 05, 2020, 08:04:29 pmIt will drop your build time from a few minutes (at worst) to just a few seconds.[/b]

It only tooks about 3 seconds to build the rom hack, so that's another "life hack".
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Dual-Wielding Ninja on August 06, 2020, 04:02:41 am
I really appreciate all of the work you have been putting towards Final Fantasy Tactics Advance! :mrgreen: Although my OCD brain's telling me that you should change "Start:Name" to "Start:Rename".

Anywho, since JP is attached to Combos (if not changed out for something else or disabled altogether) and Totemas, I was wondering if there would be some way to change their minimum requirements in order to activate?

As well as ask if you can put one of those "Poof!" effects after the monster merges with the Morpher and before they unmerge with them? (Dunno if you'll get what I mean.) I just find it funny that your Morpher's sprites could instantly turn into a monster's without any fanfare, even knowing this game's visuals sometimes.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 06, 2020, 06:53:19 am
Quote from: undefinedchange "Start:Name" to "Start:Rename
That wouldn't fit. At least not without looking un-vanilla.
It's also the only option you ever get related to the name of the unit, and it can be used to restore the unit's original name so I think Name is just fine,

Quote from: undefinedAnywho, since JP is attached to Combos (if not changed out for something else or disabled altogether) and Totemas, I was wondering if there would be some way to change their minimum requirements in order to activate?
I can't think of an ammount that would be healthy. Even if you increase it to 100 or whatever that could easily lead to players grinding to get 9999 JP so they can spam combos or whatever.

Honestly I think the whole JP earning system needs a rework, but either way I think combo abilities and totemas are just... absolutely uninteresting? Even more so compared to movement abilities. They could be added back in other ways, like in FFTA2.

Quote from: undefinedAs well as ask if you can put one of those "Poof!" effects after the monster merges with the Morpher and before they unmerge with them?
I guess you mean like with Toad? That would look pretty nice. I know nothing about animations and I don't really want to look into that just to add this, it could be something I add in the future but it's not a priority.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 06, 2020, 08:36:08 am
IMO the combo system deserves more credit than it's often given:
The only two factors that break them are the extremely high user-JP multipliers active on any multi-unit combo and the lack of control over the base damage for the user. Although in truth, either of these alone would be enough to deal massive damage to basically anything.

Still, the core idea of the move is requiring multiple units within range of a target- often one dangerous enough to warrant all this in the first place; and in case of longer range combos that are more lenient with positioning, risking allies just not landing their hits at all, since hit% for ally hits drops for longer range combos and is unaffected by anything.
On top of this, the fact user JP zeroes after using it means that if the enemy survives you'll be locked out of initiating combos with that unit- while if you kill the target you'll be able to continue combo'ing (at a much lower multiplier).

It has a few flaws like rewarding having JP stacked beforehands, but I think the system is fun to play with when you have restrictions what items you can wield when using combos and lower the JP multiplier significantly. At least I've had a lot of fun clearing fights with combo-oriented teams this way.


Totemas, on the other hand, are unsalvageable and completely boring.

Also, to make this more relevant to the thread since it's not really meant for mechanic discussion; is there any part of the JP-learn system code that can be placed as a standalone in the main buildfile to disable the Totema option in battle from appearing?
The intended effect would be to disable Totemas without enabling the whole JP-learn system.

EDIT: Seems like the only line for that I see is this? at least out of the commented ones or the ones with dmps I can follow
PUSH; ORG $C8088; SHORT 0x2000; POP //disable combos and totema summoningI guess a workaround is just leaving them enabled and reducing max JP, would allow for more fine tuning with how to ramp up combo damage as JP increase.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 06, 2020, 03:05:28 pm
PUSH; ORG $C8088; SHORT 0x2000; POP //disable combos and totema summoningWhat this does is that, instead of getting the JP of the unit, it gets "0", and since it thinks you have 0 JP combos and totemas are never available.

If you want to remove totemas only, use this instead:
PUSH; ORG $26100; SHORT 0xE066; POP //disable totema summoning
And here's one for combos:
PUSH; ORG $CD4C8; SHORT 0x2000; POP //disable combos
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Dual-Wielding Ninja on August 06, 2020, 11:22:17 pm
In that case, maybe there's a way to make Combos and Totemas cost MP instead of JP? I can easily see Totemas being uber-powerful Summon Magic Abilities or item-only Abilities similar to the Scions from FFTA2.

Combos on the other hard might be trickier to implement appropriately, at least to me.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 07, 2020, 06:09:31 am
I haven't looked into this at all but I would expect combos and totema summons to just be action ability effects that you can give to any ability you want, so just do that.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 07, 2020, 06:22:56 am
Combos aren't but totemas are just abilities with normal animations that can be re-used and changed with no issue, yeah.

Thanks for the heads up in blocking totema command alone btw! It doesn't modify the read JP for units, right? Didn't notice a change testing JP-mult on combos, at least.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 07, 2020, 07:53:41 am
Only the change you posted affects the JP reading, the totema/combo only ones do not.
They would be pretty useless otherwise.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 08, 2020, 07:51:16 am
I was testing the bigHP.event hack a bit further- it looks like if you target several units with an AoE attack and press L or R to switch between damage specifics of each unit, the game will softlock.

The"Lv: XX" on the target's stat display starts quickly flashing in and out, as you can see in this screenshot it wasn't visible despite it always being printed when the hack is active:
(https://cdn.discordapp.com/attachments/507960187890565131/741622454245654528/unknown.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: endrift on August 08, 2020, 08:16:53 am
Wow, that is an incredibly old version of mGBA. You might want to update; 0.8.3 just came out.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 08, 2020, 09:31:17 am
When I took up the hack again I wanted to keep the emulator version the same while getting up to speed with changes I had unfinished, to make sure everything was working and be able to spot any new issues (should they happen) when updating to the newest one.

For example, through second year of hiatus I got a few reports of a Bishop ability animation being broken, and apparently that was related to a certain issue with the version of mgba at the time. Currently in the latest version it seems to be working again.

Anyway, should've remembered to run the test for the engine hack on the latest version as I usually do not to compromise things.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 10, 2020, 09:58:11 pm
Quote from: Leonarth on July 09, 2020, 08:17:11 amAfter trying to fix the shoes issue for a while I noticed they have abilities assigned to them, for some reason... This is probably a remnant of how they used to work? The issue here is that the job the assigned abilities are for is 0xFF, which is not a valid job, this leads to weird stuff, essentially.

I had a special case for job 0, which is used for blank entries, but I guess I'll go ahead and add cases for job 1 and job 0xFF as well. The change should make sure even vanilla items work just fine.

Anyway, thanks for letting me know about the issue. The fix should be up later today. As for the Morphers one, I have yet to look into it but I have a guess of what's going on.

Today I was messing around, documenting more of unit data, and I got to a byte that I had looked at before but didn't really quite understand, byte 0x3D.

As it turns out, having an item teach an ability to job ID 0xFF DOES do something!
It sets this byte 0x3D in unit data to the ID of the ability being "taught".
Why does this matter? Because this is how the boot passives work, these ability lists are not unused after all, they are directly responsible for setting the right byte to modify movement.

There are 6 passive abilities boots can grant in total, from ID 1 to 6, any other number will be ignored.
As far as I can tell, only IDs 4 to 6 are used in-game, for the Galmia, Feather and Fairy shoes, in that order.
However, the other 3 abilities do have their own effects:
1: Movement +1. (yeah, pretty useless considering this can be done through stats no problem).
2: Jump +1.
3: Jump +2.
4: Standing type set to 5. (Galmia Boots).
5: Standing type set to 3. (Feather Shoes).
6: Movement type set to 3. (Fairy Shoes).
Anything else: Movement, standing type, jump, etc, are restored to normal when trying to move.

So yeah... all in all, not a very interesting discovery, I guess... Still, I felt like I should correct what I said, so there you go. Don't remove the list from the shoes or they'll stop working.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 11, 2020, 03:25:24 am
Damn, so four years later there's an explanation to why this (https://ffhacktics.com/smf/index.php?topic=9764.msg216307#msg216307) happened.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: ExL on August 14, 2020, 11:21:07 am
Ultimately I'd wish to have A1 with as many A2 content stuffed in as possible and QoL patches so it's kinda like vanilla expanded. But that's a lot of work(part of which I can't do, like ripping from DS and inserting and part is tedious learning of how to make abilities with descriptions, etc.) :-( So I tried making viera spellblade match restrictions of GBA with matching palette and hope at least her will be in base mod out of the box. It would be useful for modders as base for new class too.
(https://i.postimg.cc/3Rp9ChHf/vispella1.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 14, 2020, 03:29:38 pm
Quote from: undefinedI tried making viera spellblade match restrictions of GBA
I already have a full spritesheet for the viera spellblade, as well as portraits.
It was even posted on this thread (the animation, not the portraits):
(https://i.imgur.com/DWx8uMW.gif)
I also have a viera green mage one and a gria hunter one.
Either way, the format is wrong and it's missing most sprites, as well as the in-water version.
If you want to make more spritesheets, please stick to the format provided in the animation template and make sure your image is in indexed 4bpp mode and respects the original color order. If you have any questions please DM me.

You can always find the most up-to-date template here: click here (https://github.com/LeonarthCG/FFTA_Engine_Hacks/blob/master/Engine%20Hacks/jobAndRaceCustomization/battleAnimations/example/template.png)

However, the best thing you could do to help make more of these is to either learn to and rip the sprites from ffta2 or somehow find complete spritesheets of them. Even if you do that there's going to be a lot of poses missing, though, since there are a lot of differences between the two games, but it would be a great help.

Quoteand hope at least her will be in base mod out of the box
No. That's not what the engine hacks are for. If someone wants the viera spellblade animation they'll have to insert it for themselves using the templates (which is as hard as copying the files over and writing a single line in a text editor). If hackers show interest then I would consider starting a thread here on the forum so we can make a collection of spritesheets, or have them added to the repo so people don't even have to go get them, but I'm not going to be changing the vanilla game like that, adding new jobs and such.
I've said this many times, and I will repeat it: this is not a romhack, but rather a collection of engine hacks for people to base their hacks off of, think of it like a base.

Anyway, the spritesheets I've mostly adapted myself, although for some poses (the KO ones) I had help from a friend, this same friend also helped a ton with the portraits, although I'm sure he would be happy to share them so people can use them. I would have to ask him but I don't expect he'd be opossed at all. (Actually asked him already, he's fine with it).

However, in the year and a half the template has been available I haven't seen anybody actually use it (or even contact me about how to use it or anything like that), other than myself and a friend, so I'm not sure people are too interested in inserting new animations like that for their hacks or if this is because people don't know they CAN add new jobs to the races or if they just don't want to, or don't know how to get more animation IDs and job IDs.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on August 14, 2020, 06:49:03 pm
When you say "animation IDs", do you mean ability animations?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 14, 2020, 07:04:55 pm
Quotedo you mean ability animations?
No, but that would be the same as anything else: just repoint the table that governs them.

I'm talking about the unit animations, battle sprite I think is what AIO calls them.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Blunderpusse on August 14, 2020, 07:38:22 pm
Regarding the complete spritesheets, spriters resource already has most of them, even the water animations. The palettes won't match the gba's, but I've tried editing/adapting the Green Mage sprite and it didn't seem too hard, tho.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 14, 2020, 08:12:00 pm
Quote from: undefinedRegarding the complete spritesheets, spriters resource already has most of them
Not at all, I would even say it's missing most of them... and I would be right.

For regular jobs, it has 21 of them, FFTA2 has 62 jobs. That's not even half of them.
As for the (more important) jobs new to FFTA2 (and again not counting special characters) it has 6 out of 18. Again, not even half of them.

It's also worth mentioning it only has a single monster that is new to FFTA2, the chocobo, which I also already adapted the sprites for, it's missing a few poses and a proper script, though, as well as the water poses.

Also, like I said, I already have a complete Green Mage. Have had it for over a year. And yeah, it was very easy to port, way easier than the Hunter Gria. Most of the work was on making the poses that either were not in the sheet or just plain don't exist in A2.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: rrs_kai on August 17, 2020, 12:02:51 pm
Quote from: Leonarth on August 04, 2020, 09:42:30 pmWell, it's taken a while but I've finally made one of these dream features I wanted from the start: Nicknaming.
I have taken the new files and the new core. I enabled stealing shoes in the rombuildfile, no other change. I am using mGBA (0.8.3). Everything works fine, if I don't use any cheats.

I have cheats for the 6 units to master all abilities, and now I got an odd result. If I enable the cheats, every unit other than Marche had their name set to "tttttttttt", even Montblanc. Renaming works, but their name changes back to "tttttttttt" if I enable cheats.
(https://i.imgur.com/k5hGVpR.png)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 17, 2020, 01:20:15 pm
Well, you are overwriting the data so of course it changes the nickname.
This is not a bug and there is nothing odd about it.

Like I said, this uses the space freed by 1 bit abilities, that's to say, the space that would normally otherwise hold the AP accumulated for each ability. You are using a cheat that writes to that space in memory so anything new I make that uses it will be destroyed like that.

Instead of using cheats, you can manually set the learnt abilities: Go to 0x2000080 + 0x40 + (0x108 * unitID) and set first 0x20 bytes there to 0xFF. Or make a new cheat that does that for you, I guess.

Also, looking at your cheat, that wouldn't even get you all abilities if you are using the 1 bit abilities engine hack anyway.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 18, 2020, 12:08:04 am
On today's news: your save is now worthless, throw it out.

In all seriousness, I just added an inventory rework, which will 100% destroy your current inventory, it is considered an essential engine hack. So far nothing really depends on it but either way I think it is worth your time.

The whole point of this engine hack is that it cuts the space inventory items take in RAM from 4 to 1, leaving us a lot of free space to do whatever else with. I'm not sure what could be done with this area, but it is good to have it freed. However, as a side effect, items are always sorted by ID, manual sorting is no longer possible.

As for immediate benefits, the items used for each Item ability command can now be customized (more on that down below), the items the player starts with can also be changed, the tab each type of item appears in on inventories can also be altered and more importantly, the item list can now be extended without having to worry about inventory issues, up to item 0x1FF.

As for the Item ability bit, you can now set which item is to be used for each Item ability, this can be a consumable item or something else, you can also set a chance for it to be consumed and a custom condition for the command to be usable. For example, you could make an item ability that allows you to cast Fira using a specific rod, with a 20% chance for it to break, but only if you are an Alchemist.

It is very likely that this broke... Something. Somewhere. So please keep an eye out for any issues related to items, so you can report them to me to have them fixed!
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 18, 2020, 03:50:52 am
Amazing and finished quicker than I expected- gonna test this in a while, though I was looking at the files earlier and you accounted for things like feeding monsters etc already, so I can't think of any weirder case off the top of my head you wouldn't have tested yourself. Maybe steal/item destruction abilities? Sensing hidden items?

I don't know if other people made custom consumables before, but for those interested this also fixes new consumables not actually using the intended item; until now you could display item count but not actually consume them.

Two questions:
-If you set up a new item-related ability, there's no reason it has to go in the ITEM command, right?
I didn't have any ideas when you brought up what the new item-consumption conditions could be used for, but I guess very basic ways to use them would be to give Ninjas throwable kunais, or Alchemists item-related abilities that enhance the typical uses they would have through ITEM.

I don't even have Ninjas in my mod, but that last one sounds like it'd have some potential and differentiates it further from vanilla Sage (meaning I could eventually re-introduce Sage). Plus I'm not a huge fan of ALC having an extra command no one else has. Or of giving it to others.

-The custom ASM conditions would be basically anything, like whether the item is equipped or not right? Or whether it's idk, day 6 of Madmoon I guess. It's sometimes hard to grasp scope of some options given how restrictive development has been until now.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 18, 2020, 11:00:40 am
Quote from: undefinedMaybe steal/item destruction abilities?
Steal/Aim:Weapon, Drop Weapon and all such abilities all worked straight out of the bat once I replaced the item give and item lose routines, so I would be surprised if there's some ability that's still broken.

Quote from: undefinedSensing hidden items?
This has nothing to do with the party inventory or how the party inventory works.

Quote from: undefinedIf you set up a new item-related ability, there's no reason it has to go in the ITEM command, right?
It has to go in Item. That's what the table does. How would you even display the item count in any other list anyway? There would be absolutely no way to tell if it's just an MP cost.
If you want to give jobs new item-consuming abilities I suggest you either just stick these abilities in the Item command (you can check for a specific ability being learnt and that job's action command being equipped) or make a new ability effect that brings up a menu with items to select or something? Like Mirror Item in A2. Although I guess what you want to do is more aking to Item Lore.

Either way, I only changed how the game builds the item command list and such, I didn't touch how it decided to use items instead of MP or anything like that, so yeah, this is only for the Item command.

Quote from: undefinedThe custom ASM conditions would be basically anything
ASM is code, you write it, the GBA runs it, the custom condition can be "can you clear 200 lines in this tetris minigame I made" or whatever else you imagine. In a similar vein, you could write new effects or targeting conditions with ASM.

That said, if the item is equipped it wouldn't be able to be used, so that condition doesn't really make sense.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on August 18, 2020, 01:37:06 pm
QuoteI only changed how the game builds the item command list and such
Cool, was misunderstanding that. Didn't actually think about logistics of differentiating item counts from MP and I'm not used to consider these options when planning ability sets, but I guess with job&race customization learnable ITEM abilities are also a thing.

I wanted to avoid bloating the ITEM command itself for everyone else, if making new consumable-related ability sets. I guess that's a complete non-issue when you can just define under what conditions the abilities themselves would be available.

Perfect, thanks for the answers.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 18, 2020, 02:00:39 pm
Quote from: undefinedbut I guess with job&race customization learnable ITEM abilities are also a thing
They are not. The way Item abilities work means it won't even check if you have learnt the ability, it wouldn't work if it tried to, anyway.

Let's use an example: You have an Hume Soldier with the Item ability, and you have made it so Item abilities can be learnt. You purchase First Aid for your Soldier, and now... The soldier has also learnt Potion, because Potion is the first ability of the Item race, just like First Aid is the first ability of the Hume race.

Both are the first ability of their respective race, so both would set and check the same bit when trying to check if they have been mastered. Without a mountain of exceptions to handle that, having the Item abilities be purchasable can't be done. And at that point I'd say it would be more worth the effort to make it so other action commands can use items instead of MP, making an Item command for each race and removing the original Item race.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Dual-Wielding Ninja on August 18, 2020, 06:00:39 pm
So with the latest engine hack, is it possible, for example, for the Alchemist job to use "Conjure Potion" to use a Potion for free at the cost of MP? Or where they always able to do something like that before?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 18, 2020, 06:25:44 pm
Quote from: undefinedSo with the latest engine hack, is it possible, for example, for the Alchemist job to use "Conjure Potion" to use a Potion for free at the cost of MP? Or where they always able to do something like that before?

That's actually a good thing to bring up.
Although you could always have done that, doing so would have also costed a Potion, if the player had any. That's no longer the case, the item ability effects now only consume items when used through the Item ability.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Dual-Wielding Ninja on August 18, 2020, 11:01:32 pm
Quote from: Leonarth on August 18, 2020, 06:25:44 pmThat's actually a good thing to bring up.
Although you could always have done that, doing so would have also costed a Potion, if the player had any. That's no longer the case, the item ability effects now only consume items when used through the Item ability.
That's great to hear! That means that one can effectively turn the Alchemist job into its X-2 incarnation in terms of function, and move most of its Abilities over to Sage.

Edit: In fact, is it also possible to make a function that basically works like the Mix Ability from X-2, via engine hack or through the Nightmare Module (or similar)?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on August 18, 2020, 11:52:48 pm
Quote from: undefinedIn fact, is it also possible to make a function that basically works like the Mix Ability from X-2, via engine hack or through the Nightmare Module (or similar)?
Through the existing engine hacks: no, nothing related to that has been done.
Through engine hacks in general?
Learn ASM, write the code, the GBA runs it. The specs are the limit.

What you are suggesting isn't really that far out there compared to what already exists in the game: you have Throw/Hurl (select an item, power is based on the item) and Double Cast (select two abilities) already, so the game even has built-in support for menus like that. It still wouldn't be an easy job, of course. It's also not something I'm interested in making, I had to look this up to even know what you were talking about.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: FlamingZelda on October 29, 2021, 01:43:23 pm
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.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on November 13, 2021, 01:11:50 pm
I've been very busy and I haven't really been able to work much on this or any of my other projects.
Most of my free time I use for relaxation, which I honestly think I need.

Quote from: undefineddid the map editor ever find its way to a releasable form
I never even started on a map editor, I used Tiled (as seen on my screenshot).
All I made was a python script that takes a tiled map and turns it into an event file.
It only really handles the visual part of the map.

The height of each map position, their terrain type (water, lava, column) and the allowed deployment positions have to be made by hand.
It does not handle insertion of the map, either, you have to write an installer for your map yourself.

I found there was no good way of using Tiled to make even the height map, which is an absolute basic feature of a ffta map, so I gave up on improving that further.

Quote from: undefinedtool for non Buildfile
If I ever make any tool it will only work for buildfiles.

Either way, what is wrong with your move descriptions? "broken" is very undescriptive.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: nitwit on November 13, 2021, 02:04:28 pm
Where is the map, event, and text data located, and how is it formatted?
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on November 13, 2021, 04:10:48 pm
That's a big question. Not an easy one to answer, there's a lot of ways data can be compressed, there's a ton of parts to a map entry (24 different atributes for a map), there's a ton of event instructions, there's a bunch of text tables...

It would take me days to write anything proper about maps or events, which is why I haven't really bothered doing it, two years ago or so I did write a python script that dumps all maps and their tilesets and palettes.
I could touch that up and send it your way if you are interested.

I also have WIP event assembler raws, which are descriptions of the event commands and their arguments that can be used with EA, as well as notes on how events are structured.

For text you can just go to Data Crystal, that should have most of the information you'd need.

Honestly, it's been simply too long since I was active on hacking this game, I don't remember all of the details so writing good doc is very hard, even when I made the custom map I just worried about understanding the parts I was changing and ignored the rest, so doc wouldn't be that comprehensive.

If you are really interested in one of the topics in particular (I assume you want to try your hand at making a tool?) let me know which one so I can focus on writing about that for you.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: nitwit on November 13, 2021, 09:00:45 pm
I just want whatever info you have out there in case anyone else wants to work on it. It's okay if you don't have perfect/complete explanations, so long as the location and structure of the data is correct. And if you just want to be done with it, upload what you have after verifying those things with whatever warnings and bugs you can remember.

Every time I've uploaded something after quitting it in disgust someone pops up a few days later that they were working on the same thing in parallel to me, so I just do everything openly now.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Leonarth on November 14, 2021, 01:46:33 pm
Quote from: undefinedafter quitting it in disgust
I did not quit, though, I simply saw that there was no way to properly make FFTA maps with Tiled.
A map editing tool specific to FFTA would need to be made, at least from what I have seen in generic tile editors.

Anyway, 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)
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: FlamingZelda on November 14, 2021, 04:39:43 pm
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.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: nitwit on November 14, 2021, 05:57:51 pm
Thanks for posting your data, I don't have much else to add but you may want to add links to the first post in the thread of all the important posts.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: dck on November 15, 2021, 04:49:17 pm
Quote from: FlamingZelda on November 14, 2021, 04:39:43 pmThey'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.
Basically, if you want to use the buildfile for Leo's engine hacks you'll need to also install its text modification features as well- this will make it so you have to also use these text modification features to handle any further text changes your hack needs as well; there might be a few very small changes that don't depend on the text installer, but for most stuff it's a requirement.

Afaik there's no released text editor that just writes to the rom directly (though iirc one exists), but the way I did all the custom text in mine was just writing over existing entries directly in a hex editor. It's surprisingly lenient (you can make follow-up textboxes and stuff) so long as you have some stuff to cannibalize like removed laws, cards or whatever.

Still, I would never recommend doing this- it's simply incompatible with Leo's engine hacks and they are by far the biggest leap in hacking development since AiO came around.

This is, incidentally, the one largest change left in my own hack stalling progress for lack of putting time to learn using it.
Title: Re: My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]
Post by: Dual-Wielding Ninja on January 07, 2022, 04:17:56 am
Quote from: Leonarth on August 18, 2020, 11:52:48 pmThrough the existing engine hacks: no, nothing related to that has been done.
Through engine hacks in general?
Learn ASM, write the code, the GBA runs it. The specs are the limit.

What you are suggesting isn't really that far out there compared to what already exists in the game: you have Throw/Hurl (select an item, power is based on the item) and Double Cast (select two abilities) already, so the game even has built-in support for menus like that. It still wouldn't be an easy job, of course. It's also not something I'm interested in making, I had to look this up to even know what you were talking about.
Almost a year and a half late, but fair point. Was just curious for the most part.