From 27f203827a7d27f6a2396a2c145731447138f84e Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 5 Oct 2016 13:42:41 +0200 Subject: [PATCH] cischeat.cpp: irq notes, bumped framerate to 60 Hz to all minus captflag/scudhamm (nw) --- src/mame/drivers/cischeat.cpp | 17 ++++++++++------- src/mame/includes/cischeat.h | 2 ++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/mame/drivers/cischeat.cpp b/src/mame/drivers/cischeat.cpp index 0e7ce338956..d044f93b70d 100644 --- a/src/mame/drivers/cischeat.cpp +++ b/src/mame/drivers/cischeat.cpp @@ -108,7 +108,7 @@ ROM R 000000-03ffff < Work RAM RW 0c0000-0c3fff 180000-183fff Shared RAM RW 040000-047fff 080000-087fff Road RAM RW 080000-0807ff 100000-1007ff -Whatchdog 100000-100001 200000-200001 +Watchdog 100000-100001 200000-200001 ---------------------------------------------------------------- ---------------------------------------------------------------- @@ -1834,19 +1834,22 @@ GFXDECODE_END Big Run, Cisco Heat, F1 GrandPrix Star **************************************************************************/ -/* TODO: this is hackish */ +/* + irq 1 is comms related, presumably the bridge chip is capable of sending the irq signal at given times. Wild Pilot of course doesn't need it. + irq 2/4 controls gameplay speed, currently unknown about the timing + */ TIMER_DEVICE_CALLBACK_MEMBER(cischeat_state::bigrun_scanline) { int scanline = param; if(scanline == 240) // vblank-out irq - m_cpu1->set_input_line(4, HOLD_LINE); + m_cpu1->set_input_line(m_screen->frame_number() & 1 ? 4 : 1, HOLD_LINE); - if(scanline == 154) + if(scanline == 0) m_cpu1->set_input_line(2, HOLD_LINE); - if(scanline == 69) - m_cpu1->set_input_line(1, HOLD_LINE); +// if(scanline == 69) +// m_cpu1->set_input_line(1, HOLD_LINE); } @@ -1881,7 +1884,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_REFRESH_RATE(30) //TODO: wrong! + MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) diff --git a/src/mame/includes/cischeat.h b/src/mame/includes/cischeat.h index 0da261d0aad..5ea8390fa7d 100644 --- a/src/mame/includes/cischeat.h +++ b/src/mame/includes/cischeat.h @@ -24,6 +24,7 @@ public: m_cpu3(*this, "cpu3"), m_cpu5(*this, "cpu5"), m_soundcpu(*this, "soundcpu"), + m_screen(*this, "screen"), m_watchdog(*this, "watchdog"), m_oki1(*this, "oki1"), m_oki2(*this, "oki2"), @@ -119,6 +120,7 @@ public: optional_device m_cpu3; optional_device m_cpu5; optional_device m_soundcpu; + required_device m_screen; optional_device m_watchdog; required_device m_oki1; required_device m_oki2;