VOGONS

Common searches


OPL chip emulation

Topic actions

First post, by Galova

User metadata

Is there an OPL2/3 chip emulation in DosBox?

OPL chip was found on any of the old soundcards and utilized FM synthesis.

Reply 1 of 26, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Yes. There's even a setting that lets you choose which one to emulate:
- none
- OPL2 (Adlib/SB)
- dual OPL2 (SB Pro)
- OPL3 (SB16)
- auto (let DOSBox decide)

I think DOSBox uses MAME's OPL emulation code.

Reply 2 of 26, by Galova

User metadata

Well... if so then it must be possible to get OPL chip settings for its internal General Midi interface from developers? I mean bank settings (FM operator settings for intruments) to emulate it with some software synth like NI FM7. I've been looking for such information for a very long time.

I've suspected programmers must really know something about this.
Can anyone help me, please?

Reply 3 of 26, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

There is lots of info out there on OPL chips I think.

You should also know that there is no special support in the OPL chips for MIDI, since they weren't specifically designed to be MIDI synthesizers. Therefore, any software you see that plays MIDI music on an OPL chip is doing a lot of work in that software to translate between MIDI and OPL.

Reply 4 of 26, by Galova

User metadata

I'm not a programmer... Thus I'm not capable of using most of the public info found on the net. I know nothing about reverse engineering of drivers and anything like.
Of course I've been looking for some information about this translation you told, but really found nothing that would put some light on this matter.
Still can I get some help from developers of the DosBox?
I'm just a "cheep tune" composer....

When I mentioned info about "general midi" sounds that we all know from old soundcards like SoundBlaster I thought about oscillator type, amplitude envelope, osc order etc for each of those instruments. Software of hardware, it is most obviously known to such anvanced programmers that develop emulation software, 'cause as far as I know it must be vital info.

Reply 5 of 26, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

A lot of emulators that emulate OPL chips (including DOSBox) use code from the MAME project. You might want to try getting a hold of whoever wrote that code.

You might also want to look for info on .IBK/.BNK files, which a lot of games used to store instrument data that gets uploaded to OPL chips.

Reply 9 of 26, by arromdee3

User metadata
Rank Newbie
Rank
Newbie
HunterZ wrote:

http://www.mame.net/

It's an open-source project for emulating arcade machine hardware.

Mame isn't open source, except for one version released under GPL. It does have source available, but that isn't what "open source" means.

Reply 11 of 26, by Galova

User metadata
Rank Newbie
Rank
Newbie

I havent managed to get in contact with any sentient being withing MAME project. 😀 As I expected they "redirected" me somewhere else on Mars maybe. One guy said that I should watch inside ADplug gm patch set. Even if I told I'm not a programmer. I thougt it is quite easy just to tell me "attack set to 5, release set to 2, first waveform type absolute sine, parallel operators order. all makes electric piano in opl"
eeh...
I didn't know it is possible to make emulator being blind

Reply 12 of 26, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie

As far as I understand (I am no authority there), making an Adlib emulator means not knowing the settings you search for. Those are provided by the games, not by the emulator. There are several file formats which are used to store these settings, and I guess that's what the MAME people tried to point you at: get one of these OPL2/3 sound bank settings and analyze the contents. Which probably means using the public info you tried to avoid. Sorry to say that, but I think that's unavoidable, unless you find a kind soul who translates such a sound bank into a human readable file.

Reply 13 of 26, by Galova

User metadata
Rank Newbie
Rank
Newbie

I understand this of course. But where do I get info about HOW to translate this hexadecimal or just numeric mumble to a human language? They aren't eager to tell the secret of data format. Frankly speaking I din't find anything *public* regarding this thing.

Reply 14 of 26, by Kippesoep

User metadata
Rank Oldbie
Rank
Oldbie

What exactly do you need? I can tell you how to interpret the data, but what good will that do you? How are you going to use this data?

Also, the actual numbers are rather arbitrary. Game A may use an entirely different set of parameters for a "piano" than game X. Neither will sound very much like a real piano anyway.

My site: Ramblings on mostly tech stuff.

Reply 15 of 26, by Galova

User metadata
Rank Newbie
Rank
Newbie

I'd like to build a patchset for VST synth for different purposes.
I was actually interested in GM patchset. I've got some file like GM.ibk
But cannot understand its contents

Reply 17 of 26, by Kippesoep

User metadata
Rank Oldbie
Rank
Oldbie

IBK files are "Instrument BanK" files. You can view/edit those with SBTimbre, which you can find here.

My site: Ramblings on mostly tech stuff.

Reply 18 of 26, by arromdee3

User metadata
Rank Newbie
Rank
Newbie
HunterZ wrote:

I don't think it's quite as bad as you make it out to be:

Interesting. They must have changed it recently. They used to have an obnoxious clause which basically said "you can distribute derived works, but we don't consider it a derived work if...." "Derived work" is a legal term and you can't redefine it and still be open source; otherwise you could just say "I define a derived work to be one for which you paid me a million dollars. See, you can still distribute derived works!"

But it's still nowhere near open source. Open source lets you sell the program. And the restriction on selling is pointless, since when you do sell it, the people you sell it to can give away copies for free, so nobody's ever going to sell it except as part of thousands of programs on a Linux CD, for instance. And open source can't restrict use ("nor may they be used in a commercial product or activity..") Open source licenses are supposed to grant rights, not take them away; use of a program you have a legitimate copy of is normally allowed. It's not clear whether restricting use this way is even possible by law.

Reply 19 of 26, by Galova

User metadata
Rank Newbie
Rank
Newbie

I also found a source code for ADPlug that emulates OPL in Winamp.
It has a source file MIDIDATA.h which must be a liabrary for C compiler.

Well... it contains data as follows:
/* This set of GM instrument patches was provided by Jorrit Rouwe...
*/

{ 0x21, 0x21, 0x8f, 0x0c, 0xf2, 0xf2, 0x45, 0x76, 0x00, 0x00, 0x08, 0, 0, 0 }, /* Acoustic Grand */
{ 0x31, 0x21, 0x4b, 0x09, 0xf2, 0xf2, 0x54, 0x56, 0x00, 0x00, 0x08, 0, 0, 0 }, /* Bright Acoustic */
{ 0x31, 0x21, 0x49, 0x09, 0xf2, 0xf2, 0x55, 0x76, 0x00, 0x00, 0x08, 0, 0, 0 }, /* Electric Grand */
{ 0xb1, 0x61, 0x0e, 0x09, 0xf2, 0xf3, 0x3b, 0x0b, 0x00, 0x00, 0x06, 0, 0, 0 }, /* Honky-Tonk */

etc...
people at MAME project forum directed me to see inside this sourse code.
Though I cannot translate this data to understand theese numbers.

I've refered to Yamaha docs etc. but it didn't follow to anything. I guess it must be some trascription of what contains in the IBK files, but still FM Timbre prog that you told me about has numerical interface too... Without an actual OPL chip onboard I cannot even check which waveforms are those numbers, which operator order etc. And even if I had OPL I would never guess.
Heh. Also those IBK files I found are for OPL2 (2 operator) and even not dual OPL2 or OPL3.