diff --git a/source/Debugger/Debugger_Display.cpp b/source/Debugger/Debugger_Display.cpp index f7c919f5..70d7a9ec 100644 --- a/source/Debugger/Debugger_Display.cpp +++ b/source/Debugger/Debugger_Display.cpp @@ -2051,10 +2051,21 @@ void DrawMemory ( int line, int iMemDump ) if (eDevice == DEV_SY6522) { sprintf( sText, "%02X ", (unsigned) ((BYTE*)&SS_MB.Unit[nAddr & 1].RegsSY6522)[iAddress] ); - if (iCol & 1) - DebuggerSetColorFG( DebuggerGetColor( iForeground )); + if (SS_MB.Unit[nAddr & 1].bTimer1Active && (iAddress == 4 || iAddress == 5)) // T1C + { + DebuggerSetColorFG(DebuggerGetColor(FG_INFO_TITLE)); // if timer1 active then draw in white + } + else if (SS_MB.Unit[nAddr & 1].bTimer2Active && (iAddress == 8 || iAddress == 9)) // T2C + { + DebuggerSetColorFG(DebuggerGetColor(FG_INFO_TITLE)); // if timer2 active then draw in white + } else - DebuggerSetColorFG( DebuggerGetColor( FG_INFO_ADDRESS )); + { + if (iCol & 1) + DebuggerSetColorFG( DebuggerGetColor( iForeground )); + else + DebuggerSetColorFG( DebuggerGetColor( FG_INFO_ADDRESS )); + } } else if (eDevice == DEV_AY8910) diff --git a/source/Mockingboard.cpp b/source/Mockingboard.cpp index 371267e1..325deddc 100644 --- a/source/Mockingboard.cpp +++ b/source/Mockingboard.cpp @@ -1805,8 +1805,8 @@ void MB_GetSnapshot_v1(SS_CARD_MOCKINGBOARD_v1* const pSS, const DWORD dwSlot) memset(&pSS->Unit[i].RegsSSI263, 0, sizeof(SSI263A)); // Not used by debugger pSS->Unit[i].nAYCurrentRegister = pMB->nAYCurrentRegister; - pSS->Unit[i].bTimer1IrqPending = false; - pSS->Unit[i].bTimer2IrqPending = false; + pSS->Unit[i].bTimer1Active = pMB->bTimer1Active; + pSS->Unit[i].bTimer2Active = pMB->bTimer2Active; pSS->Unit[i].bSpeechIrqPending = false; nDeviceNum++; diff --git a/source/SaveState_Structs_v1.h b/source/SaveState_Structs_v1.h index 826db256..c91e24b5 100644 --- a/source/SaveState_Structs_v1.h +++ b/source/SaveState_Structs_v1.h @@ -116,8 +116,8 @@ struct MB_Unit_v1 BYTE RegsAY8910[16]; SSI263A RegsSSI263; BYTE nAYCurrentRegister; - bool bTimer1IrqPending; - bool bTimer2IrqPending; + bool bTimer1Active; + bool bTimer2Active; bool bSpeechIrqPending; };