The rules have been updated, read them now: Rules!
Read or post about compression. And decompression. Or ask questions how to decompress your files.
-
SmashFan127
- advanced
- Posts: 51
- Joined: Sun Jun 17, 2012 2:09 am
- Has thanked: 5 times
- Been thanked: 1 time
Post
by SmashFan127 » Fri Apr 18, 2014 4:44 am
Hello, all. I am here to find a way to decompress the BTLMON.BIN file for the guy behind PS23DFormat. According to him, the files us some sort of LZ compression to house the character and enemy models.
Sample file:
http://www.mediafire.com/download/gwmki ... BTLMON.BIN
EDIT: Here is a pic of the first few bytes in the file

Last edited by
SmashFan127 on Sat Apr 26, 2014 9:12 pm, edited 1 time in total.
-
SmashFan127
- advanced
- Posts: 51
- Joined: Sun Jun 17, 2012 2:09 am
- Has thanked: 5 times
- Been thanked: 1 time
Post
by SmashFan127 » Wed Apr 23, 2014 3:27 am
Is there anyone available?
First post has been edited to include the first few bytes.
-
chrrox
- Moderator
- Posts: 2586
- Joined: Sun May 18, 2008 3:01 pm
- Has thanked: 57 times
- Been thanked: 1329 times
Post
by chrrox » Sat Feb 13, 2021 1:52 am
quickbms script to decompress files.
Needs to add support for extracting sub archives (align data to 0x800 after last file and start over again)
Run this first for now.
Code: Select all
getdstring DIV 4
goto 0
for
findloc OFFSET string DIV
print "%OFFSET%"
getdstring TMP 0x20
findloc SIZE string DIV
goto SIZE
math SIZE - OFFSET
log "" OFFSET SIZE
next
then you can do this
quickbms.exe -d -F "*.dat" "C:\Users\Downloads\Wild Arms 3 (USA)\Wild Arms 3 (USA)\STG\test.txt" "C:\Users\Downloads\Wild Arms 3 (USA)\Wild Arms 3 (USA)\BTL\1" "C:\Users\Downloads\Wild Arms 3 (USA)\Wild Arms 3 (USA)\BTL\2"
Code: Select all
comtype LZSS0
savepos BASE
findloc FILES string "\x00\x00\x00\x00"
math FILES / 4
print "%FILES%"
for i = 0 < FILES
get OFFSET long
math OFFSET - 0x1D00000
putarray 0 i OFFSET
next i
math FILES - 1
for i = 0 < FILES
set j i
math j + 1
getarray OFFSET 0 i
getarray SIZE 0 j
math SIZE - OFFSET
if SIZE > 0
math OFFSET + BASE
log MEMORY_FILE OFFSET SIZE
get TSIZE long MEMORY_FILE
get SIZE asize MEMORY_FILE
print "%TSIZE%"
if TSIZE > 0x1FFFFF || TSIZE < 0
log "" 0 SIZE MEMORY_FILE
else
math SIZE - 4
clog "" 4 SIZE TSIZE MEMORY_FILE
endif
endif
next i