fix FME-7 IRQ ACK logic in quicknes and neshawk

This commit is contained in:
zeromus 2015-03-05 18:36:09 +00:00
parent 3589323ca1
commit aaa5704107
3 changed files with 7 additions and 5 deletions

View File

@ -179,8 +179,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
irq_countdown = value.Bit(7);
irq_enabled = value.Bit(0);
//if (value != 0) NES.LogLine("irq set to {0},{1} with value {2:x2}", irq_countdown, irq_enabled, value);
if (!irq_enabled) irq_asserted = false;
//always ACK for reg 0xD and no other reg
//http://forums.nesdev.com/viewtopic.php?f=2&t=12436&start=15
irq_asserted = false;
SyncIrq();
break;
case 0xE:
irq_counter &= 0xFF00;

Binary file not shown.

View File

@ -160,8 +160,8 @@ void Mapper_Fme7::write_irq( nes_time_t time, int index, int data )
{
case 0x0D:
irq_mode = data;
if ( (irq_mode & 0x81) != 0x81 )
irq_pending = false;
irq_pending = false;
irq_changed();
break;
case 0x0E:
@ -173,8 +173,6 @@ void Mapper_Fme7::write_irq( nes_time_t time, int index, int data )
break;
}
if ( (irq_mode & 0x81) == 0x81 )
irq_changed();
}
void Mapper_Fme7::write_register( int index, int data )