static int DrvFrame() { if (DrvReset) { DrvDoReset(); } Sh2NewFrame(); { DrvInputs = ~0x60 | (DrvDips[0] & 0x60); for (int i = 0; i < 32; i++) { DrvInputs ^= (DrvJoy1[i] & 1) << i; } } BurnTimerEndFrame(28636350 / 60); Sh2SetIRQLine(4, SH2_IRQSTATUS_AUTO); if (pBurnSoundOut) { BurnYMF278BUpdate(nBurnSoundLen); } if (pBurnDraw) { PsikyoshDraw(); } memcpy (DrvSprBuf, DrvSprRAM, 0x4000); return 0; }
void BurnYMF278BWriteRegister(int nRegister, unsigned char nValue) { switch (nRegister) { case 0: BurnYMF278BUpdate(BurnYMF278BStreamCallback(nBurnSoundRate)); YMF278B_data_port_0_A_w(nValue); break; case 1: YMF278B_data_port_0_B_w(nValue); break; case 2: BurnYMF278BUpdate(BurnYMF278BStreamCallback(nBurnSoundRate)); YMF278B_data_port_0_C_w(nValue); break; } }
UINT8 BurnYMF278BReadStatus() { #if defined FBA_DEBUG if (!DebugSnd_YMF278BInitted) bprintf(PRINT_ERROR, _T("BurnYMF278BReadStatus called without init\n")); #endif BurnYMF278BUpdate(BurnYMF278BStreamCallback(nBurnSoundRate)); return YMF278B_status_port_0_r(); }
void BurnYMF278BWriteRegister(INT32 nRegister, UINT8 nValue) { #if defined FBA_DEBUG if (!DebugSnd_YMF278BInitted) bprintf(PRINT_ERROR, _T("BurnYMF278BWriteRegister called without init\n")); #endif switch (nRegister) { case 0: BurnYMF278BUpdate(BurnYMF278BStreamCallback(nBurnSoundRate)); YMF278B_data_port_0_A_w(nValue); break; case 1: YMF278B_data_port_0_B_w(nValue); break; case 2: BurnYMF278BUpdate(BurnYMF278BStreamCallback(nBurnSoundRate)); YMF278B_data_port_0_C_w(nValue); break; } }
unsigned char BurnYMF278BReadStatus() { BurnYMF278BUpdate(BurnYMF278BStreamCallback(nBurnSoundRate)); return YMF278B_status_port_0_r(); }