-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
43 lines (32 loc) · 1.24 KB
/
README
File metadata and controls
43 lines (32 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
dbopl OPL3 emulator
===================
this is the so-called dbopl opl3 emulator, ripped from DOSBOX svn rev 4391
(November 2020), with full commit history and some tiny touch-ups to make
it compile standalone. as of the time of this writing, this is the default
OPL emulator used by DOSBOX.
Usage:
======
drop files into your project, include dbopl.h, and use in your code:
// initialize the chip(s). samplerate is typicallly 44100.
DBOPL::Handler chip = DBOPL::Handler();
// write a value into a register.
chip.WriteReg(reg, val);
// get a sample from the chip.
int32_t sample_tmp;
int16_t sample;
chip.Generate(&tmp, 1);
sample = sample_tmp;
then compile it and link dbopl.cpp to your code.
that's pretty much all there is to it.
check https://github.com/digital-sound-antiques/emu2413/blob/master/sample2413.c
for a good example of what and how to feed into the chip, and when to read
samples (and how many) from it.
although the example uses a different chip emulator, the strategy is identical.
License
=======
unfortunately, the code is licensed as GPL2+.
TODO
====
convert to a language that doesn't suck, i.e. C.
also it would be nice to poke the original authors whether they could relicense
the code as MIT.