• Welcome to Final Fantasy Hacktics. Please login or sign up.
February 26, 2020, 07:45:05 am


Please use .png instead of .bmp when uploading unfinished sprites to the forum!

Show posts

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

Messages - Leonarth

FFTA/FFTA2 Hacking / Re: Leonarth's Engine Hacks
January 25, 2020, 05:13:20 pm
Makehack hasn't finished running in that image, please leave it open and allow it to run, at the end you'll either get error messages or a message saying "No errors."
It will take a few minutes.

Like I explained earlier, the first step the script does is to copy the rom, so the rom appearing does not mean the script has completed.
FFTA/FFTA2 Hacking / Re: Leonarth's Engine Hacks
January 25, 2020, 08:28:45 am
When you run makehack the first thing that happens is that the rom gets copied.
If there are any errors, your rom would stay just like a vanilla rom.

Since you edited the buildfile it's possible that there's now errors, please run makehack and wait for it to complete, then show us if there are any errors.
(you could also show us your changes)

Other than that, make sure your Event Assembler is in the right location (and not somewhere like /Event Assembler/Event Assembler/)
Monsters can't equip any items, that's just how vanilla is and I didn't want to change anything about the monsters themselves.

That said, if an enemy monster starts a battle with an item and you capture it, it should retain the item, I think?

I don't remember if I made any code to prevent capture of monsters with items or to remove items from them. I also don't remember if there's any monster that starts battle with any item in FFTA to begin with, I know there are in FFTA2, I can't remember any from FFTA though.
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.
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?
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.
I have plans for more polished monster taming mechanics in the future (which would be made public), which is mainly why I didn't want people using the half-baked one that I made for Advanced Battle, I just have been busy with life lately.

The main change I want to make is being able to take monsters out of the bank, and being able to send them back in, but I also want to add monster breeding, as well as changing how feeding works (it wouldn't make much sense to get a monster with maxed stats you can just add to your party).

I also want poaching but I wouldn't really work too well for vanilla, still it can be added so it can be combined with other future engine hacks.
The source for the ability learning (along with pretty much every single engine hack I have done for FFTA so far) is on github, the source for the monster taming is private though, because I didn't want a flood of monster taming hacks to appear: https://github.com/LeonarthCG/FFTA_Engine_Hacks

Quotebut it has a critical flaw. You are stripped of your first 4 party members and can only capture Monsters instead of randomly getting units.

It's not a "critical flaw"... It was done on purpose to force the player to use monsters.
Remember that this was an april fools hack.

Quote(maybe even have a higher clan member limit too)

That's a very hard thing to do.
You would need to find a place in ram to put all these new units in, find a place on the save to store them and change all routines related to listing your clan members, as well as making a completely new routine to display the units on the menu. I think it's not worth the effort at all.

Quotealso some cutscenes don't make sense

Currently there is no hack with edited scenes, there's barely any documentation on event editing and it takes a lot of work to make a scene.
Also, like I said before, I just made the hack for april fools. I only worked on it for about 2 days.

Quotewhich has a lot of improvements ( Monstersss don't go extinct

I don't think I did that... I don't remember changing any of the engagement layouts. It was a while ago though so I might just not remember.

QuoteIs this asking too much? Yeah, it is. Asking for a romhack that includes all of this along with the improved skill leveling system maybe might be too much, but I want the classic experience that I enjoyed in Tactics Advance.

Not removing random recruitments, job requirements for dispatch missions, etc. would have actually been way easier than what I did for Advanced Battle, what you are asking for actually takes less effort than what I made so it's not really "asking too much", it's just isn't what I wanted to make.
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:

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

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.
If you want to try to get your sprites in the game you can check this thread:

Although it's not finished yet, you should be able to test them just fine.
FFTA/FFTA2 Hacking / Re: Leonarth's FFTA Randomizer
August 04, 2019, 07:28:32 pm
I'm not working on the randomizer at the moment.

To mod the game like this you can probably just stick to the all in one editor and be fine:

That's not what I use, but it should work for what you want to do.
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:
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, 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.
There is no standard for what sound is like in the GBA, each game can have a completely different system, but lots of games use the same audio engine, m4a, and there's a tool just for that engine: https://www.dropbox.com/sh/3m004vettv9g3og/AACutAL7MHdYy3YV2sm2EPKra/ToolBox/SappyMid2Agb?dl=0&subfolder_nav_tracking=1

This tool should work with FFTA
FFTA/FFTA2 Hacking / Re: Leonarth's FFTA Randomizer
June 20, 2019, 01:35:42 pm
I literally just got an email about that from dropbox, there's not much I can do for now so you'll have to wait for a while.

Might switch to google drive after this.

Edit: I changed the link to a google drive one, still not sure what happened with dropbox.
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:

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.
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?