Is there anyway to rip audio samples from Neo-Geo games?
Technical discussion about the VGM format, and all the software you need to handle VGM files.
Moderator: Staff
Is there anyway to rip audio samples from Neo-Geo games?
(Please note that my english might not be perfect, as it isn't my native language)
Hey everyone! I've made an account to see if someone can help me with this...
I have a music channel on YouTube and I did a KOF 98-styled remix (with samples from that game recorded through Winamp using the VGM Plug-In and Audacity) and I plan to do more on the future. The thing is that I don't have all the samples I need and the process to extract them is VERY tedious and inconvenient (plus the length and quality of the samples vary too much, sometimes these are short and sometimes these are long). Are there any programs that allow me to extract the ADPCM samples and the Delta-T samples from the Neo-Geo VGZ files in a WAV format or something like that? (specifically those from KOF 98).
Hey everyone! I've made an account to see if someone can help me with this...
I have a music channel on YouTube and I did a KOF 98-styled remix (with samples from that game recorded through Winamp using the VGM Plug-In and Audacity) and I plan to do more on the future. The thing is that I don't have all the samples I need and the process to extract them is VERY tedious and inconvenient (plus the length and quality of the samples vary too much, sometimes these are short and sometimes these are long). Are there any programs that allow me to extract the ADPCM samples and the Delta-T samples from the Neo-Geo VGZ files in a WAV format or something like that? (specifically those from KOF 98).
- ValleyBell Offline
- Posts: 4937
- Joined: 2011-12-01, 20:20:07
- Location: Germany
You should have a look at [pack] these converters.
Those only convert sample data though. You need to split them separately afterwards.
You can run the tools on either the ROMs from the ROM set that contain the sample data or on uncompressed VGMs. (rename .vgz to .vgm.gz and use 7z or WinRAR to decompress them)
My post in that topic also has a few details on how to extract samples from VGMs using a hex-editor. Extracting samples from the VGMs first and running the decompression tools on those extracted samples may reduce DC offsets.
Those only convert sample data though. You need to split them separately afterwards.
You can run the tools on either the ROMs from the ROM set that contain the sample data or on uncompressed VGMs. (rename .vgz to .vgm.gz and use 7z or WinRAR to decompress them)
My post in that topic also has a few details on how to extract samples from VGMs using a hex-editor. Extracting samples from the VGMs first and running the decompression tools on those extracted samples may reduce DC offsets.
- 1983parrothead Offline
- Posts: 130
- Joined: 2014-12-30, 1:38:48
The process isn't different for other games.
also, I have an ADPCM codec (encoder / decoder) here that handles most of the ADPCM formats found in VGM files. I recommend splitting the samples before decoding them (or do a test decode first to get the split offsets) , as ADPCM relies on the decoder state being reset at the beginning of each sample.
also, I have an ADPCM codec (encoder / decoder) here that handles most of the ADPCM formats found in VGM files. I recommend splitting the samples before decoding them (or do a test decode first to get the split offsets) , as ADPCM relies on the decoder state being reset at the beginning of each sample.
Hi buddy, that can be done. But at the end depends exactly on how advance is your requirement. On the basis of that I can suggest.RaitoSama wrote:(Please note that my english might not be perfect, as it isn't my native language)
Hey everyone! I've made an account to see if someone can help me with this...
I have a music channel on YouTube and I did a KOF 98-styled remix (with samples from that game recorded through Winamp using the VGM Plug-In and Audacity) and I plan to do more on the future. The thing is that I don't have all the samples I need and the process to extract them is VERY tedious and inconvenient (plus the length and quality of the samples vary too much, sometimes these are short and sometimes these are long). Are there any programs that allow me to extract the ADPCM samples and the Delta-T samples from the Neo-Geo VGZ files in a WAV format or something like that? (specifically those from KOF 98).
Regards,
Cisa Smith
- MixerProductions Offline
- Posts: 27
- Joined: 2016-01-19, 16:06:06
If you don't want to use CLI apps you can use YM2610 Decoder found here. You can load the file and select the ADPCM type. However, if the ADPCM is set to ADPCM-B, you'll need to set the playback frequency. The files you load can have both ADPCM-A and ADPCM-B data.
Last edited by Dekyo-NO on 2021-06-11, 14:00:27, edited 1 time in total.
- MixerProductions Offline
- Posts: 27
- Joined: 2016-01-19, 16:06:06
Hey Dekyo thank you for the tips! I've just downloaded this, also I feel like I may be missing out some steps before using this program.
How exactly do I extract the ADPCM file that is readable by this decoder? Is there a tool to extract them from VGM files or do I need to do it from a ROM somehow?
Sorry if this sounds like a stupid question but this is a bit advanced for me lol
How exactly do I extract the ADPCM file that is readable by this decoder? Is there a tool to extract them from VGM files or do I need to do it from a ROM somehow?
Sorry if this sounds like a stupid question but this is a bit advanced for me lol
I usually extract them from the ROMs, but you can also extract it from VGM files (you need to decompress them if they're VGZipped).
If you choose the ROM path, you'll need to know which file has the samples. To find the file that has the ADPCM samples you can rely on the file extension. ADPCM files samples usually have the extension .v[number], i.e. Samurai Shodown V Special (samsh5sp) has two files that correspond to the ADPCM samples, 272-v1.v1 and 272-v2.v2. If the ROMs doesn't have file extension, then you simply need to know that the -v[number] part of the file name means it's the voice data.
If you choose the ROM path, you'll need to know which file has the samples. To find the file that has the ADPCM samples you can rely on the file extension. ADPCM files samples usually have the extension .v[number], i.e. Samurai Shodown V Special (samsh5sp) has two files that correspond to the ADPCM samples, 272-v1.v1 and 272-v2.v2. If the ROMs doesn't have file extension, then you simply need to know that the -v[number] part of the file name means it's the voice data.
- MixerProductions Offline
- Posts: 27
- Joined: 2016-01-19, 16:06:06
- MixerProductions Offline
- Posts: 27
- Joined: 2016-01-19, 16:06:06
Thanks so much for all the help guys, I have one last question. In noticed that the ADPCM-B samples seem to have a varied HZ for each sample.
My question is, is there any way to know what the rate needs to be set at to not sound like a garbled mess of white noise, or does it just have to be trial and error?
Luckily most of the samples are in the ADPCM-A portion so it's not too much of an issue but would be nice to know.
My question is, is there any way to know what the rate needs to be set at to not sound like a garbled mess of white noise, or does it just have to be trial and error?
Luckily most of the samples are in the ADPCM-A portion so it's not too much of an issue but would be nice to know.
- ValleyBell Offline
- Posts: 4937
- Joined: 2011-12-01, 20:20:07
- Location: Germany
Yes, ADPCM-A samples are fixed to about 18.5 KHz. The ADPCM-B / Delta-T unit allows for a variable sample rate.
In order to get proper sample rates, I'd probably just make a vgm2txt and then search for "DELTA-T: Playback Prescale"
You can get the internal chip frequency by combining the "Prescale High/Low" values.results in a chip frequency value of 0x56B2. ("High" = upper 2 digits/high byte, "Low" = lower 2 digits/low byte)
The effective sample rate should be (chip sample rate * frequency value / 0x10000).
So in this example (Y8950 @ 3579545 Hz, sample rate 49716 Hz), we get a sample rate of 16837 Hz
Note: The YM2610's sample rate is going to be different. I had a Y8950 file at hand, so I took that as an example, as the DeltaT unit is the same.
In order to get proper sample rates, I'd probably just make a vgm2txt and then search for "DELTA-T: Playback Prescale"
You can get the internal chip frequency by combining the "Prescale High/Low" values.
Code: Select all
0x0006A55C: 5C 11 56 Y8950: DELTA-T: Playback Prescale High 0x56
0x0006A562: 5C 10 B2 Y8950: DELTA-T: Playback Prescale Low 0xB2
The effective sample rate should be (chip sample rate * frequency value / 0x10000).
So in this example (Y8950 @ 3579545 Hz, sample rate 49716 Hz), we get a sample rate of 16837 Hz
Note: The YM2610's sample rate is going to be different. I had a Y8950 file at hand, so I took that as an example, as the DeltaT unit is the same.
- MixerProductions Offline
- Posts: 27
- Joined: 2016-01-19, 16:06:06
Re: Is there anyway to rip audio samples from Neo-Geo games?
Thanks so much for all your help on this thread. I have now ripped almost every single ADPCMA and B sample using this wonderful tool.
My final issue is with a few of the later games Metal Slug X, Metal Slug 3 the ADPCM-A samples are all garbled, and the Encoder only has the option to rip them at 18500.
I've tried ripping them manually with Goldwave and Audacity using varying different bits and KHz and not had any luck. I really want the guitars and other PCM from Metal Slug 3, but have only managed to rip the ADPCM-B samples.
My final issue is with a few of the later games Metal Slug X, Metal Slug 3 the ADPCM-A samples are all garbled, and the Encoder only has the option to rip them at 18500.
I've tried ripping them manually with Goldwave and Audacity using varying different bits and KHz and not had any luck. I really want the guitars and other PCM from Metal Slug 3, but have only managed to rip the ADPCM-B samples.
Re: Is there anyway to rip audio samples from Neo-Geo games?
Oh hi! First post here! I was (am*) quite intrigued with this whole neogeo sample extracting and i'm quite stuck with the ADPCM-B hz part
According to mr ValleyBell, i need to do a VGM2TXT on one of the songs and look for a "Delta T playback prescale" and combine high and low numbers. Problem is, i did use VGM2TXT but there is no "Delta-T playback prescale" stuff in the .txt so dunno what i'm missing... the song i used VGM2TXT on is this one (track 10, Richard Meyer)
For reference, this file is the .txt dump i have of the above song. As you can see, no prescale playback or nothing :/
2nd question = The formula (in decimal) would be "chip sample rate * the combined high low prescale number / 65536" right? I'm also stuck with the chip sample rate... in certain places i've seen a variable of 18500, 22050 or 44100 but in others 55500 so how do you find that one?
So if anyone can help, much appreciated!
Edit = In my particular case using the song above, the formula (whatever the numbers would be) should give a value around 12200 or a bit more ("guessed" via trial and error by comparing how it sounds ingame to the decoded rom's sample rate i chose manually) but nope... i'm stuck here T_T
That number is an approximate but i'd really love to have the correct value
According to mr ValleyBell, i need to do a VGM2TXT on one of the songs and look for a "Delta T playback prescale" and combine high and low numbers. Problem is, i did use VGM2TXT but there is no "Delta-T playback prescale" stuff in the .txt so dunno what i'm missing... the song i used VGM2TXT on is this one (track 10, Richard Meyer)
For reference, this file is the .txt dump i have of the above song. As you can see, no prescale playback or nothing :/
2nd question = The formula (in decimal) would be "chip sample rate * the combined high low prescale number / 65536" right? I'm also stuck with the chip sample rate... in certain places i've seen a variable of 18500, 22050 or 44100 but in others 55500 so how do you find that one?
So if anyone can help, much appreciated!
Edit = In my particular case using the song above, the formula (whatever the numbers would be) should give a value around 12200 or a bit more ("guessed" via trial and error by comparing how it sounds ingame to the decoded rom's sample rate i chose manually) but nope... i'm stuck here T_T
That number is an approximate but i'd really love to have the correct value
- ValleyBell Offline
- Posts: 4937
- Joined: 2011-12-01, 20:20:07
- Location: Germany
Re: Is there anyway to rip audio samples from Neo-Geo games?
- Please use an up-to-date version of vgm2txt. Your version doesn't show the GA20 clock in the header, so it is definitely pretty outdated. (older than from 2015?)
The current version (from December 2022) properly decodes the DeltaT commands. - The YM2610 clock is 8000000 Hz. You divide that by 144 to get the actual chip sample rate. (between 55 and 56 KHz).
Then you can apply the formula that you listed. (sample Hz = chip sample rate * playback prescale / 65536)