Fix for "Mad Effect 1&2" demos (PR #725)

. 6502 interrupt delays 1 opcode when interrupt occurs on last cycle of opcode (#724).
. Only 1-cycle delay for VF_TEXT & VF_MIXED mode changes (#656).
NB. Mad Effect 1 still has a bit of flicker on Space Invader (left edge)
This commit is contained in:
TomCh
2019-11-16 23:49:21 +00:00
committed by GitHub
parent 97e73c632d
commit d1b595f7bd
4 changed files with 72 additions and 15 deletions
+4 -3
View File
@@ -660,9 +660,10 @@ BYTE VideoSetMode(WORD, WORD address, BYTE write, BYTE, ULONG uExecutedCycles)
if (!IS_APPLE2)
RGB_SetVideoMode(address);
bool delay = true;
if ((oldVideoMode ^ g_uVideoMode) & VF_PAGE2)
delay = false; // PAGE2 flag changed state, so no 1 cycle delay (GH#656)
// Only 1-cycle delay for VF_TEXT & VF_MIXED mode changes (GH#656)
bool delay = false;
if ((oldVideoMode ^ g_uVideoMode) & (VF_TEXT|VF_MIXED))
delay = true;
NTSC_SetVideoMode( g_uVideoMode, delay );