• Please review our updated Terms and Rules here

Does anybody understand how OPL2 percussion mode works?

PgrAm

Experienced Member
Joined
Sep 28, 2011
Messages
276
Location
Toronto, Canada
Been trying to tweak the OPL2 (adlib) drum sound for my game in progress and ran into some trouble. I thought the snare drum sounded too much like the hihat so I tried playing with some registers but no luck, ADSR envelopes were really straightforward once you figure out which registers correspond to each drum (this is not very well documented), but I could clearly tell that something was still missing cause I couldn't get a good sound.

At this point I figured that I should try using DosBox to dump the registers from a decent drum sound then just copy the settings so I fired up Adlib JukeBox and grabbed the settings. This method showed me that I had neglected to set the Frequency registers for the drums, which I didn't know actually made a difference. So I copied all the registers from Adlib JukeBox that I thought would affect the drums but no luck, my drums don't sound the same, in fact they sound horrible. I think I'm missing some really important register setting but I can't find much documentation on the percussion mode.

So far I've messed with the 0x20, 0x23, 0x40, 0x43, 0x60, 0x63, 0x80, 0x83, 0xE0, 0xE3, 0xC0 registers for each drum channel and the Pitch/Fnum registers. Does anyone know any other registers which affect the drums?
 
Last edited:
Yeah, it's very poorly documented. ModdingWiki has a teensy bit more information, but not much. I suppose one method would be to poke through the source of an OPL2 emulator and see if it can be determined that way.

I'm kind of curious if the feedback parameter affects the drum sounds that take over "modulator" operators, and/or if that's part of how the "noise" sounds are generated.
 
Thanks, I looked at the ModdingWiki article but unfortunately there's nothing new I could find. Ill do some experiments on the feedback parameters and keep you posted.
 
A while back I was using an online tool to control the chip ( years ago ). The problem was it wasn't doing all it was suppose to. I ended up writing directly to the ports as it wasn't doing what it said it was doing.
Dwight
 
I thought the snare drum sounded too much like the hihat
It's yamaha FM in single operator mode -- the BASS DRUM usually sounds like a hihat too, USUALLY not a lot you can do about that. I've never heard anything done in percussion mode on OPL that didn't sound like a bunch of tin cans being banged by monkeys with soda straws.

But to be fair, to my ears even "The Fatman's" legendary FM tracks make me want to heat up 12" long sewing needles in my gas forge and jam them into my ears. I'm the nutter who thinks even CMS sounds better as it least it doesn't TRY to be something it's not.

THAT SAID I think I have working code for that here somewhere, I'll dig and double check. Worst comes to worst, I have that Blaster Guide book that documents damned near everything.
 
Most software outside of Adlib's own didn't really use percussion mode, so don't feel obligated to use it. Yes, it gives you 2 additional voices, but the loss of flexibility is usually too high a penalty.
 
Yes, it gives you 2 additional voices
Which I never understood why it wasn't 3 voices since you're losing three two-operator for one-operator... or is that extra missing channel applied to all five rhythm voices?
 
Which I never understood why it wasn't 3 voices since you're losing three two-operator for one-operator... or is that extra missing channel applied to all five rhythm voices?
One of the five percussion sounds (I think the bass drum?) uses two operators; the other four use one.
 
For an out-of-the-box approach, you can play digitized drums on the SB interface, and use OPL2/3 for the rest of the music. Zone 66 did this. Won't work on actual Adlib cards of course, but most people have something SB compatible.
 
I've never heard anything done in percussion mode on OPL that didn't sound like a bunch of tin cans being banged by monkeys with soda straws.

I'm beginning to think that this is inevitable. I think the Snare and the Bass drum can be OK but its seeming like the hihat and cymbal just can't be programmed to sound half decent. I thought about using samples but that obviously wouldn't work on the original adlib which I want to target.
 
The other option, of course, is to roll up normal OPL2 patches for your drum sounds and give up on the dedicated percussion channels. It takes some doing, but you can coax better alternatives out of the chip if you don't mind losing the "extra" channels.
 
..but I think the nicest use of it was by Vibrants:
Jim Power on MS DOS also makes really great usage of it. I guess this is the result of natively composing it for the soundblaster and not for some midi platform and then cheaply port the music to it.


About the percussion mode, Kings of the Beach, Castlevania, Goldenaxe, Ys II and Street Fighter 2 are some games that use it. Here's something interesting, most Japanese arcade games with the OPL2 chip that don't have a separate PCM chip also make use of the percussion mode, with Toaplan games making quite extensive use of it.

Here's Zero Wing as an example.

 
Back
Top