diff options
Diffstat (limited to 'src/devices/video/ym7101.h')
| -rw-r--r-- | src/devices/video/ym7101.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/devices/video/ym7101.h b/src/devices/video/ym7101.h index 773b98e5631..9cd6b5c95dc 100644 --- a/src/devices/video/ym7101.h +++ b/src/devices/video/ym7101.h @@ -42,12 +42,15 @@ public: if (machine().side_effects_disabled()) return; - if (m_vint_pending) + // chukrck2 & d_titov2 cares about not ack-ing an irq that isn't enabled. + // fatalrew/killshow & sesame otherwise need this + // https://jsgroth.dev/blog/posts/emulator-bugs-fatal-rewind/ + if (m_vint_pending && m_ie0) { m_vint_pending = 0; m_vint_callback(0); } - else if (m_hint_pending) + else if (m_hint_pending && m_ie1) { m_hint_pending = 0; m_hint_callback(0); @@ -143,14 +146,17 @@ private: void control_port_w(offs_t offset, u16 data, u16 mem_mask); u16 hv_counter_r(offs_t offset, u16 mem_mask); + u16 get_hv_counter(); + void vram_w(offs_t offset, u16 data, u16 mem_mask); void cram_w(offs_t offset, u16 data, u16 mem_mask); - bool m_ie1; + bool m_ie1; // HINT enable bool m_vr; // 128 KiB VRAM mode (undocumented) - bool m_de; - bool m_ie0; + bool m_de; // display enable + bool m_ie0; // VINT enable bool m_m1; // DMA enable + bool m_m3; // latch H/V counter u32 m_hscroll_address; u8 m_hsz, m_vsz; u8 m_auto_increment; @@ -171,6 +177,7 @@ private: u8 m_hres_mode; int m_vint_pending, m_hint_pending; int m_vcounter; // irq4 counter + u16 m_hvcounter_latch; bitmap_rgb32 m_bitmap; bool render_line(int scanline); |
