aluigi wrote:have you already checked this topic?
http://forum.xentax.com/viewtopic.php?f=16&t=11486
Aluigi is there any way to decompress this ? Or is it only possible from the save state ?
aluigi wrote:have you already checked this topic?
http://forum.xentax.com/viewtopic.php?f=16&t=11486
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
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
Code: Select all
BOVER =$(BTL_PATH)\over\make
AARGS = /p /ows+ /oc+ /m /ol? # /l <-> /p
MARGS = -x-
EFFIDX = $01D00000 # ADR address
EFFADR = $01D00100 # BIN address
.PATH.bin = bin
.PATH.bi2 = bin
.PATH.s0 = dat
.PATH.o0 = tmp
.PATH.bmp = bmp;..\monster\bmp
.PATH.tim = bmp
.PATH.tx4 = tmp
.PATH.twh = tmp
.PATH.mdl = mdl
.PATH.anm = anm
.PATH.fam = anm
.PATH.bne = bne
.PATH.msh = msh
.PATH.vu1 = vu
.PATH.vu2 = vu
.PATH.mt1 = vu
.PATH.mth = vu
.PATH.mt2 = vu
.PATH.v1p = tmp
.PATH.v2p = tmp
.PATH.bnp = tmp
.PATH.bx8 = tmp
.PATH.pal = tmp
.PATH.anp = tmp
.PATH.bxp = tmp
.PATH.dmy = dmy
.PATH.anx = anx
.PATH.anz = tmp
.PATH.mss = dat
.PATH.msb = bin
.PATH.adm = adm
.PATH.bwh = tmp
.PATH.hd = ..\..\snd\btlse
.PATH.ton = bmp;..\monster\bmp
.bne.mt1:
mkpkt $*.bne msh\$&.msh -Ovu\$&
$(CV) -ptmp\$&.v1p vu\$&.vu1
.bne.mth:
mkpkt $*.bne msh\$&.msh -Ovu\$& -H
ren vu\$&.mt1 $&.mth
$(CV) -ptmp\$&.v1p vu\$&.vu1
.bne.mt2:
mkpkt $*.bne msh\$&.msh -D -Ovu\$&
$(CV) -ptmp\$&.v2p vu\$&.vu2
.tim.tx4:
# midb $*.tim tmp\$&.tx4 -O544
@$(CV) -p$@ $(**:.tim=.tim/$220~$11800)
.tim.pal:
setstp $*.tim -Otmp\$&.tip
@$(CV) -t$@ tmp\$&.tip/$14~$200
.tim.twh:
midb $*.tim tmp\$&.twh -O0 -S16
.bmp.bx8:
@$(CV) -c$@ $(**:.bmp=.bmp/$436~$10000)
# @$(CV) -p$@ $(**:.bmp=.bmp/$436~$10000)
.bmp.pal:
@$(CV) -t$@ $(**:.bmp=.bmp/$36~$200)
.bmp.bwh:
midb $*.bmp tmp\$&.bwh -O16 -S16
.s0.o0:
@$(AS) $(AARGS) dat\$&.s0,$@
.anm.bxp:
# anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$&
.anx.anz:
anx2anz $*.anx tmp\$&.anz
.mss.msb:
msscv $*.mss bin\$&.msb
# Šî–{ƒ‚ƒfƒ‹
.adm.mdl:
adm2mdl -x- -n -d:$(BTL_PATH)\over $*
anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$&
# adm‚©‚çanpƒf[ƒ^‚ðì‚é(ƒAƒjƒ‚Ì‚Ý)
.adm.anm:
adm2mdl -x- -n -d:$(BTL_PATH)\over $*.adm
anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$& -FB4 -FM4
.adm.fam:
adm2mdl -x- -n -d:$(BTL_PATH)\over $*.adm
anmbox bne\$&.bne msh\$&.msh anm\$&.anm -otmp\$&
ren anm\$&.anm $&.fam
chrrox wrote:Run it on the original iso files
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
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
chrrox wrote:i can’t help the scripts work you can make a new script from looking at these. its lzss0 compression for files.
DJ Normality wrote:I got it all working and everything is pretty much loose now. Can you please tell me how to go about reversing the animations/bones. I watched this video on Lzss0 about the shifting bytes and how the data is stored. But how would I go about in extracting these values ? Do you know of a way to do it ? Im willing to pay money for a tool if possible. I really would like to put this title to rest.
I see .ANM in the files and bne1 which i think are bones. And fam files which I think are "frames". Still not sure. If you could assist in this i would be very grateful. Im going crazy here trying to solve this. Please if you know of anything that would help.