Jump to content

Recommended Posts

Posted

According to what I read you need Cethleann to unpack everything and then Noesis and Quickbms but I can't unpack anything because Cethleann doesn't work for me, I tried all the releases and nothing works. I know there are people who have done it but the little info I found it's from here and it doesn't help me at all. So if someone can give me a little push in the right direction that would be nice

  • Engineers
Posted
13 hours ago, roamasterrace said:

According to what I read you need Cethleann to unpack everything and then Noesis and Quickbms but I can't unpack anything because Cethleann doesn't work for me, I tried all the releases and nothing works.

Stop whining and tell what you tried exactly?

Quote

I know there are people who have done it but the little info I found it's from here and it doesn't help me at all.

Maybe give a link? Did you read here or  here?

Which sample did you try?

  • Members
Posted (edited)

To find g1t files (if you have found the g1m file of the model that you wish to edit) Download eArmada8's fdata tools from here: https://github.com/eArmada8/yumia_fdata_tools
Scroll down to the KTID Tools section for a guide on how to use. The process goes yumia_find_kidsobjdb_using_g1mhash.py to yumia_decode_kidsobjdb.py to yumia_find_ktid_with_kidsobjdb.py to yumia_decode_ktid_with_kidsobjdb.py.

source Rise of the Ronin Mod Loader at Rise of the Ronin Nexus - Mods and community

Once you’ve completed all the steps above, you can use Cethleann to automatically pack the textures.
Run the following command:
Nyotengu.KTID.exe "path\CharacterEditor.kidssingletondb.kidsobjdb" "path\g1t" "path\CharacterEditor\ktid\(ktid name that shown on script).ktid"
Note: Some paths might differ, as I’m doing this on F/SR instead of Wo Long.

Edited by kurokozeref
  • 2 weeks later...
Posted (edited)
On 10/31/2025 at 4:01 PM, kurokozeref said:

To find g1t files (if you have found the g1m file of the model that you wish to edit) Download eArmada8's fdata tools from here: https://github.com/eArmada8/yumia_fdata_tools
Scroll down to the KTID Tools section for a guide on how to use. The process goes yumia_find_kidsobjdb_using_g1mhash.py to yumia_decode_kidsobjdb.py to yumia_find_ktid_with_kidsobjdb.py to yumia_decode_ktid_with_kidsobjdb.py.

source Rise of the Ronin Mod Loader at Rise of the Ronin Nexus - Mods and community

Once you’ve completed all the steps above, you can use Cethleann to automatically pack the textures.
Run the following command:
Nyotengu.KTID.exe "path\CharacterEditor.kidssingletondb.kidsobjdb" "path\g1t" "path\CharacterEditor\ktid\(ktid name that shown on script).ktid"
Note: Some paths might differ, as I’m doing this on F/SR instead of Wo Long.

Thanks for the answer. I was able to extract everything with quickbms_4gb_files using this script 

Quote

Comtype ZLIB
Get FILETOTALSIZE asize

if FILETOTALSIZE > 128

    Set IDRKOFFSET long 0x10

    Do

        Goto IDRKOFFSET
        Print "%IDRKOFFSET%"
        Getdstring MAGICVERSION 8 
        Get ENTRYSIZE longlong
        Get COMPSIZE longlong
        Get DECOMPSIZE longlong
        Get ENTRYTYPE long
        Get FILEKTID long
        Get TYPEINFOKTID long
        Set SKIP long ENTRYSIZE
        Math SKIP - COMPSIZE
        Math SKIP - 0x2C
        Goto SKIP 0 SEEK_CUR
        Savepos TEMP
        Print "%TEMP%"

        String FNAME p "0x%08x." FILEKTID
        String FEXT p "%08x" TYPEINFOKTID

        If TYPEINFOKTID == 0x563bdef1
            Set FULLNAME string "g1m/"
            String FNAME + "g1m"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0x6fa91671
            Set FULLNAME string "g1a/"
            String FNAME + "g1a"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0xafbec60c
            Set FULLNAME string "g1t/"
            String FNAME + "g1t"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0x20a6a0bb
            Set FULLNAME string "kidsobjdb/"
            String FNAME + "kidsobjdb"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0x5153729b || TYPEINFOKTID == 0xb340861a
            Set FULLNAME string "mtl/"
            String FNAME + "mtl"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0x8e39aa37 || TYPEINFOKTID == 0xbe144b78
            Set FULLNAME string "ktid/"
            String FNAME + "ktid"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0x56efe45c || TYPEINFOKTID == 0xbbf9b49d
            Set FULLNAME string "grp/"
            String FNAME + "grp"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0xbbd39f2d
            Set FULLNAME string "srsa/"
            String FNAME + "srsa"
            String FULLNAME + FNAME
        Elif TYPEINFOKTID == 0x0d34474d
            Set FULLNAME string "srst/"
            String FNAME + "srst"
            String FULLNAME + FNAME
        Else
            Set FULLNAME string FEXT
            String FULLNAME + "/"
            String FNAME + FEXT
            String FULLNAME + FNAME
        Endif

        Savepos OFFSET

        If COMPSIZE == DECOMPSIZE
            Get MAGIC long 0 OFFSET
            If MAGIC == 1194412127
                Set FULLNAME string "g1h/"
                String FNAME p "0x%08x." FILEKTID
                String FNAME + "g1h"
                String FULLNAME + FNAME
            Endif
            Log FULLNAME OFFSET DECOMPSIZE
        Else
            Set MEMORY_FILE binary ""
            Append
            Do
                If DECOMPSIZE <= 0
                    Print "Skipping due to invalid DECOMPSIZE at offset %OFFSET%"
                    Break
                Endif
                Get ZSIZE short
                Get Junk longlong
                Savepos OFFSET
                If ZSIZE > DECOMPSIZE
                    Print "ZSIZE is larger than remaining DECOMPSIZE, skipping entry."
                    Break
                Endif
                If DECOMPSIZE > 16384
                    Clog MEMORY_FILE OFFSET ZSIZE 16384
                    Math DECOMPSIZE - 16384
                Else
                    Clog MEMORY_FILE OFFSET ZSIZE DECOMPSIZE
                    Math DECOMPSIZE - DECOMPSIZE
                Endif
                Math OFFSET + ZSIZE
                Goto OFFSET 
            While DECOMPSIZE > 0
            Append

            Get LSIZE asize MEMORY_FILE
            If LSIZE > 0
                GetVarChr MAGIC MEMORY_FILE 0 long
                Print "%MAGIC%"
                If MAGIC == 1194412127
                    Set FULLNAME string "g1h/"
                    String FNAME p "0x%08x." FILEKTID
                    String FNAME + "g1h"
                    String FULLNAME + FNAME
                Endif
                Log FULLNAME 0 LSIZE MEMORY_FILE
            Endif
        Endif

        Math ENTRYSIZE x 0x10
        Math IDRKOFFSET + ENTRYSIZE

    While IDRKOFFSET < FILETOTALSIZE

Endif

what I'm not able to do is merge the textures (G1T) with the model (G1M). I don't know which textures belong to which model. Besides the G1T and G1M files, the KTID are 1KB and I wasn't able to make it work with the script yumia_find_kidsobjdb_using_g1mhash or this one yumia_find_kidsobjdb_using_ktid, it does't find anything. I am sure that the solution is logical and obvious, but I don't see it. Also Wo Long doesn't have Fdata files like Ronin, and I have the kidsobjdb files but like I said the yumia tools aren't working. 

Edited by roamasterrace

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
×
×
  • Create New...