diff options
-rw-r--r-- | src/mame/video/gime.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mame/video/gime.cpp b/src/mame/video/gime.cpp index 1d95800624a..efb4b6a0bcd 100644 --- a/src/mame/video/gime.cpp +++ b/src/mame/video/gime.cpp @@ -840,6 +840,24 @@ inline void gime_device::write_gime_register(offs_t offset, uint8_t data) // Bit 0 MC0 ROM map control if (xorval & 0x4B) update_memory(); + + // IRQ master switch changed? + if (xorval & 0x20) + { + if (data & 0x20) + m_write_irq(irq_r()); + else + m_write_irq(false); + } + + // FIRQ master switch changed? + if (xorval & 0x10) + { + if (data & 0x10) + m_write_firq(firq_r()); + else + m_write_firq(false); + } break; case 0x01: @@ -1169,6 +1187,8 @@ void gime_device::change_gime_irq(uint8_t data) m_irq = data; if (m_gime_registers[0x00] & 0x20) m_write_irq(irq_r()); + else + m_write_irq(false); } } @@ -1185,6 +1205,8 @@ void gime_device::change_gime_firq(uint8_t data) m_firq = data; if (m_gime_registers[0x00] & 0x10) m_write_firq(firq_r()); + else + m_write_firq(false); } } |