summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/gime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/gime.cpp')
-rw-r--r--src/mame/video/gime.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mame/video/gime.cpp b/src/mame/video/gime.cpp
index e44fcd07117..04229e231af 100644
--- a/src/mame/video/gime.cpp
+++ b/src/mame/video/gime.cpp
@@ -184,6 +184,7 @@ void gime_device::device_start(void)
save_item(NAME(m_mmu));
save_item(NAME(m_sam_state));
save_item(NAME(m_ff22_value));
+ save_item(NAME(m_ff23_value));
save_item(NAME(m_interrupt_value));
save_item(NAME(m_irq));
save_item(NAME(m_firq));
@@ -302,6 +303,7 @@ void gime_device::device_reset(void)
m_displayed_rgb = false;
m_ff22_value = 0;
+ m_ff23_value = 0;
update_memory();
reset_timer();
@@ -612,6 +614,22 @@ uint8_t *gime_device::memory_pointer(uint32_t address)
//-------------------------------------------------
+// pia_write - observe writes to pia 1
+//-------------------------------------------------
+
+void gime_device::pia_write(offs_t offset, uint8_t data)
+{
+ if (offset == 0x03)
+ m_ff23_value = data;
+
+ /* only cache writes to $FF22 if the data register is addressed */
+ if (offset == 0x02 && ((m_ff23_value & 0x04) == 0x04))
+ m_ff22_value = data;
+}
+
+
+
+//-------------------------------------------------
// update_cart_rom
//-------------------------------------------------