Harry Potter and the Order of the Phoenix ".rpk"
-
- Posts: 382
- Joined: Wed Sep 12, 2018 2:22 am
Harry Potter and the Order of the Phoenix ".rpk"
Who can take a look at these?
-
- Posts: 290
- Joined: Fri Mar 30, 2018 2:48 am
Re: Harry Potter and the Order of the Phoenix ".rpk"
Put the rpk files in the folder with the "EXTRACT, quickbms and scripts files" and click EXTRACT and it will auto extract all rpk files.
It might end with an error, but you get all the files.
It might end with an error, but you get all the files.
-
- Posts: 382
- Joined: Wed Sep 12, 2018 2:22 am
Re: Harry Potter and the Order of the Phoenix ".rpk"
GHFear wrote:Put the rpk files in the folder with the "EXTRACT, quickbms and scripts files" and click EXTRACT and it will auto extract all rpk files.
It might end with an error, but you get all the files.
Good, now if I can find a way of extracting the .sdt files from this game with proper file names.
-
- Posts: 909
- Joined: Sat Aug 09, 2014 11:21 am
Re: Harry Potter and the Order of the Phoenix ".rpk"
I just wrote a better-working extractor for those files. Updates:
- decompresses rpk into memory and extracts it in one step
- correct names
- no error termination
- decompresses rpk into memory and extracts it in one step
- correct names
- no error termination
Code: Select all
# Harry Potter games (2008 and newer)
# *.rpk/*.str.* extractor
# (c) 2022-02-07 by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org
getDstring TEST 4
if TEST == "MRTS" || TEST == "STRM"
get SIZE asize
putVarChr MEMORY_FILE SIZE 0
log MEMORY_FILE 0 0
append
log MEMORY_FILE 0 SIZE
append
else
comtype dk2
endian big
get ZSIZE asize
goto 2
get SIZE long
putVarChr MEMORY_FILE SIZE 0
log MEMORY_FILE 0 0
append
clog MEMORY_FILE 0 ZSIZE SIZE
append
endian little
endif
goto 0 MEMORY_FILE
getDstring TEST 4 MEMORY_FILE
get FSIZE long MEMORY_FILE
getDstring TEST 4 MEMORY_FILE
if TEST == "AGRP"
endian big
endif
goto 8 MEMORY_FILE
callfunction getFields 1
startfunction getFields
getDstring IDENT 4 MEMORY_FILE # PRGA
if IDENT != "PRGA" && IDENT != "AGRP"
cleanexit
endif
get PRGA_SIZE long MEMORY_FILE
getDstring DUMMY 4 MEMORY_FILE # RDHG
get DUMMY long MEMORY_FILE # 14
get DUMMY long MEMORY_FILE # 10
get NAMEPOS long MEMORY_FILE
get DUMMY long MEMORY_FILE # 10
xmath FILES "(PRGA_SIZE - 0x1c) / 0x28"
for i = 0 < FILES
getDstring DUMMY 0x18 MEMORY_FILE
get OFFSET long MEMORY_FILE
get SIZE long MEMORY_FILE
get NAMEPOS long MEMORY_FILE
get ZERO long MEMORY_FILE
savepos MYOFF MEMORY_FILE
goto NAMEPOS MEMORY_FILE
get NAME string MEMORY_FILE
goto MYOFF MEMORY_FILE
log NAME OFFSET SIZE MEMORY_FILE
next i
callfunction getFields 1
endfunction