Midnight Club 2 (PS2) Audio File Extraction

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
bigsteve327
Posts: 8
Joined: Thu Sep 09, 2021 7:49 am

Midnight Club 2 (PS2) Audio File Extraction

Post by bigsteve327 »

Hi Everyone! I am trying to extract the audio files from Midnight Club 2 on the PS2 and I think I need a BMS script that can help do this. I know that the game runs on the Angel Game Engine and was developed by Rockstar San Diego. Given this, I found a few BMS scripts that might have done the job but didn't:

The Midnight Club 3 BMS Script was able to extract 13225 RSTM files but none of them play actual music. It plays 10 seconds of random noises (verified through WinAmp & FooBar2000). My extraction of RSTM files from Midnight Club 3 Dub Edition Remix worked just fine though.
The Dave script just failed immediately.

Can I get some help with extracting the audio / music files from this game? Specifically, can I get some guidance as to what BMS script I could use, or how I could modify one of the existing scripts I have downloaded to be able to rip this?

Thanks!
BloodRaynare
Posts: 367
Joined: Fri Mar 10, 2017 7:23 am

Re: Midnight Club 2 (PS2) Audio File Extraction

Post by BloodRaynare »

The problem with this game was the ambience/NPCs sounds and the musics are combined within one archives (STREAMS.DAT), so it get overwhelming to find the actual music files (And there's a lot of NPCs and the ambiences audio in there as well). Anyway, if you're looking for the music files, look for the RSTM files that weigh more than 15MB or so or sort the files in the explorer by the largest sized files first.
bigsteve327
Posts: 8
Joined: Thu Sep 09, 2021 7:49 am

Re: Midnight Club 2 (PS2) Audio File Extraction

Post by bigsteve327 »

BloodRaynare wrote:The problem with this game was the ambience/NPCs sounds and the musics are combined within one archives (STREAMS.DAT), so it get overwhelming to find the actual music files (And there's a lot of NPCs and the ambiences audio in there as well). Anyway, if you're looking for the music files, look for the RSTM files that weigh more than 15MB or so or sort the files in the explorer by the largest sized files first.


Thank you for the reply! Unfortunately, all files I tried >= 1MB (156 that I found) resulted in a weird audio clip that is 10 seconds in length. The good news is that in one of the clips I heard, it sounded like a kickdrum was playing in the background which means that maybe I have to change the way the files are being extracted in order to get this to work.

Though one other interesting find was that when I extracted the music for the PC game version, the full tracks were quite compressed! Between 112kbps - 146 kbps. Since the streams.dat file for PC is only 520 MB compared to the 2.18 GB version found from the PS2 game, this leads me to believe that the PS2 does in fact have the uncompressed music.

I attached a screenshot containing the playlist of the files I tried playing to show that they are all in fact, a weird 10 second length.

This is the BMS Script from MC3 that I am attempting to re-use for MC2:

Code: Select all

# streams.dat and padding.dat

idstring Hash
get FILES long
for i = 0 < FILES
    get DUMMY long
    get OFFSET long
    get SIZE long

    set NAME string i
    string NAME += ".rstm"

    log NAME OFFSET SIZE
next i
BloodRaynare
Posts: 367
Joined: Fri Mar 10, 2017 7:23 am

Re: Midnight Club 2 (PS2) Audio File Extraction

Post by BloodRaynare »

Ah I forget to tell you, MC2 uses a different extensions, it's .stm instead or .rstm (Though some file might be .rstm? I'm not sure).
Try rename all the files with that (Or edit the script by changing ".rstm" to ".stm" then extract all of them again). Also, try to update the vgmstream plugins too as well.
bigsteve327
Posts: 8
Joined: Thu Sep 09, 2021 7:49 am

Re: Midnight Club 2 (PS2) Audio File Extraction

Post by bigsteve327 »

BloodRaynare wrote:Ah I forget to tell you, MC2 uses a different extensions, it's .stm instead or .rstm (Though some file might be .rstm? I'm not sure).
Try rename all the files with that (Or edit the script by changing ".rstm" to ".stm" then extract all of them again). Also, try to update the vgmstream plugins too as well.


THIS DID IT! THANK YOU SO MUCH :D :D :D

I had to play them using foobar but that's okay.
bigsteve327
Posts: 8
Joined: Thu Sep 09, 2021 7:49 am

Re: Midnight Club 2 (PS2) Audio File Extraction

Post by bigsteve327 »

BloodRaynare wrote:Ah I forget to tell you, MC2 uses a different extensions, it's .stm instead or .rstm (Though some file might be .rstm? I'm not sure).
Try rename all the files with that (Or edit the script by changing ".rstm" to ".stm" then extract all of them again). Also, try to update the vgmstream plugins too as well.


Hi, I have one more request related to this extraction: For some reason, the main menu music doesn't appear in any of the files that I extracted. Do you have any idea of where that music might be? Thanks!
BloodRaynare
Posts: 367
Joined: Fri Mar 10, 2017 7:23 am

Re: Midnight Club 2 (PS2) Audio File Extraction

Post by BloodRaynare »

bigsteve327 wrote:Hi, I have one more request related to this extraction: For some reason, the main menu music doesn't appear in any of the files that I extracted. Do you have any idea of where that music might be? Thanks!


Main menu music was inside the BANKS.DAT file (Extract it with this BMS script). Apparently it was sequenced. The file you were looking for is "fe_hard.bd", "fe_hard.hd", and "fe_hard.sq" and it's variants ("fe_hard_01", "fe_hard_02", and so on). Use VGMToolbox's mkpsf2 frontend section to make it into a PSF2 file (I'll recommend to make it into a psf2lib+minipsf2 since it uses multiple SQ files. However, that means you need to copy all the fe_hard's SQ, BD, and HD file into a separate directory). You'll also need to supply the "LIBSD.IRX", "MODHSYN.IRX", and "MODMIDI.IRX" from the "SYSTEM" directory as well for the necessary PSF2 playback modules. Then you can play the miniPSF2/PSF2 files with the PSF Decoder plugin if you're using foobar2000.
bigsteve327
Posts: 8
Joined: Thu Sep 09, 2021 7:49 am

Re: Midnight Club 2 (PS2) Audio File Extraction

Post by bigsteve327 »

BloodRaynare wrote:
bigsteve327 wrote:Hi, I have one more request related to this extraction: For some reason, the main menu music doesn't appear in any of the files that I extracted. Do you have any idea of where that music might be? Thanks!


Main menu music was inside the BANKS.DAT file (Extract it with this BMS script). Apparently it was sequenced. The file you were looking for is "fe_hard.bd", "fe_hard.hd", and "fe_hard.sq" and it's variants ("fe_hard_01", "fe_hard_02", and so on). Use VGMToolbox's mkpsf2 frontend section to make it into a PSF2 file (I'll recommend to make it into a psf2lib+minipsf2 since it uses multiple SQ files. However, that means you need to copy all the fe_hard's SQ, BD, and HD file into a separate directory). You'll also need to supply the "LIBSD.IRX", "MODHSYN.IRX", and "MODMIDI.IRX" from the "SYSTEM" directory as well for the necessary PSF2 playback modules. Then you can play the miniPSF2/PSF2 files with the PSF Decoder plugin if you're using foobar2000.


Thank you! So I have generate 5 psf2 files (each one with the corresponding fe_hard_xx). I did notice that the reverb was quite overpowering (a nice touch in some spots) so I set it to 0. And all of them played like a charm. Everything else I left default.

Do you happen to know about documentation for the mkpsf2 tool specifically? I couldn't find any in the readme nor online. It's okay if not, just curious.

For those who come across this post: For each of the fe_hard_01, 2, 3, 4: You need to make a copy of the fe_hard.bd & hd files and name it the same way. You can put all of them into one directory and batch convert the 5 files.