Wallace & Gromit The Curse of the Wererabbit (PS2/Xbox)

Codecs, formats, encoding/decoding of game audio, video and music
EtherealCrisp
Posts: 8
Joined: Thu Aug 04, 2022 1:31 pm

Wallace & Gromit The Curse of the Wererabbit (PS2/Xbox)

Post by EtherealCrisp »

Hello again. I successfully ripped out the sounds from "AUDDATA.ZAP" using this bms script https://aluigi.altervista.org/bms/walla ... it_zap.bms
However all the extracted files end with ".aud" and are unplayable or convertible with vgmstream. I'm not very good at using hex editors to find out what it is. Can somebody have a look? I've extracted both Xbox and PS2 versions and both produce file names like this
    th_tutorial_music.aux.aud
    wg_music.aux.aud
    sk_music.aux.aud
I have uploaded some samples of the PS2 version here because filesize too big. https://drive.google.com/file/d/19XHlmp ... sp=sharing
BloodRaynare
Posts: 367
Joined: Fri Mar 10, 2017 7:23 am

Re: Wallace & Gromit The Curse of the Wererabbit (PS2/Xbox)

Post by BloodRaynare »

You're uploaded the files from the Xbox version BTW,
PS2 version look like this:
Image

And another thing, aluigi's script was a bit incorrect (at least with Xbox files). The problem is the offset being incorrectly calculated, cutting off some file at the beginning. Or the 0-byte files that's not a directory will have it's name appended making a long path names exceeding the Windows limit. I modified his script here:

Code: Select all

# Wallace & Gromit: The Curse of the Were-Rabbit (script 0.1.1)
# maybe other games developed by Frontier Developments
# script for QuickBMS http://quickbms.aluigi.org

# Modified by BloodRaynare

idstring "ZAP\0"
get ALIGN long
get ENTRIES long
get DUMMY long
set PATH string "/"
for i = 0 < ENTRIES
    get DUMMY short # 0x0a0d
    get SIZE long
    get NAMESZ short
    getdstring NAME NAMESZ
   
   putarray 0 i SIZE
   putarray 1 i NAMESZ
   putarray 2 i NAME
next i

savepos OFFSET
math OFFSET x ALIGN

for i = 0 < ENTRIES
   getarray SIZE   0 i
   getarray NAMESZ 1 i
   getarray NAME   2 i
   
   set CHAR_TEST NAME
   xmath CHAR_TEST_TRUNCATE_SZ "NAMESZ - 2"
   string CHAR_TEST < CHAR_TEST_TRUNCATE_SZ
   
    if SIZE == 0
        if NAME == ".."
            string PATH - 1
            string PATH << /
        elif CHAR_TEST == "/"
            string PATH + NAME
        endif
    else
        set FNAME string PATH
        string FNAME + NAME
        log FNAME OFFSET SIZE
        math OFFSET + SIZE
        math OFFSET x ALIGN    # is it for every archive?
    endif
next i


Anyway, PS2 version's audio info is in the overlay files just like in "Project Zoo" (and unfortunately, XBOX version too. It lacks the header at the start of the file, unlike the FSB files from Project Zoo).
And here comes another bad news, Wererabbit's OVL files are really a mess (I'd say it even messier than the Project Zoo ones), the distance between the definition of the aud filenames and the audio info are really far, combined with the lack of coherent table of contents (TOC) and random file placements making extractions a complete nuisance. At least you can use the TXTH for the BGMs since this game doesn't use the "dynamic track" shenanigans I think.

TXTH for the Xbox version:

Code: Select all

codec = XBOX
channels = 2
sample_rate = 44100
interleave = 0x24
num_samples = data_size


PS2 version:

Code: Select all

codec = PSX
channels = 2
sample_rate = 44100
interleave = 0x4000
num_samples = data_size


For voices, I recommend you extracting the PS2 version with PSound tool instead. Though, you'll need to figure out the sample rate by yourself (And the tool applies it globally so if the aud files have mutliple sample rate, it's going to be a PITA).