ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax
It is currently Fri Aug 12, 2022 9:24 pm

All times are UTC




Post new topic  Reply to topic  [ 12 posts ] 
Author Message
PostPosted: Thu Aug 04, 2022 2:20 pm 

Joined: Thu Aug 04, 2022 1:31 pm
Posts: 8
Hi guys, a few topics have been made here with no concrete solutions. Trying to get the music for Wallace & Gromit in Project Zoo. Different problems for different formats, here is a sample list:
    Moles.fsb (XBOX/PC)
    Moles.mib (PS2)
    Moles.gmb (GameCube)
Firstly, the GameCube version will not open in any program I try such as Foobar with vgmstream and Videogame Sound Converter 2.0
Then the PS2 version has a bit more luck. The .mib files play but are all jumbled up and displays double length, but the music is definitely there.
Lastly, I had a look at the Xbox version which has a .fsb file. Despite it being an fsb file, it is not an FMOD bank. I checked out this thread where someone recommended a .txth file (https://zenhax.com/viewtopic.php?t=7350)
JackTheRipper wrote:
This TXTH will be able to get around
codec = DVI_IMA
channels = @0x4
start_offset = 0x800
sample_rate = @0x14
interleave = @0x10
num_samples = data_size
Success! Or so I thought. The music length was correct and the file played perfectly, but I remembered a feature of the game. There's different levels of intensity for some tracks depending on whether the player is in combat or not. The noncombat is exactly the same as the combat track but without the drums/percussion. This .fsb file seemed to be the combat version. Foobar reported it to be 4 channels. I exported it and had a look in audacity, and it appears both tracks are there in one file. But then I'm finding that whilst playback in Foobar has correct volume level, the quality seems to fade in and out and go a bit muffled. I export it to .wav and play in audacity and the audio on all tracks are clipping and the quality issue is still there. I'm not too knowledgeable about the technicals, but it seems like maybe something is slightly off with JackTheRippers .txth solution. Would anybody familiar with the tracks be able to have a look at the sample files in this link and see if they can extract both tracks properly? Im absolutely pulling my hair out with this. (external, filesize too big) https://drive.google.com/file/d/1FhB11f ... sp=sharing


Top
   
PostPosted: Thu Aug 04, 2022 11:10 pm 
User avatar

Joined: Fri Mar 10, 2017 7:23 am
Posts: 248
Regarding the PS2/GC version, is there a small files accompanying the mib/gmb files? Something like Moles.mic/Moles.gmc?
For GC version, the small files is required since it might contains the DSP coefficient, which is needed for correct playback for the gmb files. As for PS2 version, this will do:

Moles.mib.txth

Code:
codec = PSX
sample_rate = 44100
channels = 2
interleave = 0x3EC0
subsong_count = channels
chunk_count = channels
chunk_start = 0
chunk_size = interleave * channels
num_samples = data_size


But still, I recommend you to upload the MIC files here (if exist) since it might contains important info needed for correct playback.

For the Xbox/PC version, I changed the txth script:

Code:
codec = DVI_IMA
sample_rate = @0x14
channels = @0x04 / 2
interleave = @0x10
start_offset = 0

subsong_count = channels
chunk_count = channels
chunk_start = @0x0c
chunk_size = interleave * channels

num_samples = @0x08 * channels


Since you mentioned the game has a different audilo tracks depending on the player's situations, that means the files has two subsongs, one for normal and one for combat.


Top
   
PostPosted: Fri Aug 05, 2022 4:22 am 

Joined: Mon Jan 10, 2022 12:12 am
Posts: 42
The GameCube version's coefs are stored in ovls similar to the PS2 counterpart where the MIH is.

0.ovl contains Theme
6.ovl contains some music in stereo
7.ovl contains some stingers and voiceovers in mono

Use TXTP to separate channels.


Attachments:
File comment: PS2~0.ovl contains MIH file
GC~0.ovl contains coefs
Theme.gmb, the raw DSP

WaGPZ_samples.7z [2.77 MiB]
Downloaded 15 times
Top
   
PostPosted: Sat Aug 06, 2022 2:12 pm 

Joined: Thu Aug 04, 2022 1:31 pm
Posts: 8
Thanks for your reply guys;
BloodRaynare - Unfortunately, there are no counterpart files that I can see in the game files. Your PS2 txth solution however is working perfectly. Turns out, theres not neccessarily 2 tracks for combat and non combat but rather, a 1st layer which has the base level melodies and instrumentation. The 2nd layer has just drums and percussion. From here I can save layer 1 as non combat, and then merge layer 1 and 2 for combat. Your Xbox/PC txth soultion also worked but for some reason still sounds a little louder and certain instruments are sounding a little bit crushed. But your PS2 solution works great.


Top
   
PostPosted: Sat Aug 06, 2022 2:15 pm 

Joined: Thu Aug 04, 2022 1:31 pm
Posts: 8
JackTheRipper - I'm not too sure what to do with these files. I renamed the txth file to Theme.gmb.txth and made sure 0.ovl and Theme.gmb were in the same folder but Foobar throws an Unsupported file format error. I had a look at 6.ovl file in a hex editor and searched "Moles" and it came up in that file. So I'm not sure what I'm doing wrong.


Top
   
PostPosted: Sat Aug 06, 2022 2:35 pm 

Joined: Thu Aug 04, 2022 1:31 pm
Posts: 8
As BloodRaynare's PS2 solution is working for me, I'm going to pursue ripping the PS2 version. I am now encountering another oddity. In the Volcano level of the game there are actually three states of music. There's idle, moving, and combat. Not all levels in the game have this but a few do. So like Moles, there is a base level layer of just the melodies and instrumentation, but then there's two separate percussion layers. But the moving percussion layer and combat layer are both combined into one when I use this txth. The best way to explain it is if you have a quick listen of the three versions. (Don't worry you don't have to listen to the whole thing, you can tell the difference from the first few seconds of each)
Idle - https://www.youtube.com/watch?v=MjzfqtT ... wR&index=8
Moving - https://www.youtube.com/watch?v=DjcKqyw ... wR&index=9
Combat - https://www.youtube.com/watch?v=1VlbDsa ... R&index=10

Any ideas on how to separate the percussion layers? I have included the 6.ovl file which some of these music tracks are mentioned when I view the file in a hex editor.
Here is the link to the file as file size too big to upload here (https://drive.google.com/file/d/1W7d58- ... sp=sharing)


Top
   
PostPosted: Sat Aug 06, 2022 2:47 pm 
User avatar

Joined: Fri Mar 10, 2017 7:23 am
Posts: 248
Yeah, I saw the @JackTheRipper reply above that the info files for the .mib were inside the overlay binaries which were compiled inside OVERLAYS.ZIP (Same with GC's gmb files). But, while there's exist tool to open those overlay binaries, they were only made for extracting the models inside (After all, those tool was made for extracting the models from Dog's Life, which used the same engine as this game). Maybe I can write some fool-proof BMS script to search the string for the audio infos then made some adjustment to extract those infos correctly or going with the old-school hex editor way. Luckily, those audio infos always located at the end of the overlay binaries.

As for the Xbox/PC still sound bit incorrect, there's a possibility that the game has it's own custom implementation of the DVI IMA ADPCM codec.


Top
   
PostPosted: Sat Aug 06, 2022 4:01 pm 

Joined: Thu Aug 04, 2022 1:31 pm
Posts: 8
That would be awesome. I used someone's BMS script to rip stuff from Harry Potter Chamber of Secrets PS2 ".big" file. I'm afraid I'm not sure what else to do with these files. Your PS2 txth solution worked for the Moles file and half works for the Volcano file. But looking at MTVerti.mib file, which like Moles.mib has only 2 tracks, the txth didnt work and produced stuttering. Same for the Temple1.mib which seemingly contains 2 entirely different bits of music. Didn't realise how complicated was going to be. Maybe I should focus back on the .fsb Xbox/PC version?. All this just so I don't have to YouTubeToMP3 someone's video who recorded it ingame :(


Top
   
PostPosted: Sun Aug 07, 2022 2:25 am 
User avatar

Joined: Fri Mar 10, 2017 7:23 am
Posts: 248
Okay, this can go either both of these ways (This is for PS2 version)
One way: Open the 6.ovl with hex editor then select the offsets from 0x722057 to 0x72410A then copy it to a new file then save it as sound.bin (or whatever the name you want). For the THEME.MIB, open the 0.ovl then select from 0x2FFD3 until the the end of the file then save it as sound_1.bin or other name you'd prefer.

Another way: Use the sound.bin and sound_1.bin (see the attachment) I made from the PS2 version.
Those ways shares the same instruction: Use the mih_extract.bms script (included in the attachment) to the sound.bin and sound_1.bin (or whatever the name you used to save them) to extract the MIH files from it, then copy the MIH files to same directory as the MIB files.

From the looks of it, looks like some of the game's BGM have only 3 channels audio (1 stereo, 1 mono) or 4 (1 stereo, 2 mono or could be 2 stereo tracks), the rest of them are stereo (2 channels).

EDIT: Included the TXTP script so you don't have to split-combine the tracks yourself. Just put these in the same directory as the MIB/MIH combo. Then play the TXTP file with vgmstream

EDIT: Added the sound_1.bin inside the audio stuff.


Attachments:
WaG_ps2_audio_stuff.zip [1.8 KiB]
Downloaded 8 times
wag_txtp.zip [7.2 KiB]
Downloaded 7 times
Top
   
PostPosted: Sun Aug 07, 2022 6:31 pm 

Joined: Thu Aug 04, 2022 1:31 pm
Posts: 8
Thank you so much Blood! This has been a massive help! For speed I just used your attachments, but just so I understand the process I did it manually like you said and I got the same result. I'm still very new to all this, but how do you know that the MIB files are stored in the 6.ovl file? I searched for mib and nothing came up in the hex editor. I can see filenames but no extensions. Just so I can apply the same process to the 7.ovl file which as JackTheRipper said, there are voiceover lines in there which would be interesting to rip. Like how do you know which offset to start and end at?

Regardless, you've just solved a years long mystery for me, I've been on and off googling solutions for years and not found anything concrete so thanks again mate!!


Top
   
PostPosted: Sun Aug 07, 2022 8:54 pm 

Joined: Thu Aug 04, 2022 1:31 pm
Posts: 8
I realised that there are some extra tracks that only appear in the Xbox version, and I'm pretty sure most of these are actually unused
    Boiler RunLoop1M
    MTCombat
    NewCombat1
    NewStealth1M
    NewVert1
    VolcanoDanger1M
    VolHot2M
Someone has extracted these tracks before on YouTube, RingsOfGeonosis, but unfortunately has never responded to my inquiries. But some of these also have multiple channels. I wonder if its possible to tweak your method slightly to work with these files? Attached in this link https://drive.google.com/file/d/1ZumJhv ... sp=sharing


Top
   
PostPosted: Sun Aug 07, 2022 11:57 pm 
User avatar

Joined: Fri Mar 10, 2017 7:23 am
Posts: 248
EtherealCrisp wrote:
Thank you so much Blood! This has been a massive help! For speed I just used your attachments, but just so I understand the process I did it manually like you said and I got the same result. I'm still very new to all this, but how do you know that the MIB files are stored in the 6.ovl file? I searched for mib and nothing came up in the hex editor. I can see filenames but no extensions. Just so I can apply the same process to the 7.ovl file which as JackTheRipper said, there are voiceover lines in there which would be interesting to rip. Like how do you know which offset to start and end at?

Regardless, you've just solved a years long mystery for me, I've been on and off googling solutions for years and not found anything concrete so thanks again mate!!


First of all, it was the MIH header file that was inside the 6.ovl/0.vol, not the MIB file (It was already on MUSIC and MUSIC2 directory). Anyway, first thing I do is looking for distinctive byte value (MIH file always started with values of 0x40 bytes, then something close to it are hex values for audio sample rate, ex: 0xAC44 for 44100Hz) then comparing it with other games that uses the same format (ex: ATV2 Quad Power Racing). Then I worked my way up (or backwards) to looking for the info of MIH file sizes (in hex of course) then comparing that info by selecting the bytes until the starting value of MIH file occurs again and also the size of the filename and also the number of MIH files are stored there.

EtherealCrisp wrote:
I realised that there are some extra tracks that only appear in the Xbox version, and I'm pretty sure most of these are actually unused
    Boiler RunLoop1M
    MTCombat
    NewCombat1
    NewStealth1M
    NewVert1
    VolcanoDanger1M
    VolHot2M
Someone has extracted these tracks before on YouTube, RingsOfGeonosis, but unfortunately has never responded to my inquiries. But some of these also have multiple channels. I wonder if its possible to tweak your method slightly to work with these files? Attached in this link https://drive.google.com/file/d/1ZumJhv ... sp=sharing


I'll see what I can do. BRB in a few minutes or hours.
BTW, You don't need ovl files for the Xbox fsbs, because it already includes the header.

EDIT: Attachment for the Xbox audio stuffs added. Honestly, DVI IMA ADPCM codec is the closest one to make the audio sounds right, though maybe the muffled audio/volume discrepancies/crushed audio problem are still there. TXTP file also included for one file (MTCombat.fsb).


Attachments:
WaG Xbox audio stuff.zip [794 Bytes]
Downloaded 7 times
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 12 posts ] 

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