DevJack Posted April 23, 2024 Share Posted April 23, 2024 Hello everyone, Wo Long: Fallen Dynasty can use quickbms to extract .g1m files, but g1a files can not be extract , and then use Cethleann can extract the g1a file, but loading the g1a file in noesie will cause an error. Is there has the latest bms script that can export g1a or Cethleann version that can export Wo Long: Fallen Dynasty? Thanks all Link to comment Share on other sites More sharing options...
DevJack Posted April 26, 2024 Author Share Posted April 26, 2024 On 4/23/2024 at 8:21 PM, DevJack said: Hello everyone, Wo Long: Fallen Dynasty can use quickbms to extract .g1m files, but g1a files can not be extract , and then use Cethleann can extract the g1a file, but loading the g1a file in noesie will cause an error. Is there has the latest bms script that can export g1a or Cethleann version that can export Wo Long: Fallen Dynasty? Thanks all testg1a.zip Link to comment Share on other sites More sharing options...
Rypie109 Posted May 20, 2024 Share Posted May 20, 2024 .g1a is an animation file, so you cant load it by itself. Link to comment Share on other sites More sharing options...
Rypie109 Posted May 20, 2024 Share Posted May 20, 2024 Was this file always called "test" or did it have a label? You cant pair the animation file with the model if you dont have the original file name. (or atleast its extremely difficult) Link to comment Share on other sites More sharing options...
kishikan Posted October 8, 2024 Share Posted October 8, 2024 Hello. May I ask which script you use to extract Wo Long? I believe there was a script on Xentax, but the website is dead. Link to comment Share on other sites More sharing options...
Cyphomet Posted October 10, 2024 Share Posted October 10, 2024 (edited) Okay this is raw .bms script which should work. Open txt Document put following text (quoted) inside document save and rename to *.bms Open quickbms and choose 4gb then activate script choose rdg.bin and save on any folder. Open files with g1m importer in Noesis. 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 Get ZSIZE short Get Junk longlong Savepos OFFSET 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 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 Math ENTRYSIZE x 0x10 Math IDRKOFFSET + ENTRYSIZE While IDRKOFFSET < FILETOTALSIZE Endif Edited October 10, 2024 by Cyphomet 1 Link to comment Share on other sites More sharing options...
WindShadowRuins Posted January 8 Share Posted January 8 I'm having this problem with the script you shared: Error: offset in GetVarChr (0x0000000000000000) is bigger than the var (0x00000000) Last script line before the error or that produced the error: 115 GetVarChr MAGIC MEMORY_FILE 0 long coverage file 0 35% 804656547 2259738462 . offset 000000002ff9c982 On 10/10/2024 at 7:23 AM, Cyphomet said: Okay this is raw .bms script which should work. Open txt Document put following text (quoted) inside document save and rename to *.bms Open quickbms and choose 4gb then activate script choose rdg.bin and save on any folder. Open files with g1m importer in Noesis. Link to comment Share on other sites More sharing options...
WindShadowRuins Posted January 9 Share Posted January 9 Made the script skip the errors and it extract what it can 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 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now