Jump to content

KURO NO KISEKI mod


Recommended Posts

2 hours ago, woofhat said:

Why don't you do a Google search?


HAJIMARI NO KISEKI is PhyreEngine engine.


KURO NO KISEKI is changed to Source Engine.

 

source engine you say? did you read what you wrote in your own post? you said they replaced source implying they replaced it with something else which you clearly contradicted in your response to me and source is not kuro engine mate. it doesn't have a name yet.

Link to comment
8 hours ago, woofhat said:

THE LEGEND OF HEROES: KURO NO KISEKI is already on steam.


This time Falcom replaced the Source Engine, and it looks the quality has improved, though only a little.


At the moment it looks like the model and texture files are encrypted and compressed, so it's impossible to modify them before we have modding tools.
Probably not in the future, unless someone willing to do this work.


Fortunately 3dmigoto is still available, though.


@amorrow28 has written the tutorials for making mods that you can learn from.
https://www.loverslab.com/topic/166239-trails-of-cold-steel-4-mod-request/?do=findComment&comment=3820095


So guys, you can take action and make your own mods now!

 


 

I'm so sad about the engine change - I was really hoping all my tools would be useable. I took so many notes in porting the CS4 camera script to Hajimari and CS3... oh well, I made the TXe one from scratch, I guess I can do it again. (Well except for the movement algorithm, but that's the same for just about every game unless rotation is done with quarternions.)

 

Still, I can see you have already managed asset injection! I was really counting on that to have access to different models without actually having to play the game. Is it a similar process to Hajimari?

 

Sadly I won't have access to the game for another day, poorly-timed vacation...

Link to comment
6 hours ago, amorrow28 said:


 

I'm so sad about the engine change - I was really hoping all my tools would be useable. I took so many notes in porting the CS4 camera script to Hajimari and CS3... oh well, I made the TXe one from scratch, I guess I can do it again. (Well except for the movement algorithm, but that's the same for just about every game unless rotation is done with quarternions.)

 

Still, I can see you have already managed asset injection! I was really counting on that to have access to different models without actually having to play the game. Is it a similar process to Hajimari?

 

Sadly I won't have access to the game for another day, poorly-timed vacation...

I don't know if changing engines will affect to do camera scripts.

 

After all, I don't know anything about CE. Although I tried to learn, it was still very hard for me.

 

As for making mods, we can still use the tools you made to merge/split VB files, just need modified the dumped files. In general, there is no major difference with the previous.


As for replacing costumes and characters, I couldn't find the name table, so I had to try one by one. It is said that CLE encrypted it.


The replacement method is very simple, directly change the name of the file can be, do not use the script to modify the file. Maybe this is the benefit of changing the engine.?


For example, if you want to replace Van (initial costume) with Agnes (Bath Towel), just rename chr5001_c02.mdl to chr5000.mdl ,and chr5001_face.mdl to chr0000_face.mdl ,then replace the original file.

Link to comment
7 hours ago, woofhat said:

I don't know if changing engines will affect to do camera scripts.

 

After all, I don't know anything about CE. Although I tried to learn, it was still very hard for me.

 

As for making mods, we can still use the tools you made to merge/split VB files, just need modified the dumped files. In general, there is no major difference with the previous.


As for replacing costumes and characters, I couldn't find the name table, so I had to try one by one. It is said that CLE encrypted it.


The replacement method is very simple, directly change the name of the file can be, do not use the script to modify the file. Maybe this is the benefit of changing the engine.?


For example, if you want to replace Van (initial costume) with Agnes (Bath Towel), just rename chr5001_c02.mdl to chr5000.mdl ,and chr5001_face.mdl to chr0000_face.mdl ,then replace the original file.


I have another question. When I dump frames, the vertex semantic names are all in Unicode (I’m guessing Chinese but I haven’t checked). How did you get around this? I can update my scripts to decode Unicode properly, but does Blender import buffers with Chinese or Japanese semantic names?

 

(sorry, I know I could figure it out by manually combining buffers like I did when I first wrote the scripts, but that will take a very long time just to find out if blender will refuse to import the mesh.)

 

BTW I was curious to see if Falcom based their new engine off phyreEngine, but my simple AOB scans did not work. I think I’ll have to make the camera script the hard way. This is unfortunate, I could probably beat the game in less time than it takes to make a camera script.

Link to comment
1 hour ago, amorrow28 said:


I have another question. When I dump frames, the vertex semantic names are all in Unicode (I’m guessing Chinese but I haven’t checked). How did you get around this? I can update my scripts to decode Unicode properly, but does Blender import buffers with Chinese or Japanese semantic names?

 

(sorry, I know I could figure it out by manually combining buffers like I did when I first wrote the scripts, but that will take a very long time just to find out if blender will refuse to import the mesh.)

 

BTW I was curious to see if Falcom based their new engine off phyreEngine, but my simple AOB scans did not work. I think I’ll have to make the camera script the hard way. This is unfortunate, I could probably beat the game in less time than it takes to make a camera script.

What I see is garbled characters. As for how I solved this problem, of course, guess it. There are just a few values, just try them one by one.

 

vb0 is POSITION
vb1 is NORMAL
vb2 is TANGENT
vb3, vb4, vb5 are TEXCOORD, and the values are the same, just take one.
vb6 is BLENDWEIGHTS
vb7 is BLENDINDICES

 

In addition to the semantic name, other places also have garbled characters, I used Notepad to modify them. Of course, if you can update your script, it will be more convenient.

 

Making a camera script is not a problem, you can play the game slowly, or play the game more than once.?

 

However, the game engine was changed to Valve's Source Engine, which is an encrypted and modified version. I tried other Source Engine modding tools, but they did not work at all.

 

Link to comment
2 hours ago, woofhat said:

However, the game engine was changed to Valve's Source Engine, which is an encrypted and modified version. I tried other Source Engine modding tools, but they did not work at all.

 

what even gave you that idea? how is the engine even remotely close to source? engine is created by falcom it's a new engine and kuro is the first game to use it

Link to comment
6 hours ago, woofhat said:

What I see is garbled characters. As for how I solved this problem, of course, guess it. There are just a few values, just try them one by one.

 

vb0 is POSITION
vb1 is NORMAL
vb2 is TANGENT
vb3, vb4, vb5 are TEXCOORD, and the values are the same, just take one.
vb6 is BLENDWEIGHTS
vb7 is BLENDINDICES

 

In addition to the semantic name, other places also have garbled characters, I used Notepad to modify them. Of course, if you can update your script, it will be more convenient.

 

Making a camera script is not a problem, you can play the game slowly, or play the game more than once.?

 

However, the game engine was changed to Valve's Source Engine, which is an encrypted and modified version. I tried other Source Engine modding tools, but they did not work at all.

 

 

You are right, the names are pure garbage.  They are not even the same from mesh to mesh; 3DMigoto is not properly parsing the metadata.  I don't see an obvious pattern, so I don't know if my script can be updated to automatically parse an entire folder of dumps.  The best idea I have right now is to look through dumps and see if I can make a database of garbage names.

 

1216770875_2022-07-2910_12_35-________.png.7cb931b19fb2091f5fd2f314c780a215.png

 

a00000 - inject kuro model.py

 

Anyway, I made a version of my model injector for Kuro (also available on github).  It is used identically to my CS3/CS4/Hajimari script, and should be easier / safer than manually editing files since it makes sane backups.  (Although I make the same warning as I did in the CS4 page - you should know what you're doing and I provide no support for asset injection tools.)

 

Instructions: (same as on the CS4 page)
 

Spoiler

Execute a00000 - inject kuro model.py.  It asks for the source .mdl, then it asks for the target .mdl.  It will make a backup of the target, and then push the source into the target.  If there is a backup of the source, it will always use the backup to inject.  This means: 1. As long as you only use my tool instead of editing your own files, your original files are safe, 2. You can do easy swaps (inject A->B and then B->A will result in a swap, because it will always use the backup original of B to inject), and 3. You can restore the original model by injecting into itself (inject A->B and then B->B will restore B to original, because again it will always use the backup original of B to inject).  It will never overwrite the first backup, so you can literally do A->B, C->B, D->B, and then B->B and you will still end up with B.

 

NOTE: The injector expects the target to already exist and will refuse to inject into a new file.  This is for two reasons: 1. so that it can make a backup, and you won't be confused on re-injections, and 2. to prevent confusing you if you make a spelling mistake (since it wouldn't otherwise cause an error).

 

Link to comment
3 hours ago, woofhat said:

Never seen a person as persistent as you.

 

A small game corporation with less than 60 people making their own game engine, are you telling jokes?

 

I'm not interested in arguing with you about this boring topic, stop it.

this is not even arguing at this point it's just you refusing to back down and admit you're wrong. either way I'm done too,

Link to comment
On 7/29/2022 at 2:26 PM, ms0082483 said:

https://i.imgur.com/xfgJ15y.jpg

 

Is there a mod that simply takes off the skirt?

 

Yes, yes there is.

 

80882249_2022-07-2916_52_56-Window.png.be183554e93417fbeca399c51a948468.png

 

NEW VERSION 1.3: https://www.loverslab.com/topic/194614-kuro-no-kiseki-mod/?do=findComment&comment=3854533

 

Version 1.2b: https://www.loverslab.com/topic/194614-kuro-no-kiseki-mod/?do=findComment&comment=3837721

 

Version 1.2a: https://www.loverslab.com/topic/194614-kuro-no-kiseki-mod/?do=findComment&comment=3832346

 

Version 1.1: https://www.loverslab.com/topic/194614-kuro-no-kiseki-mod/?do=findComment&comment=3827242

 

Kuro_UnSkirtMod_v1.0_with_3Dmigoto_1_3_16.7z - OBSOLETE

 

Here is the first (very preliminary) release of UnSkirt Mod for Kuro no Kiseki!  I barely have my tools working, so for now only the default costumes for Agnes, Risette, Feri and Judith, plus two more for Agnes.  I plan to do more as time and interest permit, but I don't have access to the character viewer so I have to do things by injection and it's tedious.  If someone can get all the costumes, beat the game, and post a save file, I'd really appreciate it!

 

I'm hoping other modders will use this configuration of 3DMigoto please, that way I don't need to keep writing compatibility wrappers for other people's mods.

 

If your controller doesn't work, try turning off Steam Overlay.  If it still doesn't work, honestly, I don't know.  Half the time my controller doesn't work, so I quit and restart and it does.

Edited by amorrow28
Link to comment

To @woofhat and my fellow modders:
 

Quote

 

I managed using woofhat's information to figure out how to adapt my vertex buffer merge tool.  It is not elegant, but it works.  At this point, I have used it (and fixed it) enough times to be reasonably confident that it works.

 

Upload removed, grab new version here: https://www.loverslab.com/topic/194614-kuro-no-kiseki-mod/?do=findComment&comment=3825578

 

As usual, the latest version is on my github.

 

It only properly works on buffers that are split into 8 (vb0-vb7) with redundant vb4/vb5.  It completely ignores all the header information and copies in a generic header, and skips all the corrupted semantic titles.  It also skips vb4 and vb5 entirely.  Because of the way I use searching (to minimize errors), the script is SLOW.  I definitely advise only running it on maybe 5-10 meshes at a time.  And currently, it will not work on meshes with only 7 or 6 files instead of 8.

 

In terms of reassembling, my current vb_split works fine.  Just expand vb3 to cover vb4 and vb5, and use vb4 for vb6 and vb5 for vb7.  For example, this:

 

;[TextureOverride_agnes_sweater]
; *** Texture hash needs to be filled in below
;hash = 9a9ee6ff
;vb0 = Resource_Model_agnes_sweater_VB0
;vb1 = Resource_Model_agnes_sweater_VB1
;vb2 = Resource_Model_agnes_sweater_VB2
;vb3 = Resource_Model_agnes_sweater_VB3
;vb4 = Resource_Model_agnes_sweater_VB4
;vb5 = Resource_Model_agnes_sweater_VB5
;ib = Resource_Model_agnes_sweater_IB
;handling = skip
;drawindexed = auto

 

should become this:

 

[TextureOverride_agnes_sweater]
hash = 9a9ee6ff
vb0 = Resource_Model_agnes_sweater_VB0
vb1 = Resource_Model_agnes_sweater_VB1
vb2 = Resource_Model_agnes_sweater_VB2
vb3 = Resource_Model_agnes_sweater_VB3
vb4 = Resource_Model_agnes_sweater_VB3
vb5 = Resource_Model_agnes_sweater_VB3
vb6 = Resource_Model_agnes_sweater_VB4
vb7 = Resource_Model_agnes_sweater_VB5
ib = Resource_Model_agnes_sweater_IB
handling = skip
drawindexed = auto

 

Also, 5001 = Agnes, 5003 = Feri, 5005 = Risette, 5007 = Judith.  I haven't explored the rest yet.

 

 

Edited by amorrow28
Link to comment
29 minutes ago, amorrow28 said:

 

Yes, yes there is.

 

80882249_2022-07-2916_52_56-Window.png.be183554e93417fbeca399c51a948468.png

 

Kuro_UnSkirtMod_v1.0_with_3Dmigoto_1_3_16.7z 5.95 MB · 2 downloads

 

Here is the first (very preliminary) release of UnSkirt Mod for Kuro no Kiseki!  I barely have my tools working, so for now only the default costumes for Agnes, Risette, Feri and Judith, plus two more for Agnes.  I plan to do more as time and interest permit, but I don't have access to the character viewer so I have to do things by injection and it's tedious.  If someone can get all the costumes, beat the game, and post a save file, I'd really appreciate it!

 

I'm hoping other modders will use this configuration of 3DMigoto please, that way I don't need to keep writing compatibility wrappers for other people's mods.

 

If your controller doesn't work, try turning off Steam Overlay.  If it still doesn't work, honestly, I don't know.  Half the time my controller doesn't work, so I quit and restart and it does.

 

I found a savedata on the Internet, you can try it.

user.dat

Edited by 374146526
Link to comment

It is said that someone on Discord has found the encryption key of the game and cracked some files.
Unfortunately, I don't know which server and channel it is. Maybe someone knows?

 

But I got the decrypted t_name.tbl and based on it I compiled a character list (I spent almost an hour on it?) ,and now you can replace the characters in the game based on it.

name.txt

Link to comment

  

1 hour ago, amorrow28 said:

 

Yes, yes there is.

 

80882249_2022-07-2916_52_56-Window.png.be183554e93417fbeca399c51a948468.png

 

Kuro_UnSkirtMod_v1.0_with_3Dmigoto_1_3_16.7z 5.95 MB · 9 downloads

 

Here is the first (very preliminary) release of UnSkirt Mod for Kuro no Kiseki!  I barely have my tools working, so for now only the default costumes for Agnes, Risette, Feri and Judith, plus two more for Agnes.  I plan to do more as time and interest permit, but I don't have access to the character viewer so I have to do things by injection and it's tedious.  If someone can get all the costumes, beat the game, and post a save file, I'd really appreciate it!

 

I'm hoping other modders will use this configuration of 3DMigoto please, that way I don't need to keep writing compatibility wrappers for other people's mods.

 

If your controller doesn't work, try turning off Steam Overlay.  If it still doesn't work, honestly, I don't know.  Half the time my controller doesn't work, so I quit and restart and it does.

 

thank you for your help!

but I seem to be a bit of a bottleneck
don't know how to use these tools

 

In addition to the protagonist group, other NPCs can also
I think it's great
https://imgur.com/a/ZzNRq87

chr0000 ヴァン
chr0002 アーロン
chr0004 カトル
chr0006 ベルガルド
chr5001 アニエス
chr5003 フェリ
chr5005 リゼット
chr5007 ジュディス
chr5110 エレイン
chr5112 フィー
chr5114 レン
chr5117 シズナ
chr5118 ルクレツィア
chr5113 リーシャ
chr5300 ナージェ
chr5302 セリス
chr5316 アシェン
chr5320 カエラ
chr5317 サアラ
chr5318 シャヒーナ
chr5315 ニナ
chr5319 エスメレー
chr5322 キリカ
chr5311 ユメ
chr5314 ハル

Edited by ms0082483
Link to comment

@woofhat

 

renne_comparison.png.f72d3f4b11c56e59f8e3ff95c48e2272.png

 

So I've come across a strange problem.  There are some meshes where the three TEXCOORD buffers are different.  Using our technique of discarding the second and third copies resulted in an unuseable model (left), as you can see.  I was only able to come up with one workaround, which is to make the same mod three times, once with the first TEXCOORD, then the second, then the third.  Then I use the TEXCOORD from the first one as vb3, the second becomes vb4, and the third is vb5.  The picture on the right is the result - still not correct, but better (the logo on the chest is still a mess).  I'm out of ideas at the moment, and I am going to move on.

 

Anyways, in order to change which of the three TEXCOORDs is used, go to line 33 of kuro_vb_merge.py and change

    with open(vb_filenames[3], 'rb') as f:

to

    with open(vb_filenames[4], 'rb') as f:

or

    with open(vb_filenames[5], 'rb') as f:

 

If you or anyone knows the solution, I'd love to hear it.

Link to comment
3 hours ago, amorrow28 said:

@woofhat

 

renne_comparison.png.f72d3f4b11c56e59f8e3ff95c48e2272.png

 

So I've come across a strange problem.  There are some meshes where the three TEXCOORD buffers are different.  Using our technique of discarding the second and third copies resulted in an unuseable model (left), as you can see.  I was only able to come up with one workaround, which is to make the same mod three times, once with the first TEXCOORD, then the second, then the third.  Then I use the TEXCOORD from the first one as vb3, the second becomes vb4, and the third is vb5.  The picture on the right is the result - still not correct, but better (the logo on the chest is still a mess).  I'm out of ideas at the moment, and I am going to move on.

 

Anyways, in order to change which of the three TEXCOORDs is used, go to line 33 of kuro_vb_merge.py and change

    with open(vb_filenames[3], 'rb') as f:

to

    with open(vb_filenames[4], 'rb') as f:

or

    with open(vb_filenames[5], 'rb') as f:

 

If you or anyone knows the solution, I'd love to hear it.

 

About the TEXCOORD, I didn't anticipate that this would happen and it was an oversight on my part. It is also easy to have 3 TEXCOORD at the same time. I can't read your script, so I'll post a sample, just merge the files like this.000168.7z

 

About the picture distortion, I'm not sure if you modified the texture.

It seems that the UV is flipped up and down from before. My solution is to flip the texture up and down again. 
But it seems you can set it in blender too.

1.png.b5056f6e37604a5d65e39fe9719c623d.png
You can try to unselect this option when importing the files.

 

Link to comment

I'm trying to replace the body mesh on chr5003_c02 (Feri's bathing clothes) but there's a problem somewhere in my process. Injecting the default body mesh from the frame dump back into the game without any modifications turns Feri into a gundam:

image.png.23d6c0aa43c93a75dcdcfb282157f998.png

 

I have the .ini setup as such:

[TextureOverride_FeriBody]
hash = 1f83ad80
vb0 = Resource_Model_Feri_VB0
vb1 = Resource_Model_Feri_VB1
vb2 = Resource_Model_Feri_VB2
vb3 = Resource_Model_Feri_VB3
vb4 = Resource_Model_Feri_VB3
vb5 = Resource_Model_Feri_VB3
vb6 = Resource_Model_Feri_VB4
vb7 = Resource_Model_Feri_VB5
ib = Resource_Model_Feri_IB
handling = skip
drawindexed = auto

 

I didn't edit the mesh at all so I'm confused as to why it's broken. I merged the files from the frame dump, imported them into blender and then immediately exported the mesh as vb/ib. I'm wondering if there's some setting in Blender that's breaking my models during export/import, or if it's the split script that isn't working properly. If someone wants to take a look at it, the "mod" is here, along with the merged buffers: broken.zip

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use