diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs index cc5a62c5fc..3a076f3592 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs @@ -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; diff --git a/output/dll/libquicknes.dll b/output/dll/libquicknes.dll index 23e523e8c8..7f05aa3181 100644 Binary files a/output/dll/libquicknes.dll and b/output/dll/libquicknes.dll differ diff --git a/quicknes/nes_emu/Mapper_Fme7.cpp b/quicknes/nes_emu/Mapper_Fme7.cpp index 47e54e892e..97a08983a6 100644 --- a/quicknes/nes_emu/Mapper_Fme7.cpp +++ b/quicknes/nes_emu/Mapper_Fme7.cpp @@ -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 )