1 // burn_ym2608.h 2 #include "driver.h" 3 extern "C" { 4 #include "ay8910.h" 5 #include "fm.h" 6 } 7 #include "timer.h" 8 9 extern "C" void BurnYM2608UpdateRequest(); 10 11 INT32 BurnYM2608Init(INT32 nClockFrequency, UINT8* YM2608ADPCMROM, INT32* nYM2608ADPCMSize, UINT8* YM2608IROM, FM_IRQHANDLER IRQCallback, INT32 (*StreamCallback)(INT32), double (*GetTimeCallback)(), INT32 bAddSignal); 12 INT32 BurnYM2608Init(INT32 nClockFrequency, UINT8* YM2608ADPCMROM, INT32* nYM2608ADPCMSize, UINT8* YM2608IROM, FM_IRQHANDLER IRQCallback, INT32 bAddSignal); 13 void BurnYM2608SetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir); 14 void BurnYM2608Reset(); 15 void BurnYM2608Exit(); 16 extern void (*BurnYM2608Update)(INT16* pSoundBuf, INT32 nSegmentEnd); 17 void BurnYM2608Scan(INT32 nAction, INT32* pnMin); 18 19 #define BURN_SND_YM2608_YM2608_ROUTE_1 0 20 #define BURN_SND_YM2608_YM2608_ROUTE_2 1 21 #define BURN_SND_YM2608_AY8910_ROUTE 2 22 23 #define BurnYM2608SetAllRoutes(v, d) \ 24 BurnYM2608SetRoute(BURN_SND_YM2608_YM2608_ROUTE_1, v, d); \ 25 BurnYM2608SetRoute(BURN_SND_YM2608_YM2608_ROUTE_2, v, d); \ 26 BurnYM2608SetRoute(BURN_SND_YM2608_AY8910_ROUTE , v, d); 27 28 #define BurnYM2608Read(a) YM2608Read(0, a) 29 30 #if defined FBA_DEBUG 31 #define BurnYM2608Write(a, n) if (!DebugSnd_YM2608Initted) bprintf(PRINT_ERROR, _T("BurnYM2608Write called without init\n")); YM2608Write(0, a, n) 32 #else 33 #define BurnYM2608Write(a, n) YM2608Write(0, a, n) 34 #endif 35