Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Extract Wo Long Fallen Dynasty Models

Featured Replies

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

  • Supporter
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?

  • Author

It's done, I don't know why quickbms worked now, but it did. Noesis works well too, only thing I need is to find the textures.

  • Localization

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...
  • Author
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

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.