METAL GEAR SOLID 2 - Extracting Sequences from the Game? by DunksLovesSounds at 6:12 PM EDT on March 13, 2024
Hi. I am completely new to forums and I've decided to make an account to specifically ask the question that I can't find much on.
Recently, I discovered that this game uses Sequenced Music for most of it's in-game music and sound effects. I managed to convert some samples with PSound as well as sample instruments. Because of PSound's extraction, for some reason the loop points don't sound correct as they do on the file viewer, but fortauntely, I think it's not too bad of a fix since it seems that the end loop point of every file type is always the one that needs some tweaking. Loop points, proper sample rates, and even the thousands of files inside of stage2.DAT are not the problem for me. But what I don't know is how to extract/convert it's sequenced music.
I am using METAL GEAR SOLID 2: SUBSTANCE as my ripping source. I have heard in other forums that .sdx is apparently the extension of the audio banks, maybe even the sequences I'm trying to find, but I don't think PSound brings those up. Does anyone know of a way to extract those sequenced files and convert them to MIDI? Also, I know that this game uses a similar audio engine that METAL GEAR SOLID 1, a game I am also trying to rip for MIDI and SF2. I recall a forum that has Ruby extensions for converting it's .mdx sequences to a MIDI file (I haven't succeeded in a conversion yet).
Does anyone know if those tools can be used to extract .sdx (unless it's .mdx like MGS1) or if there's some tool out there for exporting Instrument information? I know this is a lot, but I figured since I'm interested in SF2 creation, I'd ask.
The Ruby scripts can convert midis from MGS1, but they contain only note events, lenght and volume. ANY other parameter (tempo, scilence, pitch bend etc) is missing. The sdx files from MGS2 are larger in size compare to mdx, so the scrips won’t work for them. Also PSound DOESN’T extract everything. There are small waveforms (mostly menu effects) within Stage.dat which the program just ignores (too small?).
SDX is sort of package format that encapsulates the EFX/MDX sequences and WVX banks from MGS1/beatmania PSX. (They're also found in ZOE1 & 2 since those games also use Kazuki Muraoka's sound driver).
MDX data is a series of 32-bit words, with the value of the highest byte (minus 128) corresponding to a command in an internal table of callbacks.
MGS3 switched to a different sound driver written by Kazunori Hideya that uses actual MIDI for the sound effect sequences, but the music is all streamed.
by sublogic003 at 3:33 PM EDT on September 27, 2024
Don't know if anyone is reading this anymore, but just found out that unMDX.rb can extract midis from MGS2 as well. So is possible to extract sequences from the game (but it still sounds like a broken mess).
by Enclave123 at 4:09 PM EDT on September 27, 2024
Interesting find, can you share the extracted midis?
I am interested in analyzing them.
Yeah they do sound like that due to custom soundbanks.
So from what I see, unMDX.rb can't separate the presets. It's only going to Preset 0 for every channel. This could be fixed if imported to FL Studio and then change the MIDI outs on certain tracks I think.
These 17 channels obviously have to be part of the dynamic change when hiding behind the left wall during the fight.
And it seems it didn't carry over the Tempo value? Not sure though.
Here's a google drive to more sound-banks if needed: -w11c (Fortune/Dead Cell Boss) -w12b (Plant Sneaking Theme) -w24c (Hostage Room) -w25a (Harrier Boss) -w32a (Twilight Sniping during Sniper Escort) -w61a (Solidus Boss)