katashi Posted March 14 Posted March 14 Hi, can someone please help me with the .vol file froen_Global.zipm Shantae and the Pirate's Curse on 3DS? It seems to be a type of compressed file. I would really appreciate any help.
BloodRaynare Posted March 14 Posted March 14 (edited) Try this QuickBMS script that I made myself (well not really. I kinda took some bits from the aluigi's scooby_looney.bms script then adapt it accordingly): ## Shantae and the Pirate's Curse *.vol extractor script by BloodRaynare ## For use with QuickBMS log MEMORY_FILE 0 0 ComType deflate get SIGN long if SIGN == 0xd177f050 callfunction COMP_VARIANT 1 else callfunction UNCOMP_VARIANT 1 endif startfunction COMP_VARIANT get DUMMY long # 0x0101 get ZSIZE long get SIZE long savepos OFFSET clog MEMORY_FILE OFFSET ZSIZE SIZE get SIGN long MEMORY_FILE get DUMMY long MEMORY_FILE get DUMMY long MEMORY_FILE get FILES long MEMORY_FILE get OFFSET long MEMORY_FILE goto OFFSET MEMORY_FILE xmath NAME_OFF "OFFSET + (FILES * 0x18)" for i = 0 < FILES get CRC long MEMORY_FILE get DUMMY long MEMORY_FILE get OFFSET long MEMORY_FILE get ZERO long MEMORY_FILE get ZERO long MEMORY_FILE get SIZE long MEMORY_FILE savepos TMP MEMORY_FILE goto NAME_OFF MEMORY_FILE get NAME string MEMORY_FILE savepos NAME_OFF MEMORY_FILE goto TMP MEMORY_FILE log NAME OFFSET SIZE MEMORY_FILE next i endfunction startfunction UNCOMP_VARIANT get DUMMY long get DUMMY long get FILES long get OFFSET long goto OFFSET xmath NAME_OFF "OFFSET + (FILES * 0x18)" for i = 0 < FILES get CRC long get DUMMY long get OFFSET long get ZERO long get ZERO long get SIZE long savepos TMP goto NAME_OFF get NAME string savepos NAME_OFF goto TMP log NAME OFFSET SIZE next i endfunction Edited March 14 by BloodRaynare 1
katashi Posted March 15 Author Posted March 15 Thank you. But when I run the script, it doesn't output any files. Am I doing something wrong?
DKDave Posted March 15 Posted March 15 It looks like you're still using the scooby_looney script in your image above. However, the script by BloodRaynare doesn't work either as the file table is 0x14 bytes per entry instead of 0x18. Try this one - it works on your sample, that is the only one I have from that game: # Shantae and The Pirate's Curse (3DS) # VOL extract # QuickBMS script by DKDave, 2025 Comtype deflate Goto 8 Get ZSIZE Long Get SIZE Long CLog MEMORY_FILE 0x10 ZSIZE SIZE Goto 0x0c -1 Get FILES Long -1 Get ENTRY Long -1 For A = 0 < FILES Goto ENTRY -1 Get MISC1 Long -1 Get NAME_OFF Long -1 Get OFFSET Long -1 Get JUNK Long -1 Get SIZE Long -1 Goto NAME_OFF -1 Get FILENAME String -1 Log FILENAME OFFSET SIZE -1 Math ENTRY + 0x14 Next A
Solution BloodRaynare Posted March 15 Solution Posted March 15 (edited) 57 minutes ago, DKDave said: It looks like you're still using the scooby_looney script in your image above. However, the script by BloodRaynare doesn't work either as the file table is 0x14 bytes per entry instead of 0x18. Try this one - it works on your sample, that is the only one I have from that game: # Shantae and The Pirate's Curse (3DS) # VOL extract # QuickBMS script by DKDave, 2025 Comtype deflate Goto 8 Get ZSIZE Long Get SIZE Long CLog MEMORY_FILE 0x10 ZSIZE SIZE Goto 0x0c -1 Get FILES Long -1 Get ENTRY Long -1 For A = 0 < FILES Goto ENTRY -1 Get MISC1 Long -1 Get NAME_OFF Long -1 Get OFFSET Long -1 Get JUNK Long -1 Get SIZE Long -1 Goto NAME_OFF -1 Get FILENAME String -1 Log FILENAME OFFSET SIZE -1 Math ENTRY + 0x14 Next A Hmmm, my script did work actually, but because I tested it with the files from the cart/physical version @katashi Did you files come from the eshop version? It seems there are file format changes between the releases. PC version went through with the same thing too (vol format is different between Steam and GOG version). Edited March 15 by BloodRaynare
katashi Posted March 15 Author Posted March 15 4 hours ago, BloodRaynare said: Hmmm, my script did work actually, but because I tested it with the files from the cart/physical version @katashi Did you files come from the eshop version? It seems there are file format changes between the releases. PC version went through with the same thing too (vol format is different between Steam and GOG version). Solved, I have successfully extracted it. Thank you very much.
DKDave Posted March 15 Posted March 15 7 hours ago, BloodRaynare said: Hmmm, my script did work actually, but because I tested it with the files from the cart/physical version @katashi Did you files come from the eshop version? It seems there are file format changes between the releases. PC version went through with the same thing too (vol format is different between Steam and GOG version). It's always a pain when there are different versions of formats for the same game. So there are several valid scripts, just have to choose the correct one.
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