• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
June 13, 2024, 11:06:59 pm

News:

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

141
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.
142
FFTA/FFTA2 Hacking / Re: Leonarth's FFTA Randomizer
February 06, 2019, 02:15:39 pm
Quoteopening a guest's skill learning menu causes the game to softlock

I think this might be related to a bug I already fixed and will no longer exist in the next update but I'll doublecheck.

QuoteI think you should put your explanation of shuffle versus randomize in the readme, the one you put here for me is more clear I think.

Noted.

QuoteThe randomizer almost makes me wish there was a way to just have every recruit have a randomized set of skills just to themselves.

Sadly there's just no way to do that with how the game works, although I could add an option to eliminate job changing or limit it in some way for each unit, which would have a similar effect, with a catch 'em all feel to it.
Personally I think no job changing would be the one to make the most sense and the easiest one to implement, maybe units would still be able to get abilities from other jobs for a secondary action command, but never change into them?
Would you guys like to see challange run options like that added in? Or maybe released as external engine hacks?

QuoteIs the stat growth and unarmed damage also randomized?

It's not, random grwoths are an option I would like to add in the future but I think melee damage isn't really important enough to justify adding an option for it.

Thanks for the feedback!
143
FFTA/FFTA2 Hacking / Re: Leonarth's FFTA Randomizer
February 05, 2019, 11:32:23 am
There are some bugs on the current build of the base patch which I'm currently working on so you'll probably have to update soon, but since you have your seed you should be able to rerandomize the ROM from the new base after the update, if you find any issues.

QuoteCan you make optional mod with move after attacking being separate movement ability rather than usual behaviour

Actually sounds pretty easy to make, although it will depend on how the game handles setting the bit for different types of action.
It could be named Cunning, as a reference to DnD 5e's Cunning Action.
144
FFTA/FFTA2 Hacking / Re: Leonarth's FFTA Randomizer
February 04, 2019, 06:17:52 am
QuoteI am not quite sure what the differences are between shuffling and randomizing abilities.

When you shuffle abilities the number of each specific ability remains the same, there will be 2 "Steal: Ability", no less, no more, since this ability exists exactly twice (one for hume thief, one for moogle thief).
When you randomize abilities that's not the case, you could potentially end up with all jobs being able to learn "Steal: Ability".

QuoteIs it that randomized abilities cannot land in their original job?

There are no checks for abilities landing back into their original spot, or even the same ability being present on the same job multiple times.

Quoteit said that the rom was too big.

Maybe you set the freespace definition too far into freespace, which changed the size of the ROM, there's enough freespace to fit all of the hacks I made without increasing the size of the ROM.
Either way the randomizer will be able to handle 32MB ROMs on the next update.

QuoteCould we get it to append the seed to the end of the file name if the return seed option is checked?

I like that idea.

Edit: Updated the randomizer with support for bigger files and Diedrik's seed on file name idea. I also updated the base patch because I forgot to remove the restriction of blue mage's not being able to purchase abilities, which really screws them with randomized abilities.
145
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.
146
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.
147
FFTA/FFTA2 Hacking / Leonarth's FFTA Randomizer
February 02, 2019, 08:39:04 am
I was thinking about good ways to get people to try the new stuff, specifically to try abilities on races they don't belong to, to see if we can find any missing animations, then I had the idea to make a randomizer to make the whole process fun:


It doesn't have a lot of options yet but I hope you guys will enjoy it!

Things I'm looking to implement in the future are some randomization options for monsters (monsters bring a lot of trouble with the randomizer for several reasons) and random jobs for enemies.
Enemies, or at least select enemy units, would probably have to keep their looks (so you would fight an archer that looks like a soldier or whatever) because of special animations for cutscenes, there's also the whole deal of equipment and learnt abilities so, yeah, not an easy thing by any means, don't expect it soon.
I know random enemies is probably going to be the most requested feature but please understand that it's a very complex thing to make.

Get it here:
https://drive.google.com/file/d/1fBRsmWvBbWk1_3FKkdXNOXQSsJHRyYPc/view?usp=sharing

The download includes a base patch (you HAVE to use the patch OR have a ROM that has the updated job and race customization hack).
There's also a readme, and the randomizer itself has a lot of tooltips so I hope people won't be confused.

Please leave any suggestions/comments you have on this thread.
148
New update, here's the changelog:

  • Added options to turn off stuff that didn't have an option before, some are just new though:
       JP Learn, default on. (So you can turn off the whole system if you want, to use only the minor hacks).
       Movement Abilities, default on. (This won't make combo abilities work, it will just make movement abilities be gone).
       Manual Sorting, default on.
       FFT-like Death, default off. (Should be able to be combined with Ironman).
       Ironman (all maps have jagd death), default off. (Should be able to be combined with FFT-like Death).

  • Abilities that cost 0 AP/JP should now be unlocked by default, even if using 1bit abilities.

  • The ability learnt messages after battles should now never appear when using 1bit abilities.

  • Units can now be made to spawn with a Movement/Combo ability.
       The byte used is the last one in the unit entry, this is the last Unknown Values in AIO's formation editor.

  • Judges no longer reset JP when an infraction is commited. This seemed too big of a punishment.

  • When laws/judges are removed, any existing laws will stop working.
       This is to prevent Judges spawned through events from enforcing them.
       The Laws/Law Cards menu option should also never be available.

  • Removing laws/judges no longer prevents the Flee option from working.
       To get this to work, however, I had to make it not check if judges are present (duh).
       This means some situations that couldn't be fled from before now can be and vice versa, probably.
       I can't think of any situations this would affect other than maybe jagds?

  • Fixed the Bishop Judge and Judgemaster Judge Sword abilities.
       Added options for the "Steal 2 JP" ability effect, same options as the regular "Steal JP" effect.
       Default 50 damage, 10 up and down variance.

  • Fixed the File level, it should now always display Marche's level instead of the first unit's level.

  • Fixed the Move+1 check, it should now work regardless of which ability it is replacing.

  • Made sure that the 999 JP cost display looks the same as the others.

  • Added a few new movement abilities, the easier ones to make:
       The previously existing Move +1 is still replacing the Combat Combo.
       Move +2, replacing Knight Combo
       Move +3, replacing Fight Combo
       Jump +1, replacing Dragon Combo
       Jump +2, replacing Sacred Combo
       Jump +3, replacing Lunge Combo
       Ignore Height, replacing Sword Combo
       Teleport, replacing White Combo
       Levitate, replacing Black Combo
       Levitate just works the same as vanilla, so it allows movement over water and lava, nothing else.
       I would like to make floating units get 1 extra height but having it be animated or the shadow be correct would get pretty hard, especially the shadow because of sprite limitations.
       Same deal for teleport, it is just the same as vanilla teleport. Making one that allows teleportation to any square but can fail would be possible but I'm worried about the AI.
       Please note that I'm just replacing the combos by order of ID, this is not a suggestion as to which jobs should get them.
       Ignore height doesn't change the jump stat, but makes it be treated as 127 when moving.

   
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
149
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.
150
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.
151
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.
152
The next update is not exactly ready yet, and it may take a while, but in the meantime I have put together something you can use to start working on your animations if you want, which should be 100% compatible with any future version of the template.
The template sheet comes with the 3 valid palettes.
There are two template sheets, one for regular animations are one for water animations, which includes some graphics for Llednar in the water that I put together a while back.

Right now it supports all basic actions, but there is no support for some ability animations, that's going to take a while and I might need help with it, I'll let you guys know.

I also attached sprites I ripped, but keep in mind the sprites are NOT in the same order as the template.

It includes a readme but feel free to ask any questions you have.

Edit: Apparently I forgot to include the palettes so I attached those too.
153
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.
154
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.
155
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.
156
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
157
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.
158
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.
159
FFTA/FFTA2 Hacking / Re: how to mod multiple patches??
January 14, 2019, 02:42:53 pm
Making a patch that works with others is not just a matter of choice, some things just need to go into freespace and there's no way to know what went where with patches, the AIO editor has a few options you can apply to your ROM, other than that unless you want to learn how tu use Event Assembler (which isn't really too hard and can make several modifications work together) your options are my shoe stealing patch and my permadeath patches (which does go into freespace but I tried to put it somwhere that wouldn't conflict with other patches, it might work, it might now).

There might be other stuff that I don't know of.
160
FFTA/FFTA2 Hacking / Re: how to mod multiple patches??
January 14, 2019, 12:38:52 am
90% of the time you can't do that, so what you are doing wrong is attempting to do it.

With .event files you can mix and match them if you know what you are doing, with .ups files however that's not possible, only .ups files that don't write to freespace (like the shoe stealing mod) can be combined with others, so you can only have one .ups file that goes into freespace and as many as you want that don't, as long as they don't conflict.

An .ups file is nothing more than a list of what to write and where to write it to, without support to change the location to write to, mostly because even if you changed it that would probably also not work, since code needs to be updated to match that too.

If you are trying to use one of my .ups files, those are really only meant as demos to see what the engine hack is all about, you are meant to be using the .event files instead, after finding where freespace starts on your ROM.

IF you are certain that this patch should have no issues being patched over an already patched file, like the shoe stealing mod, and I assume you are using NUPS, you need to change the "If file is invalid" option, a file that has been patched is no longer the exact same as the original, NUPS will notice this and, by default, cancel patching, if you want it to patch anyway be sure to mark any other option other than "Abort".