• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 24, 2024, 01:41:11 am

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

41
nochash-sym is a flag, not a file, you don't need to get the .sym file, rather it will be generated for you.
The .sym file contains the offsets of all the labels, it's only really useful if you are debugging with no$gba.

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

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

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

Download it, rename it to Core.exe and drop it in your Event Assembler folder.
ColorzCore is way faster than the old Core, so I recommend anybody reading this to get it.
It will drop your build time from a few minutes (at worst) to just a few seconds.
42
I just pushed a big new feature that I've been working on and off on for a long while now.
Although, honestly, most of it was done in two big pushes, one about a year ago and another one the last few days.

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



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

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

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

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


Simply press the Start button and enter your desired name, just like when naming Marche.


Andt that's it, you are done, you will be taken to the party menu and you can keep playing just like normal, but with a customized character.


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

As always, any bug reports are very much appreciated, just be sure to read the included info beforehand, just so you don't go reporting intended things as not working correctly.
43
Quotebut I forgot you can actually toggle off the level displayed by pressing select
I never knew this.

I'll have to rework the stuff to take this into account
44
Not really sure why the tile offset of the numbers was brought up, is there something wrong with that?
That was a conscious decision, it's not a bug.

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

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

Either way, that is not what it looks like for me.
I'll have to look more into it
45
Quote-HP and MP can only be 255 base, but the remaining stats can be 999. Odd design choice.
-Max growth rate for any stat is only 25.5. The 2800 is the max possible and that too because you've allowed Lv.100. If we had a growth rate of 99 then we'd be hitting the 9999 mark.
I don't think these are really issues...
Big numbers for big numbers' sake don't add anything to the game.

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

That said, I think if I made a hack I'd rather make all numbers smaller.
46
FFTA/FFTA2 Hacking / Re: FFTA Long Night 0.64 release!
August 02, 2020, 04:02:28 pm
Quote from: undefinedI understand the concern of having an inaccurate display
The display is much worse than you described, not only does it never show the mastered tag, it also does not have a bar and the ability name is always white, there is essentially no way to tell the ability isn't mastered.

I was thinking this could be done in a different way, instead of making the abilities have a 0AP cost, I'd give them a high cost, maybe 0xFF? This can then be checked when the item is equipped and the abilities would be mastered right there, instead of setting the equipped bit. I'm not sure I would add that to the engine hacks but I could make it for you, I guess.

Quote from: undefinedsupport for custom items was added one day?
Not sure what you mean by this, what is preventing you from adding more items?
47
Quotethe animation exist for Human thief but not for White mage and Archer.
It does exist, all jobs have all animations, what happened here is that even though this is an ability, it uses a weapon animation, and the new code is not prepared for that.

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

Also, unrelated, but I did make the option to display up to 9999 hp, have you tested that yet?
48
QuoteI think that Humans are missing the animation.Moogles were fine.
Well, they literally have the same animation data so that's clearly not the issue.

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

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

The patch is only meant for people that don't know how to apply the engine hacks/can't be bothered, if you want your randomizer playthrough to be of any use for finding bugs you have to use the engine hacks.
49
FFTA/FFTA2 Hacking / Re: FFTA Long Night 0.64 release!
August 02, 2020, 11:52:25 am
Quoteit would be good to learn about it.
If you look at the animation template, it contains a very big list of pointers, such as "idle_front_pointer".
You can search for the label in your text editor "idle_front_pointer:" and it will get you to the data for that animation.

Once there you'll see, first of all, the ALIGN 4 and label, that's just setting the label for usage.
After that there's a "WORD X", where X is the number of frames the animation has.
Then you'll see a list of aFrame() macros, the a stands for animation.

The format of aFrame is define in Graphics Helpers, and if you go check that you'll see it's not entirely documented.
For the named stuff: tiles, oam, duration
Tiles is a relative offset (0x69B89C is added to it by the game when it reads it) to the graphics of the frame.
OAM is also a relative offset (but using 0x852E7C as a base instead), this time to the sprite data.
Finally, dureation is... the duration.
As for the other values, I know some of them just shift the whole thing up/down and left/right, others are more important, as they control stuff like when ability animations start and end, as well as loops. I kinda just copied vanilla for what to put on those, though, so it's not really all that well documented.

You'll also see aFrameV() macro definitions, those are the same as aFrame but without the relative offset adjusting for the tiles, these are meant to be used if you are translating frames directly from the game, so you can just copy the tile offset value from those instead of having to add 0x69B89C to them, and same for the oam.


Quotebar the missing mastery bit option for working with 0AP
I've been looking into this and it's honestly way more much work than I originally though...
This is going to be a lot of spaghetti so I'm not sure when or if it will get done.

Getting the mastered on equip to work is extremely easy and it'll work just fine in battle, what is hard is getting it to DISPLAY as mastered or not properly, in the learnt abilities tab. There are a ton of exception for 0 AP cost abilities, because of the item abilities and such.


QuoteThat said, I've run into not so much of an issue but a customization question:
That's because the text tables are repointed and/or reworked by the engine hacks, for easy expansion and such.
I believe those entries are part of the "Others" table.

If you don't like that you can find this line in the master hack installer
////////////////////////////////TEXT CHANGESand just delete everything from there up to
////////////////////////////////GRAPHIC CHANGESIt will probably break some stuff? But if you aren't using movement abilities are JP learning I think it should be fine.
You will get some errors from the master text installer but you can just go and comment those lines out.

Or if you don't have a ton of edited text entries, you can add them back in through the master text installer.

Keep in mind the engine hacks are made to be used as a base, rather than be added on to an existing hack, so it's really just natural that you'd find issues like that.
Happy to help, though.
50
FFTA/FFTA2 Hacking / Re: FFTA - Unused class slots
August 02, 2020, 11:25:54 am
Quote from: undefined-1- Do I paste the whole code in the buildfile? or do I just paste the first three lines?
The first three lines are a macro to write ability data, the rest is an example of how to repoint an ability list and how to write ability data to the repointed list.

Quote from: undefined-2- MyNewList is address of the new pointer? Can I just use some address beyond 0xA39920?
If you want to live like a caveman, sure, use a fixed offset instead of a label.
Nothing stopping you. Just remember to keep track of the offset and to add the terminator to the end of the list, 8 zeros.

Quote from: undefined-3- test.bin is automatically created? or must I put something in it?
You have to make this file, it is explained in 3rd to 5th paragraphs: you need to copy the data of the vanilla ability list, this is just so you don't have to redo all the abilities.

Quote from: undefined--5--0xDD this is index.
It is the index... Of the name string. We are not specifying the ID of the ability anywhere in here (we do specify the effect ID, don't confuse those two), the ID of the ability is going to be based on where it is in the list. You can make a macro that inserts to a specific index in the table as well, if you want that:

#ifndef newAbility
#define editAbility(label,ID,Name,Desc,Effect,Type,Cost) "PUSH; ORG label+(8*ID); SHORT Name Desc Effect; BYTE Type Cost: POP"
#endif

This macro can also be used to edit lists you haven't repointed by using their offset instead of a label, obviously not to expand them, just to edit the existing abilities.

Either way, if you look at the macro it tells you what each value means newAbility(Name,Desc,Effect,Type,Cost)
Name (ID), Description (ID), Effect (ID), Type, Cost

Quote from: undefined--8--(81 is the yellow in-battle effect text; it's not in that code, so is it not important?)
0x81, not 81, and that is part of the effect list. It's not that it isn't important, it's just not part of the ability list of a race. Completely different tables.
It would have made more sense to have in the ability list, if you ask me, but that's not how it is.

Quote from: undefined--9--what is 1? does it mean A-ability? If so, what to use for S/R/C abilities?
3 is support, 4 is reaction, 5 is combo, anything else is action as far as I know

Quote from: undefined-10- Is it required to copy abilities? Can I only repoint and add abilities via the AIO or will this break something somewhere?
-11- If we can't do the above, can I just copy and paste "First Aid" multiple times and edit later in the AIO?
It's required if you want to keep them. Either copy the raw data of the table (test.bin in the example) or make them from scratch using the macro.
As for AIO, I have no clue, I don't use it, I don't know how it works.

Will it read your new pointer or are the offsets of the lists hardcoded?
I don't know.
If it does read your new pointer, will it show more learnable abilities in the list or is that hardcoded?
I don't know.
Will it behave the same way in the job editor and in the learnable moves editor?
Probably not.

If I had to go with a gut feeling, I would say it will read your new pointer, and you will be able to edit the Start and End abilities for the jobs, but you won't be able to edit the ability data, or at least not the ability data for entries past the original ammount.
51
FFTA/FFTA2 Hacking / Re: FFTA Long Night 0.64 release!
August 01, 2020, 08:18:58 pm
You shouldn't need to comment out any #include directives, the ROM buildfile.event file is made to contain the options of which engine hacks to install, if you don't see one in there then that means it's considered essential and is always installed.

Of course, some engine hacks have their own options elsewhere, but other than those options and  the ones in ROM buildfile.event you generally shouldn't need to touch anything else, other than some lists here and there, and all of the options would be #define directives.

If you have something specific you want to try to get done just send me a dm and we can look into it together.

QuoteI noticed it seems to stop on units don't normally use weapons
QuoteI have no idea how you made the animation.txt for each individual unit
This is because I made these with a script, it took specific animations from specific jobs (say, sword animations from Soldier) and used the data of those animations, together with sprites that all jobs have (like standing, punching, etc) to make new animations for all of the jobs. Of course I did need to make new sprites for a bunch of special animations. None for weapon animations, though, all jobs have all needed sprites for those. I can try to explain the format if you would be interested in making your own.

Quotethere's a safeguard that makes them able to aim weapons up and down slopes
If a unit doesn't have the animation for a specific thing, it uses the walking animation instead, I think is what I did?

Quotewould deleting the current content of animations.txt be a good way to recreate this effect
I'm lost here, why do you want to remove the weapon animations?
52
FFTA/FFTA2 Hacking / Re: FFTA Long Night 0.64 release!
August 01, 2020, 04:46:27 pm
Those two lines reference labels that are set in specialAnimations.event and weaponAnimations.event, so if you comment them out EA won't know what they mean and won't be able to proceed.

If you want to remove the fixed special and weapon animations, delete everything from
//setting up special animationsup to
//never register as special character for the original dismiss message routineSo, lines 48 through 95.

I also went ahead and added an option to enable/disable the installation of the fixed animations, so you can use that instead.
Please let me know if I messed up.
53
FFTA/FFTA2 Hacking / Re: FFTA Long Night 0.64 release!
August 01, 2020, 02:54:25 pm
Quoteand a lot of cutscene animations break as well
Any examples? This could mean pretty much anything.

Quote from: undefinedI need to figure out causes for the cutscene issues first
That's something I've never seen before...
This is probably caused by you having some but not other of the required things?
Using the engine hacks any way other than through the provided ROM Buildfile.event is going to be tricky.

I'm pretty sure your cutscene characters just have 0 current hp, but from what I remember you were using the new level up stuff so that shouldn't be possible?, the KO stars have literally nothing to do with unit animations either way.

If you are getting the job and race customization stuff from the thread instead of the repo, don't do that, that's old and hasn't been updated in... ever.

Quote from: undefinedit automatically gives any job any skill that requires 0 AP
Yeah... It just compares required and gained AP, I guess I could look into always requiring the mastered bit as an option. I remember having issues with this because units that spawn with equipped items don't actually set their bits correctly.

As a side note, I've had an idea for a while: loading palettes into the 3rd and 4th slot (normally used by totemas and li-grim) based on mission ID, with a default case and some other options, which could give people either 2 new always usable palettes to give jobs (which is incompatible with totemas, I guess), or 2 mission based palettes for bosses and the like? or I guess a combination of the two options.
54
Quote from: undefinedThe game shows MOVE and JUMP values beyond 9 as 0. Seems like it can only display a single digit
I do know about that. It's not that it shows them as 0, it's that it only shows the first digit, if you have 12 movement then it'll show a 2.
Also it's only the unit stats menu and shop that only show one digit, the inventory does show up to two.

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

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

Quote from: undefinedThat said, weren't negative stats already working in actual gameplay?
Sure, I didn't change anything about gameplay, this is only a display thing, like I said on my post.
55
It depends on the option, some take a number, some don't.
For those that don't take a number changing the number isn't going to do anything, it only matters if they are defined or not. The only reason some of those have a 0 or 1 afterwards is that I was having issues with an earlier version of Event Assembler when defining something without a value.

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

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

On a sidenote, yesterday I added support for the display of negative stat numbers from items, negative stats show up red in the shop and inventory and actually substract from stats instead of making them huge. If you guys can try that out and test it more for me that would be helpful, if you are interested in the option.
56
The hack has been updated, including the new engine hack fixes and some difficulty balancing.

People found the first mission very difficult and I want my hack to be playable by everyone, so I made these changes:
  • Added a Goblin and Thundrake to the starting team, both at level 2
  • Buffed capture rate by a flat 10%
  • Increased starting Orbs to 10

Previously I was able to capture all monsters on the first mission with a bit of thinking, now I'm able to do it with no effort so I hope that will be enough of a helping hand for people that haven't touched the game in a while.

The rhdn page will be updated soon, it just takes some time for changes to be accepted.
57
Quote from: rrs_kai on June 15, 2020, 01:44:49 pm[...]

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

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



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

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

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

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

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

Please, PLEASE, let me know immediately if after this fix the issue stills persits.
58
QuoteIf you want all jobs with the hidden Item A-Ability, use this: Change the bytes at 0x080C8232 to 73 28 00 DC
If you want only playable and changeable jobs with the hidden Item A-Ability, use this: Change the bytes at 0x080C8232 to 2B 28 00 DC
Do NOT use these changes with my engine hacks, you will just mess with the new code. Edit the corresponding tables in "\Engine Hacks\jobAndRaceCustomization\data.event" instead. The newNoItemEquipJobs and newItemJobs will allow you to set which jobs can't access Item and which ones get it as a third command like the Alchemist, respectively.


Quote from: undefinedOh, I forgot you made this. Is there a way to add more jobs to the wheel without losing any default ones?
I don't understand the question, I thought you already added more jobs to the wheel?
What do you mean by "losing any default ones"?

A job will be available if:
- It is for the same race (this is the only time race is checked for a job, unsure if this even does anything in vanilla).
- The vanilla-like unlock conditions are met.
- The extra conditions (set in jobAbilityTable.event) are met, both unlock and view conditions.

A job will show up (but not be selectable) if:
- It is for the same race (this is the only time race is checked for a job).
- The unlock bit is set (the game remembers you unlocked it at some point).
- The extra condition (set in jobAbilityTable.event) is met, just the view condition.

Note that jobAbilityTable.event also supports jobs that do not show up as selectable, but that instead only appear as their action command when selection those, like Llednar's Flair command.

So in short, all you need to do is set the job to be for the same race as the wheel you want it on, then go to jobAbilityTable.event and replace the corresponding "neverShow" pointers with 0 (or your very own custom requirements).

To set a job's race you can use this macro:
#ifndef jobDataTable
#define $C8598
#endif

#ifndef setJobRace
#define setJobRace(job,race) "PUSH; ORG jobDataTable+(0x34*job)+4; BYTE race; POP"
#endif

example:
setJobRace(2,2) //soldier is now a bangaa job
59
Quote from: undefinedIs is possible to add more jobs to the circle? I made the Warrior a human and found that the game can display up to 12 jobs in one circle. If you add another then it only shows 6.
The game can't show more than 12 jobs on that screen, the reason it's showing 6 is that you are using my patches and the wheel has been split into multiple smaller wheels. Swap between them with L and R, there's even an on-screen prompt for that.

Here's an old example:
60
Quote from: undefinedThe game has many unused slots, which we can now be used for custom classes with a few custom skills.
You can also just repoint the job table and make all new slots.
Nothing preventing you from getting up to 0xFF jobs in there, so more than double the original ammount, at least nothing I've seen.

And as far as ability ammount goes, the only race you need to worry about there is Hume, and that's only if you aren't using 1 bit abilities, otherwise you have a huge ammount of slots to play with.

I personally think there's some jobs that need their abilities, Black Mage, Thief, Morphers and Beastmasters come to mind for me. They just wouldn't be the same with less abilities.