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: _Sephiran_ 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: _Sephiran_ 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.)