summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/seta2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/seta2.cpp')
-rw-r--r--src/mame/drivers/seta2.cpp146
1 files changed, 69 insertions, 77 deletions
diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp
index 4d404082ae4..3b79cc77028 100644
--- a/src/mame/drivers/seta2.cpp
+++ b/src/mame/drivers/seta2.cpp
@@ -227,8 +227,9 @@ void seta2_state::gundamex_map(address_map &map)
Wakakusamonogatari Mahjong Yonshimai
***************************************************************************/
-MACHINE_START_MEMBER(seta2_state, mj4simai)
+void mj4simai_state::machine_start()
{
+ seta2_state::machine_start();
save_item(NAME(m_keyboard_row));
}
@@ -837,13 +838,13 @@ void funcube_touchscreen_device::tra_callback()
// Bus conversion functions:
// RAM shared with the sub CPU
-READ32_MEMBER(seta2_state::funcube_nvram_dword_r)
+READ32_MEMBER(funcube_state::funcube_nvram_dword_r)
{
uint16_t val = m_nvram[offset];
return ((val & 0xff00) << 8) | (val & 0x00ff);
}
-WRITE32_MEMBER(seta2_state::funcube_nvram_dword_w)
+WRITE32_MEMBER(funcube_state::funcube_nvram_dword_w)
{
if (ACCESSING_BITS_0_7)
{
@@ -868,7 +869,7 @@ READ16_MEMBER(seta2_state::spriteram16_word_r)
// Main CPU
-READ32_MEMBER(seta2_state::funcube_debug_r)
+READ32_MEMBER(funcube_state::funcube_debug_r)
{
uint32_t ret = ioport("DEBUG")->read();
@@ -897,12 +898,12 @@ WRITE32_MEMBER(seta2_state::oki_write)
}
}
-void seta2_state::funcube_map(address_map &map)
+void funcube_state::funcube_map(address_map &map)
{
map(0x00000000, 0x0007ffff).rom();
map(0x00200000, 0x0020ffff).ram();
- map(0x00400000, 0x00400003).r(this, FUNC(seta2_state::funcube_debug_r));
+ map(0x00400000, 0x00400003).r(this, FUNC(funcube_state::funcube_debug_r));
map(0x00400004, 0x00400007).r("watchdog", FUNC(watchdog_timer_device::reset32_r)).nopw();
map(0x00500000, 0x00500003).rw(this, FUNC(seta2_state::oki_read), FUNC(seta2_state::oki_write));
@@ -911,18 +912,18 @@ void seta2_state::funcube_map(address_map &map)
map(0x00840000, 0x0084ffff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette"); // Palette
map(0x00860000, 0x0086003f).w(this, FUNC(seta2_state::vregs_w)).share("vregs");
- map(0x00c00000, 0x00c002ff).rw(this, FUNC(seta2_state::funcube_nvram_dword_r), FUNC(seta2_state::funcube_nvram_dword_w));
+ map(0x00c00000, 0x00c002ff).rw(this, FUNC(funcube_state::funcube_nvram_dword_r), FUNC(funcube_state::funcube_nvram_dword_w));
map(0xf0000000, 0xf00001ff).rw("maincpu_onboard", FUNC(mcf5206e_peripheral_device::seta2_coldfire_regs_r), FUNC(mcf5206e_peripheral_device::seta2_coldfire_regs_w)); // technically this can be moved with MBAR
map(0xffffe000, 0xffffffff).ram(); // SRAM
}
-void seta2_state::funcube2_map(address_map &map)
+void funcube_state::funcube2_map(address_map &map)
{
map(0x00000000, 0x0007ffff).rom();
map(0x00200000, 0x0020ffff).ram();
- map(0x00500000, 0x00500003).r(this, FUNC(seta2_state::funcube_debug_r));
+ map(0x00500000, 0x00500003).r(this, FUNC(funcube_state::funcube_debug_r));
map(0x00500004, 0x00500007).r("watchdog", FUNC(watchdog_timer_device::reset32_r)).nopw();
map(0x00600000, 0x00600003).rw(this, FUNC(seta2_state::oki_read), FUNC(seta2_state::oki_write));
@@ -931,7 +932,7 @@ void seta2_state::funcube2_map(address_map &map)
map(0x00840000, 0x0084ffff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
map(0x00860000, 0x0086003f).w(this, FUNC(seta2_state::vregs_w)).share("vregs");
- map(0x00c00000, 0x00c002ff).rw(this, FUNC(seta2_state::funcube_nvram_dword_r), FUNC(seta2_state::funcube_nvram_dword_w));
+ map(0x00c00000, 0x00c002ff).rw(this, FUNC(funcube_state::funcube_nvram_dword_r), FUNC(funcube_state::funcube_nvram_dword_w));
map(0xf0000000, 0xf00001ff).rw("maincpu_onboard", FUNC(mcf5206e_peripheral_device::seta2_coldfire_regs_r), FUNC(mcf5206e_peripheral_device::seta2_coldfire_regs_w)); // technically this can be moved with MBAR
map(0xffffe000, 0xffffffff).ram(); // SRAM
@@ -939,7 +940,7 @@ void seta2_state::funcube2_map(address_map &map)
// Sub CPU
-void seta2_state::funcube_sub_map(address_map &map)
+void funcube_state::funcube_sub_map(address_map &map)
{
map(0x000000, 0x01ffff).rom();
map(0x200000, 0x20017f).ram().share("nvram");
@@ -952,7 +953,7 @@ void seta2_state::funcube_sub_map(address_map &map)
#define FUNCUBE_SUB_CPU_CLOCK (XTAL(14'745'600))
-READ16_MEMBER(seta2_state::funcube_coins_r)
+READ16_MEMBER(funcube_state::funcube_coins_r)
{
uint8_t ret = ioport("SWITCH")->read();
uint8_t coin_bit0 = 1; // active low
@@ -982,14 +983,14 @@ READ16_MEMBER(seta2_state::funcube_coins_r)
return (ret & ~7) | (hopper_bit << 2) | (coin_bit1 << 1) | coin_bit0;
}
-void seta2_state::funcube_debug_outputs()
+void funcube_state::funcube_debug_outputs()
{
#ifdef MAME_DEBUG
// popmessage("LED: %02x OUT: %02x", (int)*m_funcube_leds, (int)*m_funcube_outputs);
#endif
}
-WRITE16_MEMBER(seta2_state::funcube_leds_w)
+WRITE16_MEMBER(funcube_state::funcube_leds_w)
{
*m_funcube_leds = data;
@@ -1005,13 +1006,13 @@ WRITE16_MEMBER(seta2_state::funcube_leds_w)
funcube_debug_outputs();
}
-READ16_MEMBER(seta2_state::funcube_outputs_r)
+READ16_MEMBER(funcube_state::funcube_outputs_r)
{
// Bits 1,2,3 read
return *m_funcube_outputs;
}
-WRITE16_MEMBER(seta2_state::funcube_outputs_w)
+WRITE16_MEMBER(funcube_state::funcube_outputs_w)
{
*m_funcube_outputs = data;
@@ -1028,26 +1029,26 @@ WRITE16_MEMBER(seta2_state::funcube_outputs_w)
funcube_debug_outputs();
}
-READ16_MEMBER(seta2_state::funcube_battery_r)
+READ16_MEMBER(funcube_state::funcube_battery_r)
{
return ioport("BATTERY")->read() ? 0x40 : 0x00;
}
// cabinet linking on sci0
-void seta2_state::funcube_sub_io(address_map &map)
+void funcube_state::funcube_sub_io(address_map &map)
{
- map(h8_device::PORT_7, h8_device::PORT_7).r(this, FUNC(seta2_state::funcube_coins_r));
- map(h8_device::PORT_4, h8_device::PORT_4).r(this, FUNC(seta2_state::funcube_battery_r));
- map(h8_device::PORT_A, h8_device::PORT_A).rw(this, FUNC(seta2_state::funcube_outputs_r), FUNC(seta2_state::funcube_outputs_w)).share("funcube_outputs");
- map(h8_device::PORT_B, h8_device::PORT_B).w(this, FUNC(seta2_state::funcube_leds_w)).share("funcube_leds");
+ map(h8_device::PORT_7, h8_device::PORT_7).r(this, FUNC(funcube_state::funcube_coins_r));
+ map(h8_device::PORT_4, h8_device::PORT_4).r(this, FUNC(funcube_state::funcube_battery_r));
+ map(h8_device::PORT_A, h8_device::PORT_A).rw(this, FUNC(funcube_state::funcube_outputs_r), FUNC(funcube_state::funcube_outputs_w)).share("funcube_outputs");
+ map(h8_device::PORT_B, h8_device::PORT_B).w(this, FUNC(funcube_state::funcube_leds_w)).share("funcube_leds");
}
-void seta2_state::funcube2_sub_io(address_map &map)
+void funcube_state::funcube2_sub_io(address_map &map)
{
- map(h8_device::PORT_7, h8_device::PORT_7).r(this, FUNC(seta2_state::funcube_coins_r));
+ map(h8_device::PORT_7, h8_device::PORT_7).r(this, FUNC(funcube_state::funcube_coins_r));
map(h8_device::PORT_4, h8_device::PORT_4).noprw(); // unused
- map(h8_device::PORT_A, h8_device::PORT_A).rw(this, FUNC(seta2_state::funcube_outputs_r), FUNC(seta2_state::funcube_outputs_w)).share("funcube_outputs");
- map(h8_device::PORT_B, h8_device::PORT_B).w(this, FUNC(seta2_state::funcube_leds_w)).share("funcube_leds");
+ map(h8_device::PORT_A, h8_device::PORT_A).rw(this, FUNC(funcube_state::funcube_outputs_r), FUNC(funcube_state::funcube_outputs_w)).share("funcube_outputs");
+ map(h8_device::PORT_B, h8_device::PORT_B).w(this, FUNC(funcube_state::funcube_leds_w)).share("funcube_leds");
}
@@ -2581,13 +2582,6 @@ MACHINE_CONFIG_START(seta2_state::seta2)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(seta2_state::mj4simai)
- seta2(config);
- MCFG_MACHINE_START_OVERRIDE(seta2_state, mj4simai)
-
-MACHINE_CONFIG_END
-
-
MACHINE_CONFIG_START(seta2_state::gundamex)
seta2(config);
MCFG_DEVICE_MODIFY("maincpu")
@@ -2749,7 +2743,7 @@ MACHINE_CONFIG_END
Funcube series
***************************************************************************/
-TIMER_DEVICE_CALLBACK_MEMBER(seta2_state::funcube_interrupt)
+TIMER_DEVICE_CALLBACK_MEMBER(funcube_state::funcube_interrupt)
{
int scanline = param;
@@ -2760,23 +2754,24 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta2_state::funcube_interrupt)
m_maincpu->set_input_line(2, HOLD_LINE);
}
-MACHINE_START_MEMBER(seta2_state, funcube)
+void funcube_state::machine_start()
{
+ seta2_state::machine_start();
save_item(NAME(m_funcube_coin_start_cycles));
save_item(NAME(m_funcube_hopper_motor));
}
-MACHINE_RESET_MEMBER(seta2_state, funcube)
+void funcube_state::machine_reset()
{
m_funcube_coin_start_cycles = 0;
m_funcube_hopper_motor = 0;
}
-MACHINE_CONFIG_START(seta2_state::funcube)
+MACHINE_CONFIG_START(funcube_state::funcube)
MCFG_DEVICE_ADD("maincpu", MCF5206E, XTAL(25'447'000))
MCFG_DEVICE_PROGRAM_MAP(funcube_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta2_state, funcube_interrupt, "screen", 0, 1)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", funcube_state, funcube_interrupt, "screen", 0, 1)
MCFG_DEVICE_ADD("sub", H83007, FUNCUBE_SUB_CPU_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(funcube_sub_map)
@@ -2791,9 +2786,6 @@ MACHINE_CONFIG_START(seta2_state::funcube)
MCFG_WATCHDOG_ADD("watchdog")
- MCFG_MACHINE_START_OVERRIDE(seta2_state, funcube)
- MCFG_MACHINE_RESET_OVERRIDE(seta2_state, funcube)
-
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2818,7 +2810,7 @@ MACHINE_CONFIG_START(seta2_state::funcube)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(seta2_state::funcube2)
+MACHINE_CONFIG_START(funcube_state::funcube2)
funcube(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(funcube2_map)
@@ -2832,7 +2824,7 @@ MACHINE_CONFIG_START(seta2_state::funcube2)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(seta2_state::funcube3)
+MACHINE_CONFIG_START(funcube_state::funcube3)
funcube2(config);
// video hardware
MCFG_SCREEN_MODIFY("screen")
@@ -3072,7 +3064,7 @@ ROM_START( funcube5 )
ROM_LOAD( "fc51_snd-0.u47", 0x000000, 0x200000, CRC(2a504fe1) SHA1(911ad650bf48aa78d9cb3c64284aa526ceb519ba) )
ROM_END
-void seta2_state::init_funcube()
+void funcube_state::init_funcube()
{
uint32_t *main_cpu = (uint32_t *) memregion("maincpu")->base();
uint16_t *sub_cpu = (uint16_t *) memregion("sub")->base();
@@ -3083,7 +3075,7 @@ void seta2_state::init_funcube()
sub_cpu[0x506/2] = 0x5470; // rte -> rts
}
-void seta2_state::init_funcube2()
+void funcube_state::init_funcube2()
{
uint32_t *main_cpu = (uint32_t *) memregion("maincpu")->base();
uint16_t *sub_cpu = (uint16_t *) memregion("sub")->base();
@@ -3096,7 +3088,7 @@ void seta2_state::init_funcube2()
sub_cpu[0x4d4/2] = 0x5470; // rte -> rts
}
-void seta2_state::init_funcube3()
+void funcube_state::init_funcube3()
{
uint32_t *main_cpu = (uint32_t *) memregion("maincpu")->base();
uint16_t *sub_cpu = (uint16_t *) memregion("sub")->base();
@@ -4347,34 +4339,34 @@ ROM_START( telpacfl )
ROM_LOAD( "kc-002c.u52", 0x117, 0x117, NO_DUMP )
ROM_END
-GAME( 1994, gundamex, 0, gundamex, gundamex, seta2_state, empty_init, ROT0, "Banpresto", "Mobile Suit Gundam EX Revue", 0 )
-GAME( 1995, grdians, 0, grdians, grdians, seta2_state, empty_init, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, mj4simai, 0, mj4simai, mj4simai, seta2_state, empty_init, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", MACHINE_NO_COCKTAIL )
-GAME( 1996, myangel, 0, myangel, myangel, seta2_state, empty_init, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1997, myangel2, 0, myangel2, myangel2, seta2_state, empty_init, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, telpacfl, 0, telpacfl, telpacfl, seta2_state, empty_init, ROT270, "Sunsoft", "TelePachi Fever Lion (V1.0)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1997, reelquak, 0, reelquak, reelquak, seta2_state, empty_init, ROT0, "<unknown>", "Reel'N Quake! (Version 1.05)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 199?, endrichs, 0, reelquak, endrichs, seta2_state, empty_init, ROT0, "E.N.Tiger", "Endless Riches (Ver 1.20)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1997, staraudi, 0, staraudi, staraudi, staraudi_state, empty_init, ROT0, "Namco", "Star Audition", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1999, pzlbowl, 0, pzlbowl, pzlbowl, seta2_state, empty_init, ROT0, "MOSS / Nihon System", "Puzzle De Bowling (Japan)", MACHINE_NO_COCKTAIL )
-GAME( 2000, penbros, 0, penbros, penbros, seta2_state, empty_init, ROT0, "Subsino", "Penguin Brothers (Japan)", MACHINE_NO_COCKTAIL )
-GAME( 2000, ablast, penbros, penbros, penbros, seta2_state, empty_init, ROT0, "Subsino", "Hong Tian Lei (A-Blast) (Japan)", MACHINE_NO_COCKTAIL ) // 轟天雷/Hōng tiān léi
-GAME( 2000, ablastb, penbros, ablastb, penbros, seta2_state, empty_init, ROT0, "bootleg", "Hong Tian Lei (A-Blast) (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // at least "tilemap sprite" scrolly flag differs, FPGA instead of x1-010
-GAME( 2000, namcostr, 0, namcostr, funcube, seta2_state, empty_init, ROT0, "Namco", "Namco Stars", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING )
-GAME( 2000, deerhunt, 0, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhunta, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntb, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntc, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntd, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhunte, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V1", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, turkhunt, 0, samshoot, turkhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Turkey Hunting USA V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, wschamp, 0, samshoot, wschamp, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V2.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, wschampa, wschamp, samshoot, wschamp, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.01", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2001, wschampb, wschamp, samshoot, wschamp, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2002, trophyh, 0, samshoot, trophyh, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2002, trophyht, trophyh, samshoot, trophyht, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0 (Location Test)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 2000, funcube, 0, funcube, funcube, seta2_state, init_funcube, ROT0, "Namco", "Funcube (v1.5)", MACHINE_NO_COCKTAIL )
-GAME( 2001, funcube2, 0, funcube2, funcube, seta2_state, init_funcube2, ROT0, "Namco", "Funcube 2 (v1.1)", MACHINE_NO_COCKTAIL )
-GAME( 2001, funcube3, 0, funcube3, funcube, seta2_state, init_funcube3, ROT0, "Namco", "Funcube 3 (v1.1)", MACHINE_NO_COCKTAIL )
-GAME( 2001, funcube4, 0, funcube2, funcube, seta2_state, init_funcube2, ROT0, "Namco", "Funcube 4 (v1.0)", MACHINE_NO_COCKTAIL )
-GAME( 2002, funcube5, 0, funcube2, funcube, seta2_state, init_funcube2, ROT0, "Namco", "Funcube 5 (v1.0)", MACHINE_NO_COCKTAIL )
+GAME( 1994, gundamex, 0, gundamex, gundamex, seta2_state, empty_init, ROT0, "Banpresto", "Mobile Suit Gundam EX Revue", 0 )
+GAME( 1995, grdians, 0, grdians, grdians, seta2_state, empty_init, ROT0, "Winkysoft (Banpresto license)", "Guardians / Denjin Makai II", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, mj4simai, 0, seta2, mj4simai, mj4simai_state, empty_init, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", MACHINE_NO_COCKTAIL )
+GAME( 1996, myangel, 0, myangel, myangel, seta2_state, empty_init, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, myangel2, 0, myangel2, myangel2, seta2_state, empty_init, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, telpacfl, 0, telpacfl, telpacfl, seta2_state, empty_init, ROT270, "Sunsoft", "TelePachi Fever Lion (V1.0)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, reelquak, 0, reelquak, reelquak, seta2_state, empty_init, ROT0, "<unknown>", "Reel'N Quake! (Version 1.05)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 199?, endrichs, 0, reelquak, endrichs, seta2_state, empty_init, ROT0, "E.N.Tiger", "Endless Riches (Ver 1.20)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, staraudi, 0, staraudi, staraudi, staraudi_state, empty_init, ROT0, "Namco", "Star Audition", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, pzlbowl, 0, pzlbowl, pzlbowl, seta2_state, empty_init, ROT0, "MOSS / Nihon System", "Puzzle De Bowling (Japan)", MACHINE_NO_COCKTAIL )
+GAME( 2000, penbros, 0, penbros, penbros, seta2_state, empty_init, ROT0, "Subsino", "Penguin Brothers (Japan)", MACHINE_NO_COCKTAIL )
+GAME( 2000, ablast, penbros, penbros, penbros, seta2_state, empty_init, ROT0, "Subsino", "Hong Tian Lei (A-Blast) (Japan)", MACHINE_NO_COCKTAIL ) // 轟天雷/Hōng tiān léi
+GAME( 2000, ablastb, penbros, ablastb, penbros, seta2_state, empty_init, ROT0, "bootleg", "Hong Tian Lei (A-Blast) (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // at least "tilemap sprite" scrolly flag differs, FPGA instead of x1-010
+GAME( 2000, namcostr, 0, namcostr, funcube, seta2_state, empty_init, ROT0, "Namco", "Namco Stars", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING )
+GAME( 2000, deerhunt, 0, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhunta, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhuntb, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhuntc, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V3", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhuntd, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V2", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, deerhunte, deerhunt, samshoot, deerhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Deer Hunting USA V1", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, turkhunt, 0, samshoot, turkhunt, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Turkey Hunting USA V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, wschamp, 0, samshoot, wschamp, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V2.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, wschampa, wschamp, samshoot, wschamp, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.01", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2001, wschampb, wschamp, samshoot, wschamp, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.00", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2002, trophyh, 0, samshoot, trophyh, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2002, trophyht, trophyh, samshoot, trophyht, seta2_state, empty_init, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0 (Location Test)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, funcube, 0, funcube, funcube, funcube_state, init_funcube, ROT0, "Namco", "Funcube (v1.5)", MACHINE_NO_COCKTAIL )
+GAME( 2001, funcube2, 0, funcube2, funcube, funcube_state, init_funcube2, ROT0, "Namco", "Funcube 2 (v1.1)", MACHINE_NO_COCKTAIL )
+GAME( 2001, funcube3, 0, funcube3, funcube, funcube_state, init_funcube3, ROT0, "Namco", "Funcube 3 (v1.1)", MACHINE_NO_COCKTAIL )
+GAME( 2001, funcube4, 0, funcube2, funcube, funcube_state, init_funcube2, ROT0, "Namco", "Funcube 4 (v1.0)", MACHINE_NO_COCKTAIL )
+GAME( 2002, funcube5, 0, funcube2, funcube, funcube_state, init_funcube2, ROT0, "Namco", "Funcube 5 (v1.0)", MACHINE_NO_COCKTAIL )