The VG Resource

Full Version: 100% Orange Juice .pak file
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Is there a program to extract .pak files?
It's a disguised .zip file. Rename to *.zip and it will extract itself.
I renamed them to .zip files as you said.
Some it worked and contains .dat file. How to extract them? But unfortunately the others fails to work as renamed .zip files to extract.
Any other method?
Upload the other ones
It was just concatenated headerless wav files. This BMS will extract them, and add proper headers (TOWAV function taken from aluigi Tongue) Copy and paste into txt file and run it on QuickBMS:
Code:
get ARKSIZE asize
get BASENAME basename

do
    get SIZE long
    get RIFNAME string
    set NAME string ""
    string NAME p "%s_%s" BASENAME RIFNAME
    get TWELVE long
    get CHANNELS short
    get CODEC short
    get FREQUENCY long
    get NULL long
    get NULL short
    get BITS long
    savepos OFFSET
    callfunction TOWAV
    goto SIZE 0 SEEK_CUR
    savepos CUR_OFF
while CUR_OFF != ARKSIZE


# Requirements: CODEC, BITS, FREQUENCY, CHANNELS, OFFSET, SIZE and NAME
startfunction TOWAV
    set MEMORY_FILE binary "\x52\x49\x46\x46\x00\x00\x00\x00\x57\x41\x56\x45\x66\x6d\x74\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x61\x74\x61\x00\x00\x00\x00"

    set RIFFSIZE long SIZE
    math RIFFSIZE += 36
    set BLOCKALIGN long BITS
    set AVGBYTES long FREQUENCY
    math BLOCKALIGN /= 8
    math BLOCKALIGN *= CHANNELS
    math AVGBYTES *= BLOCKALIGN

    putvarchr MEMORY_FILE 4 RIFFSIZE long
    putvarchr MEMORY_FILE 20 CODEC short      # wFormatTag: Microsoft PCM Format (0x0001)
    putvarchr MEMORY_FILE 22 CHANNELS short   # wChannels
    putvarchr MEMORY_FILE 24 FREQUENCY long   # dwSamplesPerSec
    putvarchr MEMORY_FILE 28 AVGBYTES long    # dwAvgBytesPerSec
    putvarchr MEMORY_FILE 32 BLOCKALIGN short # wBlockAlign
    putvarchr MEMORY_FILE 34 BITS short       # wBitsPerSample
    putvarchr MEMORY_FILE 40 SIZE long

    log MEMORY_FILE2 0 44 MEMORY_FILE
    append
    log MEMORY_FILE2 OFFSET SIZE
    append
    get RIFF_SIZE asize MEMORY_FILE2
    log NAME 0 RIFF_SIZE MEMORY_FILE2
endfunction
Thank you, Pingu! It works to extract now!
But some wav files extract from "se.pak" doesn't play at all.
It says "Unable to open item for playback (Missing ACM codec)"
What should I do now?
Upload the paks that wont work. Ill convert them for you (its a pain to get playing). Its most likely that those ones use ADPCM, try renaming them to *.lwav and if that doesn’t work send em my way
Updated version of the script, since I'm a noob. I parsed it wrong, but all the sound effects play properly now:
Code:
get ARKSIZE asize
get BASENAME basename

do
    get SIZE long
    get RIFNAME string
    set NAME string ""
    string NAME p "%s_%s" BASENAME RIFNAME
    get TWELVE long
    get CODEC short
    get CHANNELS short
    get FREQUENCY long
    get NULL long
    get NULL short
    get BITS long
    savepos OFFSET
    callfunction TOWAV
    goto SIZE 0 SEEK_CUR
    savepos CUR_OFF
    
while CUR_OFF != ARKSIZE


# Requirements: CODEC, BITS, FREQUENCY, CHANNELS, OFFSET, SIZE and NAME
startfunction TOWAV
    set MEMORY_FILE binary "\x52\x49\x46\x46\x00\x00\x00\x00\x57\x41\x56\x45\x66\x6d\x74\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x61\x74\x61\x00\x00\x00\x00"

    set RIFFSIZE long SIZE
    math RIFFSIZE += 36
    set BLOCKALIGN long BITS
    set AVGBYTES long FREQUENCY
    math BLOCKALIGN /= 8
    math BLOCKALIGN *= CHANNELS
    math AVGBYTES *= BLOCKALIGN

    putvarchr MEMORY_FILE 4 RIFFSIZE long
    putvarchr MEMORY_FILE 20 CODEC short      # wFormatTag: Microsoft PCM Format (0x0001)
    putvarchr MEMORY_FILE 22 CHANNELS short   # wChannels
    putvarchr MEMORY_FILE 24 FREQUENCY long   # dwSamplesPerSec
    putvarchr MEMORY_FILE 28 AVGBYTES long    # dwAvgBytesPerSec
    putvarchr MEMORY_FILE 32 BLOCKALIGN short # wBlockAlign
    putvarchr MEMORY_FILE 34 BITS short       # wBitsPerSample
    putvarchr MEMORY_FILE 40 SIZE long

    log MEMORY_FILE2 0 44 MEMORY_FILE
    append
    log MEMORY_FILE2 OFFSET SIZE
    append
    get RIFF_SIZE asize MEMORY_FILE2
    log NAME 0 RIFF_SIZE MEMORY_FILE2
endfunction

Copy and paste into txt for QuickBMS. I'd recommend reconverting voices just in case anything went wrong with those ones as well.
I know Pingu wrote a QuickBMS script already, but here's a tool that should also work. I remember it working when I tried to rip from them originally anyway.
https://gamebanana.com/tools/6227