26#ifndef AUDIO_SOFTSYNTH_OPL_MAME_H
27#define AUDIO_SOFTSYNTH_OPL_MAME_H
29#ifndef DISABLE_MAME_OPL
31#include "common/scummsys.h"
32#include "common/random.h"
34#include "audio/fmopl.h"
40 FMOPL_ENV_BITS_HQ = 16,
41 FMOPL_ENV_BITS_MQ = 8,
42 FMOPL_ENV_BITS_LQ = 8,
43 FMOPL_EG_ENT_HQ = 4096,
44 FMOPL_EG_ENT_MQ = 1024,
49typedef void (*OPL_TIMERHANDLER)(
int channel,
double interval_Sec);
50typedef void (*OPL_IRQHANDLER)(
int param,
int irq);
51typedef void (*OPL_UPDATEHANDLER)(
int param,
int min_interval_us);
53#define OPL_TYPE_WAVESEL 0x01
145 OPL_TIMERHANDLER TimerHandler;
147 OPL_IRQHANDLER IRQHandler;
149 OPL_UPDATEHANDLER UpdateHandler;
156#define OPL_TYPE_YM3526 (0)
157#define OPL_TYPE_YM3812 (OPL_TYPE_WAVESEL)
159void OPLBuildTables(
int ENV_BITS_PARAM,
int EG_ENT_PARAM);
161FM_OPL *OPLCreate(
int type,
int clock,
int rate);
163void OPLSetTimerHandler(
FM_OPL *
OPL, OPL_TIMERHANDLER TimerHandler,
int channelOffset);
164void OPLSetIRQHandler(
FM_OPL *
OPL, OPL_IRQHANDLER IRQHandler,
int param);
165void OPLSetUpdateHandler(
FM_OPL *
OPL, OPL_UPDATEHANDLER UpdateHandler,
int param);
169unsigned char OPLRead(
FM_OPL *
OPL,
int a);
171void OPLWriteReg(
FM_OPL *
OPL,
int r,
int v);
172void YM3812UpdateOne(
FM_OPL *
OPL, int16 *buffer,
int length);
175FM_OPL *makeAdLibOPL(
int rate);
bool isStereo() const override
Definition: mame.h:192
void generateSamples(int16 *buffer, int length) override
void write(int a, int v) override
void writeReg(int r, int v) override