[Core/MCD] fixed pending level 1 interrupts when GFX interrupt is disabled (fixes random freezes out of "Batman Returns" option menu)

This commit is contained in:
EkeEke 2013-10-21 00:19:23 +02:00
parent 400fd5be16
commit 14d4074f11

View File

@ -739,7 +739,10 @@ static void scd_write_byte(unsigned int address, unsigned int data)
/* update IEN2 flag */
scd.regs[0x00].byte.h = (scd.regs[0x00].byte.h & 0x7f) | ((data & 0x04) << 5);
/* clear level 1 interrupt if disabled ("Batman Returns" option menu) */
scd.pending &= ~(data & 0x02);
/* update IRQ level */
s68k_update_irq((scd.pending & data) >> 1);
return;
@ -1025,6 +1028,9 @@ static void scd_write_word(unsigned int address, unsigned int data)
/* update IEN2 flag */
scd.regs[0x00].byte.h = (scd.regs[0x00].byte.h & 0x7f) | ((data & 0x04) << 5);
/* clear pending level 1 interrupt if disabled ("Batman Returns" option menu) */
scd.pending &= ~(data & 0x02);
/* update IRQ level */
s68k_update_irq((scd.pending & data) >> 1);