• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 18, 2024, 06:09:41 am

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


My progress in FFTA hacking [Map, Events and Text editing] [Engine Hacks]

Started by Leonarth, July 16, 2018, 12:14:58 am

Leonarth

Quote from: undefinedThe other 4 party members are fine.
There are several places where the job of a character is specified, a character's job may not be the same as the displayed job name and their first action command, this is what happens with Marche and Montblanc in vanilla, they actually use a special job unique to them, which they always have set (0x50 and 0x52, like we discussed in your other thread) which essentially only changes their unarmed damage (yes, it does).
If you are curious, Ritz has 0x51, Babus has 0x53, Ezel has 0x54 and Shara has 0x55.

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

So in short, their class became blank because it actually always was the case in vanilla, it's just now the game is showing it to you.
If you start a new game with the patches properly applied, Marche will start as a soldier, if you don't then Marche will start as job 0x50 like he does in vanilla. You disabled the fix for this, but didn't disable the code that changes how the game gets the job name, etc.
  • Modding version: Other/Unknown

rrs_kai

Quote from: Leonarth on July 07, 2020, 05:45:24 pmIf you are curious, Ritz has 0x51 and Shara has 0x55.
Yes I am, thanks for these.
  • Modding version: Other/Unknown

Leonarth

After trying to fix the shoes issue for a while I noticed they have abilities assigned to them, for some reason... This is probably a remnant of how they used to work? The issue here is that the job the assigned abilities are for is 0xFF, which is not a valid job, this leads to weird stuff, essentially.

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

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

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

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

Edit 2:
Okay, everything should be fixed now.
Just keep in mind the Morpher issue was not really a morpher issue, but rather an issue of missing animations for monsters.
If you want monsters to be able to work with Boost and other similar abilities you are going to have to make new animations for them.
  • Modding version: Other/Unknown

rrs_kai

Quote from: Leonarth on July 09, 2020, 08:17:11 amyou could assign these shoes and other items with special "fake" abilities for "fake" jobs, to have their passive effect show up on the ability list.
How do I get them to show up as support abilities in the AIO?

Quote from: Leonarth on July 09, 2020, 08:17:11 amOkay, everything should be fixed now.
Thanks Leonarth.
I like the snowball fight and the intro scene, but Quick Start is so good for testing.
  • Modding version: Other/Unknown

Leonarth

QuoteHow do I get them to show up as support abilities in the AIO
Dunno. I don't use AIO. Why do you need them to show up as support abilities?
  • Modding version: Other/Unknown

rrs_kai

Quote from: Leonarth on July 12, 2020, 07:19:35 amWhy do you need them to show up as support abilities?
I misunderstood.
You were speaking of adding an icon to display a name, correct?
I was thinking we could give the item's passive abilities to classes, like you did in the movement abilities.

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

Another question:
Sephiran found that we can give ITEM to all playable classes and not just the alchemist.
Change the bytes at 0x080C8232 to 2B 28 00 DC
This works on the base game, but not after I apply any of your hacks.
  • Modding version: Other/Unknown

Leonarth

Quote from: undefinedI was thinking we could give the item's passive abilities to classes
You can't do that because they just aren't abilities.

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

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

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

Also, if you went ahead and introduced the change to 0x080C8232 that you listed then you may have broken code expected by the engine hacks.
  • Modding version: Other/Unknown

rrs_kai

Quote from: Leonarth on July 12, 2020, 01:03:44 pmIn "\Engine Hacks\jobAndRaceCustomization\data.event" look for the 0 terminated list under the label "newItemJobs", jobs in that list always have Item. By default the list only contains the ID for the Alchemist.
So, I just add the class BYTEs to the list?

What about hiding?
If I make every class have ITEM, do I just comment out the whole "hiding" portion of the code?
  • Modding version: Other/Unknown

Blunderpusse

I think I might have something to show that's related to the current discussion. I was trying to make the special/playable race ability list the same as the hume's. I took screenshots of my attempt.
  • Modding version: Other/Unknown
"You sure are a keen observer of the obvious, kupo!"

Leonarth

Quote from: undefinedSo, I just add the class BYTEs to the list?
You want to add it to both the newItemJobs list, so that they always get item, and the newNoItemEquipJobs list, so that they can't equip item. Otherwise they could have two Item commands which is just silly.

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

QuoteI was trying to make the special/playable race ability list the same as the hume's.
If that's all you want to do, just change the race's ability list pointer to be the same as the hume ability list pointer.
  • Modding version: Other/Unknown

Leonarth

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.
  • Modding version: Other/Unknown

rrs_kai

Quote from: Leonarth on July 27, 2020, 04:57:35 amThe short of it is that when the "Judge PTS?" option is set to Off a different part of the code grants rewards, I was not aware of this, as I just don't use that option. The result was that rewards under these conditions were simply vanilla: 1 point for obeying a law, 10 for Hunting and JP capped is at 10. That last part was the reason JP was being reset.
I was using that option. I did not think it important because a textbox is just cosmetic.
  • Modding version: Other/Unknown

dck

Hi Leonarth, hope you're doing well.

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

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

Happy you actually stumbled upon Marche's default combo, too. One more thing crossed off the list!
  • Modding version: Other/Unknown
  • Discord username: adri#1824

Leonarth

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.
  • Modding version: Other/Unknown

rrs_kai

Quote from: Leonarth on July 31, 2020, 09:04:56 amOn a sidenote, yesterday I added support for the display of negative stat numbers from items, negative stats show up red in the shop and inventory and actually substract from stats instead of making them huge. If you guys can try that out and test it more for me that would be helpful, if you are interested in the option.
Yess please.

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

I wanted to ask:
If you could make JP upto 4 digits, why not HP as well? The max DMG is fine being capped at 3 digits.
  • Modding version: Other/Unknown

dck

Was already trying it actually, I got my FFTA files yesterday so after I realized unit names were corrupted because of applying changes to the original FreeSpace I went looking for your github.

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

EDIT: Also thanks for the clarification, after looking at more of the .event files I got the conclussion those 1s just marked something I didn't understand but definitely weren't equivalent to commenting out the line, since many files would have other structures and not even use numbers at all sometimes.
  • Modding version: Other/Unknown
  • Discord username: adri#1824

Leonarth

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.
  • Modding version: Other/Unknown

dck

Cool, then as far as I can tell it works fine. Will mention if I see anything odd.
  • Modding version: Other/Unknown
  • Discord username: adri#1824

rrs_kai

Quote from: Leonarth on July 31, 2020, 01:55:00 pmSure, I didn't change anything about gameplay, this is only a display thing, like I said on my post.
It displays properly.

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

I was using your randomizer on my mod and found that the humans bugged when using the Gladiator's elemental swords. The screen dimmed, the characters are still moving but the game froze. The same thing happens in vanilla if we give these skills to any other job, so I think that Humans are missing the animation.
Moogles were fine.
  • Modding version: Other/Unknown

Leonarth

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.
  • Modding version: Other/Unknown