1 #include "driver.h" 2 extern "C" { 3 #include "fmopl.h" 4 } 5 #include "timer.h" 6 7 INT32 BurnTimerUpdateYM3812(INT32 nCycles); 8 void BurnTimerEndFrameYM3812(INT32 nCycles); 9 void BurnTimerUpdateEndYM3812(); 10 INT32 BurnTimerAttachYM3812(cpu_core_config *ptr, INT32 nClockspeed); 11 12 extern "C" void BurnYM3812UpdateRequest(); 13 14 INT32 BurnYM3812Init(INT32 num, INT32 nClockFrequency, OPL_IRQHANDLER IRQCallback, INT32 bAddSignal); 15 INT32 BurnYM3812Init(INT32 num, INT32 nClockFrequency, OPL_IRQHANDLER IRQCallback, INT32 (*StreamCallback)(INT32), INT32 bAddSignal); 16 void BurnYM3812SetRoute(INT32 nChip, INT32 nIndex, double nVolume, INT32 nRouteDir); 17 void BurnYM3812Reset(); 18 void BurnYM3812Exit(); 19 extern void (*BurnYM3812Update)(INT16* pSoundBuf, INT32 nSegmentEnd); 20 void BurnYM3812Scan(INT32 nAction, INT32* pnMin); 21 22 #define BURN_SND_YM3812_ROUTE 0 23 24 #define BurnYM3812Read(i, a) YM3812Read(i, a) 25 26 #if defined FBA_DEBUG 27 #define BurnYM3812Write(i, a, n) if (!DebugSnd_YM3812Initted) bprintf(PRINT_ERROR, _T("BurnYM3812Write called without init\n")); YM3812Write(i, a, n) 28 #else 29 #define BurnYM3812Write(i, a, n) YM3812Write(i, a, n) 30 #endif 31