Re: [Wii U] Monster Hunter 3 Ultimate maxscript
Posted: Wed Aug 17, 2022 10:10 pm
well I already tried to use arctool (dl via wayback machine) but it didn't work it did somme .000000 file and nothing else. So I used quickbms with this script :
and I ended up with tex/dom file I will try to use an hexadecimal editor to export the model . If anyone have any better alternative I will take it 
Code: Select all
quickbmsver "0.7.4"
set HFS long 0
get SIGN long
if SIGN == 0x00534648 || SIGN == 0x48465300 # " SFH" and "HFS "
set HFS long 1
goto 0x10
callfunction GUESS_ARC 1
if OK == 0
goto 0x20000
callfunction GUESS_ARC 1
endif
if OK != 0
goto -4 0 SEEK_CUR
else
goto 0
findloc OFFSET binary "\x00CRA" 0 ""
if OFFSET == ""
findloc OFFSET binary "ARC\x00" 0 ""
if OFFSET == ""
cleanexit
endif
endif
goto OFFSET
endif
else
goto 0
endif
savepos BASE_OFF
callfunction GUESS_ARC 1
if OK == 0
cleanexit
endif
get VERSION short
endian guess16 VERSION
if VERSION == 4
comtype unzip_dynamic #zlib
print "Version:4"
elif VERSION == 8
comtype unzip_dynamic #deflate
elif VERSION == 16
print "Version:16"
comtype zlib_noerror
elif VERSION == 0x11
comtype XMemDecompress 0x8000 # yeah 0x8000 is the "magic" for RE5
print "Version:0x11"
else
comtype unzip_dynamic #zlib
print "unknown version %VERSION%, I try zlib compression"
endif
get FILES short
if VERSION == 16
get ZERO long
endif
print FILES
for i = 0 < FILES
getdstring NAME 0x40
get TYPE long
get ZSIZE long
get SIZE long
get OFFSET long
if SIZE & 0x40000000
math SIZE -= 0x40000000
endif
if HFS != 0 # used in RE5 PS3
print "HFS is long"
math ZSIZE += 32
#math SIZE /= 8
math TMP = OFFSET
math TMP /= 0x20000
math TMP *= 0x10
math ZSIZE += TMP
math SIZE += TMP
math OFFSET += TMP
math OFFSET += 2
endif
math OFFSET += BASE_OFF # needed for HFS header
set EXT extension NAME
if EXT == ""
string NAME + "."
endif
clog NAME OFFSET ZSIZE SIZE
next i
startfunction GUESS_ARC
math OK = 1
get SIGN long
if SIGN == 0x00435241 # " CRA"
#endian little
elif SIGN == 0x41524300 # "ARC "
#endian big
else
math OK = 0
endif
endfunction



