Maverick Hunter X (.DAT .LOC)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Doctor Loboto
Posts: 376
Joined: Sun May 31, 2015 2:23 am

Maverick Hunter X (.DAT .LOC)

Post by Doctor Loboto »

So I've been trying to figure this out for a while with repeated searching, and I'm somewhat surprised no one else has tried to extract this game's models before. The problem is everything lies in one big archive, with a small same-named "loc" file with it. If someone could have a look, we can hopefully figure it out in decent time.

This Zip File contains bother related files.

https://www.dropbox.com/s/taxdsilqidr488r/rockxpack.zip?dl=0
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Maverick Hunter X (.DAT .LOC)

Post by AlphaTwentyThree »

Ok, wrote something useful I guess: http://*USE_ANOTHER_FILEHOSTING*/upload-comple ... d9dd620ea/

1 - a script that extracts the loc/dat archive with file type recognition
2 - a script that extracts the contained *.link files with file type recognition
3 - my new func_getTYPE.bms (for the file type recognition)
4 - two versions of the old atrac3 codec

Note: Install the codec by right-clicking on the *.inf and selecting "Install". Reboot afterwards. Every wave program can decode the files. You can also play them with any audio player that uses the windows codec library (e.g. Windows Media Player). If you want Winamp to play these correctly, got to Preferences (Ctrl + P), select "Plug-ins > Input > Nullsoft DirectShow Decoder > Configure" and add ";WAV" o the list.

P.S.: The *.at3 files can be played with Foobar and the vgmstream plugin (http://www.foobar2000.org/components/vi ... _vgmstream).
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Maverick Hunter X (.DAT .LOC)

Post by AlphaTwentyThree »

For all of you who don't want to download the file, here are the two scripts:

Code: Select all

# extract the rockx_pack.dat/.loc from Maverick Hunter
# written by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

include "func_getTYPE.bms"
open FDDE loc 0
open FDDE dat 1

get FILES asize 0
math FILES /= 8

for i = 1 <= FILES
   get OFFSET long 0
   get SIZE long 0
   get NAME basename 0
   string NAME p= "%s_%d" NAME i
   savepos MYOFF 0
   putVarChr MEMORY_FILE SIZE 0
   log MEMORY_FILE 0 0
   append
   log MEMORY_FILE OFFSET SIZE 1
   append
   callfunction getTYPE 1
   goto MYOFF 0
   string NAME += EXT
   log NAME 0 SIZE MEMORY_FILE
   # callfunction write_unlisted 1
   
next i

startfunction write_unlisted
   savepos MYOFF 0
   math OFFSET += SIZE
   if i != FILES
      get OFFSET2 long 0
   else
      get OFFSET2 asize 1
   endif
   goto MYOFF 0
   if OFFSET2 > OFFSET
      set SIZE OFFSET2
      math SIZE -= OFFSET
      string NAME p= "unlisted/%s.unlisted" NAME
      log NAME OFFSET SIZE 1
   endif
endfunction


Code: Select all

# extract *.link files from Maverick Hunter X
# written by AlphaTwentyThree of Zenhax
# script for QuickBMS http://quickbms.aluigi.org

include "func_getTYPE.bms"

idstring "LINK"
get FILES byte
get VER byte
get UNK short
for i = 1 <= FILES
   get UNK short
   get TYPE short
   get OFFSET long
   get SIZE long
   get ZERO long
   get NAME basename
   string NAME p= "%s_%d" NAME i
   putVarChr MEMORY_FILE SIZE 0
   log MEMORY_FILE 0 0
   append
   log MEMORY_FILE OFFSET SIZE
   append
   callfunction getTYPE 1
   string NAME += EXT
   log NAME 0 SIZE MEMORY_FILE
next i
Doctor Loboto
Posts: 376
Joined: Sun May 31, 2015 2:23 am

Re: Maverick Hunter X (.DAT .LOC)

Post by Doctor Loboto »

Woah, awesome. That's a start at least. Is there any way of getting the models out though? That was my primary concern in the end.
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Maverick Hunter X (.DAT .LOC)

Post by AlphaTwentyThree »

Models should be among all the files. Probably in their own respective format. No experience in converting though.