INT32 BurnYMF278BInit(INT32 /* nClockFrequency */, UINT8* YMF278BROM, void (*IRQCallback)(INT32, INT32), INT32 (*StreamCallback)(INT32)) { DebugSnd_YMF278BInitted = 1; BurnYMF278BExit(); DebugSnd_YMF278BInitted = 1; BurnYMF278BStreamCallback = YMF278BStreamCallbackDummy; if (StreamCallback) { BurnYMF278BStreamCallback = StreamCallback; } ymf278b_start(0, YMF278BROM, IRQCallback, BurnYMFTimerCallback, YMF278B_STD_CLOCK, nBurnSoundRate); BurnTimerInit(ymf278b_timer_over, NULL); pBuffer = (INT16*)malloc(4096 * 2 * sizeof(INT16)); memset(pBuffer, 0, 4096 * 2 * sizeof(INT16)); nYMF278BPosition = 0; nFractionalPosition = 0; // default routes YMF278BVolumes[BURN_SND_YMF278B_YMF278B_ROUTE_1] = 1.00; YMF278BVolumes[BURN_SND_YMF278B_YMF278B_ROUTE_2] = 1.00; YMF278BRouteDirs[BURN_SND_YMF278B_YMF278B_ROUTE_1] = BURN_SND_ROUTE_LEFT; YMF278BRouteDirs[BURN_SND_YMF278B_YMF278B_ROUTE_2] = BURN_SND_ROUTE_RIGHT; return 0; }
static int DrvExit() { PsikyoshVideoExit(); Sh2Exit(); BurnYMF278BExit(); EEPROMExit(); if (AllMem) { free(AllMem); AllMem = NULL; } speedhack_address = ~0; memset (speedhack_pc, 0, 4 * sizeof(int)); return 0; }
int BurnYMF278BInit(int /* nClockFrequency */, unsigned char* YMF278BROM, void (*IRQCallback)(int, int), int (*StreamCallback)(int)) { BurnYMF278BExit(); BurnYMF278BStreamCallback = YMF278BStreamCallbackDummy; if (StreamCallback) BurnYMF278BStreamCallback = StreamCallback; ymf278b_start(0, YMF278BROM, IRQCallback, BurnYMFTimerCallback, YMF278B_STD_CLOCK, nBurnSoundRate); BurnTimerInit(ymf278b_timer_over, NULL); pBuffer = (short*)malloc(4096 * 2 * sizeof(short)); memset(pBuffer, 0, 4096 * 2 * sizeof(short)); nYMF278BPosition = 0; nFractionalPosition = 0; return 0; }