summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/konami/timeplt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/konami/timeplt.cpp')
-rw-r--r--src/mame/konami/timeplt.cpp551
1 files changed, 434 insertions, 117 deletions
diff --git a/src/mame/konami/timeplt.cpp b/src/mame/konami/timeplt.cpp
index 7d8ec72619a..7ca3462f2d2 100644
--- a/src/mame/konami/timeplt.cpp
+++ b/src/mame/konami/timeplt.cpp
@@ -1,5 +1,6 @@
// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
+// copyright-holders: Nicola Salmoria
+
/***************************************************************************
Time Pilot
@@ -48,15 +49,342 @@
***************************************************************************/
#include "emu.h"
-#include "timeplt.h"
+
#include "konamipt.h"
#include "timeplt_a.h"
#include "cpu/z80/z80.h"
+#include "machine/74259.h"
#include "machine/watchdog.h"
#include "sound/ay8910.h"
+#include "sound/tc8830f.h"
+
+#include "emupal.h"
+#include "screen.h"
+#include "tilemap.h"
+
+
+namespace {
+
+class timeplt_state : public driver_device
+{
+public:
+ timeplt_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_mainlatch(*this, "mainlatch"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_colorram(*this, "colorram"),
+ m_videoram(*this, "videoram"),
+ m_spriteram(*this, "spriteram%u", 1U)
+ { }
+
+ void timeplt(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void video_start() override;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<ls259_device> m_mainlatch;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+
+ // memory pointers
+ required_shared_ptr<uint8_t> m_colorram;
+ required_shared_ptr<uint8_t> m_videoram;
+ required_shared_ptr_array<uint8_t, 2> m_spriteram;
+
+ bool m_video_enable = false;
+
+ // video-related
+ tilemap_t *m_bg_tilemap = nullptr;
+
+ void main_map(address_map &map);
+
+private:
+ // misc
+ uint8_t m_nmi_enable = 0;
+
+ void nmi_enable_w(int state);
+ void video_enable_w(int state);
+ template <uint8_t Which> void coin_counter_w(int state);
+ void videoram_w(offs_t offset, uint8_t data);
+ void colorram_w(offs_t offset, uint8_t data);
+ uint8_t scanline_r();
+ TILE_GET_INFO_MEMBER(get_tile_info);
+ void palette(palette_device &palette) const;
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void vblank_irq(int state);
+};
+
+class psurge_state : public timeplt_state
+{
+public:
+ using timeplt_state::timeplt_state;
+
+ void psurge(machine_config &config);
+
+protected:
+ virtual void video_start() override;
+
+private:
+ uint8_t protection_r();
+
+ void main_map(address_map &map);
+};
+
+class bikkuric_state : public timeplt_state
+{
+public:
+ using timeplt_state::timeplt_state;
+
+ void bikkuric(machine_config &config);
+
+ int hopper_status_r();
+
+protected:
+ virtual void video_start() override;
+
+private:
+ TILE_GET_INFO_MEMBER(get_tile_info);
+
+ void main_map(address_map &map);
+};
+
+class chkun_state : public bikkuric_state
+{
+public:
+ chkun_state(const machine_config &mconfig, device_type type, const char *tag) :
+ bikkuric_state(mconfig, type, tag),
+ m_tc8830f(*this, "tc8830f")
+ { }
+
+ void chkun(machine_config &config);
+
+private:
+ required_device<tc8830f_device> m_tc8830f;
+
+ void sound_w(uint8_t data);
+};
+
+
+/***************************************************************************
+
+ Convert the color PROMs into a more useable format.
+
+ Time Pilot has two 32x8 palette PROMs and two 256x4 lookup table PROMs
+ (one for characters, one for sprites).
+ The palette PROMs are connected to the RGB output this way:
+
+ bit 7 -- 390 ohm resistor -- BLUE
+ -- 470 ohm resistor -- BLUE
+ -- 560 ohm resistor -- BLUE
+ -- 820 ohm resistor -- BLUE
+ -- 1.2kohm resistor -- BLUE
+ -- 390 ohm resistor -- GREEN
+ -- 470 ohm resistor -- GREEN
+ bit 0 -- 560 ohm resistor -- GREEN
+
+ bit 7 -- 820 ohm resistor -- GREEN
+ -- 1.2kohm resistor -- GREEN
+ -- 390 ohm resistor -- RED
+ -- 470 ohm resistor -- RED
+ -- 560 ohm resistor -- RED
+ -- 820 ohm resistor -- RED
+ -- 1.2kohm resistor -- RED
+ bit 0 -- not connected
+
+***************************************************************************/
+
+void timeplt_state::palette(palette_device &palette) const
+{
+ const uint8_t *color_prom = memregion("proms")->base();
+
+ rgb_t palette_val[32];
+ for (int i = 0; i < 32; i++)
+ {
+ int bit0, bit1, bit2, bit3, bit4;
+
+ bit0 = BIT(color_prom[i + 1 * 32], 1);
+ bit1 = BIT(color_prom[i + 1 * 32], 2);
+ bit2 = BIT(color_prom[i + 1 * 32], 3);
+ bit3 = BIT(color_prom[i + 1 * 32], 4);
+ bit4 = BIT(color_prom[i + 1 * 32], 5);
+ int const r = 0x19 * bit0 + 0x24 * bit1 + 0x35 * bit2 + 0x40 * bit3 + 0x4d * bit4;
+ bit0 = BIT(color_prom[i + 1 * 32], 6);
+ bit1 = BIT(color_prom[i + 1 * 32], 7);
+ bit2 = BIT(color_prom[i + 0 * 32], 0);
+ bit3 = BIT(color_prom[i + 0 * 32], 1);
+ bit4 = BIT(color_prom[i + 0 * 32], 2);
+ int const g = 0x19 * bit0 + 0x24 * bit1 + 0x35 * bit2 + 0x40 * bit3 + 0x4d * bit4;
+ bit0 = BIT(color_prom[i + 0 * 32], 3);
+ bit1 = BIT(color_prom[i + 0 * 32], 4);
+ bit2 = BIT(color_prom[i + 0 * 32], 5);
+ bit3 = BIT(color_prom[i + 0 * 32], 6);
+ bit4 = BIT(color_prom[i + 0 * 32], 7);
+ int const b = 0x19 * bit0 + 0x24 * bit1 + 0x35 * bit2 + 0x40 * bit3 + 0x4d * bit4;
+
+ palette_val[i] = rgb_t(r, g, b);
+ }
+
+ color_prom += 2*32;
+ // color_prom now points to the beginning of the lookup table
+
+
+ // sprites
+ for (int i = 0; i < 64 * 4; i++)
+ palette.set_pen_color(32 * 4 + i, palette_val[*color_prom++ & 0x0f]);
+
+ // characters
+ for (int i = 0; i < 32 * 4; i++)
+ palette.set_pen_color(i, palette_val[(*color_prom++ & 0x0f) + 0x10]);
+}
+
+
+
+/*************************************
+ *
+ * Tilemap info callback
+ *
+ *************************************/
+
+TILE_GET_INFO_MEMBER(timeplt_state::get_tile_info)
+{
+ int const attr = m_colorram[tile_index];
+ int const code = m_videoram[tile_index] + 8 * (attr & 0x20);
+ int const color = attr & 0x1f;
+ int const flags = TILE_FLIPYX(attr >> 6);
+
+ tileinfo.category = (attr & 0x10) >> 4;
+ tileinfo.set(0, code, color, flags);
+}
+
+TILE_GET_INFO_MEMBER(bikkuric_state::get_tile_info)
+{
+ int const attr = m_colorram[tile_index];
+ int const code = m_videoram[tile_index] + ((attr & 0x60) << 3);
+ int const color = attr & 0x1f;
+ int const flags = 0; //TILE_FLIPYX(attr >> 6);
+
+ tileinfo.category = (attr & 0x80) >> 7;
+ tileinfo.set(0, code, color, flags);
+}
+
+
+
+/*************************************
+ *
+ * Video startup
+ *
+ *************************************/
+
+void timeplt_state::video_start()
+{
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(timeplt_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_video_enable = 0;
+
+ save_item(NAME(m_video_enable));
+}
+
+void psurge_state::video_start()
+{
+ timeplt_state::video_start();
+
+ m_video_enable = 1; //psurge doesn't seem to have the video enable
+}
+
+void bikkuric_state::video_start()
+{
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(bikkuric_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_video_enable = 0;
+
+ save_item(NAME(m_video_enable));
+}
+
+
+
+/*************************************
+ *
+ * Memory write handlers
+ *
+ *************************************/
+
+void timeplt_state::videoram_w(offs_t offset, uint8_t data)
+{
+ m_videoram[offset] = data;
+ m_bg_tilemap->mark_tile_dirty(offset);
+}
+
+
+void timeplt_state::colorram_w(offs_t offset, uint8_t data)
+{
+ m_colorram[offset] = data;
+ m_bg_tilemap->mark_tile_dirty(offset);
+}
+
+
+void timeplt_state::video_enable_w(int state)
+{
+ m_video_enable = state;
+}
+
+uint8_t timeplt_state::scanline_r()
+{
+ return m_screen->vpos();
+}
+
+
+
+/*************************************
+ *
+ * Sprite rendering
+ *
+ *************************************/
+
+void timeplt_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ for (int offs = 0x3e; offs >= 0x10; offs -= 2)
+ {
+ int const sx = m_spriteram[0][offs];
+ int const sy = 241 - m_spriteram[1][offs + 1];
+
+ int const code = m_spriteram[0][offs + 1];
+ int const color = m_spriteram[1][offs] & 0x3f;
+ int const flipx = ~m_spriteram[1][offs] & 0x40;
+ int const flipy = m_spriteram[1][offs] & 0x80;
+
+ m_gfxdecode->gfx(1)->transpen(bitmap, cliprect,
+ code,
+ color,
+ flipx, flipy,
+ sx, sy, 0);
+ }
+}
+
+
+
+/*************************************
+ *
+ * Video update
+ *
+ *************************************/
+
+uint32_t timeplt_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ if (m_video_enable)
+ {
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
+ draw_sprites(bitmap, cliprect);
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0);
+ }
+ return 0;
+}
-#define MASTER_CLOCK XTAL(18'432'000)
/*************************************
*
@@ -64,14 +392,14 @@
*
*************************************/
-WRITE_LINE_MEMBER(timeplt_state::vblank_irq)
+void timeplt_state::vblank_irq(int state)
{
if (state && m_nmi_enable)
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
}
-WRITE_LINE_MEMBER(timeplt_state::nmi_enable_w)
+void timeplt_state::nmi_enable_w(int state)
{
m_nmi_enable = state;
if (!m_nmi_enable)
@@ -86,23 +414,19 @@ WRITE_LINE_MEMBER(timeplt_state::nmi_enable_w)
*
*************************************/
-WRITE_LINE_MEMBER(timeplt_state::coin_counter_1_w)
+template <uint8_t Which>
+void timeplt_state::coin_counter_w(int state)
{
- machine().bookkeeping().coin_counter_w(0, state);
+ machine().bookkeeping().coin_counter_w(Which, state);
}
-WRITE_LINE_MEMBER(timeplt_state::coin_counter_2_w)
-{
- machine().bookkeeping().coin_counter_w(1, state);
-}
-
-uint8_t timeplt_state::psurge_protection_r()
+uint8_t psurge_state::protection_r()
{
return 0x80;
}
-// chkun has access to an extra soundchip via ay2 port a
-void timeplt_state::chkun_sound_w(uint8_t data)
+// chkun has access to an extra sound chip via ay2 port a
+void chkun_state::sound_w(uint8_t data)
{
// d0-d3: P0-P3
// d5: /R (unused?)
@@ -115,7 +439,7 @@ void timeplt_state::chkun_sound_w(uint8_t data)
m_tc8830f->reset();
}
-READ_LINE_MEMBER(timeplt_state::chkun_hopper_status_r)
+int bikkuric_state::hopper_status_r()
{
// temp workaround, needs hopper
return machine().rand();
@@ -129,15 +453,15 @@ READ_LINE_MEMBER(timeplt_state::chkun_hopper_status_r)
*
*************************************/
-void timeplt_state::timeplt_main_map(address_map &map)
+void timeplt_state::main_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x5fff).rom();
- map(0xa000, 0xa3ff).ram().w(FUNC(timeplt_state::colorram_w)).share("colorram");
- map(0xa400, 0xa7ff).ram().w(FUNC(timeplt_state::videoram_w)).share("videoram");
+ map(0xa000, 0xa3ff).ram().w(FUNC(timeplt_state::colorram_w)).share(m_colorram);
+ map(0xa400, 0xa7ff).ram().w(FUNC(timeplt_state::videoram_w)).share(m_videoram);
map(0xa800, 0xafff).ram();
- map(0xb000, 0xb0ff).mirror(0x0b00).ram().share("spriteram");
- map(0xb400, 0xb4ff).mirror(0x0b00).ram().share("spriteram2");
+ map(0xb000, 0xb0ff).mirror(0x0b00).ram().share(m_spriteram[0]);
+ map(0xb400, 0xb4ff).mirror(0x0b00).ram().share(m_spriteram[1]);
map(0xc000, 0xc000).mirror(0x0cff).r(FUNC(timeplt_state::scanline_r)).w("timeplt_audio", FUNC(timeplt_audio_device::sound_data_w));
map(0xc200, 0xc200).mirror(0x0cff).portr("DSW1").w("watchdog", FUNC(watchdog_timer_device::reset_w));
map(0xc300, 0xc300).mirror(0x0c9f).portr("IN0");
@@ -147,15 +471,15 @@ void timeplt_state::timeplt_main_map(address_map &map)
map(0xc360, 0xc360).mirror(0x0c9f).portr("DSW0");
}
-void timeplt_state::psurge_main_map(address_map &map)
+void psurge_state::main_map(address_map &map)
{
- timeplt_main_map(map);
- map(0x6004, 0x6004).r(FUNC(timeplt_state::psurge_protection_r));
+ timeplt_state::main_map(map);
+ map(0x6004, 0x6004).r(FUNC(psurge_state::protection_r));
}
-void timeplt_state::chkun_main_map(address_map &map)
+void bikkuric_state::main_map(address_map &map)
{
- timeplt_main_map(map);
+ timeplt_state::main_map(map);
map(0x6000, 0x67ff).ram();
}
@@ -272,7 +596,7 @@ static INPUT_PORTS_START( chkun )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Bet 3B")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(timeplt_state, chkun_hopper_status_r)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(bikkuric_state, hopper_status_r)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet 1B")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Bet 2B")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
@@ -321,7 +645,7 @@ static INPUT_PORTS_START( bikkuric )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(timeplt_state, chkun_hopper_status_r)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(bikkuric_state, hopper_status_r)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
@@ -387,8 +711,8 @@ static const gfx_layout spritelayout =
static GFXDECODE_START( gfx_timeplt )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 32 )
- GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 32*4, 64 )
+ GFXDECODE_ENTRY( "tiles", 0, charlayout, 0, 32 )
+ GFXDECODE_ENTRY( "sprites", 0, spritelayout, 32*4, 64 )
GFXDECODE_END
static const gfx_layout chkun_spritelayout =
@@ -403,8 +727,8 @@ static const gfx_layout chkun_spritelayout =
};
static GFXDECODE_START( gfx_chkun )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 32 )
- GFXDECODE_ENTRY( "gfx2", 0, chkun_spritelayout, 32*4, 64 )
+ GFXDECODE_ENTRY( "tiles", 0, charlayout, 0, 32 )
+ GFXDECODE_ENTRY( "sprites", 0, chkun_spritelayout, 32*4, 64 )
GFXDECODE_END
/*************************************
@@ -418,29 +742,27 @@ void timeplt_state::machine_start()
save_item(NAME(m_nmi_enable));
}
-void timeplt_state::machine_reset()
-{
-}
-
void timeplt_state::timeplt(machine_config &config)
{
- /* basic machine hardware */
- Z80(config, m_maincpu, MASTER_CLOCK/3/2); /* not confirmed, but common for Konami games of the era */
- m_maincpu->set_addrmap(AS_PROGRAM, &timeplt_state::timeplt_main_map);
+ static constexpr XTAL MASTER_CLOCK = XTAL(18'432'000);
+
+ // basic machine hardware
+ Z80(config, m_maincpu, MASTER_CLOCK / 3 / 2); // not confirmed, but common for Konami games of the era
+ m_maincpu->set_addrmap(AS_PROGRAM, &timeplt_state::main_map);
LS259(config, m_mainlatch); // B3
m_mainlatch->q_out_cb<0>().set(FUNC(timeplt_state::nmi_enable_w));
- m_mainlatch->q_out_cb<1>().set(FUNC(timeplt_state::flipscreen_w));
+ m_mainlatch->q_out_cb<1>().set(FUNC(timeplt_state::flip_screen_set)).invert();
m_mainlatch->q_out_cb<2>().set("timeplt_audio", FUNC(timeplt_audio_device::sh_irqtrigger_w));
m_mainlatch->q_out_cb<3>().set("timeplt_audio", FUNC(timeplt_audio_device::mute_w));
m_mainlatch->q_out_cb<4>().set(FUNC(timeplt_state::video_enable_w));
- m_mainlatch->q_out_cb<5>().set(FUNC(timeplt_state::coin_counter_1_w));
- m_mainlatch->q_out_cb<6>().set(FUNC(timeplt_state::coin_counter_2_w));
+ m_mainlatch->q_out_cb<5>().set(FUNC(timeplt_state::coin_counter_w<0>));
+ m_mainlatch->q_out_cb<6>().set(FUNC(timeplt_state::coin_counter_w<1>));
m_mainlatch->q_out_cb<7>().set_nop(); // PAY OUT - not used
WATCHDOG_TIMER(config, "watchdog");
- /* video hardware */
+ // video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
m_screen->set_refresh_hz(60);
@@ -451,18 +773,18 @@ void timeplt_state::timeplt(machine_config &config)
m_screen->screen_vblank().set(FUNC(timeplt_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_timeplt);
- PALETTE(config, m_palette, FUNC(timeplt_state::timeplt_palette), 32*4 + 64*4);
+ PALETTE(config, m_palette, FUNC(timeplt_state::palette), 32*4 + 64*4);
- /* sound hardware */
+ // sound hardware
TIMEPLT_AUDIO(config, "timeplt_audio");
}
-void timeplt_state::psurge(machine_config &config)
+void psurge_state::psurge(machine_config &config)
{
timeplt(config);
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &timeplt_state::psurge_main_map);
+ // basic machine hardware
+ m_maincpu->set_addrmap(AS_PROGRAM, &psurge_state::main_map);
m_screen->screen_vblank().set_inputline("maincpu", INPUT_LINE_NMI);
@@ -470,30 +792,24 @@ void timeplt_state::psurge(machine_config &config)
m_mainlatch->q_out_cb<4>().set_nop();
m_mainlatch->q_out_cb<5>().set_nop();
m_mainlatch->q_out_cb<6>().set_nop();
-
- MCFG_VIDEO_START_OVERRIDE(timeplt_state,psurge)
}
-void timeplt_state::bikkuric(machine_config &config)
+void bikkuric_state::bikkuric(machine_config &config)
{
timeplt(config);
m_gfxdecode->set_info(gfx_chkun);
- /* basic machine hardware */
- m_maincpu->set_addrmap(AS_PROGRAM, &timeplt_state::chkun_main_map);
-
- MCFG_VIDEO_START_OVERRIDE(timeplt_state,chkun)
+ // basic machine hardware
+ m_maincpu->set_addrmap(AS_PROGRAM, &bikkuric_state::main_map);
}
-void timeplt_state::chkun(machine_config &config)
+void chkun_state::chkun(machine_config &config)
{
bikkuric(config);
- m_gfxdecode->set_info(gfx_chkun);
-
- /* sound hardware */
- subdevice<ay8910_device>("timeplt_audio:ay2")->port_a_write_callback().set(FUNC(timeplt_state::chkun_sound_w));
+ // sound hardware
+ subdevice<ay8910_device>("timeplt_audio:ay2")->port_a_write_callback().set(FUNC(chkun_state::sound_w));
TC8830F(config, m_tc8830f, XTAL(512'000));
m_tc8830f->add_route(ALL_OUTPUTS, "timeplt_audio:mono", 0.10);
@@ -516,18 +832,18 @@ ROM_START( timeplt )
ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
ROM_LOAD( "tm7", 0x0000, 0x1000, CRC(d66da813) SHA1(408fca4515e8af84211df3e204c8776b2f8adb23) )
- ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_REGION( 0x2000, "tiles", 0 )
ROM_LOAD( "tm6", 0x0000, 0x2000, CRC(c2507f40) SHA1(07221875e3f81d9def67c57a7ccd82d52ce65e01) )
- ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_REGION( 0x4000, "sprites", 0 )
ROM_LOAD( "tm4", 0x0000, 0x2000, CRC(7e437c3e) SHA1(cbe2ccd2cd503af62f009cd5aab73aa7366230b1) )
ROM_LOAD( "tm5", 0x2000, 0x2000, CRC(e8ca87b9) SHA1(5dd30d3fb9fd8cf9e6a8e37e7ea858c7fd038a7e) )
ROM_REGION( 0x0240, "proms", 0 )
- ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */
+ ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) // char lookup table
ROM_END
ROM_START( timeplta )
@@ -539,18 +855,18 @@ ROM_START( timeplta )
ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
ROM_LOAD( "tm7", 0x0000, 0x1000, CRC(d66da813) SHA1(408fca4515e8af84211df3e204c8776b2f8adb23) )
- ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_REGION( 0x2000, "tiles", 0 )
ROM_LOAD( "tm6", 0x0000, 0x2000, CRC(c2507f40) SHA1(07221875e3f81d9def67c57a7ccd82d52ce65e01) )
- ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_REGION( 0x4000, "sprites", 0 )
ROM_LOAD( "tm4", 0x0000, 0x2000, CRC(7e437c3e) SHA1(cbe2ccd2cd503af62f009cd5aab73aa7366230b1) )
ROM_LOAD( "tm5", 0x2000, 0x2000, CRC(e8ca87b9) SHA1(5dd30d3fb9fd8cf9e6a8e37e7ea858c7fd038a7e) )
ROM_REGION( 0x0240, "proms", 0 )
- ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */
+ ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) // char lookup table
ROM_END
ROM_START( timepltc )
@@ -562,18 +878,18 @@ ROM_START( timepltc )
ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
ROM_LOAD( "tm7", 0x0000, 0x1000, CRC(d66da813) SHA1(408fca4515e8af84211df3e204c8776b2f8adb23) )
- ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_REGION( 0x2000, "tiles", 0 )
ROM_LOAD( "tm6", 0x0000, 0x2000, CRC(c2507f40) SHA1(07221875e3f81d9def67c57a7ccd82d52ce65e01) )
- ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_REGION( 0x4000, "sprites", 0 )
ROM_LOAD( "tm4", 0x0000, 0x2000, CRC(7e437c3e) SHA1(cbe2ccd2cd503af62f009cd5aab73aa7366230b1) )
ROM_LOAD( "tm5", 0x2000, 0x2000, CRC(e8ca87b9) SHA1(5dd30d3fb9fd8cf9e6a8e37e7ea858c7fd038a7e) )
ROM_REGION( 0x0240, "proms", 0 )
- ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */
+ ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) // char lookup table
ROM_END
ROM_START( spaceplt )
@@ -585,18 +901,18 @@ ROM_START( spaceplt )
ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
ROM_LOAD( "tm7", 0x0000, 0x1000, CRC(d66da813) SHA1(408fca4515e8af84211df3e204c8776b2f8adb23) )
- ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_REGION( 0x2000, "tiles", 0 )
ROM_LOAD( "sp6", 0x0000, 0x2000, CRC(76caa8af) SHA1(f81bb73877d415a6587a32bddaad6db8a8fd4941) )
- ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_REGION( 0x4000, "sprites", 0 )
ROM_LOAD( "sp4", 0x0000, 0x2000, CRC(3781ce7a) SHA1(68bb73f67494c3b24f7fd0d79153c9793f4b3a5b) )
ROM_LOAD( "tm5", 0x2000, 0x2000, CRC(e8ca87b9) SHA1(5dd30d3fb9fd8cf9e6a8e37e7ea858c7fd038a7e) )
ROM_REGION( 0x0240, "proms", 0 )
- ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */
+ ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) // char lookup table
ROM_END
ROM_START( spaceplta )
@@ -608,18 +924,18 @@ ROM_START( spaceplta )
ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
ROM_LOAD( "4", 0x0000, 0x1000, CRC(d66da813) SHA1(408fca4515e8af84211df3e204c8776b2f8adb23) )
- ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_REGION( 0x2000, "tiles", 0 )
ROM_LOAD( "5", 0x0000, 0x2000, CRC(76caa8af) SHA1(f81bb73877d415a6587a32bddaad6db8a8fd4941) ) // also seen with an original ROM from tileplt (so that it shows the original title)
- ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_REGION( 0x4000, "sprites", 0 )
ROM_LOAD( "6", 0x0000, 0x2000, CRC(86ab1ae7) SHA1(8e3f84aa6b2c21e7e1383ea1811fd99a4d940a23) ) // difference to spaceplt: erased Konami
ROM_LOAD( "7", 0x2000, 0x2000, CRC(e8ca87b9) SHA1(5dd30d3fb9fd8cf9e6a8e37e7ea858c7fd038a7e) )
ROM_REGION( 0x0240, "proms", 0 )
- ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */
+ ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) // char lookup table
ROM_END
ROM_START( psurge )
@@ -632,18 +948,18 @@ ROM_START( psurge )
ROM_LOAD( "p6", 0x0000, 0x1000, CRC(b52d01fa) SHA1(9b6cf9ea51d3a87c174f34d42a4b1b5f38b48723) )
ROM_LOAD( "p7", 0x1000, 0x1000, CRC(9db5c0ce) SHA1(b5bc1d89a7f7d7a0baae64390c37ee11f69a0e76) )
- ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_REGION( 0x2000, "tiles", 0 )
ROM_LOAD( "p4", 0x0000, 0x2000, CRC(26fd7f81) SHA1(eb282313a37d7d611bf90f9b0b527adee9ae283f) )
- ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_REGION( 0x4000, "sprites", 0 )
ROM_LOAD( "p5", 0x0000, 0x2000, CRC(6066ec8e) SHA1(7f1155cf8a2d63c0740a4b56f1e09e7dfc749302) )
ROM_LOAD( "tm5", 0x2000, 0x2000, CRC(e8ca87b9) SHA1(5dd30d3fb9fd8cf9e6a8e37e7ea858c7fd038a7e) )
ROM_REGION( 0x0240, "proms", 0 )
- ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, BAD_DUMP CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, BAD_DUMP CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, BAD_DUMP CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, BAD_DUMP CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */
+ ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, BAD_DUMP CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, BAD_DUMP CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, BAD_DUMP CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, BAD_DUMP CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) // char lookup table
ROM_END
ROM_START( chkun )
@@ -654,10 +970,10 @@ ROM_START( chkun )
ROM_REGION( 0x12000, "timeplt_audio:tpsound", 0 )
ROM_LOAD( "15.3l", 0x0000, 0x2000, CRC(1f1463ca) SHA1(870abbca35236fcce6a2f640a238e20b9e57f10f))
- ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_REGION( 0x4000, "tiles", 0 )
ROM_LOAD( "13.4d", 0x0000, 0x4000, CRC(776427c0) SHA1(1e8387685f7e86aad31577f2186596b2a2dfc4de) )
- ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_REGION( 0x4000, "sprites", 0 )
ROM_LOAD( "14.8h", 0x0000, 0x4000, CRC(0cb76a48) SHA1(0beebbc3d30eb978f6fe7b15c0a7b0c2152815b7) )
ROM_REGION( 0x20000, "tc8830f", 0 )
@@ -665,10 +981,10 @@ ROM_START( chkun )
ROM_LOAD( "v2.9k", 0x10000, 0x10000, CRC(70e902eb) SHA1(e1b2392446f2878f9e811a63bbbbdc56fd517a9c) )
ROM_REGION( 0x0240, "proms", 0 )
- ROM_LOAD( "3.2j", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "2.1h", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "4.10h", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "mb7114e.2b", 0x0140, 0x0100, CRC(adfa399a) SHA1(3b18971ddaae7734f0aaa0fcc82d4ddccc282959) ) /* char lookup table */
+ ROM_LOAD( "3.2j", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "2.1h", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "4.10h", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "mb7114e.2b", 0x0140, 0x0100, CRC(adfa399a) SHA1(3b18971ddaae7734f0aaa0fcc82d4ddccc282959) ) // char lookup table
ROM_REGION( 0x0200, "pld", 0 )
ROM_LOAD( "a.16c", 0x0000, 0x00eb, CRC(e0d54999) SHA1(9e1c749873572ade2b925ce1519d31a6e19f841f) )
@@ -683,23 +999,24 @@ ROM_START( bikkuric )
ROM_REGION( 0x10000, "timeplt_audio:tpsound", 0 )
ROM_LOAD( "5.l3", 0x00000, 0x02000, CRC(bc438531) SHA1(e19badc417b0538010cf535d3f733acc54b0cd96) )
- ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_REGION( 0x8000, "tiles", 0 )
ROM_LOAD( "3.d4", 0x00000, 0x08000, CRC(74e8a64b) SHA1(b2542e1f6f4b54d8f7aec8f673cedcf5bff5e429) ) // 1st and 2nd identical, confirmed to be like this
- ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_REGION( 0x2000, "sprites", 0 )
ROM_LOAD( "4.h8", 0x00000, 0x02000, CRC(d303942d) SHA1(688d43e6dbe505d44fc41fdde74858a02910080d) )
- ROM_REGION( 0x0240, "proms", 0 ) // not dumped, roms taken from timeplt
- ROM_LOAD( "3.2j", 0x0000, 0x0020, BAD_DUMP CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) /* palette */
- ROM_LOAD( "2.1h", 0x0020, 0x0020, BAD_DUMP CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) /* palette */
- ROM_LOAD( "4.10h", 0x0040, 0x0100, BAD_DUMP CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) /* sprite lookup table */
- ROM_LOAD( "1.2b", 0x0140, 0x0100, BAD_DUMP CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) /* char lookup table */
+ ROM_REGION( 0x0240, "proms", 0 ) // not dumped, ROMs taken from timeplt
+ ROM_LOAD( "3.2j", 0x0000, 0x0020, BAD_DUMP CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) ) // palette
+ ROM_LOAD( "2.1h", 0x0020, 0x0020, BAD_DUMP CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) ) // palette
+ ROM_LOAD( "4.10h", 0x0040, 0x0100, BAD_DUMP CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) ) // sprite lookup table
+ ROM_LOAD( "1.2b", 0x0140, 0x0100, BAD_DUMP CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) ) // char lookup table
ROM_REGION( 0x0200, "pld", 0 )
ROM_LOAD( "a.16c", 0x0000, 0x00eb, NO_DUMP )
ROM_LOAD( "b.9f", 0x0100, 0x00eb, NO_DUMP )
ROM_END
+} // anonymous namespace
/*************************************
@@ -708,13 +1025,13 @@ ROM_END
*
*************************************/
-GAME( 1982, timeplt, 0, timeplt, timeplt, timeplt_state, empty_init, ROT90, "Konami", "Time Pilot", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, timepltc, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "Konami (Centuri license)", "Time Pilot (Centuri)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, timeplta, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "Konami (Atari license)", "Time Pilot (Atari)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, spaceplt, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "bootleg", "Space Pilot (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, spaceplta, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "bootleg", "Space Pilot (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, timeplt, 0, timeplt, timeplt, timeplt_state, empty_init, ROT90, "Konami", "Time Pilot", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, timepltc, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "Konami (Centuri license)", "Time Pilot (Centuri)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, timeplta, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "Konami (Atari license)", "Time Pilot (Atari)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, spaceplt, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "bootleg", "Space Pilot (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, spaceplta, timeplt, timeplt, timeplt, timeplt_state, empty_init, ROT90, "bootleg", "Space Pilot (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, psurge, 0, psurge, psurge, timeplt_state, empty_init, ROT270, "Vision Electronics", "Power Surge", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, psurge, 0, psurge, psurge, psurge_state, empty_init, ROT270, "Vision Electronics", "Power Surge", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, chkun, 0, chkun, chkun, timeplt_state, empty_init, ROT90, "Peni", "Chance Kun (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-GAME( 1987, bikkuric, 0, bikkuric, bikkuric, timeplt_state, empty_init, ROT90, "Peni", "Bikkuri Card (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, chkun, 0, chkun, chkun, chkun_state, empty_init, ROT90, "Peni", "Chance Kun (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
+GAME( 1987, bikkuric, 0, bikkuric, bikkuric, bikkuric_state, empty_init, ROT90, "Peni", "Bikkuri Card (Japan)", MACHINE_SUPPORTS_SAVE )