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 - Tirlititi

Pages: [1] 2 3 ... 22
There is no DB_Extractor anymore: everything is done with ffix_img_extr.

There are 14 directories in the .img file, ffix_img_extr extracted them and, for those of type "DB" (Cluster Datas), also extracted the files that were contained in them. The weapon models and sounds are in the files of the directory 9.
Here is the list of what I know for these directories' purpose:
Code: [Select]
Directory1 : 21 files
Directory2 :
  Generic Cluster Datas (charmaps, backgrounds...)
Directory3 :
  Dialog & Text Cluster Datas
Directory4 :
  World Map Cluster Datas
Directory5 :
  Field Cluster Datas
Directory6 :
  Enemy Cluster Datas
Directory7 :
  Battle Scene Cluster Datas
Directory8 :
  Enemy Model Cluster Datas
Directory9 :
  Weapon Model Cluster Datas
Directory10 :
  Music Cluster Datas
Directory11 :
  Party Battle Model Cluster Datas
Directory12 :
  Audio Cluster Datas
Directory13 :
Directory14 :
  Spell Animation Datas
Directory15 :
  Dummy for directory ending

When you ran ffix_img_extr, you had some messages:
"Standart directory." -> the whole directory was extracted as a single file (it doesn't know how to split it into files),
"Files, many files." -> the directory was a Cluster Data and its files were extracted separatly.

If you don't have everything, try running the tool with administrator rights (it may happen that the tool doesn't have the right to create files at some place and it wouldn't pop any error in that case).

There's no tool to compile the files back into the PSX game, unfortunatly.

@lyokoffx: You can't do more precise outlines with Background extraction because it's only in one piece. In the image you showed, the characters are always in front of everything (be it the floor, the back houses or the sky). The outlines are only done with respect to this issue: what is in front and what is in the back. As a consequence, the objects themselves are not always matching these outlines :/

About the img files extractions: now that you have them, you can use the tools of Zidane_2. Most of them ask for the folder where all these files are placed ("00", "01", etc...).

@Deathcrush: No, there is a variable "General_ScenarioCounter" but it is something different from "GetTime".
"General_ScenarioCounter" is a number that increases at various point of the game when the story progress. Typically, when entering a field for the first time (e.g. "Ice Cavern/Exit"), a cutscene triggers and the counter is increased to say that the cutscene was done and shouldn't trigger the next time entering the field.
"GetTime" really returns the in-game time in seconds.

The second part in the script must be in the function "Code3_Init" if I'm not mistaken.

Ah, I don't know then. Last time I checked, I didn't have problems with scripts (the field names are all messed up however).

Hi Moogie.
No idea why this happens. It must be because the script archive got corrupted somehow...
Get back the original file "p0data7.bin". If you go on your Steam's library, right-click on FF9, then "Properties" and then "Local game files -> Check the integrity of game files", it will fastly download a fresh version of all the files that you modified (including "p0data7.bin") and replace the modded files by these unmodded files. You can then use HW on it.

I don't really know why you would want to set the power value of all the spells to 255 at once. That doesn't seem useful at all.
However, for field scripts, I completely agree with you; I would like to add the batch importation of scripts in the future.

But I'm on a break right now with HW so it's not coming anytime soon, sorry.

@Mr.Nona: Yes, I added the jewels in the "extremely rare" items you can get with Hot & Cold. There are other jewels in the other Chocobo places (I think you can get Diamonds, Emeralds and Moonstones; I don't remember if I also added Rubies in one place). Honestly, this change was not long-considered for balancing or other purpose: I only found it funny to imagine a completionist trying to get 99 of those jewels as ultra rare digs. I must admit that the game is quite sadistic against hard completionists and I didn't do anything to make it better ^^'

@Nikkolas: No, I have only tried once to do Oeilvert with Eiko, Vivi and Dagger in vanilla and it wasn't too hard, just more tedious. You can still do some damage with Zidane and rackets. In the mod, I guess it mainly depends on who can access to Clear Headed at this point (if none of them can, then it must be a terribly hard fight).
Taking only one magician is not a problem though. Speedrunners usually take Eiko with them for Ark and that doesn't disadvantage them so much. Valia Pira can be beaten with any party, as both physical and magical abilities are useful in the Desert Palace.

Also, Oeilvert is the point from which you can get dead peppers. It's a very strong damage dealer when doing a lvl1 run (especially in the mod).

Magic Hammer is somehow random: it removes the enemy's MP by a random amount between 0 and its current MP. When repeated several times, it  completely depletes an enemy's MP pool with a quite robust probabilty and independently of his initial Max MP. For the vast majority of the game's enemies, that's the only way to make enemies run out of MP (Lancer can be used to help at the end, but is not efficient enough by itself), which usually makes the fight much easier (well, for Antlion, only his Fira costs MP for instance) but requires a few turns to setup. Personally, I don't find that it worths it, but it is a legit strategy and only a few enemies have a counter-measure against it.

The principle of Magic Hammer works exactly the same in vanilla, Unleashed or in this mod. One should edit the game's battle engine code to mod that effect (or create another kind of attack removing MP) and I didn't do it.

Enjoy your next playthrough :)

1- Ah, so photoshop does not feature multi-layer tiffs...
You can use Gimp (it's a free image tool) to open the tiff layers and export them in another format, but I don't know which one would be suitable for it.
I don't understand what you want to do with the backgrounds... You can, in the "Manage Background" window, untick all the tilesets except for the main one (usually the last) and export it using the option "Export Selected Only" (the two other options are not important in this situation).

5- In command lines, you need to write the paths inside quotes when there are spaces, so it would be something like this:
Code: [Select]
ffix_img_extr.exe "C:\Users\PC\Desktop\Nouveau dossier\ff9.img" "C:\Users\SonyNintendo\Desktop\Nouveau dossier"If you don't have a ff9.img file but only a .bin, you need to use a tool (like CDmage) to extract the .img out of the .bin (Zidane_2's tools is always using the .img).

1- You know that the backgrounds are made with several layers, right? "Merge tilesets" puts everything in a single layer so it decreases the .tiff file a lot. On the other hand, if you don't merge them, you have all the layers and animation frames available in the image file.
"Exporte selected only" will only export the layers (= tileset) that are ticked in the background preview.
"Sort by depth" changes the layers' order in the exported .tiff. By default, the layers are exported with their internal data order, but it won't always display well (because some layers that should be behind are placed on the front when this option is not used).

2- No, I don't know the format of the PSX sounds and Zidane_2 didn't work on it, for what I know.

3- Yes, that was "Game Alphabet", not "Charmap", sorry ^^'
The "000000..." names are a bug. I would fix it eventually but I am on a break regarding the development of HW.

4- I don't know this PSX development kit. There doesn't seem to be a 3D engine included in this kit (there's a project of a 3D game and the guy developped his own 3D engine). So Steam 3D models are not usable and even using the PSX models would not be usable as it is.
But in general, if you have models in one format, it shouldn't be a big wall to have compatibility or to do format conversion. That really doesn't seem to be the hardest part of the work.

5- Satoh explained it very nicely there (and in the following post) and Lein even showed a picture of a similar situation. You can see that the backgrounds are pictures splitted in several layers, some of them being in front and some in the back.

@Kefka: So, you are definitely doing something wrong (or maybe there was a bug in a previous version of HW and I don't remember fixing it and you are still using that old version of HW).

In your .hws file, there was no script update at all. There was only an unconfigured "Abadon + Amdusias" battle and 4 unconfigured "Hecteyes + Ring Leader" battles. When I say "unconfigured", it means that there was no entry added for the new enemy and no change in the "Main_Init" function. The enemy's stats and attacks were properly copied to the new battle and the group was properly setup. However, there was no proper script for him and it lacked its battle animations for some reason.

So you need:
- To do the steps 6) and 7) described there. Maybe you did on your end but shared an old .hws because none of these steps were put in the file you provided (and it cannot just be a bug with the entry: even your "Main_Init" function was not modified).
- To add the animations required to cast spells. The Ring Leader only uses 3 animations: select him, click on "Edit Resources", then "Add Animation" x3 and change them to "Cast Init", "Cast Loop" and "Cast End". Alternatively, changing the enemy's model ID to something else and switching it back will reset the resources (and thus automatically add these 3 animations).

After this fix, it was all good on my end. However, the other battles were you added more enemies (you have battles with 4 Ring Leaders) are not working correctly because you didn't add any "InitObject" line in those battles' script either.

1- For the PSX version, HW can't show these "avatar" and "dialog box" images indeed. I don't know if I will ever add them. I think that one of Zidane_2's tools can extract all the images of the game though... But they are not easy to use.

2- I didn't understand all of your question, but "File Batching -> Export Field Backgrounds" and "Manage Background -> Export" are nearly the same.
In "Manage Background -> Export", you can preview what you will export and choose if you want to export only the selected layers (if you export all the layers, you will see all the frames of the windmills' wings on top of each others).
In "File Batching -> Export Field Backgrounds", you can export quickly a large number of backgrounds.

Apparently, the latest versions of HW have some problem with the PSX japanese version of the game, because you should have the names of the fields instead of those "0000000000..." things. You should go to "File -> Preferences -> PSX -> Charmap -> Japanese" when using the PSX japanese version of the game in order to display texts properly.

"Opening-for-FMV" is the name of one field (it's an empty field that is the first one to be used when the player hits "New Game" and its main purpose is to launch the opening FMV before switching to the "Prima Vista/Cargo Room").

Yes, I can try to take a look at your .hws file (on this week-end, surely).
Maybe you can write this in your new enemy's "loop" function:
Code: [Select]
SetTextVariable(0, FirstOf(SV_FunctionEnemy[ATB]))
BattleDialog( X )
Wait( 1 )
...where the battle dialog X is a "[NUMB=0]" message. You should at least see if the loop function runs and if the enemy's ATB fills up.

Hum... This entry type turning to 255 is strange.
Your script should be fine. Did you put an "allocate 32" or higher? Since you're using a variable uint8_31, you need to allocate at least 32 bytes to local variables ; anyway even without, it should do something.
Maybe your new enemy has the flag "Link" in the "Group" datas, in which case you should remove it.
Or maybe you forgot to add a "InitObject" in the Main_Init function?

1- Most of the UI sprites are in the archive "Shared -> sharedassets2". You'll find there the avatars ("Face Atlas"), the icons ("Icon Atlas"), the sprites for the dialog boxes ("Gray Atlas" and "Blue Atlas"), etc...
For the PSX version, there are a lot of these sprites (but far from everything) in the two first sections of the "Environment -> Texts" panel.

2- I don't really get what you are talking about. If it's about the fields' backgrounds, they can be previewed in the "Environment -> Fields" panel and exported as images (both individually and altogether using "Manage Backgrounds -> Export" or "File Batching -> Export Field Backgrounds").
It came to my attention that exporting the backgrounds with file batching crashes if you don't untick the field "Opening-for-FMV". You should look for it toward the top of the list (it's the 21st of the list) and untick it when using File Batching.

Backgrounds are a custom format specially for the game. Except for the image compression, it uses the same format in the PSX and Steam versions. They are mostly 2D but there is a notion of depth allowing it to exist in a 3D environment.

@lyokoffx: Yes, HW can extract the sounds and musics (of the Steam version, not PSX) through the Unity Assets Viewer.
The musics are in the archive p0data61 and the other sounds are in the archives p0data62 and p0data63. I indexed the musics so the info box tells you which file corresponds to which music, but I didn't do it for the sounds, except for these battle sounds you're looking for. They are in the archive p0data62 (in the "Infos", you'll find descriptions like "soundeffect Battle Sound Knight Sword Slash" or "soundeffect Battle Sound Charge & Fist"...).

@Kefka: Exactly, dnSpy really deals with the source code of the game and you can change pretty much everything provided you spend enough time for it. For Flare Star's effect to never miss, you should indeed remove the lines related to accuracy, even the "if" block:
Code: [Select]
case 99: // Flare Star
            cALC_VAR.tg_flags |= this.CALC_FLAG_MISS;
            cALC_VAR.tg_hp = (short)(target.level * cmd.aa.Ref.power);
Also, that's an error from my end: it shouldn't display "this.CALC_FLAG_MISS" but "this.CALC_TGFLAG_HP" instead, because that's not the "miss" flag that is turned on but the "deals damage to target" flag. I fixed it.
It's just a number "1" anyway inside the dnSpy code.

PS: Since the last HW update, you can select "Unused XXX" in the list of spell effects. This allows you to code a completely new spell effect (deals damage to the target and heals caster's MP, to give a random example) without replacing any other. You just need to add a "case XXX" to this method in dnSpy.

I didn't remember at all this play with the name! Sorry for making you fail that question because of it...
There are a lot of "c" -> "k" changes in the names, in the french translation and not so many "g" -> "j" changes.

No problem.
And yes, that's me.

@lyokoffx: Ok nice. It's weird that you need administrator rights to allow HW to create a file but okay.

1- The only "missing" models are the spell special effects (they are inside the files "efXXXX" in the resources.assets but in a PSX format that I don't know) and the fact that some models (typically the World Map) are splitted into pieces. For the rest:
- p0data2 contains the weapon models (".../battlemodel/6/") and the battle scenes (".../battlemodel/battlemap_all/"),
- p0data3 contains the World Map terrain (".../worldmap/prefabs/.../block....prefab") and the World Map structures/effects (".../worldmap/effectmodels/" and ".../worldmap/prefabs/effects/"),
- p0data4 contains pretty much all the field models ("assets/resources/models/") and battle models of the enemies and characters (folder "3" of the models); the related animations are in p0data6 (they are automatically used when you extract a model from the p0data5 archive).
There are also some special effects on the field or on the world map (I think they are called "SPS") in p0data1X archives. I'm not sure if they really are 3D models though.

2- For the PSX version, you can extract only the Battle Scenes as wavefront 3D models (.obj) using HW.

3- No. The references to GameObjects and such are because the game was developped using Unity. It's not HW's terminology to begin with.

@DracoMoye: This error log doesn't tell me anything interesting unfortunatly :/
Can you get a bit more precise on what you do before the program crashes? Do you see the preview of your .bmp images in the Background Editor? Is it when you click on "Apply" in the "Converter" panel that it crashes or right after selecting the .bmp file? You should maybe try to convert your .bmp into other image formats (if I recall correctly, PNG, TGA and TIFF should be ok). The .bmp formats are actually very diverse and maybe you're using a version that is not compatible.

@Kefka: No problem. Well done going this far (you did most of the job).
For the errors, they are caused by dnSpy but they are not problematic: you just need to write the type conversion yourself when these errors pop. For instance, if the line "byte x = 5;" gives an error, change it to this:
Code: [Select]
byte x = (byte)5;It's sometimes a bit more complicated, like "byte x = intvalue1 + intvalue2;" in which case you must also add parentheses around what needs to be converted:
Code: [Select]
byte x = (byte)(intvalue1 + intvalue2);What I personally do is that I create a .txt file in my mod's folder named after the class/method I edit and I put the code (and its modifications) in that file. This way, I only have to "Select All + Copy + Paste" when I change it (otherwise, I'd need to write these type conversions everytime because dnSpy doesn't register them after compilation).

For the Darkside and Lancer effects, you need to add the line after the "at_pow" variable is set (it's usually in the "Setup..." call but sometimes it's directly in the "case" code) and before it is used (again, it's usually in the "DoSetDamage..." but sometimes it's directly in the "case" code). So for Lancer and Darskide, you need to add "btl_calc.CalcSub_15E(cALC_VAR);" before that one:
Code: [Select]
if (cALC_VAR.at_pow - cALC_VAR.df_pow > 0)

Try to right-click on HW (the program's .exe) and select "Run as administrator", it should fix the problem.
But then again, "NoName" files are not interesting for 3D models and that's not what you want to export.

You're welcome, Vomitrocious :)

@lyokoffx: So, this error means that the program couldn't save the file on your hard drive. Most probably, it can be because there is already a file "NoName10400" at this place and it is used by another program. It could also be because your OS denies the right to HW to create files there (but that'd be strange because you would have seen it with other files).
However, "NoName10400" is not a 3D model anyway. In order to extract a 3D model, you need to select a named file with the extension ".fbx" and file type "GameObject" (example: "Resources/Assets/1/133/133.fbx"). That's not the most intuitive process, but these are the root files of the 3D models in the archives so that's how it works...

The 3D model importation doesn't work correctly unfortunatly.

@Kefka: That's strange :/
1) If you export those meta-data files again after this manipulation, are the changes still there? If not, you are not importing things correctly (though I don't really see how ; you would see if there was a problem).
2) Maybe you edited the game files of your backup folder? The important folder is the one named "FINAL FANTASY IX" in Steam's folder. I think that it's those files that are used even if you execute the "FF9_Launcher.exe" of a copy placed in a totally unrelated folder.

EDIT: I forgot to answer about the field's "main_reinit" but fortunatly, Incinerator's answer is better than what I could have said (I never tried to add new encounters in fields without them). "XXX_reinit" is indeed a function called after a battle ends.

@Little Cloud: The resources.assets file is an Unity archive and it can be opened with a few tools available on the internet.
Hades Workshop can also open it a bit more conveniently: go to "Tools -> Unity Assets Viewer" and open the FF9_Launcher.exe in this tool. From there, you can access to all the Unity archives of the game. The resources.assets is in the list "Archive -> Shared Assets -> Resources".

It contains pretty much all the texts of the game (that's why HW generates a new one when exporting as Steam mod), card datas, spell animation datas, copies of the PSX world map chunk, a few images (though most interesting images are in the "sharedassets2" archive), some meta-data files like the one discussed above, etc...

Contrary to what happens when you open the datas within the main frame of HW, the changes you will make on the archives ("right-click -> import selection") will apply directly on the archives and replace them on your hard drive, instead of letting you doing it yourself.

@vomitrocious00: That's a big unknown for me. You can find there a discussion on this encounter rate. I must be missing something because there doesn't seem to be a big difference between the way random encounters are coded in the Steam version compared to the description that SoftReset did on the PSX mechanics. There is no doubt that the encounter rate is lower on Steam though... So either a little change in the mechanics is enough to produce that effect, or I didn't catch a condition to launch a random encounter that would have been added for Steam.

If you want to adjust numbers inside the code to increase the encounter rate, it's in the method "ProcessEncount" of the class "EventEngine". You can edit it in HW in the "CIL Code" panel, but it is much more convenient and safer to use the tool dnSpy as it allows to edit the source code in C# and not the assembly code in CIL. I don't know what to change in order to get the exact same encounter rate as the PSX version.
There are also random encounter rates inside the Field scripts but they are the same between PSX and Steam version and it would be uselessly tedious to change them for each field.

Hi Rasca, I'm glad that you like it.

I am sorry for the steals but you got unlucky: the steal rate has not been reduced and it was even increased for Beatrix's rare steal (her 1st encounter) as it was changed from a super-rare steal 1/256 to a rare steal 16/256. I did the same change for the Fairy flute of Hilgigars.
It is still a big matter of luck. I also used to steal things pretty easily (I didn't even notice the Fairy flute was so hard before 5 or 6 playthroughs) but it can really get long indeed. I would have liked to change the mechanics to avoid it (like giving a limit to the number of fails) but it is not implemented for now.

No: as you can see from the format of the "BtlEncountBGMMetaData.txt", the battle musics are not linked by "1 Battle -> 1 Music" but rather by "1 Field + 1 Battle -> 1 Music". So you need to add a line for your new battle (or, more precisely, to your new use of a battle inside a field) inside this .txt file.

No sound code needs to be added in the field script.

No, it's determined in a couple of .txt files of the "resources.assets" archive. The files are called "BtlEncountBGMMetaData.txt" (for battles on the field) and "WldBtlEncountBGMMetaData.txt" (for battles on the map).

The files present like this :
Code: [Select]
  "ID of Field": {
    "ID of Battle in the Field": "ID of Battle Music",
Battles have the music ID "0" (for normal encounters), "35" (for bosses) and "111" (for Hunter's Chance). Some battles are not registered in these files, when they don't stop the music played in the field (the "Don't Stop Music" battle flag is also checked for them in the "Enemy" panel).

The stat system itself has not been changed. However, I made some tweaks related to it: a few forced battles don't give exp anymore and ultimate weapons all give very good stat boosts. I am afraid that if you're both a perfectionist and annoyed by lvl1 playthroughs, that will be a pain to you ^^'

I swaped a few items' location, but didn't add or removed any chest. There are a few less Protect Rings obtainable with the end game sidequests (they have been replaced by other rewards) but you can still get them from the Hot & Cold minigame. Also, the blue magics are not given by the same monsters as before, but they are all available during the end game. Making a documentation is kind of opposite to what I am aiming with the mod: making the player try and seek for things he would have not bothered with in vanilla because he knows the game by heart.

No, I don't plan on making any other CIL macro.

Pages: [1] 2 3 ... 22