Pinball VGM Ripping
If you're experiencing problems with the website (packs pages/forum/wiki) or you would like to suggest something, you can post here.
Moderator: Staff
- SpaceQuakes Offline
- Posts: 6
- Joined: 2017-09-03, 18:56:43
Pinball VGM Ripping
Hi I was wanting to make a HQ rip of High Speed's Multiball theme, but I can't figure out what I exactly need for a extracted VGM.
Can someone help me out?
Can someone help me out?
Pinball games are usually tricky... In this case it seems like M1 supports this game so you can use that for WAV logging. Unfortunately VGM logging does not capture the drums or any other sampled sounds. Also songs that use voice samples usually do not play properly in M1 (see: BK2K). You wouldn't be able to log those to VGM anyway, the BK2K rip is an exception since I used some nasty hacks...
If M1 does not work you will have to pray that the game works well enough in MAME to be able to enter the service mode where there may or may not be a sound test.
And finally if there isn't a sound test you might have to mess around with the MAME debugger and in the worst case do assembly hacking. I won't go in depth about that here...
Finally, to even be able to log the Williams/Midway machines you will need to modify MAME that logs the DAC (drum samples etc) as if it was an YM2612. I made a custom build for BK2K, but it may not work here if the hardware is different.
If M1 does not work you will have to pray that the game works well enough in MAME to be able to enter the service mode where there may or may not be a sound test.
And finally if there isn't a sound test you might have to mess around with the MAME debugger and in the worst case do assembly hacking. I won't go in depth about that here...
Finally, to even be able to log the Williams/Midway machines you will need to modify MAME that logs the DAC (drum samples etc) as if it was an YM2612. I made a custom build for BK2K, but it may not work here if the hardware is different.
- SpaceQuakes Offline
- Posts: 6
- Joined: 2017-09-03, 18:56:43
M1 can be found here. Seems like it's impossible to log to VGM after all, so you'll have to live with only doing WAV for now.
How you can rip VGM Pinball when converting DAC with YM2612.
It's me! PS999
I'm really working and doing...
Youtube|Twitter|DeviantArt
My HDD USB is working on the PC home, now I'm back! I can work to the rip.
I'm really working and doing...
Youtube|Twitter|DeviantArt
My HDD USB is working on the PC home, now I'm back! I can work to the rip.
- SpaceQuakes Offline
- Posts: 6
- Joined: 2017-09-03, 18:56:43
- SpaceQuakes Offline
- Posts: 6
- Joined: 2017-09-03, 18:56:43
To check if the game uses the FM chip, just start it in MAME or M1 and get it to the point where it plays some music. Then mute the YM2151 using the mixer window in BridgeM1 or the tab menu in MAME. If the music stops or if only drums and samples are playing, then the game uses the FM chips.
The process for BK2K involved quite a few steps. In order to get the drums working I modified MAME sources to log the DAC writes (used for the drums) as YM2612 DAC writes. dacopt was used to optimize these.
The voice samples were ripped by using the MAME debugger and some hacking. The pinball boards have multiple CPUs and I find out the address the main CPU has to write to in order to command the sound CPU to play a sample. A program was then written to insert the samples into the VGM file as "PWM" datablocks (a sort of DAC used in the Sega 32X) and another program to sequence the datablock play commands (the sequences themselves were written by hand).
Finally, to even be able to log the songs in MAME without using the sound test (which does not include all the songs), more hacking was required. Same deal as with samples, I find out where the main CPU has to write in order to play a song.
The process for BK2K involved quite a few steps. In order to get the drums working I modified MAME sources to log the DAC writes (used for the drums) as YM2612 DAC writes. dacopt was used to optimize these.
The voice samples were ripped by using the MAME debugger and some hacking. The pinball boards have multiple CPUs and I find out the address the main CPU has to write to in order to command the sound CPU to play a sample. A program was then written to insert the samples into the VGM file as "PWM" datablocks (a sort of DAC used in the Sega 32X) and another program to sequence the datablock play commands (the sequences themselves were written by hand).
Finally, to even be able to log the songs in MAME without using the sound test (which does not include all the songs), more hacking was required. Same deal as with samples, I find out where the main CPU has to write in order to play a song.
- SpaceQuakes Offline
- Posts: 6
- Joined: 2017-09-03, 18:56:43
So using dacopt can write what DAC streams and copy what it written into a VGM, sort of like copying answers off someone else during a test, I got it.
But how did you find the music and what website source did you use to find the roms for the music?
How did you modified the MAME sources for dacopt to work?
Can you please elaborate on hacking for the samples and logging respectively?
But how did you find the music and what website source did you use to find the roms for the music?
How did you modified the MAME sources for dacopt to work?
Can you please elaborate on hacking for the samples and logging respectively?
You could find the roms from any website that carries the full and up to date MAME romsets. Finding the music itself is usually done with M1 or the game's sound test.SpaceQuakes wrote:But how did you find the music and what website source did you use to find the roms for the music?
Unless you know programming it seems a bit pointless to explain all that. And even if you do you should have gotten enough info from what I've written earlier to understand. There is no proper way to play DAC streams directly in VGM (apart from the PWM but I used that too!) so I piggy back on the YM2612's DAC mode, even though the pinball hardware does not have an YM2612. dacopt's job is just to reduce the file size of the VGMs by optimizing the streamed DAC data.SpaceQuakes wrote:How did you modified the MAME sources for dacopt to work?
Well I can't really explain everything step by step. My knowledge comes from experience, so my advice would just be to try it on your own. Learn how to use the MAME debugger, 6800/6809 assembly and C++ in order to understand the MAME source code which explains the hardware. You have a mountain to climb and unfortunately I can't really pull you all the way up...SpaceQuakes wrote:Can you please elaborate on hacking for the samples and logging respectively?
- SpaceQuakes Offline
- Posts: 6
- Joined: 2017-09-03, 18:56:43