diff --git a/src/burn/drv/psikyo/d_psikyo.cpp b/src/burn/drv/psikyo/d_psikyo.cpp index d9ed778ec..d49251abd 100644 --- a/src/burn/drv/psikyo/d_psikyo.cpp +++ b/src/burn/drv/psikyo/d_psikyo.cpp @@ -880,7 +880,7 @@ UINT16 __fastcall gunbirdReadWord(UINT32 sekAddress) case 0xC00000: // Joysticks return ~DrvInput[0]; case 0xC00002: { // Inputs / Sound CPU status - bprintf(PRINT_NORMAL, _T(" - Sound reply read.\n")); +// bprintf(PRINT_NORMAL, _T(" - Sound reply read.\n")); PsikyoSynchroniseZ80(0); if (!nSoundlatchAck) { return ~DrvInput[1]; @@ -1960,13 +1960,31 @@ static INT32 DrvScan(INT32 nAction, INT32 *pnMin) SCAN_VAR(bVBlank); - BurnYM2610Scan(nAction, pnMin); + // March 29, 2014 - sound desync fix -> Burn[CHIP]Scan(); depending on hardware - dink + switch (PsikyoHardwareVersion) { + case PSIKYO_HW_SAMURAIA: + case PSIKYO_HW_GUNBIRD: { + BurnYM2610Scan(nAction, pnMin); + break; + } + case PSIKYO_HW_S1945: + case PSIKYO_HW_TENGAI: { + BurnYMF278BScan(nAction, pnMin); + break; + } + } SCAN_VAR(nSoundlatch); SCAN_VAR(nSoundlatchAck); SCAN_VAR(nPsikyoZ80Bank); - TengaiMCUScan(nAction, pnMin); + //TengaiMCUScan(nAction, pnMin); + // no! only call this if the game uses the TengaiMCU otherwise + // it'll change the tile banks to some strange value + // March 30, 2014: Fix for corrupted tiles after loading savestate in Samurai Aces - dink + if (PsikyoHardwareVersion == PSIKYO_HW_TENGAI || PsikyoHardwareVersion == PSIKYO_HW_S1945) { + TengaiMCUScan(nAction, pnMin); + } if (nAction & ACB_WRITE) { int nBank = nPsikyoZ80Bank;