Final Fantasy Hacktics

Modding => PSX FFT Hacking => Topic started by: Glain on October 02, 2011, 11:50:13 am

Title: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Glain on October 02, 2011, 11:50:13 am
So a while back I wanted to be able to use jobs 3A and 3B for some characters, and not have to go through the process of using another character's job like Simon's, replacing 3A with Simon, replacing Simon with my character, making the ENTD edits, etc. Much easier if I can just use jobs 3A and 3B, and point them to unused entries in unit.bin and wldface.bin (Like 08 or 09).

In the help section I whipped up this patch, which is a quick and dirty way to get exactly that (Job 3A uses 08, Job 3B uses 09). 
(EDIT: Included the entry for the REQUIRE.OUT table.)


  <Patch name="Jobs [3A,3B] use unit/wldface [08,09]">
    <Description>
      Jobs [3A,3B] use unit/wldface [08,09] for formation screen and battle preparation sprites.
    </Description>
    <Location file="WORLD_WORLD_BIN" offset="458B0"> 
      3C
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="74B88">
      080009
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="AA1DC">
      080009
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="AA92C">
      080009
    </Location>
    <Location file="WORLD_WORLD_BIN" offset="ADE6E">
      0809
    </Location>
    <Location file="EVENT_ATTACK_OUT" offset="16C24">
      080009
    </Location>
    <Location file="EVENT_REQUIRE_OUT" offset="11BB0">
      080009
    </Location>
  </Patch>


But then we figured it'd be useful to be able to change these entries for any job. So we discussed making a spreadsheet for it. Raven was going to write one, but then it seems I pre-empted him.

This spreadsheet should allow you to change which entries in unit.bin and wldface.bin are used for each base job. So, if you want to make Gafgarion's guest job (0x17) look like Reis in the formation screen, job wheel, battle prepation screens, etc? Just change the his entry from 0D to 07. Want to overwrite unused entries in unit.bin/wldface.bin and tie them to specific base jobs? Sure.

Attached is the spreadsheet. Basically you just edit the yellow column, then copy the XML from the XML tab into a .XML file in the same directory as FFTorgASM and use it to apply the patch.

I labelled the base jobs in the spreadsheet with what they're used for in the game currently, but interestingly, I couldn't figure out what jobs 0x35 - 0x39 are actually used for, if anything. Are those all unused? That might open up some possibilites for adding more characters without having to take jobs that are in use.

EDIT (8/28/2018): Attaching new version of the spreadsheet!  Fixes a problem with default values, notably for Holy Dragon Reis.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Pride on October 02, 2011, 01:39:20 pm
Awesome! This will be a great help for patch makers that add extra characters throughout the game (I know et greatly needs this .-.)
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: RandMuadDib on October 02, 2011, 02:34:23 pm
Rockstar! Much less manual hexing ftw!
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Eternal on October 02, 2011, 02:35:49 pm
Yes, this is VERY useful. Thanks a ton!
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Timbo on December 24, 2013, 11:14:57 pm
Sorry about the Necropost but this IS the definitely the most appropriate place to post this. I have a request. Is there anyway this spreadsheet could be expanded to cover the entire job list through 9F? It would be nice to be able to reassign portraits and formations for some of those blank monster jobs at the bottom. As it stands right now I've had to do redo my ENTD twice and its looking like I'm going to have to do it a third time. Having an expanded version of this awsome tool would make this a lot simpler.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Glain on December 26, 2013, 03:42:46 pm
I don't think the generic jobs use the same tables as the special ones for this.  If I look past the end of what I have as one of the tables, I see a bunch of numbers too low to correspond to generic job entries, then higher numbers like 5E, 5F which aren't even in UNIT.BIN.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Timbo on December 26, 2013, 04:16:02 pm
Thanks for getting back to me. What about the special monster jobs below those? Specifically 8E through 9F?
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Glain on December 26, 2013, 04:37:01 pm
I don't know if they're treated any differently from other monster jobs; even if they are, I don't think they're in the same tables; the tables seem to stop just before 4A (Squire).
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Timbo on December 26, 2013, 07:50:23 pm
Thank you very much for explaining Glain. I really appreciate it, even if I don't want it to be true. I still love this spreadsheet.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Luiakyn on March 12, 2014, 12:05:47 pm
Quote from: Jack of All Trades on December 24, 2013, 11:14:57 pm
Sorry about the Necropost


-Thank you- for the Necro post. I've been looking for something like this -- not sure how I missed it.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: 3lric on August 27, 2018, 12:15:25 am
Hey Glain, I believe I've found a bug in UWEntries. We use it for TLW for adding the two new units in, Bathier and Ashley Riot/Luso.

Everything works fine, except, when you have too many units and it asks if you want to dismiss, it seems to be showing the original units port (the guest versions of Agrias and Rafa respectively) Im not sure if this is due to UWEntries or not, but its the only thing i could think of.

It is viewable in the same ppf i sent you before.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Glain on August 27, 2018, 05:30:44 pm
Would I be able to get a pSX savestate that reproduces this? Would save a lot of time playing through everything.

In the meantime I can try to figure out what's going on.  My guess is there's another similar table somewhere; I'm betting on REQUIRE.OUT.  Let's see...

EDIT: Ha, yes.  REQUIRE.OUT, 0x11B3C.  Making an updated version of the spreadsheet...
EDIT: Attaching updated spreadsheet.  Just try and see if this works?
EDIT: Removing attached spreadsheet.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: 3lric on August 27, 2018, 11:59:18 pm
Awesome! Ill test it out in the morning. Thanks Glain!
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: 3lric on August 28, 2018, 10:15:09 am
Working perfectly now!
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Glain on August 28, 2018, 10:04:37 pm
The spreadsheet had some bad default values.  Holy Dragon Reis's value needed to be 0x18, not 0x00.  That's just been broken this entire time, apparently.  I also added in some other default values that are probably inconsequential, but are in some of the vanilla tables.  I'm replacing the spreadsheet in the original post with an updated version.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: 3lric on August 29, 2018, 08:43:49 am
Fantastic, Reis is working as expected now. And yeah I thought about that too, how did I find two different issues in one day that no one had ever reported on with as many times as the hack has been downloaded? xD
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: DarthFutuza on November 29, 2018, 09:39:46 pm
First, just wanted to say this tool was super useful to me, thank you!

However, I wanted to check if there's any known sound bugs (PSX version) when you use these sort of character replacement assembly hacks?  If I patch a clean FFT disc with a custom character (eg: Job 3B uses 09) the resulting image has random audio glitches (static noises etc, like what you you'd hear from like a speaker that's about to go bad), before the patch there's no audio glitching, but every time I've applied it, it results in audio static flicker especially with the game music.  I used FFTorgASM to apply the patch if that makes a difference.  Just wondering if I'm the only one this has happened to, or if its a known issue.  (The rest of the patch works fine, and does exactly what you'd expect it to).  Or maybe this only happens when using xml generated from this tool?
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Glain on November 30, 2018, 02:40:27 pm
I've never heard of or experienced anything like this happening with this patch.  Is this audio issue happening during battles, on the pre-battle screen where you set your formation, during the post-battle sequence, or outside of battle entirely (world map, formation screen, etc.)?  Is this on console or emulator (if so, which)?

(This isn't really so much an assembly hack as it is replacing one hardcoded value and some tables of static data.)
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: DarthFutuza on November 30, 2018, 03:06:33 pm
Quote from: Glain on November 30, 2018, 02:40:27 pm
I've never heard of or experienced anything like this happening with this patch.  Is this audio issue happening during battles, on the pre-battle screen where you set your formation, during the post-battle sequence, or outside of battle entirely (world map, formation screen, etc.)?  Is this on console or emulator (if so, which)?

(This isn't really so much an assembly hack as it is replacing one hardcoded value and some tables of static data.)

Audio issue happens everywhere, formation, pre-battle, world map, battles.  Doing it on PSXe emulator.  I've also tried it on different machines with different hardware.  Yeah its definitely not real assembly coding :P  I noticed if I apply the patch first and then use other tools like tactext or fttpatcher on the resulting patched bin/image it seems to lessen the effect.  I dunno its pretty weird and seems to intermittently go away occasionally, maybe my emulator is just having weird audio driver problems.  It sounds like its just me, not a common issue.  Its probably just an issue with my emulator setup, I'll play around with it some more see if I can figure out what the real cause is.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Xifanie on November 30, 2018, 03:15:12 pm
Yeah, I think you jumped to conclusions because:
A) There is no reason to believe the hack or the tool caused this
B) There is no reason to believe other tools could "lessen" the effect
C) ePSXe is a pretty bad emulator with easily the worst audio emulation available out of the major emulators out there
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: Glain on November 30, 2018, 06:59:49 pm
Yep, agreed.  I've always found ePSXe to have weird, inconsistent audio, even when playing unmodified FFT.

In addition, this patch doesn't change anything that should affect battles or cutscenes.  The only affected files are WORLD.BIN (world map, formation screen, etc.), ATTACK.OUT (pre-battle), and REQUIRE.OUT (post-battle).  The ATTACK.OUT one could only affect battles/cutscenes if the data was copied somewhere into SCUS/BATTLE data during runtime and I don't think it is.
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: MerlinRST on November 12, 2022, 11:18:10 am
Excellent job! It helped me to get new characters - and by the way, to put Altima (First form) as an ally, using some random Unit to not get so weird in the team formation (crazy).
It may seem strange to make Altima an ally, but I really wanted a character with that teleport style, not to mention that her sprite is very well made and worth being used for good (even if it's your own benefit). Obviously I will adjust it so that it doesn't completely break the game, like changing Teleport 2 to Teleport 1, and base status.
I'm not creating a complete MOD because I still haven't learned to use the event editing tools and others, so I'm modifying small things just for my own use, until I learn to create a mod worthy of being shown here. But it will take a long time because I don't understand about it. Anyway, congratulations on the brilliant idea. And thank you!
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: 3lric on November 14, 2022, 08:46:16 pm
Quote from: MerlinRST on November 12, 2022, 11:18:10 amExcellent job! It helped me to get new characters - and by the way, to put Altima (First form) as an ally, using some random Unit to not get so weird in the team formation (crazy).
It may seem strange to make Altima an ally, but I really wanted a character with that teleport style, not to mention that her sprite is very well made and worth being used for good (even if it's your own benefit). Obviously I will adjust it so that it doesn't completely break the game, like changing Teleport 2 to Teleport 1, and base status.
I'm not creating a complete MOD because I still haven't learned to use the event editing tools and others, so I'm modifying small things just for my own use, until I learn to create a mod worthy of being shown here. But it will take a long time because I don't understand about it. Anyway, congratulations on the brilliant idea. And thank you!

UWEntries is no longer needed as the functionality was eventually built into FFTP
Title: Re: UWEntries: Change which base jobs point to which unit.bin/wldface.bin entries
Post by: MerlinRST on November 19, 2022, 03:56:50 pm
Oh sure, sorry. Maybe it slipped my mind while I was reviewing the tools, I'll check