[Core/MCD] fixed incorrect masking of Level 3 (GFX) interrupts (spurious freeze during Japanese BIOS intro)

This commit is contained in:
EkeEke 2014-10-23 23:22:10 +02:00
parent 6a118b1238
commit 07677550fe
2 changed files with 4 additions and 4 deletions

View File

@ -2,7 +2,7 @@
* Genesis Plus
* Mega CD / Sega CD hardware
*
* Copyright (C) 2012-2013 Eke-Eke (Genesis Plus GX)
* Copyright (C) 2012-2014 Eke-Eke (Genesis Plus GX)
*
* Redistribution and use of this code or any derivative works are permitted
* provided that the following conditions are met:
@ -736,7 +736,7 @@ static void scd_write_byte(unsigned int address, unsigned int data)
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);
scd.pending &= 0xfd | (data & 0x02);
/* update IRQ level */
s68k_update_irq((scd.pending & data) >> 1);
@ -1025,7 +1025,7 @@ static void scd_write_word(unsigned int address, unsigned int data)
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);
scd.pending &= 0xfd | (data & 0x02);
/* update IRQ level */
s68k_update_irq((scd.pending & data) >> 1);

View File

@ -2,7 +2,7 @@
* Genesis Plus
* Mega CD / Sega CD hardware
*
* Copyright (C) 2012-2013 Eke-Eke (Genesis Plus GX)
* Copyright (C) 2012-2014 Eke-Eke (Genesis Plus GX)
*
* Redistribution and use of this code or any derivative works are permitted
* provided that the following conditions are met: