Author Topic: [FF9] General editor - Hades Workshop (0.38)  (Read 128926 times)

DanTsukasa

  • Fast newbie
  • *
  • Posts: 49
  • Karma: 5
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #875 on: 2017-06-28 02:28:04 »
I saw that the software now has a viewer for environment walk meshes, though its a little fiddly at the moment, I was wondering if you have support planned for the cameras too, and exporting the camera+environment to FBX/DAE at all.

Making edits and new sections in outside 3D Software would be faster than in-tool for the majority of areas I'd think.

Tirlititi

  • Insane poster
  • *
  • Posts: 402
  • Karma: 49
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #876 on: 2017-06-28 10:36:05 »
Yep, I'm working a lot on 3D exportation/importation format these days. Not on walkmeshes yet (because they have a few features that are not standard in 3D models so it'll be more tricky), but I'm starting to understand the FBX format.

DanTsukasa

  • Fast newbie
  • *
  • Posts: 49
  • Karma: 5
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #877 on: 2017-06-28 13:17:08 »
I'm curious, how do the walkmeshes differ from anything else?

I always figured they were exactly the same as any kind of mesh, just set to collision and non-renderable ingame, made up of only vertexs and faces the same as everything else.

Is this not the case? If so I wonder why they'd be any different.

Tirlititi

  • Insane poster
  • *
  • Posts: 402
  • Karma: 49
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #878 on: 2017-06-28 15:26:29 »
Walkmesh contains a few informations about "how the objects behave" on each triangles. For instance, there is a data about which kind of step sound should be used when walking on it, or whether it is in the shade or not.

Also, each triangle has specified neighborood to let the characters moving from one triangle to another. Most of the time, that can be computed automatically from the mesh (if there is a common edge or not), but you may want to not make some connections, or on the contrary add connection between distant triangles to make kind of teleporters (though that could be better done by script).

Here's the known walkmesh format so far:
Code: [Select]
struct FieldWalkmeshDataStruct : public ChunkChild {
public:
uint32_t magic_walkmesh;
int16_t unknown1;
int16_t offset_x2;
int16_t offset_z2;
int16_t offset_y2;
int16_t offset_x;
int16_t offset_z;
int16_t offset_y;
int16_t offset_x3;
int16_t offset_z3;
int16_t offset_y3;
int16_t unknown4;
int16_t unknown5;
int16_t unknown6;
int16_t unknown7;
int16_t unknown8;
int16_t unknown9;
int16_t active_walkpath;
int16_t active_triangle;

uint16_t triangle_amount;
uint16_t triangle_offset;
uint16_t edge_amount;
uint16_t edge_offset;
uint16_t animation_amount;
uint16_t animation_offset;
uint16_t walkpath_amount;
uint16_t walkpath_offset;
uint16_t normal_amount;
uint16_t normal_offset;
uint16_t vertex_amount;
uint16_t vertex_offset;

// As many as "triangle_amount"
uint8_t* triangle_unk1;
uint8_t* triangle_stepsound;
uint16_t* triangle_unk2;
uint16_t* triangle_walkpath;
uint16_t* triangle_normal;
uint16_t* triangle_unk4;
uint16_t* triangle_unk5;
uint16_t* triangle_vertex1;
uint16_t* triangle_vertex2;
uint16_t* triangle_vertex3;
uint16_t* triangle_edge1;
uint16_t* triangle_edge2;
uint16_t* triangle_edge3;
uint16_t* triangle_adjacenttriangle1;
uint16_t* triangle_adjacenttriangle2;
uint16_t* triangle_adjacenttriangle3;
int16_t* triangle_centerx;
int16_t* triangle_centerz;
int16_t* triangle_centery;
uint16_t* triangle_unk9;
uint16_t* triangle_unk10;

// As many as "edge_amount"
uint16_t* edge_flag;
int16_t* edge_clone;

// As many as "animation_amount"
uint16_t* animation_flag;
uint16_t* animation_frameamount;
int16_t* animation_framerate;
uint16_t* animation_counter;
int32_t* animation_currentframe;
uint32_t* animation_frameoffset;

// As many as "walkpath_amount"
uint16_t* walkpath_unk1;
uint16_t* walkpath_unk2;
int16_t* walkpath_minx;
int16_t* walkpath_minz;
int16_t* walkpath_miny;
int16_t* walkpath_offsetx;
int16_t* walkpath_offsetz;
int16_t* walkpath_offsety;
int16_t* walkpath_unkx3;
int16_t* walkpath_unkz3;
int16_t* walkpath_unky3;
int16_t* walkpath_unkx4;
int16_t* walkpath_unkz4;
int16_t* walkpath_unky4;
uint16_t* walkpath_triangleamount;
uint16_t* walkpath_trianglelistoffset;
uint32_t** walkpath_trianglelist;

// As many as "normal_amount"
int32_t* normal_x;
int32_t* normal_z;
int32_t* normal_y;
int32_t* normal_overz;

// As many as "vertex_amount"
int16_t* vertex_x;
int16_t* vertex_z;
int16_t* vertex_y;
}

DanTsukasa

  • Fast newbie
  • *
  • Posts: 49
  • Karma: 5
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #879 on: 2017-06-29 07:43:54 »
Walkmesh contains a few informations about "how the objects behave" on each triangles. For instance, there is a data about which kind of step sound should be used when walking on it, or whether it is in the shade or not.

Also, each triangle has specified neighborood to let the characters moving from one triangle to another. Most of the time, that can be computed automatically from the mesh (if there is a common edge or not), but you may want to not make some connections, or on the contrary add connection between distant triangles to make kind of teleporters (though that could be better done by script).

Thats interesting, most modern games do that based on the material assigned, I'd never considered that they might do it based on the polygons themselves, but I suppose Ps1 was better at handling polygons than multiple materials, or so I've heard.


Robo Jesus

  • Cool newbie
  • *
  • Posts: 61
  • Karma: 2
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #880 on: 2017-07-02 01:15:59 »
Hiya!

I have a question. I've been using your Alternate Fantasy mod and I'm very happy with it! The only thing is after beating the game once (with Beatrix of course lol) I decided to make Beatrix and Steiner much more different from each other. Specifically I gave Beatrix access to Quadraslash and took away Stock Break from her and made Shock and Climhazzard skills exclusive to her (I also gave her an "ultimate skill" that's locked behind getting the Excalibur II which I made her ultimate weapon to make up for the fact she doesn't get a Trance).

Now that I solidified Beatrix as a Holy Knight/ Paladin I decided to make Steiner the very opposite of that; a Dark Knight. I've changed a lot of his skills to reflect his new status as a dark knight (with a couple as homage to FFT) but was wondering if it were possible with Hades Workshop to create unique damage/effect formulas?

For example, I'd like to have Steiner required to sacrifice some of his hp with most of his skills, including the non-damaging ones. Is this possible to do?
I believe its possible given the other changes and mods that have been done using this program, but there is no readme's at the moment to explain things.

Like, I just started using this modding tool, and I'm trying to recreate the associated status effects for some magic spells using HadesWorkshop, but once you start looking through the "Effect" descriptions, it starts becoming confusing. Some of the effects state that they can bring with them status effects, but others do not. So "Fire" is a "Magical Attack", but if I want it to have the chance to inflict "Heat", do I need to change the "Magical Attack" to something else like "Bad Status" or "Enemy Attack" or "Apply Effect"? Or can I leave that as "Magical Attack" and just add the status and accuracy to it?

These things are not explained well there with that. :(

Still, given the other changes that have been done, I do believe that what you want to do is possible here with that.  :D


EDIT; Also, it seems that if you mod an iso without first opening up HadesWorkshop on the unmodded iso and letting it create its .hwf file, it prevents you from using HadesWorkshop on the modded iso afterwards. So for those using isos and emulators and wanting to use other mods while modding extra things on top of that, they need to use HadesWorkshop first and get that .hwf file created before anything else. An odd observation I had to point out.


Anyways, I'm enjoying this modding tool immensely, and am having fun messing around with things as I go. :D
« Last Edit: 2017-07-02 03:46:14 by Robo Jesus »

nameokh

  • Pirate
  • Newbie
  • *
  • Posts: 1
  • Karma: -1
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #881 on: 2017-07-09 16:14:07 »
helo, I have a problem with add mods.

I have ff9 for pc, and I think it's not a steam version.

I open the program (hades workshop) load the FF9_Launcher.bin, and I modify some things, weapons, stats, etc. And I save the mod.
It's saved in a raw file. <<I've tried adding .hws>>

No matter what folder I put it, x64, FF9_Data, Managed, Resources, etc.
Even in the same place as hades workshop or the FF9_Launcher.

When playing ff9, the changes do not apply.

What should I do?

thanks ;)


Fraggoso

  • Crazy poster
  • *
  • Posts: 202
  • Karma: 7
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #882 on: 2017-07-09 16:59:57 »
I don't think there's another LEGIT version besides the Steam version.

Meian

  • Newbie
  • *
  • Posts: 1
  • Karma: 0
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #883 on: 2017-07-09 18:37:51 »
When I enable the Steam cheats option in hades Workshop, the game always chrashes, any idea?

The AlternateFantasy mod only works with steam cheats disabled?


Edit: Solved, I was marking the magic sword in cure spells  :P


Sorry if I write something wrong, I'm spanish.
« Last Edit: 2017-07-10 09:35:17 by Meian »

Tirlititi

  • Insane poster
  • *
  • Posts: 402
  • Karma: 49
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #884 on: 2017-07-20 16:23:47 »
Nice to see that you solved your problem without me Meian ^^

Update to v0.38 :
- Updated the UI libraries ; the program opens faster,
- Improved the 3D model exporters (see below),
- Improved the "Preferences" and configuration file:
--- In the "Preferences" window, you can now select the background resolution in order to display/export the backgrounds properly even with a mod. By default, the resolution is 32 but you should set it to 64 if you use Fraggoso's or Meru's HD mod.
--- Most of the options are saved in the "HadesWorskshop.conf" file, meaning that the program remembers when you change the settings.
- Fixed a bug making the world map battle spot changes inefficient for the Steam version,
- Fixed a few bugs with the importation of files in some archives.

The .dll have changed: you need to extract them and you can dump the ones used by the old versions.

So, I am sorry for not making the importer yet but it was a pain to install, learn and use the FBX libraries. You can now export the 3D models in the following formats:
- FBX binary version 7500,
- FBX text version 7500,
- DXF,
- DAE,
- OBJ.
It seems though that only the two FBX versions formats are handled without problem. The OBJ version also works fine but doesn't have any bone or animation.
Blender unfortunatly can't import those FBX files (to my knowledge) and I couldn't find a nice and free replacement for it. Autodesk has everything you need, but it's not free most of the time. You can use FBX Review to see the models (but not edit them) and you can import them in Unity. If anyone knows a free FBX editor (or converter), that would be very nice.

In order to export a 3D model, it's like for the last version: in the Unity Assets Viewer, verify that you have some "Automatically Convert 3D Models" option checked, select a file ".fbx" of type "1 (Game Object)" in one of the archives, and then right-click -> export selection. You can export the models from the archives p0data2 (weapons and battle scenes), p0data3 (a couple of World Map objects) and p0data4 (everything else: characters, accessories, monsters...). You need to export the related textures separatly.
It creates a single .fbx file containing the model + its skeleton + all its animations (most of them are automatically extracted from the p0data5 archive).

The models as they are exported are near complete. They only miss the texture animations (for Sealion's core, for instance (there are few of them)). Also, the material properties are mostly exported as custom properties and they can be ignored by the FBX editors (maybe Unity uses them): it mostly means that you'll see black textures when they should be transparent, which is also fairly rare.
It may also happen, for some reason, that the name of the texture(s) is not found and thus you can't see the textured model. For the FBX text version, you can fix that by opening the model with a text editor and specify the texture's name in the field "Path" of the related "Video" clip. Otherwise, a good editor allows you to select a texture.

The models that are not in the p0data4 archive are upside-down. It seems that everything in the p0data2 and p0data3 archives are upside-down since that's also the case for the textures. Nothing troublesome.

Finally, about the animation speed, it seems that the field models are properly timed but the battle models are twice faster than they should. For what I understood, all the models are timed in 60 fps but since the battles are played in 30 fps, they had to fasten the animations.

That's all there is to know. If you want to help to list the different models' animations, now is the time ^^
I saw that there are more unused animations than I thought: the party members have some unused animations and I saw a couple of enemy models with unused ones as well. All in all, it's very rewarding to be able to see all these animations :D

Next, I will do that model importer. It should take less time since I already have the file formats (both the FBX and the game's internal format). I will also see how the texture animations are made.
« Last Edit: 2017-07-20 19:59:38 by Tirlititi »

Fraggoso

  • Crazy poster
  • *
  • Posts: 202
  • Karma: 7
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.37c)
« Reply #885 on: 2017-07-20 16:40:34 »
Great to see that you're still engaged tirlititi!
Awesome work! :)

vomitrocious00

  • Fast newbie
  • *
  • Posts: 8
  • Karma: 0
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #886 on: 2017-07-20 18:14:35 »
Is it possible to remove Dagger's "failed to concentrate" issue with HW?

Tirlititi

  • Insane poster
  • *
  • Posts: 402
  • Karma: 49
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #887 on: 2017-07-20 18:37:29 »
Yes.
In the panel "Environment -> Fields", search for the field "Blue Narciss/Bridge" near the end of the list (there are 2 of them, select the top one) and click on "Edit Script".
You'll see a list of functions on the top-right of the window: select the "Function Main_Loop". Browse the function's script ; around the middle of that function, you can find these lines:
Code: [Select]
        set Setting_OptionalQuina = 1
        set Setting_DaggerDepresses = 1
        0xDB( 2, 0 )
        0xDB( 7, 0 )
        set Setting_MPx4 = 0
        SetHP( 0, 9999 )
        SetHP( 1, 9999 )
        SetHP( 3, 9999 )
        SetHP( 2, 9999 )
        SetHP( 4, 9999 )
        SetHP( 5, 9999 )
        SetHP( 7, 9999 )
        SetHP( 6, 9999 )
        SetHP( 8, 9999 )
        SetMP( 0, 999 )
        SetMP( 1, 999 )
        SetMP( 3, 999 )
        SetMP( 2, 999 )
        SetMP( 4, 999 )
        SetMP( 5, 999 )
        SetMP( 7, 999 )
        SetMP( 6, 999 )
        SetMP( 8, 999 )
Replace that "set Setting_DaggerDepresses = 1" by "set Setting_DaggerDepresses = 0", then click on "Parse" and then confirm.

Unfortunatly, it's not enough: you need to do the same thing for a few other scripts (the game turns that flag on regularly even if it's supposed to be on already). Search for that line "set Setting_DaggerDepresses = 1" in the following field scripts:
- function "Zidane_54" of the field "Palace/Sanctum",
- function "Zidane_Init" of the field "Esto Gaza/Altar" (1st one),
- function "Eiko_Init" of the field "Gulug/Path" (4th one, right under the "Well").

Covarr

  • Covarr-Let
  • Administrator
  • No life
  • *
  • Posts: 3896
  • Karma: 116
  • The Great Redarr.
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #888 on: 2017-07-20 18:46:10 »
I have ff9 for pc, and I think it's not a steam version.
You don't know what version you have? Where did you get it?

vomitrocious00

  • Fast newbie
  • *
  • Posts: 8
  • Karma: 0
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #889 on: 2017-07-20 20:53:13 »
I can't wait to try it. Thanks, you're the best!!

DanTsukasa

  • Fast newbie
  • *
  • Posts: 49
  • Karma: 5
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #890 on: 2017-07-21 02:42:07 »
Nice update, great work as always.

Tirlititi, I wanted to ask, have you come across the cameras for the environments at all? They don't appear to be located in the same place as the walkmeshes, which is a bit of a surprise.

Tirlititi

  • Insane poster
  • *
  • Posts: 402
  • Karma: 49
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #891 on: 2017-07-21 09:04:18 »
Thanks Dan.
The field cameras are in the same file as the tiling data (what defines the different layers of the backgrounds): the ".bgs.bytes" file (in the p0data1X archives). I should be able to read them properly now. I'll do that for the next update (maybe not export the cameras, but at least use them as the default cameras in the field script window).

vomitrocious00

  • Fast newbie
  • *
  • Posts: 8
  • Karma: 0
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #892 on: 2017-07-22 20:49:49 »
Question regarding Ragtimer. For some reason I keep getting the Final Question wrong regardless if I answer True or False. Where would I look to change those type of values? The version I'm working on kept most of the changes you made to the enemies in your Alternate Fantasy mod. Something else I found curious is he now drops Dark Matter as opposed to the original Protect Ring even tho I changed all of his drops in the Enemies tab, is there somewhere else that needs to be modified as well?

Tirlititi

  • Insane poster
  • *
  • Posts: 402
  • Karma: 49
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #893 on: 2017-07-22 21:37:03 »
The correct/wrong answers are in the functions "True_CounterEx" and "False_Loop". Specifically these lines:
Code: [Select]
if ( 27789 & ( 1 << questionid ) ) {
    set endbattlestep = 6
} else {
    set endbattlestep = 4
}
"endbattlestep = 4" makes the Ragtime Mouse cast its "Correct" reaction while "endbattlestep = 6" is the wrong answer.
The number "27789" encodes the correct/wrong answers as bitflags. If you look at the binary writing, you have:
27789 (decimal) = 0x6c8d (hexadecimal) = 0110 1100 1000 1101 (binary)
That means, reading the binary from right to left, that the questions with ID 0, 2, 3, 7, 10, 11, 13 and 14 must be answered with "False".

Notice that I added a couple of lines right above it for my mod:
Code: [Select]
if ( questionnumber == 16 ) {
    set endbattlestep = 6
} ....
If it's the 16th time that you see the Ragtime Mouse, attacking any of "True" of "False" will be a wrong answer. So what you have is normal: you must do something else to answer the riddle. It's a kind of Epimenides paradox.

For his drop, there's a subtility in his script (schematically):
Code: [Select]
if ( (successrate >= 80) && (successrate < 100) ) {
    ....
    set true[DEFEATED_ON] =$ 1
} else {
    ....
    set ragtime_mouse[DEFEATED_ON] =$ 1
}
So you're getting the drop of the enemy "True", which is a dark matter in my mod until you change it. The Ragtime Mouse drops a dark matter + Exp + Gil.

vomitrocious00

  • Fast newbie
  • *
  • Posts: 8
  • Karma: 0
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #894 on: 2017-07-22 22:09:34 »
Oh cool...hmm it didn't even occur to me to just attack ragtimer, that's a good bit. The last part about his drop, would that be located in one of those functions as well? I'll try this once I get home. Thanks a lot, man! :)

Tirlititi

  • Insane poster
  • *
  • Posts: 402
  • Karma: 49
    • View Profile
Re: [FF9] General editor - Hades Workshop (0.38)
« Reply #895 on: 2017-07-22 22:19:04 »
You're welcome :)
Yes, that last part is in the function "Ragtime_Mouse_Loop".

However, attacking a defensless creepy animally show leader doesn't seem right to me :/