Skip to content

Convert YM3812 drums to melodic channels.. and then to midi.?

Technical discussion about the VGM format, and all the software you need to handle VGM files.

Moderator: Staff

  • Wanny Offline
  • Posts: 2
  • Joined: 2018-04-01, 0:56:56

Convert YM3812 drums to melodic channels.. and then to midi.?

Post by Wanny »

The title sounds messy, so let me explain.

I again want to convert the Snow Bros music (that uses the YM3812 chip, aka OPL2) to MIDI, and the tracks have a couple of little problems:
- The Bass Line is in the DRUMS section as the BD part.
- An addicional melodic instrument is also in the DRUMS section as the TOM part.

So, if I try to convert them using VGM2MID, the pitch of those instruments is completely lost.

Is there any way to turn those drum tracks into regular instruments?



As a bonus question, how was the Snow Bros music ripped to VGM in the first place?
Attachments
bd sample.7z
Sample audio of the "bass drum" track
(118.06 KiB) Downloaded 78 times
  • User avatar
  • ValleyBell Offline
  • Posts: 1680
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Re: Convert YM3812 drums to melodic channels.. and then to midi.?

Post by ValleyBell »

Wanny wrote: 2026-03-26, 20:40:12 I again want to convert the Snow Bros music (that uses the YM3812 chip, aka OPL2) to MIDI, and the tracks have a couple of little problems:
- The Bass Line is in the DRUMS section as the BD part.
- An addicional melodic instrument is also in the DRUMS section as the TOM part.

So, if I try to convert them using VGM2MID, the pitch of those instruments is completely lost.

Is there any way to turn those drum tracks into regular instruments?
I'm afraid that there is currently no way to do this without additional programming.
The drum channels are a bit special and vgm2mid is not in development since 2013.

Some background:
For melodic channels, the register that gets the octave of the frequency (registers 0xB0...0xB8) also contains a "key on" flag.
When the "drum mode" is enabled on OPL chips, this does not work anymore for the last 3 channels. (channels 7...9)
They instead get their "key on" state from a special register (register 0xBD) that contains the "key on" flags for all 5 drum channels.
The 5 drum channels also use the frequency information of channels 7-9 as shown here.

If you would want to remap from drums back to melodic channels, then you'd need to:
  • move the "bass drum" key on bit from register 0xBD (bit 4) to 0xB6
  • move the "snare drum" key on bit from register 0xBD (bit 3) to 0xB7
  • move the "tom tom" key on bit from register 0xBD (bit 2) to 0xB8
  • disable drum mode in register 0xBD (clear bit 5)
The process is a bit complicated though, as you'd need to edit existing VGM commands that write to OPL register 0xBD and also insert new ones that write to 0xB6...0xB8, as well as keeping track of the current state of 0xB6...0xB8 to not break the frequencies.

Wanny wrote: 2026-03-26, 20:40:12 As a bonus question, how was the Snow Bros music ripped to VGM in the first place?
It was logged/recorded using the MAME VGM mod.
Post Reply