ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax
It is currently Tue Jul 05, 2022 4:35 pm

All times are UTC




Post new topic  Reply to topic  [ 52 posts ]  Go to page Previous 1 2 3
Author Message
PostPosted: Fri Jun 17, 2022 9:39 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Asterix & Obelix XXL 2 (PSP)

Code:
# Asterix & Obelix XXL 2 (PSP) - *.pak
#
# (c) 2022-06-17 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

idstring TATE
get FSIZE asize
set OFF 0x80
for i = 0
   goto OFF
   getDstring TYPE 4
   get SIZE long
   get DUMMY longlong
   getDstring NAME 0x70
   savepos OFFSET
   log NAME OFFSET SIZE
   math OFFSET += SIZE
   goto OFFSET
   do
      get TEST byte
      savepos OFF
      if OFF == FSIZE
         cleanexit
      endif
   while TEST == 0
   math OFF -= 1
next i


Attachments:
aoxxl2_psp_tate.bms [486 Bytes]
Downloaded 10 times


Last edited by AlphaTwentyThree on Sun Jun 19, 2022 2:08 pm, edited 2 times in total.
Top
   
PostPosted: Sun Jun 19, 2022 11:18 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Blood Bowl (PSP)

Code:
# Blood Bowl (PSP) - *.cat

# (c) 2022-06-19 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

get FILES long
for i = 0 < FILES
   get NAMEL long
   getDstring NAME NAMEL
   padding 4
   get SIZE long
   savepos OFFSET
   #print "%OFFSET% %SIZE%"
   log NAME OFFSET SIZE
   math OFFSET += SIZE
   goto OFFSET
next i


Attachments:
blood_bowl_cat.bms [343 Bytes]
Downloaded 4 times


Last edited by AlphaTwentyThree on Sun Jun 19, 2022 2:09 pm, edited 2 times in total.
Top
   
PostPosted: Sun Jun 19, 2022 1:53 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Battle Dodge Ball 3 (PSP)

note: resulting files are Visual C++ project files

Code:
# Battle Dodge Ball 3 (PSP) - def_arc.irarc/.irlst

# (c) 2022-06-19 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

open FDDE irlst 0
open FDDE irarc 1

get BNAME basename
get FILES long
for i = 1 <= FILES
   get ID long
   get OFFSET long
   get SIZE long
   get TYPE long
   if TYPE == 7
      set EXT "iobj"
   elif TYPE == 0
      set EXT "ipdb"
   endif
   math OFFSET += 0x14
   math SIZE -= 0x14
   string NAME p "%s_%d.%s" BNAME ID EXT
   log NAME OFFSET SIZE 1
next i


Attachments:
bdb_def_arc.bms [503 Bytes]
Downloaded 4 times
Top
   
PostPosted: Sun Jun 19, 2022 2:50 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
The Bigs/The Bigs 2 (PSP) - *.big

Code:
# The Bigs/The Bigs 2 (PSP) - *.big
# note: uncomment line 27 to enable archive subfolders
#
# (c) 2022-06-19 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

idstring \x04\x03\x02\x01

get UNK long
get FSIZE long
get FILES long
get UNK long
get NAMEPOS long
get BNAME basename

for i = 0 < FILES
   get UNK1 long
   get SIZE long
   get OFFSET long
   get UNK2 long
   get UNK3 long
   savepos MYOFF
   goto NAMEPOS
   get NAME string
   savepos NAMEPOS
   goto MYOFF
#   string NAME p "%s/%s" BNAME NAME
   log NAME OFFSET SIZE
next i


Attachments:
the_bigs_big.bms [782 Bytes]
Downloaded 3 times


Last edited by AlphaTwentyThree on Mon Jun 20, 2022 8:20 am, edited 1 time in total.
Top
   
PostPosted: Mon Jun 20, 2022 8:18 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Astro Boy: The Video Game (PSP) - FILE1/FILE2/FILE3

note: probably also works with other games using this engine

Code:
# Astro Boy: The Video Game (PSP)
# extracts the block files created by DKDave's BIGB script
# (https://zenhax.com/viewtopic.php?f=6&t=17035#p72153)
# note: only works for the music

# (c) 2022-06-20 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

get BNAME basename
string BNAME -= 1
string F1 P "%BNAME%1"
string F2 P "%BNAME%2"
string F3 P "%BNAME%3"
OPEN FDSE F2 0
OPEN FDSE F1 1
OPEN FDSE F3 3 EXIST
if EXIST == 0 # no sound files
   cleanexit
endif

get FSIZE asize
set i 1
for t = 1
   get TYPE short
   get IDENT short
   savepos TEST
   if TEST == FSIZE
      break
   endif
   get OFFSET long
   if IDENT == 0x8000 # streams only
      putArray i 0 OFFSET
      putArray i 1 TYPE
      math i += 1
   endif
next t
xmath FILES "i - 1"
set w 1
for i = 1 <= FILES
   getArray OFFSET i 0
   getArray TYPE i 1
   if i != FILES
      xmath n "i + 1"
      getArray SIZE n 0
   else
      xmath SIZE "OFFSET + 0x20" # last control file
   endif
   math SIZE -= OFFSET
   if TYPE == 275 # RIFF file
      goto OFFSET 1
      getDstring TEMP 4 1 # RIFF
      get SIZE long 1
      math SIZE += 8
      getDstring TEST 4 1
      if TEST == "WAVS"
         xmath NAMEPOS "OFFSET + 0x2c"
         goto NAMEPOS 1
         getCT NAME binary 0x2e 1
         putArray w 0 NAME
         string NAME P "%NAME%.wavs"
         log NAME OFFSET SIZE 1
         math w += 1
      endif
   endif
next i
xmath FILES "w - 1"
set SEARCH 0
for i = 1 <= FILES # _should_ be correct
   goto SEARCH 3
   FindLoc OFFSET string \x57\x41\x56\x45\x66\x6D\x74\x20 3 "" # WAVEfmt
   math OFFSET -= 8
   goto OFFSET 3
   get DUMMY long 3 # RIFF
   get SIZE long 3
   math SIZE += 8
   getDstring DUMMY 0xc 3
   get CODEC short 3
   if CODEC == 0xfffe || CODEC == 0x720
      set EXT ".at3"
   elif CODEC == 1
      set EXT ".wav"
   else
      set EXT ".lwav"
   endif
   getArray NAME i 0
   string NAME += EXT
   log NAME OFFSET SIZE 3
   xmath SEARCH "OFFSET + SIZE"
next i


Attachments:
bigb_struct.bms [1.85 KiB]
Downloaded 3 times
Top
   
PostPosted: Mon Jun 20, 2022 8:43 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Brian Lara 2007 Pressure Play (PSP) - *.tar

Code:
# Brian Lara 2007 Pressure Play (PSP) - *.tar
#
# (c) 2022-06-20 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

get FILES long
for i = 0 < FILES
   get NAMEL long
   getDstring NAME NAMEL
   get SIZE long
   get OFFSET long
   putArray i 0 NAME
   putArray i 1 OFFSET
   putArray i 2 SIZE
next i
savepos BIAS
for i = 0 < FILES
   getArray NAME i 0
   getArray OFFSET i 1
   getArray SIZE i 2
   math OFFSET += BIAS
   log NAME OFFSET SIZE
next i


Attachments:
blpp_tar.bms [475 Bytes]
Downloaded 3 times
Top
   
PostPosted: Mon Jun 20, 2022 9:59 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Brunswick Pro Bowling (PSP) - *.wad

Code:
# Brunswick Pro Bowling (PSP) - *.wad

# (c) 2022-06-20 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

get FSIZE asize
get FOLDER string
goto 0x1a
get FILES short
if FILES == 0
   callfunction VAR 0
endif
for i = 1 <= FILES
   get UNK long
   getDstring BNAME 0x10
   getDstring EXT 4
   get OFFSET long
   get SIZE long
   get ID long
   string NAME P "%FOLDER%/%BNAME%.%EXT%"
   putArray i 0 OFFSET
   putArray i 1 NAME
next i
sortArray 0 0
for i = 1 <= FILES
   getArray OFFSET i 0
   getArray NAME i 1
   if i != FILES
      xmath n "i + 1"
      getArray SIZE n 0
   else
      get SIZE asize
   endif
   math SIZE -= OFFSET
   log NAME OFFSET SIZE
next i

startfunction VAR
   goto 0x24
   get FILES long
   get UNK long
   savepos NAMEPOS
   xmath NAMEPOS "NAMEPOS + FILES * 0x10"
   for i = 1 <= FILES
      get OFFSET long
      math OFFSET += 0x20
      get ZERO long
      get SIZE long
      get UNK long
      savepos OFF
      goto NAMEPOS
      get NAME string
      savepos NAMEPOS
      goto OFFSET
      getDstring TYPE 4
      if TYPE == "VAGp"
         set EXT "vag"
      endif
      goto OFF
      string NAME P "%FOLDER%/%NAME%.%EXT%"
      log NAME OFFSET SIZE
      goto OFF
   next i
endfunction


Attachments:
wad.bms [1.16 KiB]
Downloaded 3 times
Top
   
PostPosted: Mon Jun 20, 2022 11:27 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
The Bigs/The Bigs 2 (PSP) - *.bcv

Code:
# The Bigs/The Bigs 2 (PSP) - *.bcv

# (c) 2022-06-20 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

idstring BCVA
get BNAME basename
get FILES long
if FILES != 2
   cleanexit
endif
get TEMP long
get INTERLEAVE long
math INTERLEAVE -= 0x30
xmath PSIZE "2*INTERLEAVE"
putVarChr MEMORY_FILE PSIZE 0
log MEMORY_FILE 0 0
set MEMORY_FILE binary "\x53\x53\x68\x64\x18\x00\x00\x00\x10\x00\x00\x00\xb0\x36\x00\x00\x02\x00\x00\x00\xc0\x2f\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x53\x53\x62\x64\x00\xe8\x11\x00"
goto 0xc
append
for i = 1 <= 2
   get SIZE long
   get OFFSET long
   math OFFSET += 0x30
   math SIZE -= 0x30
   log MEMORY_FILE OFFSET SIZE
next i
append
xmath OFF "OFFSET - 0x20"
goto OFF
get FREQ long
reverselong FREQ
set CH 2
putVarChr MEMORY_FILE 0x24 PSIZE long
putVarChr MEMORY_FILE 0xc FREQ long
putVarChr MEMORY_FILE 0x14 INTERLEAVE long
putVarChr MEMORY_FILE 0x10 2 byte
get SIZE asize MEMORY_FILE
string NAME P "%BNAME%.ss2"
log NAME 0 SIZE MEMORY_FILE


Attachments:
bcva.bms [1 KiB]
Downloaded 3 times
Top
   
PostPosted: Tue Jun 21, 2022 6:35 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Blitz: Overtime (PSP) - *.ms2/*.ms4

Code:
# Blitz: Overtime (PSP) - *.ms2/*.ms4

# (c) 2022-06-21 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

include func_getTYPE.bms

get BNAME basename
for i = 1
   get ID short
   get UNK2 short # 0x2000 or 0
   get OFFSET long
   get SIZE long
   savepos MYOFF
      putVarChr MEMORY_FILE SIZE 0
      log MEMORY_FILE 0 0
      append
      log MEMORY_FILE OFFSET SIZE
      append
      callfunction getTYPE 1
   goto MYOFF
   string NAME P "%BNAME%_%ID%.%EXT%"
   if OFFSET != 0
      log NAME OFFSET SIZE
   else
      cleanexit
   endif
next i


Attachments:
ms2_4.bms [553 Bytes]
Downloaded 4 times
Top
   
PostPosted: Tue Jun 21, 2022 7:10 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Bounty Hounds (PSP) - *.xpk

Code:
# Bounty Hounds (PSP) - *.xpk

# (c) 2022-06-21 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

comtype gzip
idstring XPK
getDstring VER 4
goto 8
get FILES long
for i = 0 < FILES
   getDstring NAME 0x44
   get DUMMY threebyte
   get C byte
   get OFFSET long
   math OFFSET *= 0x800
   get SIZE long
   get CSIZE long
   getDstring DUMMY 0x2c
   if C != 0
      clog NAME OFFSET CSIZE SIZE
   else
      log NAME OFFSET CSIZE
   endif
next i


Attachments:
xpk.bms [467 Bytes]
Downloaded 3 times
Top
   
PostPosted: Tue Jun 21, 2022 12:46 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Curve Studios Limited - *.pak
(https://www.mobygames.com/company/curve-studios-limited)

Code:
# Curve Studios Limited - *.pak

# (c) 2022-06-21 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

idstring \xcd\xcd\xcd\xcd

get FILES long
get TOC long
xmath NAMEOFF "TOC + FILES*0xc"
goto TOC
for i = 0 < FILES
   get CRC long
   get OFFSET long
   get SIZE long
   savepos OFF
   goto NAMEOFF
   get NAME string
   savepos NAMEOFF
   goto OFF
   log NAME OFFSET SIZE
next i


Attachments:
pak.bms [410 Bytes]
Downloaded 3 times
Top
   
PostPosted: Tue Jun 21, 2022 2:20 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 909
Buzz! Concurso Universal (PSP) - *.flz

Code:
# Buzz! Concurso Universal (PSP) - *.flz

# (c) 2022-06-21 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

get BNAME basename
get FSIZE asize
set OFFSET 0
for i = 1
   goto OFFSET
   getDstring TYPE 3
   if TYPE == "TEX"
      set EXT "tex"
   elif TYPE == "VAG"
      set EXT "vag"
   elif TYPE == "ANK"
      set EXT "ank"
   else
      set EXT "dat"
   endif
   FindLoc SIZE binary \x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55 0 ""
   math SIZE -= OFFSET
   string NAME P "%BNAME%/%i%.%EXT%"
   log NAME OFFSET SIZE
   math OFFSET += SIZE
   goto OFFSET
   padding 0x10
   savepos OFFSET
   callfunction NXT 1
next i

startfunction NXT
   do
      math OFFSET += 0x10
      if OFFSET >= FSIZE
         cleanexit
      endif
      goto OFFSET
      get TEST long
   while TEST == 0x55555555
endfunction


Attachments:
flz.bms [820 Bytes]
Downloaded 3 times
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 52 posts ]  Go to page Previous 1 2 3

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited