summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2020-11-26 20:54:13 +0100
committer angelosa <lordkale4@gmail.com>2020-11-26 20:54:13 +0100
commit3228002ed4781ece4c5cfae99c8e22247bd53932 (patch)
tree7144addc08b9f3ef4e2bdbac515e97058b7d0764
parent03707c72c6d31bcd3d55f0a92f41fb8ddd717540 (diff)
bnstars.cpp: make it boot again
-rw-r--r--src/mame/drivers/bnstars.cpp3
-rw-r--r--src/mame/machine/jaleco_ms32_sysctrl.cpp7
2 files changed, 8 insertions, 2 deletions
diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp
index b1cd84f8861..9b8a082eedf 100644
--- a/src/mame/drivers/bnstars.cpp
+++ b/src/mame/drivers/bnstars.cpp
@@ -704,6 +704,9 @@ void ms32_bnstars_state::bnstars(machine_config &config)
m_sysctrl->prg_timer_cb().set(FUNC(ms32_bnstars_state::timer_irq_w));
m_sysctrl->sound_ack_cb().set(FUNC(ms32_bnstars_state::sound_ack_w));
m_sysctrl->sound_reset_cb().set(FUNC(ms32_bnstars_state::sound_reset_line_w));
+// TODO: runs better with this on but eventually game crashes during match presentation
+// (may be due of the field irq positioning)
+// m_sysctrl->set_invert_vblank_lines(true);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/machine/jaleco_ms32_sysctrl.cpp b/src/mame/machine/jaleco_ms32_sysctrl.cpp
index 55fffddd8bb..4d05d40329d 100644
--- a/src/mame/machine/jaleco_ms32_sysctrl.cpp
+++ b/src/mame/machine/jaleco_ms32_sysctrl.cpp
@@ -148,8 +148,11 @@ void jaleco_ms32_sysctrl_device::device_reset()
m_timer.irq_enable = false;
m_timer.interval = 1;
flush_prg_timer();
-// flush_scanline_timer(m_crtc.vert_display);
- m_timer_scanline->adjust(attotime::never);
+ // bnstars1 never ever set up the CRTC at boot, causing no irq.
+ // we currently compensate by basically giving one frame of time,
+ // ofc on the real thing the first vblank is really when screen sync occurs.
+ flush_scanline_timer(m_crtc.vert_display-1);
+// m_timer_scanline->adjust(attotime::never);
// put flipping in a default state
m_flip_screen_state = false;
m_flip_screen_cb(0);