From 7d753ec6d3e1d0d418e5f8bb281f6a9138c008e7 Mon Sep 17 00:00:00 2001 From: smf- Date: Fri, 10 Dec 2021 21:44:06 +0000 Subject: [PATCH] Add scan line register to Shaolin's Road & Kicker [smf, jotego] --- src/mame/drivers/shaolins.cpp | 15 ++++++++------- src/mame/includes/shaolins.h | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mame/drivers/shaolins.cpp b/src/mame/drivers/shaolins.cpp index e7622edd83a..5238b27c937 100644 --- a/src/mame/drivers/shaolins.cpp +++ b/src/mame/drivers/shaolins.cpp @@ -127,6 +127,7 @@ void shaolins_state::shaolins_map(address_map &map) map(0x0000, 0x0000).w(FUNC(shaolins_state::nmi_w)); /* bit 0 = flip screen, bit 1 = nmi enable, bit 2 = ? */ /* bit 3, bit 4 = coin counters */ map(0x0100, 0x0100).w("watchdog", FUNC(watchdog_timer_device::reset_w)); + map(0x0200, 0x02ff).lr8(NAME([this]() -> u8 { return m_screen->vpos(); })); map(0x0300, 0x0300).w("sn1", FUNC(sn76489a_device::write)); /* trigger chip to read from latch. The program always */ map(0x0400, 0x0400).w("sn2", FUNC(sn76489a_device::write)); /* writes the same number as the latch, so we don't */ /* bother emulating them. */ @@ -293,13 +294,13 @@ void shaolins_state::shaolins(machine_config &config) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(32*8, 32*8); - screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); - screen.set_screen_update(FUNC(shaolins_state::screen_update)); - screen.set_palette(m_palette); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(32*8, 32*8); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(shaolins_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_shaolins); PALETTE(config, m_palette, FUNC(shaolins_state::shaolins_palette), 16*8*16+16*8*16, 256); diff --git a/src/mame/includes/shaolins.h b/src/mame/includes/shaolins.h index fbe85edb216..807b2a18417 100644 --- a/src/mame/includes/shaolins.h +++ b/src/mame/includes/shaolins.h @@ -15,6 +15,7 @@ public: shaolins_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this,"maincpu"), + m_screen(*this,"screen"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), m_spriteram(*this, "spriteram"), @@ -27,6 +28,7 @@ public: private: required_device m_maincpu; + required_device m_screen; required_device m_gfxdecode; required_device m_palette;