summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2019-03-21 11:32:03 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2019-03-21 11:32:03 +1100
commited789cf6aea5176943153798370bfebb22c63713 (patch)
tree1b3a2862f029732968133a85391bdbed1ae36c9e
parenta91062c565d1dde5fe0828ac70c7ba30deb47f8b (diff)
MT 07263: tenspot: Only half of the games are accessible.
-rw-r--r--src/mame/drivers/galaxian.cpp13
-rw-r--r--src/mame/includes/galaxian.h2
2 files changed, 5 insertions, 10 deletions
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index c3213bc002e..565b76814b3 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -681,17 +681,15 @@ WRITE_LINE_MEMBER(galaxian_state::vblank_interrupt_w)
m_maincpu->set_input_line(m_irq_line, ASSERT_LINE);
}
-WRITE_LINE_MEMBER(galaxian_state::tenspot_interrupt_w)
+INPUT_CHANGED_MEMBER(galaxian_state::tenspot_fake)
{
- vblank_interrupt_w(state);
-
- if (m_fake_select.read_safe(0x00))
+ if (newval)
{
m_tenspot_current_game++;
m_tenspot_current_game%=10;
tenspot_set_game_bank(m_tenspot_current_game, 1);
- m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
}
+ m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
}
WRITE8_MEMBER(galaxian_state::irq_enable_w)
@@ -3254,7 +3252,7 @@ static INPUT_PORTS_START( tenspot )
PORT_DIPUNKNOWN( 0x80, 0x80 )
PORT_START("FAKE_SELECT") /* fake button to move onto next game - until select rom is understood! */
- PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Next Game (Fake)") PORT_IMPULSE(1)
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Next Game (Fake)") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, galaxian_state, tenspot_fake, nullptr)
PORT_MODIFY("IN0")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
@@ -6165,9 +6163,6 @@ void galaxian_state::tenspot(machine_config &config)
/* separate tile/sprite ROMs */
m_gfxdecode->set_info(gfx_tenspot);
-
- /* video hardware */
- m_screen->screen_vblank().set(FUNC(galaxian_state::tenspot_interrupt_w));
}
void galaxian_state::zigzag(machine_config &config)
diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h
index 651c145ce1a..a6b7bdef871 100644
--- a/src/mame/includes/galaxian.h
+++ b/src/mame/includes/galaxian.h
@@ -239,7 +239,7 @@ public:
void tenspot_set_game_bank(int bank, int from_game);
uint32_t screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(vblank_interrupt_w);
- DECLARE_WRITE_LINE_MEMBER(tenspot_interrupt_w);
+ DECLARE_INPUT_CHANGED_MEMBER(tenspot_fake);
TIMER_DEVICE_CALLBACK_MEMBER(checkmaj_irq0_gen);
TIMER_DEVICE_CALLBACK_MEMBER(scramble_stars_blink_timer);
TIMER_DEVICE_CALLBACK_MEMBER(timefgtr_scanline);