Author Topic: [PSX/PC] General editor - Hades Workshop (0.40b)  (Read 296231 times)

ToraCarol

  • Cool newbie
  • *
  • Posts: 89
  • Karma: 6
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1475 on: 2019-03-10 11:10:59 »
Tirlititi just want/need to ask you an interesting question.. What's the best way to add/replace sounds??? I have not seen a tutorial about it  ;D

Tirlititi

  • Freak
  • *
  • Posts: 561
  • Karma: 69
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1476 on: 2019-03-10 12:50:11 »
You can use the Unity Assets Viewer and open the archives p0data61, p0data62 or p0data63: it's the archives containing the sounds and musics.
Right-click on the sound/music you want to replace and export it. It should convert it to a readable OGG file. Replace that file (where it was exported) by another OGG file and then, in the UAV, right-click on the sound/music and import it back.

You should be able to add a new music/sound, but it requires more work: listing it in a soundmetadata.txt (in the archive resources.assets) and making the source code use it (using dnSpy to modify the Assembly-CSharp.dll).

@Zara9: I can't help you; I don't know what you are doing (and so what you are doing wrong).
There is a .hws example in the description I linked in my last message. Have you tried it?

ToraCarol

  • Cool newbie
  • *
  • Posts: 89
  • Karma: 6
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1477 on: 2019-03-12 13:16:28 »
Great, thanks!

I've asked you about adding sound because i'm interested on adding voice to characters in battle for make something like "Opera Omnia" what do you think? It' too hard?

And tell me where I have to go exactly in DnSpy for making the source code?

ps: talking about sounds, is there a way to fix the reflex SFX (maybe adding another sound, instead of the sound of the magic is using..)

Incinerator

  • Crazy poster
  • *
  • Posts: 198
  • Karma: 0
  • I’d rather have 1 real friend than a thousand fake
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1478 on: 2019-03-13 11:46:48 »
Tirlititi just want/need to ask you an interesting question.. What's the best way to add/replace sounds??? I have not seen a tutorial about it  ;D

Be weary! Some sounds ignore the pitch and frequency set in Sdlib.dll! What you initially replace as say 44100hz can be played at frequency 22050hz in game! I still haven't understood this doing.

Great, thanks!

I've asked you about adding sound because i'm interested on adding voice to characters in battle for make something like "Opera Omnia" what do you think? It' too hard?

And tell me where I have to go exactly in DnSpy for making the source code?

ps: talking about sounds, is there a way to fix the reflex SFX (maybe adding another sound, instead of the sound of the magic is using..)

Sounds good to me!
On terms of difficult, well, way back when when I attempted to add assets for Voice line in FF9 TZA, I too had to add those assets with Unity Asset Viewer, and later work the source to make it use it. I didn't get successful with that attempt. IIRC, even when I added the assets in the p0data61-63.bin archives, updated soundeffectmetadata.txt and added the necessary functions in Assembly CSharp.dll, the audio still refused to play. I then settled with using some UNUSED sounds of the game for the voice lines. Just so one could still archive their ultimate goal whilst keeping everything else intact.

ToraCarol

  • Cool newbie
  • *
  • Posts: 89
  • Karma: 6
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1479 on: 2019-03-13 20:20:45 »
Be weary! Some sounds ignore the pitch and frequency set in Sdlib.dll! What you initially replace as say 44100hz can be played at frequency 22050hz in game! I still haven't understood this doing.

Sounds good to me!
On terms of difficult, well, way back when when I attempted to add assets for Voice line in FF9 TZA, I too had to add those assets with Unity Asset Viewer, and later work the source to make it use it. I didn't get successful with that attempt. IIRC, even when I added the assets in the p0data61-63.bin archives, updated soundeffectmetadata.txt and added the necessary functions in Assembly CSharp.dll, the audio still refused to play. I then settled with using some UNUSED sounds of the game for the voice lines. Just so one could still archive their ultimate goal whilst keeping everything else intact.

Great, thanks for the reply Incinerator!  You know I've got this idea thanks to your FF9 TZA!  I've seen you used the voices from FFXII so I said..WOW! Maybe I can give a shot  :evil:


Can I ask you now two questions?

First of all..what are exactly the unused sounds? How can i recognize them?
And second...how did you put the sound to play exactly in the instant when, for example, a character die, or attack? I never tried something like this before :roll:
« Last Edit: 2019-03-13 20:28:26 by ToraCarol »

Incinerator

  • Crazy poster
  • *
  • Posts: 198
  • Karma: 0
  • I’d rather have 1 real friend than a thousand fake
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1480 on: 2019-03-14 21:35:45 »
Great, thanks for the reply Incinerator!  You know I've got this idea thanks to your FF9 TZA!  I've seen you used the voices from FFXII so I said..WOW! Maybe I can give a shot  :evil:


Can I ask you now two questions?

First of all..what are exactly the unused sounds? How can I recognize them?
And second...how did you put the sound to play exactly in the instant when, for example, a character die, or attack? I never tried something like this before :roll:

Some of them from FFXII, (iirc fran for Freya and Balthier for Zach) the rest from some old colleagues.  8-)

The recent version of HW should identify Unknown Sounds in the Unity assets Viewer as much 37c does. I've only done when characters are KO'd, attacking was buggy for me.
I still have my notes from Tirlititi from then, I knew I kept it for a reason when porting Type-0!

Ah, sorry, my bad !
I've misread the engine code ; I thought that "SetEnforceHP0" was executed everytime a fighter dies.
So, "SetEnforceHP0" is executed in most situations, except for the most frequent: when a character dies because of damage and that its death animation is not delayed or canceled for some reason (when you attack yourself, the character doesn't do its "Death" animation right there because it's already doing its "Attack" animations).

I would say to keep the code in "SetEnforceHP0" but also add it in another place: "btl_para::SetDamage".
At the end of the method, you have something like this:
Code: [Select]
btl.fig = (short)damage;
if (dmg_mot != 0)
{
btl_mot.SetDamageMotion(btl);
}
else if (btl.cur.hp == 0)
{
btl_calc.SetEnforceHP0(btl);
}
Add the lines in the first of alternatives:
Code: [Select]
btl.fig = (short)damage;
if (dmg_mot != 0)
{
btl_mot.SetDamageMotion(btl);
if (btl_util.getPlayerPtr(btl).info.serial_no == 0 || btl_util.getPlayerPtr(btl).info.serial_no == 1)
btl_util.SetBattleSfx(btl, ZIDANE_SOUND_ID, 127);
else if (btl_util.getPlayerPtr(btl).info.serial_no == 2)
btl_util.SetBattleSfx(btl, VIVI_SOUND_ID, 127);
// etc...
}
else if (btl.cur.hp == 0)
{
btl_calc.SetEnforceHP0(btl);
}

PS. : The way it compiled it in dnSpy is normal and perfectly fine. Even though it's not exactly the same C# code as you wrote, it is equivalent and leads to exactly the same CIL code.

Do this and now it should be finally ok:
Code: [Select]
btl.fig = (short)damage;
if (dmg_mot != 0)
{
btl_mot.SetDamageMotion(btl);
if ((btl.cur.hp == 0) && (btl.bi.player != 0) {
if (btl_util.getPlayerPtr(btl).info.serial_no == 0 || btl_util.getPlayerPtr(btl).info.serial_no == 1)
btl_util.SetBattleSfx(btl, ZIDANE_SOUND_ID, 127);
else if (btl_util.getPlayerPtr(btl).info.serial_no == 2)
btl_util.SetBattleSfx(btl, VIVI_SOUND_ID, 127);
// etc...
}
}
else if (btl.cur.hp == 0)
{
btl_calc.SetEnforceHP0(btl);
}

Really, I'm sorry, I got confused because there is not a single piece of code that is executed for sure when a character dies, and you have to add these lines in two different places (SetEnforceHP0 and SetDamage) that have different conditions to trigger.

I didn't do any more tests for the model importer. I've just decided to let the text auto-translation feature for the release after the next one because it'll take some time. I have a couple of things to fix for the text editing feature, then I go back to model exporter/importer to see what's wrong and then I release the next version of HW.

I really hope that the sound code works fine this time ^^'

ToraCarol

  • Cool newbie
  • *
  • Posts: 89
  • Karma: 6
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1481 on: 2019-03-15 15:24:13 »
Thanks alot Incinerator!I'll give a try right now!!! :-D

It's buggy,huh? So no way for adding sound on, for example, spells and victories? (the second one is interesting...because there is to consider a way to not play the sound of every character in the same time but only for the last one who "defeated")

Hope you understand what I mean..sorry for the bad english ^^''

UPDATE:

Uhm...where I have to work exactly? On CIL code?  ???
And the sound ID is in the document "Soudeffectmetadata" right?

« Last Edit: 2019-03-15 17:20:34 by ToraCarol »

Incinerator

  • Crazy poster
  • *
  • Posts: 198
  • Karma: 0
  • I’d rather have 1 real friend than a thousand fake
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1482 on: 2019-03-15 20:43:40 »
Thanks alot Incinerator!I'll give a try right now!!! :-D

It's buggy,huh? So no way for adding sound on, for example, spells and victories? (the second one is interesting...because there is to consider a way to not play the sound of every character in the same time but only for the last one who "defeated")

I never got adding sounds to work in my scenarios, but it's likely very workable.

UPDATE:

Uhm...where I have to work exactly? On CIL code?  ???
And the sound ID is in the document "Soudeffectmetadata" right?

Use dnspy for this one, editing it in C#. And you can find the relative Sound ID you replace in archive p0data62.bin/p0data63.bin in the Unity Asset Viewer.
Yes such ID can be found in Soundeffectmetadata.txt.

ToraCarol

  • Cool newbie
  • *
  • Posts: 89
  • Karma: 6
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1483 on: 2019-03-16 14:08:15 »
Great, thanks for everything!

TheHobgoblin

  • Newbie
  • *
  • Posts: 2
  • Karma: 0
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1484 on: 2019-03-16 14:49:49 »
Hello! I am a first time poster here, I was hoping I could seek some help on the mod I would like to make to the game.

I am a long-time fan of the Final Fantasy series and played Final Fantasy 9 when it first came out, but I lost my original CDs ages ago.

Anyway, I recalled being disappointed in certain aspects of the game when I played through it ages ago. Only recently did I find that it made it to PC and that there was a robust game editor for it. So I figured I could make the changes I wanted.

Now, I have some experience with altering Final Fantasy games. I played through Final Fantasy 6 while keeping Biggs as an party member, turning him into a Dragoon and altering his stats. And did this without replacing any other character, though it required I accept that I had to keep track of his current stats and keep remaking him and re-making him each time he got over-written by another character and readding him to the party as several points during the World of Balance (wasn't as much of an issue in World of Ruin).

I learned quite a bit about how Final Fantasy games handled their data from this experience-- and from what I have found digging through Hades Workshop so far, it seems quite similar.

I started by grabbing the Alternate Fantasy mod as according to its description it restored lost content, made fixes and allowed Beatrix to be a more fully realized character.

There are generally two things I wanted to do
1) Make it so that Zidane doesn't have to be in the party at all times and so I can use other characters more

I already found the guide on how to do that and implemented it.

2) Turn Marcus into a more fully realized character.

I don't know why, but I really liked the design of the character. And I knew from years ago that it was impossible to get him back once he leaves because his character slot gets over-written by Eiko.

But going by Final Fantasy VI, there should be 16 character slots since the game is written in binary and it should be defined by 0-F.

Anyway-- foolishly thinking this wasn't going to be an issue, I dived right in-- changed up the stats for all characters so that they had the same amount of points and were more similar to their versions in the mobile game Final Fantasy Record Keeper (just made them up for Blank and Cinna as I had no intention of using them anyway), and examining further, I found that I could assign him a list of learnable abilities-- which I quickly did, using Zidane as I base and keeping all abilities he had in common with Steiner, Freya and Amarant-- then creating new abilities.

The Alternate Fantasy started with a couple, but I created 8 new abilities based on him in Final Fantasy Record Keeper (and 2 powerful abilities to Beatrix).

I ran into my first problem when I went to add all of these abilities to the Banditry command and hit the error "You cannot add spells to the list anymore. Maybe you can try to remove spells elsewhere or link commands together to increase the limit here"

That's when I realized that for as easy as this tool was to use, perhaps it wasn't as robust as I was hoping.
Although I am wondering if maybe the easiest way to get around this is to just assign all 3 White Mages a single "White Mage" command set that has the full list of abilities and the characters just need to learn the exclusive ones. Since there will be a few abilities that each of them won't learn, I guess those will either appear blank or grayed out for them. Maybe I can do that if I decide to add Blank to the game.

Anyway, I moved stuff around, parsed things down, made all SFX into a single command set which has been assigned to all of the Tantalus's characters alternate ability sets, removed a few of the miscellaneous spells from seemingly unused other sets and just barely squeezed it down.

I also put the ability to learn Marcus's new abilities onto appropriate weapons that he can use (and the same for Beatrix's new abilities).
If anyone is curious, the abilities I created are Toxic Slash (Non-Elemental Magic Weapon attack that poisons), Wind Slash (Air Elemental Magic Weapon Attack), Flurry (Physical attack that hits all enemies), Hype Up (Hastes the whole party), Poison Impulse (Powerful Physical Wind Elemental Attack that hits and poisons all enemies), as well as the Magic Break and Armor Break from Sword Art and Zidane's "What's That!?!" skill.
Everything else I had him learn is similar to Zidane except I switched out Chemist for HP +10% and Protect Girls with Cover.

The extra abilities I gave to Beatrix are Rose of May which casts Protect on the whole party and Knight's Protector which is a Powerful Physical/Holy Attack that damages all enemies.


Anyway, the next step would be to find a point in the game in which he can enter the party and as I play through the games, find appropriate scenes where he should appear and have dialogue (likely based on where Quina and Amarant appear) and then add him to the game script in those locations as I play through it.

But the problem is that I have looked through this thread and on guides and everything says "To switch out Eiko for Marcus"-- but that's not what I want to do at all. I don't want to get rid of Eiko, I just want to add an additional option.


From my experience with the Final Fantasy XI editing, I was under the impression that the reason for Eiko over-writing Marcus was that the Marcus actor data was written to a particular character slot and then the game accidentally didn't write all her data which is why she inherited his stats.

So within the game code I would think
0 - Zidane
1 - Vivi
2 - Garnet
3 - Steiner
4 - Freya
5 - Cinna/Quina
6 - Marcus/Eiko
7 - Blank/Amarant
8 - Beatrix

But we aren't on a PSX anymore, there is no need to save memory by over-writing the characters.
So why not simply go into the game script and tell the game to write Marcus's data as character 9?
Then when the game script deals with him, change that so it knows to deal with character 9 instead of character 6.
I expect I will also have to tell the menu that there even is a character 9 so that it will know to allow me to scroll there and select the character.

I can find the scripts that allow Amarant and Quina to become available in the party menus, so I imagine I can copy that model.

But, then again, I have already ran into what feels like an artificial limit with the command menus. I get why the game is limited to only 255 items, but I am not sure why I can't assign a different number to a temporary character within the script so that no over-writing occurs.

I would have entirely given up hope except on one of the boards I saw that one could use Memoria and with a simple ini command you can "enable all characters" and a screenshot that shows Beatrix, Cinna, Marcus and Blank in the same party. However, Memoria isn't compatible with anything I have done so far nor the Alternate Fantasy mod nor does it looks like editing the game script is as easy as it is in Hades Workshop-- so I am hoping there is a way to do what I want to do using this program.

I have also read that if I play the game as I have now modded it and allow Marcus to learn the abilities I have given him, that Eiko is likely to inherit those abilities?
Also, there are special things I need to do so that he can Trance (and not crash the game)?

I will keep looking through the threads, but if anyone can point me to the code snippets I will need to use with indication which scene's scripts I need to edit to get the result I want, I would greatly appreciate it.

ToraCarol

  • Cool newbie
  • *
  • Posts: 89
  • Karma: 6
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1485 on: 2019-03-17 19:01:23 »
Ehy, forgive me for askin...I've tried to solve by myself but I'm really stuck in this stupid problem and I'm sure that if you'll help me I'll solve it one time forever.

So, now I've got Blank in this "cutscene" ..and I'm playing the character on the Field (250) , how do I move to another field from Region8_Range? Which condition I have to put to make it works with Blank too? Again, I've tried my best but I seriously don't get how to do because for a reason or another I'm still messing with something  :roll:
« Last Edit: 2019-03-17 21:34:37 by ToraCarol »

Tirlititi

  • Freak
  • *
  • Posts: 561
  • Karma: 69
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1486 on: 2019-03-19 19:48:22 »
@ToraCarol: I told you to disable the line "InitRegion( 8, 0 )" from the "Main_Init" function because I thought you wanted to make a cutscene (not a playable sequence). Put that line out of the "if" block if you want the region to work even with Blank.
Note that you'll get back to have Zidane as soon as you leave that field. In order to keep Blank along the fields, you need to edit the following fields as well.

Making a cutscene/playable sequence is not easy at all in any case. Make sure you understand the changes I suggest and if you don't, ask why I suggested them. It may be a slow learning process but you'll eventually understand scripts and know what to do.

@TheHobgoblin: All your problems come from the fact that the Steam version is basically a port of the old PSX version to more modern machines. The source code of the PSX version has been turned to a C# code with only the strict minimal changes required (how they handle images, 3D models, menus...). The basis of the code's structures (and a lot of the game's raw data) is a copy of how things worked on the PSX version.

So, the things you want to do are possible but not with Hades Workshop. I think that Memoria's "enable all characters" option doesn't allow to have both Marcus and Eiko in the team at the same time. The list of characters you printed is accurate and that's what needs to be changed if you want no restriction.

Also, I warn you that editing the game's UI (the way the menus look) is something on which we had only partial results. I'm not sure of what could be the resulting display of the "Choose your party's characters" menu after all the changes.

You need to edit the game's source code. You may do it with the devs' version of Memoria but also with a generic tool that is called dnSpy (if you work on dnSpy after doing the changes in HW, you can use both as I did for Alternate Fantasy).

In dnSpy, open the DLL of the game "Assembly-CSharp.dll". You'll see the list of classes (a structure of data) and their methods (an operation related to that class). If you know C# programing, it will be much easier (it's C# both for Memoria and dnSpy) but a few things can be done quite simply.

1) The total number of spells in the commands' sub-menus.
This is can be modified in the class "rdata" (in dnSpy, that's in the folder "{} -").
You should already see a bit how command datas are initialized in that class. That's exactly the part of the source code that is modified by HW when you edit some commands or stats (except there you'll mostly deal with numbers).

The error "You cannot add spells to the list anymore" refers to the value of "_FF9FAbil_ComAbil". Find where it is defined and "right-click -> edit the method/class" to change it.

It works like this: "_FF9FAbil_ComAbil" is the list of all the spells that are inside a command menu (side note: the terminology between HW and the C# code can differ as I've started developping HW for the PSX version without any access to the source code ; the "spells" of HW are called "Abil" or "Active Abilities" in the C# code). On a non-modded file, it starts with Dagger's Summons (49 is Shiva, 51 is Ifrit...) and continues with Dagger's White Magics (1, 2, 3...).
Simply add a few entries at the end of the list with the spell IDs you want to give.

A bit above that, you have the initialization of "_FF9FAbil_ComData". It's all the commands in the same order as what is displayed in HW.
Dagger's White Magic, for instance, is initialized like this:
Code: [Select]
new rdata.FF9COMMAND(174, 458, 8301, 1, 16, 8UL),The first two numbers can be ignored (it's a leftover of the text hexadecimal position from the PSX's version).
The third number, if I recall correctly, is a code for the help dialog's width and height. I think it is also ignored (the bubble size should be auto-computed on the fly).
The 4th number is the type of command. Here it is a command containing several spells (1).
The 5th number is the number of spells inside that command.
The last number is the starting point of the commands in the "_FF9FAbil_ComAbil" list. Here it starts at the 8th spells (the 1, 2, 3... from before).

If you want to use the spells that you added at the end of the list, put 192 as that last number.

2) Separating the slots of Eiko and Marcus (and Cinna/Quina and Blank/Amarant).
I'll edit this message and write the way to do it later...
Most of the things involved should be in the class "ff9play". The chararcters have several kinds of IDs and the one adding the problem is the "slot_id" or "slot_no". One has to add more "PLAYER_INFO" in the method "ff9play::FF9Play_New" and change all the conversion methods "ff9play::FF9Play_GetCharID2"... There are surely a bunch of other things to do and they need to be done smartly if one doesn't want to change all the field scripts related to Cinna/Blank/Marcus as temporary player characters...

Note: The field scripts are not part of the "Assembly-CSharp.dll" datas but are inside the archive "p0data7.bin" so you can still add HW modifications on top of dnSpy modifications.
If you try to open the modded "Assembly-CSharp.dll" with HW, it will surely crash though, as "rdata" is a key class for HW and it is assumed to have a very specific pattern (plus the total number of spells is hard-coded in HW's source).


Sorry for the late answer.
« Last Edit: Yesterday at 17:06:50 by Tirlititi »

ToraCarol

  • Cool newbie
  • *
  • Posts: 89
  • Karma: 6
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1487 on: 2019-03-19 21:03:58 »
Sooo that's it! Now I get it..stupid me... stupid mistakes..it was so easy!!! Thank you so much! Really!!

Man you're totally right, I guess I need to :oops:
Ok..so lets start with questions right now..so.. I understand that to have Blank to work I have to use that "General_FieldEntrance = 10" ( and "General_FieldEntrance != 10"  is the one who prevents the rest from appearing while I'm using Blank.. I got it man  8) ), so..for the Plant Brain one it was quite easy because there were already two case to work at...
For the other fields, instead, I guess I'll have to use also variables now... right??


UPDATE:

Also I was wondering... how can I have a second character that follows the Main? I mean..like Beatrix and Steiner at Alexandria while they're fighting the "Mist Monsters"?

For example, at Burmecia I'd like to have Freya that follows Zidane in this case..is it possible?
« Last Edit: Today at 12:10:39 by ToraCarol »

TheHobgoblin

  • Newbie
  • *
  • Posts: 2
  • Karma: 0
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.40b)
« Reply #1488 on: Yesterday at 07:41:03 »
2) Separating the slots of Eiko and Marcus (and Cinna/Quina and Blank/Amarant).
I'll edit this message and write the way to do it later...
Most of the things involved should be in the class "ff9play". The chararcters have several kinds of IDs and the one adding the problem is the "slot_id" or "slot_no". One has to add more "PLAYER_INFO" in the method "ff9play::FF9Play_New" and change all the conversion methods "ff9play::FF9Play_GetCharID2"... There are surely a bunch of other things to do and they need to be done smartly if one doesn't want to change all the field scripts related to Cinna/Blank/Marcus as temporary player characters...

Note: The field scripts are not part of the "Assembly-CSharp.dll" datas but are inside the archive "p0data7.bin" so you can still add HW modifications on top of dnSpy modifications.
If you try to open the modded "Assembly-CSharp.dll" with HW, it will surely crash though, as "rdata" is a key class for HW and it is assumed to have a very specific pattern (plus the total number of spells is hard-coded in HW's source).


Sorry for the late answer.

Well, it seems like Hades Workshop is better for editing the field scripts, and I am not having too much trouble with the command scripts-- even if I were to make a unique command for Blank afterwards, I could always just have Eiko, Beatrix and Dagger all use the same White Magic set instead of each having their own which would free up the necessary space.

But it sounds like what I will want to do is to have two versions of the Assembly-CSharp.dll, an original version I use for script editing and a second version that separates the character slots that I would use when actually playing the game.

Your answers are extremely helpful! Thank you very much.

-----------------------

A little update. I have searched through the DLL and replaced every instance that sets the max slots and max party size from 9 or 8 to 12. I found those values in FF9PARTY_INFO and PLAYER and FF9Shop and PartySettingUI. I also found and changed boolan values nearby those that were set at 8 or 9 to 12 since they seemed to be dictating this too.

Within the FF9 Play I added additional slots in FF9Dbg_SetCharacter, GetCharID2, GetCharID3, Play_Init, and Play_New.

I also wrote in Delete, GetAvgLevel, and SetParty that there are 12 slots to look at rather than 9.

The game starts just fine with all of these changes.

But, oddly enough, and I can't understand why, but if I change the value for max slot ID in FF9Play_Add or FF9Play_Init, then the game refuses to start. It opens up with the FF9 Logo and won't go any further. It doesn't even go to the main menu. I can go back in and change these values back to 9 and it starts up just fine.

What could I possibly be missing here? Because I feel like for the game scripts to work, that FF9Play_Add needs to not ignore slots that are above 9 and the Init needs to load up those additional slots. But even after changing everything else in the DLL, if I change either of those two values then the game freezes immediately. It doesn't even properly crash-- it just hangs on the logo.
« Last Edit: Yesterday at 18:57:05 by TheHobgoblin »