summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/handheld/hh_sm510.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/handheld/hh_sm510.cpp')
-rw-r--r--src/mame/handheld/hh_sm510.cpp3799
1 files changed, 2791 insertions, 1008 deletions
diff --git a/src/mame/handheld/hh_sm510.cpp b/src/mame/handheld/hh_sm510.cpp
index 3f1978d25b8..17697fd0235 100644
--- a/src/mame/handheld/hh_sm510.cpp
+++ b/src/mame/handheld/hh_sm510.cpp
@@ -1,11 +1,11 @@
// license:BSD-3-Clause
// copyright-holders:hap, Henrik Algestam
// thanks-to:Sean Riddle, Igor, Lee Robson, Milan Galcik
-/***************************************************************************
+/*******************************************************************************
Sharp SM5xx family handhelds.
List of child drivers:
-- rzone: Tiger R-Zone
+- rzone.cpp: Tiger R-Zone
The LCD screen graphics are provided internally with an SVG file.
MAME external artwork is recommended for the backgrounds inlays.
@@ -14,14 +14,20 @@ Most of these LCD games are meant to stay powered on 24/7. There is no
RTC or NVRAM. Quitting MAME is akin to removing the handheld's battery.
Use -autosave to at least make them remember the highscores.
+ROM source notes when dumped from another title, but confident it's the same:
+- gnw_ball: Mego Toss-Up
+- gnw_bfight: New Wide Screen model
+- gnw_climber: New Wide Screen model
+- gnw_smb: New Wide Screen model
+- kbottom9: Ganbare Baseball
+- misc. Soviet Egg clones (not the LCD): G&W Mickey Mouse / Nu, pogodi!
+
TODO:
- improve display decay simulation? but SVG doesn't support setting brightness
per segment, adding pwm_display_device right now has no added value
- add nstarfox sound effect chip emulation
+- naltair IPT_DIAL should be 1-way, it's not supposed to rotate left
- add svg screen for nsmb3, nsmw
-- confirm gnw_bfight rom (assumed to be the same as gnw_bfightn)
-- confirm gnw_climber rom (assumed to be the same as gnw_climbern)
-- confirm gnw_smb rom (assumed to be the same as gnw_smbn)
- Currently there is no accurate way to dump the SM511/SM512 melody ROM
electronically. For the ones that weren't decapped, they were read by
playing back all melody data and reconstructing it to ROM. Visual(decap)
@@ -30,7 +36,7 @@ TODO:
gnw_mariocmt, gnw_mariocmta, gnw_mariotj, gnw_mbaway, gnw_mmousep,
gnw_pinball, gnw_popeyep, gnw_sbuster, gnw_snoopyp, gnw_zelda
-****************************************************************************
+********************************************************************************
Misc Nintendo Game & Watch notes:
@@ -79,6 +85,7 @@ BD-62 ms SM512 Bomb Sweeper
JB-63 ms SM511 Safe Buster
MV-64 ms SM512 Gold Cliff
ZL-65 ms SM512 Zelda
+TR-66* ms SM512? Tetris Jr. (prototype)
CJ-71* tt SM511? Donkey Kong Jr.
CM-72 tt SM511 Mario's Cement Factory
SM-73* tt SM511? Snoopy
@@ -114,7 +121,7 @@ The "Game Watch" wristwatches are by Nelsonic, not Nintendo.
Bassmate Computer (BM-501) is on identical hardware as G&W Multi Screen,
but it's not part of the game series.
-****************************************************************************
+********************************************************************************
Regarding Электроника (Elektronika, translated: Electronics): It is not
actually a company. It was a USSR brand name for consumer electronics,
@@ -134,17 +141,20 @@ Spitball Sparky.
The MCUs used were not imported from Sharp, but cloned by USSR, renamed to
КБ1013ВК1-2 for SM5A and КБ1013ВК4-2 for SM510.
-***************************************************************************/
+*******************************************************************************/
#include "emu.h"
#include "hh_sm510.h"
+#include "sound/samples.h"
+
#include "screen.h"
#include "speaker.h"
// internal artwork
-#include "gnw_dualv.lh"
-#include "gnw_dualh.lh"
+#include "hh_sm510_single.lh"
+#include "hh_sm510_dualv.lh"
+#include "hh_sm510_dualh.lh"
//#include "hh_sm510_test.lh" // common test-layout - use external artwork
#include "hh_sm500_test.lh" // "
@@ -197,11 +207,11 @@ void hh_sm510_state::machine_reset()
-/***************************************************************************
+/*******************************************************************************
Helper Functions
-***************************************************************************/
+*******************************************************************************/
// lcd panel - on lcd handhelds, usually not a generic x/y screen device
// deflicker here, especially needed for SM500/SM5A with the active shift register
@@ -270,7 +280,7 @@ u8 hh_sm510_state::read_inputs(int columns, int fixed)
// read selected input rows
for (int i = 0; i < columns; i++)
- if (m_inp_mux >> i & 1)
+ if (BIT(m_inp_mux, i))
ret |= m_inputs[i]->read();
if (fixed >= 0)
@@ -346,19 +356,19 @@ void hh_sm510_state::piezo2bit_input_w(u8 data)
-/***************************************************************************
+/*******************************************************************************
Common Machine Configurations
-***************************************************************************/
+*******************************************************************************/
// building blocks
void hh_sm510_state::mcfg_cpu_common(machine_config &config)
{
m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r));
- m_maincpu->read_ba().set([this] () { return m_io_ba.read_safe(1); });
- m_maincpu->read_b().set([this] () { return m_io_b.read_safe(1); });
+ m_maincpu->read_ba().set([this]() { return m_io_ba.read_safe(1); });
+ m_maincpu->read_b().set([this]() { return m_io_b.read_safe(1); });
}
void hh_sm510_state::mcfg_cpu_sm5a(machine_config &config)
@@ -416,6 +426,8 @@ void hh_sm510_state::mcfg_svg_screen(machine_config &config, u16 width, u16 heig
screen.set_refresh_hz(60);
screen.set_size(width, height);
screen.set_visarea_full();
+
+ config.set_default_layout(layout_hh_sm510_single);
}
void hh_sm510_state::mcfg_sound_r1(machine_config &config)
@@ -479,7 +491,7 @@ void hh_sm510_state::sm510_dualh(machine_config &config, u16 leftwidth, u16 left
mcfg_svg_screen(config, leftwidth, leftheight, "screen_left");
mcfg_svg_screen(config, rightwidth, rightheight, "screen_right");
- config.set_default_layout(layout_gnw_dualh);
+ config.set_default_layout(layout_hh_sm510_dualh);
}
void hh_sm510_state::dualv_common(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight)
@@ -488,7 +500,7 @@ void hh_sm510_state::dualv_common(machine_config &config, u16 topwidth, u16 toph
mcfg_svg_screen(config, topwidth, topheight, "screen_top");
mcfg_svg_screen(config, botwidth, botheight, "screen_bottom");
- config.set_default_layout(layout_gnw_dualv);
+ config.set_default_layout(layout_hh_sm510_dualv);
}
void hh_sm510_state::sm510_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight)
@@ -543,15 +555,15 @@ void hh_sm510_state::sm511_tiger2bit(machine_config &config, u16 width, u16 heig
-/***************************************************************************
+/*******************************************************************************
Minidrivers (subclass, I/O, Inputs, Machine Config, ROM Defs)
-***************************************************************************/
+*******************************************************************************/
namespace {
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Ball (model AC-01)
* PCB label: AC-01
@@ -560,7 +572,7 @@ namespace {
In the USA, it was distributed as Toss-Up by Mego under their Time-Out series.
-***************************************************************************/
+*******************************************************************************/
class gnw_ball_state : public hh_sm510_state
{
@@ -574,7 +586,7 @@ public:
void gnw_ball(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_ball )
PORT_START("IN.0")
@@ -595,6 +607,8 @@ static INPUT_PORTS_START( gnw_ball )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_ball_state::gnw_ball(machine_config &config)
{
sm5a_common(config, 1671, 1080); // R mask option confirmed
@@ -614,7 +628,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Flagman (model FL-02)
* PCB label: FL-02
@@ -623,7 +637,7 @@ ROM_END
In the USA, it was distributed as Flag Man by Mego under their Time-Out series.
-***************************************************************************/
+*******************************************************************************/
class gnw_flagman_state : public hh_sm510_state
{
@@ -635,7 +649,7 @@ public:
void gnw_flagman(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_flagman )
PORT_START("IN.0") // R2
@@ -662,6 +676,8 @@ static INPUT_PORTS_START( gnw_flagman )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_flagman_state::gnw_flagman(machine_config &config)
{
sm5a_common(config, 1511, 1080); // R mask option confirmed
@@ -681,7 +697,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Vermin (model MT-03)
* PCB label: MT-03
@@ -690,7 +706,7 @@ ROM_END
In the USA, it was distributed as The Exterminator by Mego under their Time-Out series.
-***************************************************************************/
+*******************************************************************************/
class gnw_vermin_state : public hh_sm510_state
{
@@ -704,7 +720,7 @@ public:
void gnw_vermin(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_vermin )
PORT_START("IN.0")
@@ -725,6 +741,8 @@ static INPUT_PORTS_START( gnw_vermin )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_vermin_state::gnw_vermin(machine_config &config)
{
sm5a_common(config, 1650, 1080); // R mask option confirmed
@@ -744,7 +762,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Fire (model RC-04)
* PCB label: RC-04
@@ -755,7 +773,7 @@ ROM_END
In the USA, it was distributed as Fireman Fireman by Mego under their Time-Out series.
-***************************************************************************/
+*******************************************************************************/
class gnw_fires_state : public hh_sm510_state
{
@@ -769,7 +787,7 @@ public:
void gnw_fires(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_fires )
PORT_START("IN.0")
@@ -790,6 +808,8 @@ static INPUT_PORTS_START( gnw_fires )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_fires_state::gnw_fires(machine_config &config)
{
sm5a_common(config, 1646, 1080); // R mask option confirmed
@@ -809,7 +829,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Judge (model IP-05)
* PCB label: IP-05
@@ -820,7 +840,7 @@ ROM_END
scored differently when wrongly dodging a win. This issue is fixed in the
second (purple) issue.
-***************************************************************************/
+*******************************************************************************/
class gnw_judge_state : public hh_sm510_state
{
@@ -832,7 +852,7 @@ public:
void gnw_judge(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_judge )
PORT_START("IN.0") // R2
@@ -859,6 +879,8 @@ static INPUT_PORTS_START( gnw_judge )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_judge_state::gnw_judge(machine_config &config)
{
sm5a_common(config, 1647, 1080); // R mask option confirmed
@@ -886,17 +908,16 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Manhole (model MH-06)
* PCB label: MH-06
* Sharp SM5A label MH-06 5104 (no decap)
* lcd screen with custom segments, 1-bit sound
- This is the Gold Series version, there's also a new wide screen version
- (NH-103)
+ This is the Gold Series version, there's also a new wide screen version (NH-103)
-***************************************************************************/
+*******************************************************************************/
class gnw_manholeg_state : public hh_sm510_state
{
@@ -908,7 +929,7 @@ public:
void gnw_manholeg(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_manholeg )
PORT_START("IN.0") // R2
@@ -938,6 +959,8 @@ static INPUT_PORTS_START( gnw_manholeg )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_manholeg_state::gnw_manholeg(machine_config &config)
{
sm5a_common(config, 1667, 1080); // R mask option confirmed
@@ -957,7 +980,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Helmet (model CN-07)
* PCB label: CN-07
@@ -968,7 +991,7 @@ ROM_END
MCU label CN-07 is the first version, CN-17 is a bugfix release.
-***************************************************************************/
+*******************************************************************************/
class gnw_helmet_state : public hh_sm510_state
{
@@ -980,7 +1003,7 @@ public:
void gnw_helmet(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_helmet )
PORT_START("IN.0") // R2
@@ -1010,6 +1033,8 @@ static INPUT_PORTS_START( gnw_helmet )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_helmet_state::gnw_helmet(machine_config &config)
{
sm5a_common(config, 1657, 1080); // R mask option confirmed
@@ -1037,7 +1062,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Lion (model LN-08)
* PCB label: LN-08
@@ -1048,7 +1073,7 @@ ROM_END
it's the same as in eg. gnw_mmouse but in this game it doesn't make much sense
with the 2 separate guys. More likely a bad game design choice than bug.
-***************************************************************************/
+*******************************************************************************/
class gnw_lion_state : public hh_sm510_state
{
@@ -1060,7 +1085,7 @@ public:
void gnw_lion(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_lion )
PORT_START("IN.0") // R2
@@ -1095,6 +1120,8 @@ static INPUT_PORTS_START( gnw_lion )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_lion_state::gnw_lion(machine_config &config)
{
sm5a_common(config, 1646, 1080); // R mask option confirmed
@@ -1114,14 +1141,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Parachute (model PR-21)
* PCB label: PR-21Y
* Sharp SM5A label PR-21 52XC (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_pchute_state : public hh_sm510_state
{
@@ -1133,7 +1160,7 @@ public:
void gnw_pchute(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_pchute )
PORT_START("IN.0") // R2
@@ -1163,6 +1190,8 @@ static INPUT_PORTS_START( gnw_pchute )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_pchute_state::gnw_pchute(machine_config &config)
{
sm5a_common(config, 1602, 1080); // R mask option confirmed
@@ -1182,7 +1211,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Octopus (model OC-22)
* PCB label: OC-22Y A
@@ -1193,7 +1222,7 @@ ROM_END
version: Mysteries of the Ocean), ROM is identical, graphics as well except
for the AM/PM/GAME segments.
-***************************************************************************/
+*******************************************************************************/
class gnw_octopus_state : public hh_sm510_state
{
@@ -1206,7 +1235,7 @@ public:
void taynyoke(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_octopus )
PORT_START("IN.0") // R2
@@ -1236,6 +1265,8 @@ static INPUT_PORTS_START( gnw_octopus )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_octopus_state::gnw_octopus(machine_config &config)
{
sm5a_common(config, 1586, 1080); // R mask option confirmed
@@ -1268,7 +1299,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Popeye (model PP-23)
* PCB label: PP-23 Y
@@ -1277,7 +1308,7 @@ ROM_END
This is the wide screen version, there's also tabletop and panorama versions.
-***************************************************************************/
+*******************************************************************************/
class gnw_popeye_state : public hh_sm510_state
{
@@ -1289,7 +1320,7 @@ public:
void gnw_popeye(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_popeye )
PORT_START("IN.0") // R2
@@ -1319,6 +1350,8 @@ static INPUT_PORTS_START( gnw_popeye )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_popeye_state::gnw_popeye(machine_config &config)
{
sm5a_common(config, 1604, 1080); // R mask option confirmed
@@ -1338,7 +1371,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Chef (model FP-24)
* PCB label: FP-24
@@ -1349,7 +1382,7 @@ ROM_END
export version: Merry Cook). This game shares the same ROM, though the graphics
are slightly different.
-***************************************************************************/
+*******************************************************************************/
class gnw_chef_state : public hh_sm510_state
{
@@ -1362,7 +1395,7 @@ public:
void gnw_chef(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_chef )
PORT_START("IN.0") // R2
@@ -1389,6 +1422,8 @@ static INPUT_PORTS_START( gnw_chef )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_chef_state::gnw_chef(machine_config &config)
{
sm5a_common(config, 1666, 1080); // assuming same R mask option as merry cook
@@ -1421,7 +1456,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mickey Mouse (model MC-25), Egg (model EG-26)
* PCB label: MC-25 EG-26 (yes, both listed)
@@ -1431,32 +1466,9 @@ ROM_END
MC-25 and EG-26 are the same game, it's assumed that the latter was for
regions where Nintendo wasn't able to license from Disney.
- In 1984, Электроника (Elektronika, USSR) released an unlicensed clone:
- Ну, погоди! (Nu, pogodi!). This was followed by several other titles that
- were the same under the hood, only differing in graphics. They also made a
- slightly modified version, adding a new game mode (by pressing A+B) where the
- player/CPU roles are reversed. This version is known as Разведчики космоса
- (Razvedchiki kosmosa, export version: Explorers of Space).
-
- The following Mickey Mouse Elektronika clones are emulated in MAME:
+ This game was also cloned (a lot) by Elektronika, see nupogodi_state.
- Model Title Transliteration Export version Note
- ---------------------------------------------------------------------------------
- ИМ-02 Ну, погоди! Nu, pogodi! - -
- ИМ-10 Хоккей Hockey (Khokkey) Ice Hockey Export version manufactured by PO Proton
- ИМ-13 Разведчики космоса Razvedchiki kosmosa Explorers of Space Modified ROM (see note above)
- ИМ-16 Охота Okhota Fowling -
- ИМ-19 Биатлон Biathlon (Biatlon) - -
- ИМ-22 Весёлые футболисты Vesyolye futbolisty Monkey Goalkeeper -
- ИМ-32 Кот-рыболов Kot-rybolov - -
- ИМ-33 Квака-задавака Kvaka-zadavaka Frogling -
- ИМ-49 Ночные воришки Nochnye vorishki Night Burglars -
- ИМ-50 Космический полёт Kosmicheskiy polyot Space Flight The Model ID is the same as Весёлая арифметика (Vesyolaya arithmetika, export version: Amusing Arithmetic) (not emulated in MAME)
- ИМ-51 Морская атака Morskaya ataka - -
- ИМ-53 Атака астероидов Ataka asteroidov - Graphics are very similar to ИМ-50
- - Цирк Circus (Tsirk) - Unknown Model ID
-
-***************************************************************************/
+*******************************************************************************/
class gnw_mmouse_state : public hh_sm510_state
{
@@ -1467,22 +1479,9 @@ public:
void gnw_mmouse(machine_config &config);
void gnw_egg(machine_config &config);
- void nupogodi(machine_config &config);
- void ehockey(machine_config &config);
- void rkosmosa(machine_config &config);
- void okhota(machine_config &config);
- void biathlon(machine_config &config);
- void vfutbol(machine_config &config);
- void krybolov(machine_config &config);
- void kvakazad(machine_config &config);
- void nochnyev(machine_config &config);
- void kosmicpt(machine_config &config);
- void morataka(machine_config &config);
- void atakaast(machine_config &config);
- void ecircus(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mmouse )
PORT_START("IN.0") // R2
@@ -1509,12 +1508,7 @@ static INPUT_PORTS_START( gnw_mmouse )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-static INPUT_PORTS_START( rkosmosa )
- PORT_INCLUDE( gnw_mmouse )
-
- PORT_MODIFY("BA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
-INPUT_PORTS_END
+// config
void gnw_mmouse_state::gnw_mmouse(machine_config &config)
{
@@ -1526,71 +1520,6 @@ void gnw_mmouse_state::gnw_egg(machine_config &config)
sm5a_common(config, 1690, 1080); // R mask option confirmed
}
-void gnw_mmouse_state::nupogodi(machine_config &config)
-{
- kb1013vk12_common(config, 1715, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::ehockey(machine_config &config)
-{
- kb1013vk12_common(config, 1782, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::rkosmosa(machine_config &config)
-{
- kb1013vk12_common(config, 1646, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::okhota(machine_config &config)
-{
- kb1013vk12_common(config, 1632, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::biathlon(machine_config &config)
-{
- kb1013vk12_common(config, 1633, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::vfutbol(machine_config &config)
-{
- kb1013vk12_common(config, 1655, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::krybolov(machine_config &config)
-{
- kb1013vk12_common(config, 1638, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::kvakazad(machine_config &config)
-{
- kb1013vk12_common(config, 1660, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::nochnyev(machine_config &config)
-{
- kb1013vk12_common(config, 1641, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::kosmicpt(machine_config &config)
-{
- kb1013vk12_common(config, 1658, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::morataka(machine_config &config)
-{
- kb1013vk12_common(config, 1648, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::atakaast(machine_config &config)
-{
- kb1013vk12_common(config, 1620, 1080); // R mask option ?
-}
-
-void gnw_mmouse_state::ecircus(machine_config &config)
-{
- kb1013vk12_common(config, 1657, 1080); // R mask option ?
-}
-
// roms
ROM_START( gnw_mmouse )
@@ -1609,115 +1538,11 @@ ROM_START( gnw_egg )
ROM_LOAD( "gnw_egg.svg", 0, 193119, CRC(1e469fe5) SHA1(bc80114337feefca590e48c823e8488f6b63f896) )
ROM_END
-ROM_START( nupogodi )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-02.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 154233, "screen", 0)
- ROM_LOAD( "nupogodi.svg", 0, 154233, CRC(42cfb84a) SHA1(249ca7ec78066b57f9a18e48ada64712c944e461) )
-ROM_END
-
-ROM_START( ehockey )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-10.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 94977, "screen", 0)
- ROM_LOAD( "ehockey.svg", 0, 94977, CRC(98cf43b0) SHA1(4353505709612344cd3b597c3b4e9f6b441ddb66) )
-ROM_END
-
-ROM_START( rkosmosa )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-13.bin", 0x0000, 0x0740, CRC(553e2b09) SHA1(2b74f8437b881fbb62b61f25435a5bfc66872a9a) )
-
- ROM_REGION( 81420, "screen", 0)
- ROM_LOAD( "rkosmosa.svg", 0, 81420, CRC(dc6632be) SHA1(0906d933f4cda39ee1e57b502651a821e61e95ef) )
-ROM_END
-
-ROM_START( okhota )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-16.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 117838, "screen", 0)
- ROM_LOAD( "okhota.svg", 0, 117838, CRC(7de707c6) SHA1(c876ea16bd8af033086e2e20860d2e1d09296d59) )
-ROM_END
-
-ROM_START( biathlon )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-19.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 116377, "screen", 0)
- ROM_LOAD( "biathlon.svg", 0, 116377, CRC(fadf729e) SHA1(671f9496e2bfe7b4800ee7bad039485e19958428) )
-ROM_END
-
-ROM_START( vfutbol )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-22.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 131901, "screen", 0)
- ROM_LOAD( "vfutbol.svg", 0, 131901, CRC(85811308) SHA1(288aa41bade08c61e0d346b9c1109179564e34ed) )
-ROM_END
-
-ROM_START( krybolov )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-32.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 132804, "screen", 0)
- ROM_LOAD( "krybolov.svg", 0, 132804, CRC(4e3e70d3) SHA1(18f1300afa601deb6ac01dcf7dca88187b7940a3) )
-ROM_END
-
-ROM_START( kvakazad )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-33.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 131961, "screen", 0)
- ROM_LOAD( "kvakazad.svg", 0, 131961, CRC(37b27420) SHA1(25d9e273f056c10e3a5bc4476ce980bfdb8095e1) )
-ROM_END
-
-ROM_START( nochnyev )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-49.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 136498, "screen", 0)
- ROM_LOAD( "nochnyev.svg", 0, 136498, CRC(24a287cd) SHA1(2d14aa9b55b42c634df141fe4037ae286549b17b) )
-ROM_END
-
-ROM_START( kosmicpt )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-50.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 110214, "screen", 0)
- ROM_LOAD( "kosmicpt.svg", 0, 110214, CRC(ccef6d27) SHA1(71f3cf49a5797ed9296f1e86ec4575ffefab67dd) )
-ROM_END
-
-ROM_START( morataka )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-51.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
- ROM_REGION( 105057, "screen", 0)
- ROM_LOAD( "morataka.svg", 0, 105057, CRC(c235c56c) SHA1(b6ef74ba7826221683243e23513270d0f0f2cfda) )
-ROM_END
-ROM_START( atakaast )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-53.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
- ROM_REGION( 105570, "screen", 0)
- ROM_LOAD( "atakaast.svg", 0, 105570, CRC(3d79aacc) SHA1(bc25969f4d6fa75b320130c920ac0bdc8fb44cbd) )
-ROM_END
-ROM_START( ecircus )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "ecircus.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
-
- ROM_REGION( 124643, "screen", 0)
- ROM_LOAD( "ecircus.svg", 0, 124643, CRC(079f25db) SHA1(defa784c80e01ce6affbb424930674114275bea1) )
-ROM_END
-
-
-
-
-
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Fire (model FR-27)
* PCB label: FR-27
@@ -1732,7 +1557,7 @@ ROM_END
export version: Space Bridge). This game shares the same ROM, though the
graphics are different.
-***************************************************************************/
+*******************************************************************************/
class gnw_fire_state : public hh_sm510_state
{
@@ -1745,7 +1570,7 @@ public:
void gnw_fire(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_fire )
PORT_START("IN.0") // R2
@@ -1775,6 +1600,8 @@ static INPUT_PORTS_START( gnw_fire )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_fire_state::gnw_fire(machine_config &config)
{
sm5a_common(config, 1624, 1080); // R mask option confirmed
@@ -1807,14 +1634,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Turtle Bridge (model TL-28)
* PCB label: TL-28
* Sharp SM510 label TL-28 523C (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_tbridge_state : public hh_sm510_state
{
@@ -1830,7 +1657,7 @@ public:
void gnw_tbridge(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_tbridge )
PORT_START("IN.0") // S1
@@ -1859,6 +1686,8 @@ static INPUT_PORTS_START( gnw_tbridge )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_tbridge_state::gnw_tbridge(machine_config &config)
{
sm510_common(config, 1587, 1080); // R mask option confirmed
@@ -1878,14 +1707,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Fire Attack (model ID-29)
* PCB label: ID-29
* Sharp SM510 label ID-29 524B (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_fireatk_state : public hh_sm510_state
{
@@ -1897,7 +1726,7 @@ public:
void gnw_fireatk(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_fireatk )
PORT_START("IN.0") // S1
@@ -1926,6 +1755,8 @@ static INPUT_PORTS_START( gnw_fireatk )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_fireatk_state::gnw_fireatk(machine_config &config)
{
sm510_common(config, 1655, 1080); // R mask option confirmed
@@ -1945,14 +1776,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Snoopy Tennis (model SP-30)
* PCB label: SP-30
* Sharp SM510 label SP-30 525B (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_stennis_state : public hh_sm510_state
{
@@ -1964,7 +1795,7 @@ public:
void gnw_stennis(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_stennis )
PORT_START("IN.0") // S1
@@ -1993,6 +1824,8 @@ static INPUT_PORTS_START( gnw_stennis )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_stennis_state::gnw_stennis(machine_config &config)
{
sm510_common(config, 1581, 1080); // R mask option confirmed
@@ -2012,14 +1845,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Oil Panic (model OP-51)
* PCB label: OP-51A
* Sharp SM510 label OP-51 28ZB (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_opanic_state : public hh_sm510_state
{
@@ -2031,7 +1864,7 @@ public:
void gnw_opanic(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_opanic )
PORT_START("IN.0") // S1
@@ -2060,6 +1893,8 @@ static INPUT_PORTS_START( gnw_opanic )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_opanic_state::gnw_opanic(machine_config &config)
{
sm510_dualv(config, 1920/2, 1292/2, 1920/2, 1230/2); // R mask option confirmed
@@ -2082,14 +1917,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Donkey Kong (model DK-52)
* PCB label: DK-52C
* Sharp SM510 label DK-52 52ZD (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_dkong_state : public hh_sm510_state
{
@@ -2101,7 +1936,7 @@ public:
void gnw_dkong(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_dkong )
PORT_START("IN.0") // S1
@@ -2129,6 +1964,8 @@ static INPUT_PORTS_START( gnw_dkong )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_dkong_state::gnw_dkong(machine_config &config)
{
sm510_dualv(config, 1920/2, 1266/2, 1920/2, 1266/2); // R mask option confirmed
@@ -2151,14 +1988,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mickey & Donald (model DM-53)
* PCB label: DM-53
* Sharp SM510 label DM-53 52ZC (die label CMS54C, CMS565)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_mickdon_state : public hh_sm510_state
{
@@ -2170,7 +2007,7 @@ public:
void gnw_mickdon(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mickdon )
PORT_START("IN.0") // S1
@@ -2194,6 +2031,8 @@ static INPUT_PORTS_START( gnw_mickdon )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_mickdon_state::gnw_mickdon(machine_config &config)
{
sm510_dualv(config, 1920/2, 1281/2, 1920/2, 1236/2); // R mask option confirmed
@@ -2218,7 +2057,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Green House (model GH-54)
* PCB label: GH-54
@@ -2228,7 +2067,7 @@ ROM_END
After the 20,000,000th G&W, Nintendo made a special edition of Green House
(still model GH-54), with the box art showing all the released games so far.
-***************************************************************************/
+*******************************************************************************/
class gnw_ghouse_state : public hh_sm510_state
{
@@ -2240,7 +2079,7 @@ public:
void gnw_ghouse(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_ghouse )
PORT_START("IN.0") // S1
@@ -2273,6 +2112,8 @@ static INPUT_PORTS_START( gnw_ghouse )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_ghouse_state::gnw_ghouse(machine_config &config)
{
sm510_dualv(config, 1920/2, 1303/2, 1920/2, 1274/2); // R mask option confirmed
@@ -2295,14 +2136,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Donkey Kong II (model JR-55)
* PCB label: JR-55
* Sharp SM510 label JR-55 53YC (die label CMS54C, KMS560)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_dkong2_state : public hh_sm510_state
{
@@ -2314,7 +2155,7 @@ public:
void gnw_dkong2(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_dkong2 )
PORT_START("IN.0") // S1
@@ -2342,6 +2183,8 @@ static INPUT_PORTS_START( gnw_dkong2 )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_dkong2_state::gnw_dkong2(machine_config &config)
{
sm510_dualv(config, 1920/2, 1241/2, 1920/2, 1237/2); // R mask option confirmed
@@ -2364,14 +2207,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mario Bros. (model MW-56)
* PCB label: MW-56-M-I (left), MW-56-S (right)
* Sharp SM510 label MW-56 533C (no decap)
* horizontal dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_mario_state : public hh_sm510_state
{
@@ -2383,7 +2226,7 @@ public:
void gnw_mario(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mario )
PORT_START("IN.0") // S1
@@ -2412,6 +2255,8 @@ static INPUT_PORTS_START( gnw_mario )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_mario_state::gnw_mario(machine_config &config)
{
sm510_dualh(config, 2258/2, 1440/2, 2261/2, 1440/2); // R mask option confirmed
@@ -2434,14 +2279,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Rain Shower (model LP-57)
* PCB labels: LP-57-M-I (left), LP-57-S (right)
* Sharp SM510 label LP-57 538A (no decap)
* horizontal dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_rshower_state : public hh_sm510_state
{
@@ -2453,7 +2298,7 @@ public:
void gnw_rshower(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_rshower )
PORT_START("IN.0") // S1
@@ -2488,6 +2333,8 @@ static INPUT_PORTS_START( gnw_rshower )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_rshower_state::gnw_rshower(machine_config &config)
{
sm510_dualh(config, 2126/2, 1440/2, 2146/2, 1440/2); // R mask option confirmed
@@ -2510,14 +2357,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Life Boat (model TC-58)
* PCB labels: TC-58-M (left), TC-58-S (right)
* Sharp SM510 label TC-58 281D (no decap)
* horizontal dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_lboat_state : public hh_sm510_state
{
@@ -2529,7 +2376,7 @@ public:
void gnw_lboat(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_lboat )
PORT_START("IN.0") // S1
@@ -2558,6 +2405,8 @@ static INPUT_PORTS_START( gnw_lboat )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_lboat_state::gnw_lboat(machine_config &config)
{
sm510_dualh(config, 2116/2, 1440/2, 2057/2, 1440/2); // R mask option confirmed
@@ -2580,14 +2429,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Pinball (model PB-59)
* PCB label: PB-59
* Sharp SM511 label PB-59 53ZD (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_pinball_state : public hh_sm510_state
{
@@ -2599,7 +2448,7 @@ public:
void gnw_pinball(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_pinball )
PORT_START("IN.0") // S1
@@ -2628,6 +2477,8 @@ static INPUT_PORTS_START( gnw_pinball )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_pinball_state::gnw_pinball(machine_config &config)
{
sm511_dualv(config, 1920/2, 1271/2, 1920/2, 1286/2);
@@ -2653,14 +2504,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Black Jack (model BJ-60)
* PCB label: BJ-60
* Sharp SM512 label BJ-60 564D (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_bjack_state : public hh_sm510_state
{
@@ -2672,7 +2523,7 @@ public:
void gnw_bjack(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_bjack )
PORT_START("IN.0") // S1
@@ -2691,6 +2542,8 @@ static INPUT_PORTS_START( gnw_bjack )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void gnw_bjack_state::gnw_bjack(machine_config &config)
{
sm512_dualv(config, 1920/2, 1290/2, 1920/2, 1297/2);
@@ -2716,14 +2569,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Squish (model MG-61)
* PCB label: MG-61
* Sharp SM510 label MG-61 8841B (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_squish_state : public hh_sm510_state
{
@@ -2738,7 +2591,7 @@ public:
void gnw_squish(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_squish )
PORT_START("IN.0") // S1
@@ -2767,6 +2620,8 @@ static INPUT_PORTS_START( gnw_squish )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_squish_state::gnw_squish(machine_config &config)
{
sm510_dualv(config, 1920/2, 1285/2, 1920/2, 1287/2); // R mask option confirmed
@@ -2789,14 +2644,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Bomb Sweeper (model BD-62)
* PCB label: BD-62
* Sharp SM512 label BD-62 8727 A (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_bsweep_state : public hh_sm510_state
{
@@ -2808,7 +2663,7 @@ public:
void gnw_bsweep(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_bsweep )
PORT_START("IN.0") // S1
@@ -2837,6 +2692,8 @@ static INPUT_PORTS_START( gnw_bsweep )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_bsweep_state::gnw_bsweep(machine_config &config)
{
sm512_dualv(config, 1920/2, 1291/2, 1920/2, 1239/2);
@@ -2862,14 +2719,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Safe Buster (model JB-63)
* PCB label: JB-63
* Sharp SM511 label JB-63 8841 B (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_sbuster_state : public hh_sm510_state
{
@@ -2881,7 +2738,7 @@ public:
void gnw_sbuster(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_sbuster )
PORT_START("IN.0") // S1
@@ -2909,6 +2766,8 @@ static INPUT_PORTS_START( gnw_sbuster )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_sbuster_state::gnw_sbuster(machine_config &config)
{
sm511_dualv(config, 1920/2, 1246/2, 1920/2, 1269/2);
@@ -2934,14 +2793,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Gold Cliff (model MV-64)
* PCB label: MV-64
* Sharp SM512 label MV-64 9027 A (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_gcliff_state : public hh_sm510_state
{
@@ -2953,7 +2812,7 @@ public:
void gnw_gcliff(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_gcliff )
PORT_START("IN.0") // S1
@@ -2986,6 +2845,8 @@ static INPUT_PORTS_START( gnw_gcliff )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_gcliff_state::gnw_gcliff(machine_config &config)
{
sm512_dualv(config, 1920/2, 1257/2, 1920/2, 1239/2);
@@ -3011,14 +2872,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Zelda (model ZL-65)
* PCB label: ZL-65
* Sharp SM512 label ZL-65 8935 A (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_zelda_state : public hh_sm510_state
{
@@ -3030,7 +2891,7 @@ public:
void gnw_zelda(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_zelda )
PORT_START("IN.0") // S1
@@ -3063,6 +2924,8 @@ static INPUT_PORTS_START( gnw_zelda )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_zelda_state::gnw_zelda(machine_config &config)
{
sm512_dualv(config, 1920/2, 1346/2, 1920/2, 1291/2);
@@ -3088,12 +2951,11 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mario's Cement Factory (model CM-72)
- * PCB labels: CM-72 M (main board)
- CM-72 C (joystick controller board)
- CM-72 S (buttons controller board)
+ * PCB labels: CM-72 M (main board), CM-72 C (joystick controller board),
+ CM-72 S (buttons controller board)
* Sharp SM511 label CM-72 534A, or CM-72A 536C (no decap)
* inverted lcd screen with custom segments, 1-bit sound
@@ -3102,7 +2964,7 @@ ROM_END
There are two known versions, distinguished by the startup jingle. The first
version sounds like Queen's "Another One Bites the Dust".
-***************************************************************************/
+*******************************************************************************/
class gnw_mariocmt_state : public hh_sm510_state
{
@@ -3114,7 +2976,7 @@ public:
void gnw_mariocmt(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mariocmt )
PORT_START("IN.0") // S1
@@ -3143,6 +3005,8 @@ static INPUT_PORTS_START( gnw_mariocmt )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_mariocmt_state::gnw_mariocmt(machine_config &config)
{
sm511_common(config, 1920, 1046);
@@ -3176,7 +3040,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Snoopy (model SM-91)
* PCB labels: SM-91 M (main board), SM-91C (controller board)
@@ -3186,7 +3050,7 @@ ROM_END
This is the panorama version. There's also a tabletop version which is
assumed to use the same ROM/LCD.
-***************************************************************************/
+*******************************************************************************/
class gnw_snoopyp_state : public hh_sm510_state
{
@@ -3198,7 +3062,7 @@ public:
void gnw_snoopyp(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_snoopyp )
PORT_START("IN.0") // S1
@@ -3227,6 +3091,8 @@ static INPUT_PORTS_START( gnw_snoopyp )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_snoopyp_state::gnw_snoopyp(machine_config &config)
{
sm511_common(config, 1920, 1020);
@@ -3249,7 +3115,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Popeye (model PG-92)
* PCB labels: PG-92 M (main board), SM-91C (controller board)
@@ -3263,7 +3129,7 @@ ROM_END
The PCB design for the controller board is shared with the panorama version
of Snoopy (SM-91).
-***************************************************************************/
+*******************************************************************************/
class gnw_popeyep_state : public hh_sm510_state
{
@@ -3275,7 +3141,7 @@ public:
void gnw_popeyep(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_popeyep )
PORT_START("IN.0") // S1
@@ -3304,6 +3170,8 @@ static INPUT_PORTS_START( gnw_popeyep )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_popeyep_state::gnw_popeyep(machine_config &config)
{
sm511_common(config, 1920, 1043);
@@ -3326,7 +3194,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Donkey Kong Jr. (model CJ-93)
* PCB labels: CJ-93 M (main board), CJ-93C (controller board)
@@ -3339,7 +3207,7 @@ ROM_END
The tabletop version was also licensed to Coleco.
-***************************************************************************/
+*******************************************************************************/
class gnw_dkjrp_state : public hh_sm510_state
{
@@ -3351,7 +3219,7 @@ public:
void gnw_dkjrp(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_dkjrp )
PORT_START("IN.0") // S1
@@ -3384,6 +3252,8 @@ static INPUT_PORTS_START( gnw_dkjrp )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_dkjrp_state::gnw_dkjrp(machine_config &config)
{
sm511_common(config, 1920, 1049);
@@ -3406,14 +3276,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mario's Bombs Away (model TB-94)
* PCB labels: TB-94 M (main board), SM-91C (controller board)
* Sharp SM511 label TB-94 537C (no decap)
* inverted lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_mbaway_state : public hh_sm510_state
{
@@ -3425,7 +3295,7 @@ public:
void gnw_mbaway(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mbaway )
PORT_START("IN.0") // S1
@@ -3454,6 +3324,8 @@ static INPUT_PORTS_START( gnw_mbaway )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_mbaway_state::gnw_mbaway(machine_config &config)
{
sm511_common(config, 1920, 1031);
@@ -3476,14 +3348,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mickey Mouse (model DC-95),
Nintendo Game & Watch: Donkey Kong Circus (model MK-96)
* PCB labels: DC-95M (main board), DC-95C (controller board)
- * Sharp SM511
- - label DC-95 284C (Mickey Mouse) (no decap)
- - label DC-95 541D (Donkey Kong Circus) (no decap)
+ * Sharp SM511:
+ label DC-95 284C (Mickey Mouse) (no decap)
+ label DC-95 541D (Donkey Kong Circus) (no decap)
* inverted lcd screen with custom segments, 1-bit sound
This is the panorama version of Mickey Mouse. There's also a wide screen
@@ -3492,7 +3364,7 @@ ROM_END
DC-95 and MK-96 are the same game, it's assumed that the latter was for
regions where Nintendo wasn't able to license from Disney.
-***************************************************************************/
+*******************************************************************************/
class gnw_mmousep_state : public hh_sm510_state
{
@@ -3505,7 +3377,7 @@ public:
void gnw_dkcirc(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mmousep )
PORT_START("IN.0") // S1
@@ -3534,6 +3406,8 @@ static INPUT_PORTS_START( gnw_mmousep )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_mmousep_state::gnw_mmousep(machine_config &config)
{
sm511_common(config, 1920, 1122);
@@ -3572,7 +3446,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101)
* Sharp SM510 label DJ-101 52ZA (no decap)
@@ -3581,7 +3455,7 @@ ROM_END
This is the new wide screen version, there's also a tabletop version that
plays more like the arcade game.
-***************************************************************************/
+*******************************************************************************/
class gnw_dkjr_state : public hh_sm510_state
{
@@ -3593,7 +3467,7 @@ public:
void gnw_dkjr(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_dkjr )
PORT_START("IN.0") // S1
@@ -3626,6 +3500,8 @@ static INPUT_PORTS_START( gnw_dkjr )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_dkjr_state::gnw_dkjr(machine_config &config)
{
sm510_common(config, 1647, 1080); // R mask option confirmed
@@ -3645,7 +3521,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mario's Cement Factory (model ML-102)
* Sharp SM510 label ML-102 298D (die label CMS54C, KMS577)
@@ -3653,7 +3529,7 @@ ROM_END
This is the new wide screen version, there's also a tabletop version.
-***************************************************************************/
+*******************************************************************************/
class gnw_mariocm_state : public hh_sm510_state
{
@@ -3665,7 +3541,7 @@ public:
void gnw_mariocm(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mariocm )
PORT_START("IN.0") // S1
@@ -3694,6 +3570,8 @@ static INPUT_PORTS_START( gnw_mariocm )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_mariocm_state::gnw_mariocm(machine_config &config)
{
sm510_common(config, 1647, 1080); // R mask option confirmed
@@ -3713,7 +3591,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Manhole (model NH-103)
* PCB label: NH-103
@@ -3724,7 +3602,7 @@ ROM_END
(MH-06). The two games are using different MCU types so this version seems
to be a complete rewrite.
-***************************************************************************/
+*******************************************************************************/
class gnw_manhole_state : public hh_sm510_state
{
@@ -3736,7 +3614,7 @@ public:
void gnw_manhole(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_manhole )
PORT_START("IN.0") // S1
@@ -3765,6 +3643,8 @@ static INPUT_PORTS_START( gnw_manhole )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_manhole_state::gnw_manhole(machine_config &config)
{
sm510_common(config, 1560, 1080); // R mask option confirmed
@@ -3784,14 +3664,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Tropical Fish (model TF-104)
* PCB label: TF-104
* Sharp SM510 label TF-104 8739A (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_tfish_state : public hh_sm510_state
{
@@ -3803,7 +3683,7 @@ public:
void gnw_tfish(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_tfish )
PORT_START("IN.0") // S1
@@ -3827,6 +3707,8 @@ static INPUT_PORTS_START( gnw_tfish )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_tfish_state::gnw_tfish(machine_config &config)
{
sm510_common(config, 1572, 1080); // R mask option confirmed
@@ -3846,13 +3728,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Super Mario Bros. (model: see below)
* PCB label: YM-801 (Crystal Screen), YM-105 (New Wide Screen)
- * Sharp SM511
- - label YM-801 8034A (Crystal Screen) (not dumped yet)
- - label YM-105 9024B (New Wide Screen) (die label ?)
+ * Sharp SM511:
+ label YM-801 8034A (Crystal Screen) (not dumped yet)
+ label YM-105 9024B (New Wide Screen) (die label ?)
* lcd screen with custom segments, 1-bit sound
First released in 1986 on Crystal Screen (model YM-801), rereleased on
@@ -3861,7 +3743,7 @@ ROM_END
ones in ML-102 and MW-56. In YM-901-S and YM-105 he looks more detailed.
Until further proof, it's assumed that the ROM is the same for each model.
-***************************************************************************/
+*******************************************************************************/
class gnw_smb_state : public hh_sm510_state
{
@@ -3874,7 +3756,7 @@ public:
void gnw_smbn(machine_config & config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_smb )
PORT_START("IN.0") // S1
@@ -3902,6 +3784,8 @@ static INPUT_PORTS_START( gnw_smb )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_smb_state::gnw_smb(machine_config &config)
{
sm511_common(config, 1768, 1080);
@@ -3940,14 +3824,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Climber Crystal Screen (model DR-802),
Nintendo Game & Watch: Climber New Wide Screen (model DR-106)
* PCB label: DR-802 (Crystal Screen), DR-106 (New Wide Screen)
- * Sharp SM511
- - label DR-802 8626A (Crystal Screen) (not dumped yet)
- - label DR-106 9038B (New Wide Screen) (no decap)
+ * Sharp SM511:
+ label DR-802 8626A (Crystal Screen) (not dumped yet)
+ label DR-106 9038B (New Wide Screen) (no decap)
* lcd screen with custom segments, 1-bit sound
First released in 1986 on Crystal Screen (model DR-802), rereleased on
@@ -3956,7 +3840,7 @@ ROM_END
slightly different. Until further proof, it's assumed that the ROM is the same
for both models.
-***************************************************************************/
+*******************************************************************************/
class gnw_climber_state : public hh_sm510_state
{
@@ -3969,7 +3853,7 @@ public:
void gnw_climbern(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_climber )
PORT_START("IN.0") // S1
@@ -3997,6 +3881,8 @@ static INPUT_PORTS_START( gnw_climber )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_climber_state::gnw_climber(machine_config &config)
{
sm511_common(config, 1756, 1080);
@@ -4035,14 +3921,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Balloon Fight Crystal Screen (model BF-803),
Nintendo Game & Watch: Balloon Fight New Wide Screen (model BF-107)
* PCB label: DR-802-2 (Crystal Screen), DR-106 (New Wide Screen)
- * Sharp SM511
- - label BF-803 8646A (Crystal Sscreen) (not dumped yet)
- - label BF-107 9031B (New Wide Screen) (no decap)
+ * Sharp SM511:
+ label BF-803 8646A (Crystal Screen) (not dumped yet)
+ label BF-107 9031B (New Wide Screen) (no decap)
* lcd screen with custom segments, 1-bit sound
First released in 1986 on Crystal Screen (model BF-803), rereleased on
@@ -4053,7 +3939,7 @@ ROM_END
The PCB design for the different editions seems to be shared with the
corresponding editions of Climber.
-***************************************************************************/
+*******************************************************************************/
class gnw_bfight_state : public hh_sm510_state
{
@@ -4066,7 +3952,7 @@ public:
void gnw_bfightn(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_bfight )
PORT_START("IN.0") // S1
@@ -4094,6 +3980,8 @@ static INPUT_PORTS_START( gnw_bfight )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_bfight_state::gnw_bfight(machine_config &config)
{
sm511_common(config, 1771, 1080);
@@ -4132,14 +4020,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Mario The Juggler (model MB-108)
* PCB label: MB-108
* Sharp SM511 label MB-108 9209B (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_mariotj_state : public hh_sm510_state
{
@@ -4151,7 +4039,7 @@ public:
void gnw_mariotj(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_mariotj )
PORT_START("IN.0") // S1
@@ -4175,6 +4063,8 @@ static INPUT_PORTS_START( gnw_mariotj )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_mariotj_state::gnw_mariotj(machine_config &config)
{
sm511_common(config, 1630, 1080);
@@ -4197,14 +4087,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Spitball Sparky (model BU-201)
* PCB label: BU-201
* Sharp SM510 label BU-201 542A (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_ssparky_state : public hh_sm510_state
{
@@ -4216,7 +4106,7 @@ public:
void gnw_ssparky(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_ssparky )
PORT_START("IN.0") // S1
@@ -4245,6 +4135,8 @@ static INPUT_PORTS_START( gnw_ssparky )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_ssparky_state::gnw_ssparky(machine_config &config)
{
sm510_common(config, 627, 1080); // R mask option confirmed
@@ -4264,14 +4156,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Game & Watch: Crab Grab (model UD-202)
* PCB label: UD-202
* Sharp SM510 label UD-202 542B (no decap)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_cgrab_state : public hh_sm510_state
{
@@ -4283,7 +4175,7 @@ public:
void gnw_cgrab(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_cgrab )
PORT_START("IN.0") // S1
@@ -4312,6 +4204,8 @@ static INPUT_PORTS_START( gnw_cgrab )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_cgrab_state::gnw_cgrab(machine_config &config)
{
sm510_common(config, 609, 1080); // R mask option confirmed
@@ -4331,7 +4225,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Micro Vs. System: Boxing (model BX-301)
* Sharp SM511 label BX-301 287C (die label KMS73B, KMS744)
@@ -4339,7 +4233,7 @@ ROM_END
Also known as Punch-Out!! in the USA.
-***************************************************************************/
+*******************************************************************************/
class gnw_boxing_state : public hh_sm510_state
{
@@ -4351,7 +4245,7 @@ public:
void gnw_boxing(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( microvs_shared )
PORT_START("IN.0") // S1
@@ -4406,6 +4300,8 @@ static INPUT_PORTS_START( gnw_boxing )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_boxing_state::gnw_boxing(machine_config &config)
{
sm511_common(config, 1920, 524);
@@ -4428,14 +4324,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Micro Vs. System: Donkey Kong 3 (model AK-302)
* PCB label: AK-302M
* Sharp SM511 label AK-302 299D (no decap)
* wide lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_dkong3_state : public hh_sm510_state
{
@@ -4447,7 +4343,7 @@ public:
void gnw_dkong3(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_dkong3 )
PORT_INCLUDE( microvs_shared )
@@ -4458,6 +4354,8 @@ static INPUT_PORTS_START( gnw_dkong3 )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_dkong3_state::gnw_dkong3(machine_config &config)
{
sm511_common(config, 1920, 563);
@@ -4480,14 +4378,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nintendo Micro Vs. System: Donkey Kong Hockey (model HK-303)
* PCB label: HK-303M
* Sharp SM511 label HK-303 57XD (no decap)
* wide lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class gnw_dkhockey_state : public hh_sm510_state
{
@@ -4499,7 +4397,7 @@ public:
void gnw_dkhockey(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gnw_dkhockey )
PORT_INCLUDE( microvs_shared )
@@ -4515,6 +4413,8 @@ static INPUT_PORTS_START( gnw_dkhockey )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void gnw_dkhockey_state::gnw_dkhockey(machine_config &config)
{
sm511_common(config, 1920, 579);
@@ -4537,7 +4437,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Telko Bassmate Computer (model BM-501)
* PCB label: BM-501
@@ -4550,7 +4450,7 @@ ROM_END
The hardware is identical as G&W Multi Screen, but it's not part of the game
series.
-***************************************************************************/
+*******************************************************************************/
class bassmate_state : public hh_sm510_state
{
@@ -4562,7 +4462,7 @@ public:
void bassmate(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( bassmate )
PORT_START("IN.0") // S1
@@ -4591,6 +4491,8 @@ static INPUT_PORTS_START( bassmate )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// config
+
void bassmate_state::bassmate(machine_config &config)
{
sm511_dualv(config, 1920/2, 1253/2, 1920/2, 1273/2);
@@ -4616,9 +4518,345 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Elektronika Nu, pogodi! family (Egg game clones)
+ * KB1013VK1-2 MCU
+ * lcd screen with custom segments, 1-bit sound
+
+ In 1984, Электроника (Elektronika, USSR) released an unlicensed clone of
+ Nintendo G&W Egg: Ну, погоди! (Nu, pogodi!). This was followed by several other
+ titles that were the same under the hood, only differing in graphics. They also
+ made a slightly modified version, adding a new game mode (by pressing A+B)
+ where the player/CPU roles are reversed. This version is known as Разведчики
+ космоса (Razvedchiki kosmosa, export version: Explorers of Space).
+
+ Another variant of the game which also included a radiation scintillation
+ counter was released by Научприбор (Nauchpribor, USSR) in 1991. This unit was
+ named Альтаир (Altair). This unit uses the same screen as ИМ-22 (Весёлые
+ футболисты, export version: Monkey Goalkeeper). The ROM has been modified to
+ include showing radiation exposure ("Dosimeter Mode"). The dosimeter mode can
+ be entered by pressing the dosimeter mode button when the unit is showing time.
+ Radiation readings are shown in µSv/h. The dosimeter mode ends automatically
+ after 40 seconds. A gas-discharge counter (SBM-20-1) collects radiation exposure
+ and feeds info to the game board via the D0-D3 input lines.
+
+ The following Mickey Mouse Elektronika clones are emulated in MAME:
+
+ Model Title Transliteration Export version Note
+ --------------------------------------------------------------------------------
+ ИМ-02 Ну, погоди! Nu, pogodi! - -
+ ИМ-10 Хоккей Hockey (Khokkey) Ice Hockey Export version manufactured by PO Proton
+ ИМ-13 Разведчики космоса Razvedchiki kosmosa Explorers of Space Modified ROM (see note above)
+ ИМ-16 Охота Okhota Fowling -
+ ИМ-19 Биатлон Biathlon (Biatlon) - -
+ ИМ-22 Весёлые футболисты Vesyolye futbolisty Monkey Goalkeeper -
+ ИМ-32 Кот-рыболов Kot-rybolov - -
+ ИМ-33 Квака-задавака Kvaka-zadavaka Frogling -
+ ИМ-49 Ночные воришки Nochnye vorishki Night Burglars -
+ ИМ-50 Космический полёт Kosmicheskiy polyot Space Flight Same Model ID as Весёлая арифметика (Amusing Arithmetic) which isn't emulated yet
+ ИМ-51 Морская атака Morskaya ataka - -
+ ИМ-53 Атака астероидов Ataka asteroidov - Graphics are very similar to ИМ-50
+ - Цирк Circus (Tsirk) - Unknown Model ID
+ ДБГБ-06И Альтаир Altair - Modified ROM (see note above)
+
+*******************************************************************************/
+
+class nupogodi_state : public hh_sm510_state
+{
+public:
+ nupogodi_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void nupogodi(machine_config &config);
+ void ehockey(machine_config &config);
+ void rkosmosa(machine_config &config);
+ void okhota(machine_config &config);
+ void biathlon(machine_config &config);
+ void vfutbol(machine_config &config);
+ void krybolov(machine_config &config);
+ void kvakazad(machine_config &config);
+ void nochnyev(machine_config &config);
+ void kosmicpt(machine_config &config);
+ void morataka(machine_config &config);
+ void atakaast(machine_config &config);
+ void ecircus(machine_config &config);
+ void naltair(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( rkosmosa )
+ PORT_INCLUDE( gnw_mmouse )
+
+ PORT_MODIFY("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( naltair )
+ PORT_INCLUDE( gnw_mmouse )
+
+ PORT_MODIFY("IN.0") // R2
+ PORT_BIT( 0x0f, 0x00, IPT_DIAL ) PORT_CHANGED_CB(input_changed) PORT_SENSITIVITY(10) PORT_KEYDELTA(2) PORT_CODE_DEC(INPUT_CODE_INVALID) PORT_NAME("Dosimeter Reading")
+
+ PORT_MODIFY("IN.1") // R3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("P1 Right Stick/Up / Dosimeter Mode")
+INPUT_PORTS_END
+
+// config
+
+void nupogodi_state::nupogodi(machine_config &config)
+{
+ kb1013vk12_common(config, 1715, 1080); // R mask option ?
+}
+
+void nupogodi_state::ehockey(machine_config &config)
+{
+ kb1013vk12_common(config, 1782, 1080); // R mask option ?
+}
+
+void nupogodi_state::rkosmosa(machine_config &config)
+{
+ kb1013vk12_common(config, 1646, 1080); // R mask option ?
+}
+
+void nupogodi_state::okhota(machine_config &config)
+{
+ kb1013vk12_common(config, 1632, 1080); // R mask option ?
+}
+
+void nupogodi_state::biathlon(machine_config &config)
+{
+ kb1013vk12_common(config, 1633, 1080); // R mask option ?
+}
+
+void nupogodi_state::vfutbol(machine_config &config)
+{
+ kb1013vk12_common(config, 1655, 1080); // R mask option ?
+}
+
+void nupogodi_state::krybolov(machine_config &config)
+{
+ kb1013vk12_common(config, 1638, 1080); // R mask option ?
+}
+
+void nupogodi_state::kvakazad(machine_config &config)
+{
+ kb1013vk12_common(config, 1660, 1080); // R mask option ?
+}
+
+void nupogodi_state::nochnyev(machine_config &config)
+{
+ kb1013vk12_common(config, 1641, 1080); // R mask option ?
+}
+
+void nupogodi_state::kosmicpt(machine_config &config)
+{
+ kb1013vk12_common(config, 1658, 1080); // R mask option ?
+}
+
+void nupogodi_state::morataka(machine_config &config)
+{
+ kb1013vk12_common(config, 1648, 1080); // R mask option ?
+}
+
+void nupogodi_state::atakaast(machine_config &config)
+{
+ kb1013vk12_common(config, 1620, 1080); // R mask option ?
+}
+
+void nupogodi_state::ecircus(machine_config &config)
+{
+ kb1013vk12_common(config, 1657, 1080); // R mask option ?
+}
+
+// roms
+
+ROM_START( nupogodi )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-02.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 154233, "screen", 0)
+ ROM_LOAD( "nupogodi.svg", 0, 154233, CRC(42cfb84a) SHA1(249ca7ec78066b57f9a18e48ada64712c944e461) )
+ROM_END
+
+ROM_START( ehockey )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-10.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 94977, "screen", 0)
+ ROM_LOAD( "ehockey.svg", 0, 94977, CRC(98cf43b0) SHA1(4353505709612344cd3b597c3b4e9f6b441ddb66) )
+ROM_END
+
+ROM_START( rkosmosa )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-13.bin", 0x0000, 0x0740, CRC(553e2b09) SHA1(2b74f8437b881fbb62b61f25435a5bfc66872a9a) )
+
+ ROM_REGION( 81420, "screen", 0)
+ ROM_LOAD( "rkosmosa.svg", 0, 81420, CRC(dc6632be) SHA1(0906d933f4cda39ee1e57b502651a821e61e95ef) )
+ROM_END
+
+ROM_START( okhota )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-16.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 117838, "screen", 0)
+ ROM_LOAD( "okhota.svg", 0, 117838, CRC(7de707c6) SHA1(c876ea16bd8af033086e2e20860d2e1d09296d59) )
+ROM_END
+
+ROM_START( biathlon )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-19.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 116377, "screen", 0)
+ ROM_LOAD( "biathlon.svg", 0, 116377, CRC(fadf729e) SHA1(671f9496e2bfe7b4800ee7bad039485e19958428) )
+ROM_END
+
+ROM_START( vfutbol )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-22.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 131901, "screen", 0)
+ ROM_LOAD( "vfutbol.svg", 0, 131901, CRC(85811308) SHA1(288aa41bade08c61e0d346b9c1109179564e34ed) )
+ROM_END
+
+ROM_START( krybolov )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-32.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 132804, "screen", 0)
+ ROM_LOAD( "krybolov.svg", 0, 132804, CRC(4e3e70d3) SHA1(18f1300afa601deb6ac01dcf7dca88187b7940a3) )
+ROM_END
+
+ROM_START( kvakazad )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-33.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 131961, "screen", 0)
+ ROM_LOAD( "kvakazad.svg", 0, 131961, CRC(37b27420) SHA1(25d9e273f056c10e3a5bc4476ce980bfdb8095e1) )
+ROM_END
+
+ROM_START( nochnyev )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-49.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 136498, "screen", 0)
+ ROM_LOAD( "nochnyev.svg", 0, 136498, CRC(24a287cd) SHA1(2d14aa9b55b42c634df141fe4037ae286549b17b) )
+ROM_END
+
+ROM_START( kosmicpt )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-50.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 110214, "screen", 0)
+ ROM_LOAD( "kosmicpt.svg", 0, 110214, CRC(ccef6d27) SHA1(71f3cf49a5797ed9296f1e86ec4575ffefab67dd) )
+ROM_END
+
+ROM_START( morataka )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-51.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 105057, "screen", 0)
+ ROM_LOAD( "morataka.svg", 0, 105057, CRC(c235c56c) SHA1(b6ef74ba7826221683243e23513270d0f0f2cfda) )
+ROM_END
+
+ROM_START( atakaast )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-53.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 105570, "screen", 0)
+ ROM_LOAD( "atakaast.svg", 0, 105570, CRC(3d79aacc) SHA1(bc25969f4d6fa75b320130c920ac0bdc8fb44cbd) )
+ROM_END
+
+ROM_START( ecircus )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "ecircus.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
+
+ ROM_REGION( 124643, "screen", 0)
+ ROM_LOAD( "ecircus.svg", 0, 124643, CRC(079f25db) SHA1(defa784c80e01ce6affbb424930674114275bea1) )
+ROM_END
+
+ROM_START( naltair )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "dbgb-06i.bin", 0x0000, 0x0740, CRC(7e5bf42b) SHA1(588db84d8c9a1abaae77534321dec8466967eb5f) )
+
+ ROM_REGION( 131901, "screen", 0)
+ ROM_LOAD( "naltair.svg", 0, 131901, CRC(85811308) SHA1(288aa41bade08c61e0d346b9c1109179564e34ed) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Elektronika Автослалом (Autoslalom) (model ИМ-23)
+ * KB1013VK1-2 MCU
+ * lcd screen with custom segments, 1-bit sound
+
+ This is not an unlicensed clone, but doing a hex compare with MC-25 still
+ shows around 30% similarity so clearly they used that as a base.
+
+*******************************************************************************/
+
+class auslalom_state : public hh_sm510_state
+{
+public:
+ auslalom_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void auslalom(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( auslalom )
+ PORT_START("IN.0") // R2
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME(u8"Запуск (Start)")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME(u8"Скорость (Speed)")
+
+ PORT_START("IN.2") // R4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm")
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void auslalom_state::auslalom(machine_config &config)
+{
+ kb1013vk12_common(config, 1732, 1080); // R mask option ?
+}
+
+// roms
+
+ROM_START( auslalom )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "im-23.bin", 0x0000, 0x0740, CRC(3b6e726f) SHA1(eabd04722811d1cc6519db9386b14a535f5aa865) )
+
+ ROM_REGION( 117520, "screen", 0)
+ ROM_LOAD( "auslalom.svg", 0, 117520, CRC(2f90fd4c) SHA1(f0de58b1fe2f7c18fc219f9f9a94c227ca1245e4) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
- Konami Double Dribble
+ Konami Double Dribble (model BH001)
+ * PCB label: BH001
* Sharp SM510 under epoxy (die label CMS54C, KMS584)
* lcd screen with custom segments, 1-bit sound
@@ -4628,7 +4866,7 @@ ROM_END
Another BTANB? If a period is over at the same time a defender on the
2nd column grabs the ball, his arm won't be erased until it's redrawn.
-***************************************************************************/
+*******************************************************************************/
class kdribble_state : public hh_sm510_state
{
@@ -4640,7 +4878,7 @@ public:
void kdribble(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( kdribble )
PORT_START("IN.0") // S1
@@ -4663,6 +4901,8 @@ static INPUT_PORTS_START( kdribble )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void kdribble_state::kdribble(machine_config &config)
{
sm510_common(config, 1524, 1080); // R mask option confirmed
@@ -4682,14 +4922,84 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Konami Contra (model BH002)
+ * PCB label: BH002
+ * Sharp SM511 under epoxy (die label KMS73B, 773)
+ * lcd screen with custom segments, 1-bit sound
+
+ Contra handheld is titled simply "C" in the USA.
+
+*******************************************************************************/
+
+class kcontra_state : public hh_sm510_state
+{
+public:
+ kcontra_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ // increase lcd decay: score digit flickers
+ m_decay_len = 20;
+ }
+
+ void kcontra(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( kcontra )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x06, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
+INPUT_PORTS_END
+
+// config
+
+void kcontra_state::kcontra(machine_config &config)
+{
+ sm511_common(config, 1505, 1080);
+}
+
+// roms
+
+ROM_START( kcontra ) // except for filler/unused bytes, ROM listing in patent US5120057 "BH002 C (Contra)" program/melody is same
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "773.program", 0x0000, 0x1000, CRC(bf834877) SHA1(055dd56ec16d63afba61ab866481fd9c029fb54d) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "773.melody", 0x000, 0x100, CRC(23d02b99) SHA1(703938e496db0eeacd14fe7605d4b5c39e0a5bc8) )
+
+ ROM_REGION( 721055, "screen", 0)
+ ROM_LOAD( "kcontra.svg", 0, 721055, CRC(f1ce8d19) SHA1(7d8f2fac40605a3fd6f1386c945a53412b2f2b15) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
- Konami Top Gun
+ Konami Top Gun (model BH003)
* PCB label: BH003
* Sharp SM510 under epoxy (die label CMS54C, KMS598)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class ktopgun_state : public hh_sm510_state
{
@@ -4701,7 +5011,7 @@ public:
void ktopgun(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( ktopgun )
PORT_START("IN.0") // S1
@@ -4724,6 +5034,8 @@ static INPUT_PORTS_START( ktopgun )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void ktopgun_state::ktopgun(machine_config &config)
{
sm510_common(config, 1515, 1080); // R mask option confirmed
@@ -4743,83 +5055,87 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Konami Contra
- * PCB label: BH002
- * Sharp SM511 under epoxy (die label KMS73B, KMS773)
+ Konami Gradius (model BH004)
+ * PCB label: BH004
+ * Sharp SM511 under epoxy (die label KMS73B, 771)
* lcd screen with custom segments, 1-bit sound
- Contra handheld is titled simply "C" in the USA.
+ known releases:
+ - World: Gradius
+ - Japan: Nemesis
-***************************************************************************/
+*******************************************************************************/
-class kcontra_state : public hh_sm510_state
+class kgradius_state : public hh_sm510_state
{
public:
- kcontra_state(const machine_config &mconfig, device_type type, const char *tag) :
+ kgradius_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_sm510_state(mconfig, type, tag)
- {
- // increase lcd decay: score digit flickers
- m_decay_len = 20;
- }
+ { }
- void kcontra(machine_config &config);
+ void kgradius(machine_config &config);
};
-// config
+// inputs
-static INPUT_PORTS_START( kcontra )
+static INPUT_PORTS_START( kgradius )
PORT_START("IN.0") // S1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
PORT_START("IN.1") // S2
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
-
- PORT_START("IN.2") // S3
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
- PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("ACL")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
-void kcontra_state::kcontra(machine_config &config)
+// config
+
+void kgradius_state::kgradius(machine_config &config)
{
- sm511_common(config, 1505, 1080);
+ sm511_common(config, 1420, 1080);
}
// roms
-ROM_START( kcontra ) // except for filler/unused bytes, ROM listing in patent US5120057 "BH002 C (Contra)" program/melody is same
+ROM_START( kgradius )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "773.program", 0x0000, 0x1000, CRC(bf834877) SHA1(055dd56ec16d63afba61ab866481fd9c029fb54d) )
+ ROM_LOAD( "771.program", 0x0000, 0x1000, CRC(830c2afc) SHA1(bb9ebd4e52831cc02cd92dd4b37675f34cf37b8c) )
ROM_REGION( 0x100, "maincpu:melody", 0 )
- ROM_LOAD( "773.melody", 0x000, 0x100, CRC(23d02b99) SHA1(703938e496db0eeacd14fe7605d4b5c39e0a5bc8) )
+ ROM_LOAD( "771.melody", 0x000, 0x100, CRC(4c586b73) SHA1(14c5ab2898013a577f678970a648c374749cc66d) )
- ROM_REGION( 721055, "screen", 0)
- ROM_LOAD( "kcontra.svg", 0, 721055, CRC(f1ce8d19) SHA1(7d8f2fac40605a3fd6f1386c945a53412b2f2b15) )
+ ROM_REGION( 638136, "screen", 0)
+ ROM_LOAD( "kgradius.svg", 0, 638136, CRC(85dd296e) SHA1(bd75d0c08387a69bbcf4fd100252846499a261b3) )
ROM_END
-/***************************************************************************
+/*******************************************************************************
Konami Teenage Mutant Ninja Turtles
* PCB label: BH005
- * Sharp SM511 under epoxy (die label KMS73B, KMS774)
+ * Sharp SM511 under epoxy (die label KMS73B, 774)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+ known releases:
+ - World: Teenage Mutant Ninja Turtles
+ - UK: Teenage Mutant Hero Turtles
+
+ がんばれゴエモン えびす丸危機一髪 (Ganbare Goemon: Ebisumaru Kiki Ippatsu) (model BH101)
+ is presumed to have the same MCU ROM.
+
+*******************************************************************************/
class ktmnt_state : public hh_sm510_state
{
@@ -4831,30 +5147,32 @@ public:
void ktmnt(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( ktmnt )
PORT_START("IN.0") // S1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) PORT_CHANGED_CB(input_changed)
PORT_START("IN.1") // S2
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game Select")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
PORT_START("IN.2") // S3
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("ACL")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void ktmnt_state::ktmnt(machine_config &config)
{
sm511_common(config, 1505, 1080);
@@ -4877,76 +5195,224 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Konami Gradius
- * PCB label: BH004
- * Sharp SM511 under epoxy (die label KMS73B, KMS774)
+ Konami Skate or Die (licensed from Electronic Arts)
+ * PCB label: BH006
+ * Sharp SM511 under epoxy (die label KMS73B, 775)
* lcd screen with custom segments, 1-bit sound
- Known in Japan as Nemesis.
+ けっきょく 南極大冒険 (Kekkyoku Nankyoku Daibouken, aka Antarctic Adventure)
+ (model BH100) is presumed to have the same MCU ROM.
-***************************************************************************/
+*******************************************************************************/
-class kgradius_state : public hh_sm510_state
+class kskatedie_state : public hh_sm510_state
{
public:
- kgradius_state(const machine_config &mconfig, device_type type, const char *tag) :
+ kskatedie_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_sm510_state(mconfig, type, tag)
{ }
- void kgradius(machine_config &config);
+ void kskatedie(machine_config &config);
};
+// inputs
+
+static INPUT_PORTS_START( kskatedie )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) PORT_CHANGED_CB(input_changed)
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Continue")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
+INPUT_PORTS_END
+
// config
-static INPUT_PORTS_START( kgradius )
+void kskatedie_state::kskatedie(machine_config &config)
+{
+ sm511_common(config, 1496, 1080);
+}
+
+// roms
+
+ROM_START( kskatedie )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "775.program", 0x0000, 0x1000, CRC(067b11db) SHA1(1fe0795515c6787c2af1d38f18a5c4c5c9d87408) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "775.melody", 0x000, 0x100, CRC(d8c59670) SHA1(c33da2415bbd1a414e5dda3b05e139c1d22d267a) )
+
+ ROM_REGION( 395160, "screen", 0)
+ ROM_LOAD( "kskatedie.svg", 0, 395160, CRC(34fbb7b8) SHA1(402dfba32947aac75bc9386079b95e7223f78e6d) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Konami The Adventures of Bayou Billy
+ * PCB label: BH007
+ * Sharp SM511 under epoxy (die label KMS73B, 780)
+ * lcd screen with custom segments, 1-bit sound
+
+*******************************************************************************/
+
+class kbilly_state : public hh_sm510_state
+{
+public:
+ kbilly_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void kbilly(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( kbilly )
PORT_START("IN.0") // S1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) PORT_CHANGED_CB(input_changed)
PORT_START("IN.1") // S2
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
+INPUT_PORTS_END
+
+// config
+
+void kbilly_state::kbilly(machine_config &config)
+{
+ sm511_common(config, 1490, 1080);
+}
+
+// roms
+
+ROM_START( kbilly )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "780.program", 0x0000, 0x1000, CRC(b8b1f734) SHA1(619dd527187b43276d081cdb1b13e0a9a81f2c6a) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "780.melody", 0x000, 0x100, CRC(cd488bea) SHA1(8fc60081f46e392978d6950c74711fb7ebd154de) )
+
+ ROM_REGION( 598317, "screen", 0)
+ ROM_LOAD( "kbilly.svg", 0, 598317, CRC(fec67ddf) SHA1(3e5f520733e8b720966028ed6a72062be5381f27) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Konami Bottom of the Ninth (model BH008)
+ * PCB label: BH008
+ * Sharp SM511 under epoxy (die label KMS73B, 779)
+ * lcd screen with custom segments, 1-bit sound
+
+ known releases:
+ - World: Bottom of the Ninth
+ - USA: Major League Baseball
+ - Japan: がんばれ ベースボール (Ganbare Baseball)
+
+*******************************************************************************/
+
+class kbottom9_state : public hh_sm510_state
+{
+public:
+ kbottom9_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void kbottom9(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( kbottom9 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Level/Time")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.2") // S3
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("ACL")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
-void kgradius_state::kgradius(machine_config &config)
+// config
+
+void kbottom9_state::kbottom9(machine_config &config)
{
- sm511_common(config, 1420, 1080);
+ sm511_common(config, 1480, 1080);
}
// roms
-ROM_START( kgradius )
+ROM_START( kbottom9 )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "771.program", 0x0000, 0x1000, CRC(830c2afc) SHA1(bb9ebd4e52831cc02cd92dd4b37675f34cf37b8c) )
+ ROM_LOAD( "779.program", 0x0000, 0x1000, CRC(2f566534) SHA1(01f67fad87648e00278a5aa707a3cd827e6d68cf) )
ROM_REGION( 0x100, "maincpu:melody", 0 )
- ROM_LOAD( "771.melody", 0x000, 0x100, CRC(4c586b73) SHA1(14c5ab2898013a577f678970a648c374749cc66d) )
+ ROM_LOAD( "779.melody", 0x000, 0x100, CRC(eaa2aa04) SHA1(24f1d9b381c3f6a3f9ee1b336593d0ca46744978) )
- ROM_REGION( 638136, "screen", 0)
- ROM_LOAD( "kgradius.svg", 0, 638136, CRC(85dd296e) SHA1(bd75d0c08387a69bbcf4fd100252846499a261b3) )
+ ROM_REGION( 411107, "screen", 0)
+ ROM_LOAD( "kbottom9.svg", 0, 411107, CRC(04a50349) SHA1(eba3bee0dba7c2d37405fea6156adc0e2fe6cb07) )
ROM_END
-/***************************************************************************
+/*******************************************************************************
- Konami Lone Ranger
+ Konami The Lone Ranger
* PCB label: BH009
- * Sharp SM511 under epoxy (die label KMS73B, KMS781)
+ * Sharp SM511 under epoxy (die label KMS73B, 781)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+ There's also a rare version from 1992 called "Bull's-Eye: Barbecue Sauce",
+ assumed to be a promotional item licensed to Heinz.
+
+*******************************************************************************/
class kloneran_state : public hh_sm510_state
{
@@ -4958,7 +5424,7 @@ public:
void kloneran(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( kloneran )
PORT_START("IN.0") // S1
@@ -4977,6 +5443,8 @@ static INPUT_PORTS_START( kloneran )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void kloneran_state::kloneran(machine_config &config)
{
sm511_common(config, 1497, 1080);
@@ -4999,14 +5467,78 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Konami Bill Elliott's NASCAR Racing (model 13010)
+ * PCB label: BH010
+ * Sharp SM511 under epoxy (die label KMS73B, 783)
+ * lcd screen with custom segments, 1-bit sound
+
+ Chequered Flag is presumed to have the same MCU ROM.
- Konami Blades of Steel
+*******************************************************************************/
+
+class knascar_state : public hh_sm510_state
+{
+public:
+ knascar_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void knascar(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( knascar )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
+INPUT_PORTS_END
+
+// config
+
+void knascar_state::knascar(machine_config &config)
+{
+ sm511_common(config, 1491, 1080);
+}
+
+// roms
+
+ROM_START( knascar )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "783.program", 0x0000, 0x1000, CRC(0a08536a) SHA1(199203fad96e0d2b173b876b9746064b0c30dc7b) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "783.melody", 0x000, 0x100, CRC(ffeef4bc) SHA1(a3b21eefb170aa54eb53cf56f88b0c00dd29703f))
+
+ ROM_REGION( 474061, "screen", 0)
+ ROM_LOAD( "knascar.svg", 0, 474061, CRC(d30f639a) SHA1(6fd061eda61f925a9f85cf5fb4b7024f15e1e1fe) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Konami Blades of Steel (model 13011)
* PCB label: BH011
- * Sharp SM511 under epoxy (die label KMS73B, KMS782)
+ * Sharp SM511 under epoxy (die label KMS73B, 782)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class kblades_state : public hh_sm510_state
{
@@ -5021,7 +5553,7 @@ public:
void kblades(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( kblades )
PORT_START("IN.0") // S1
@@ -5044,6 +5576,8 @@ static INPUT_PORTS_START( kblades )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void kblades_state::kblades(machine_config &config)
{
sm511_common(config, 1516, 1080);
@@ -5066,16 +5600,157 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Konami Teenage Mutant Ninja Turtles II: Splinter Speaks (model 13012)
+ * PCB label: BH012
+ * Sharp SM511 under epoxy (die label KMS73B, 785)
+ * OKI MSM6373 ADPCM under epoxy + 1-bit sound
+ * lcd screen with custom segments
+
+*******************************************************************************/
- Konami NFL Football
- * Sharp SM511 under epoxy (die label KMS73B, KMS786)
+class ktmnt2_state : public hh_sm510_state
+{
+public:
+ ktmnt2_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag),
+ m_samples(*this, "samples")
+ { }
+
+ void ktmnt2(machine_config &config);
+
+protected:
+ required_device<samples_device> m_samples;
+
+ void sound_w(u8 data);
+ int sound_busy_r();
+};
+
+// handlers
+
+void ktmnt2_state::sound_w(u8 data)
+{
+ // S8: ADPCM reset
+ if (~data & 0x80)
+ m_samples->stop(0);
+
+ // S7: ADPCM ST
+ else if (~data & m_inp_mux & 0x40)
+ {
+ // latch from S1-S5
+ u8 sample = data & 0x1f;
+
+ if (m_samples->playing(0))
+ {
+ // stop command
+ if (sample == 0)
+ m_samples->stop(0);
+ }
+ else if (sample != 0)
+ {
+ sample--;
+ if (sample < m_samples->samples() && strncmp(m_samples->names()[sample + 1], "none", 4))
+ m_samples->start(0, sample);
+ }
+ }
+
+ // other: input mux
+ input_w(data);
+}
+
+int ktmnt2_state::sound_busy_r()
+{
+ // B: ADPCM busy
+ return m_samples->playing(0) ? 0 : 1;
+}
+
+// inputs
+
+static INPUT_PORTS_START( ktmnt2 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
+INPUT_PORTS_END
+
+// config
+
+static const char *const ktmnt2_sample_names[] =
+{
+ "*ktmnt2",
+ "cowabunga",
+ "pizzapower",
+ "lookoutforshredder",
+ "bebop",
+ "rocksteady",
+ "radicaldude",
+ "gameover",
+ "yeow",
+ "what",
+ "oof",
+ "yeah",
+ nullptr
+};
+
+void ktmnt2_state::ktmnt2(machine_config &config)
+{
+ sm511_common(config, 1513, 1080);
+ m_maincpu->write_s().set(FUNC(ktmnt2_state::sound_w));
+ m_maincpu->read_b().set(FUNC(ktmnt2_state::sound_busy_r));
+
+ // sound hardware
+ SAMPLES(config, m_samples);
+ m_samples->set_channels(1);
+ m_samples->set_samples_names(ktmnt2_sample_names);
+ m_samples->add_route(ALL_OUTPUTS, "mono", 0.5);
+}
+
+// roms
+
+ROM_START( ktmnt2 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "785.program", 0x0000, 0x1000, CRC(de10cfbc) SHA1(10251abae89317258d3fa45f9378ec458128b080) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "785.melody", 0x000, 0x100, CRC(cdcecef2) SHA1(f29e3dd268b2f2c6d5ed6ffb68051ac462bcac8a) )
+
+ ROM_REGION( 520607, "screen", 0)
+ ROM_LOAD( "ktmnt2.svg", 0, 520607, CRC(cdbdd320) SHA1(cb2569426eec18c3fb4cedfc4d1f95a92e818e9a) )
+
+ ROM_REGION( 0x8000, "adpcm", 0)
+ ROM_LOAD( "msm6373", 0, 0x8000, NO_DUMP )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Konami NFL Football (model 13013)
+ * PCB label: BH013
+ * Sharp SM511 under epoxy (die label KMS73B, 786)
* lcd screen with custom segments, 1-bit sound
- This is the 1989 version. It was rereleased in 1992, assumed to be the same
+ This is the 1990 version. It was rereleased in 1992, assumed to be the same
game underneath.
-***************************************************************************/
+*******************************************************************************/
class knfl_state : public hh_sm510_state
{
@@ -5090,7 +5765,7 @@ public:
void knfl(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( knfl )
PORT_START("IN.0") // S1
@@ -5113,6 +5788,8 @@ static INPUT_PORTS_START( knfl )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void knfl_state::knfl(machine_config &config)
{
sm511_common(config, 1449, 1080);
@@ -5135,27 +5812,283 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Konami The Adventures of Bayou Billy
- * Sharp SM511 under epoxy (die label KMS73B, KMS788)
+ Konami Star Trek: 25th Anniversary (model 13015)
+ * PCB label: BH015
+ * Sharp SM511 under epoxy (die label KMS73B, 787)
+ * OKI MSM6373 ADPCM under epoxy + 1-bit sound
+ * lcd screen with custom segments
+
+*******************************************************************************/
+
+class kst25_state : public ktmnt2_state
+{
+public:
+ kst25_state(const machine_config &mconfig, device_type type, const char *tag) :
+ ktmnt2_state(mconfig, type, tag)
+ {
+ // increase lcd decay: bullets flicker
+ m_decay_len = 30;
+ }
+
+ void kst25(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( kst25 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, 0x02, IPT_CUSTOM ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // Up/Down
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("FAKE") // Up/Down are electronically the same button
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+INPUT_PORTS_END
+
+// config
+
+static const char *const kst25_sample_names[] =
+{
+ "*kst25",
+ "beammeupscotty",
+ "warpspeed",
+ "thatsnotlogical",
+ "shieldsup",
+ "firethephotontorpedos",
+ "orbittheplanet",
+ "engage",
+ "boom",
+ "teleporter",
+ "klaxon",
+ "photontorpedo",
+ "hum",
+ nullptr
+};
+
+void kst25_state::kst25(machine_config &config)
+{
+ ktmnt2(config);
+
+ config.device_remove("screen");
+ mcfg_svg_screen(config, 1464, 1080);
+ m_samples->set_samples_names(kst25_sample_names);
+}
+
+// roms
+
+ROM_START( kst25 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "787.program", 0x0000, 0x1000, CRC(05abdeec) SHA1(b947fcf4c6c9696b606eabdc74594076013ff73c) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "787.melody", 0x000, 0x100, CRC(3f1c63d4) SHA1(efdfa49c4fd89f2ca5d5cfc6bf9fa741ac227338) )
+
+ ROM_REGION( 570121, "screen", 0)
+ ROM_LOAD( "kst25.svg", 0, 570121, CRC(6529d2de) SHA1(993c84ae46277d0d8e0af66473f6ce324b697638) )
+
+ ROM_REGION( 0x8000, "adpcm", 0)
+ ROM_LOAD( "msm6373", 0, 0x8000, NO_DUMP )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Konami Top Gun: Second Mission
+ * PCB label: BH017
+ * Sharp SM511 under epoxy (die label KMS73B, 792)
+ * OKI MSM6373 ADPCM under epoxy + 1-bit sound
+ * lcd screen with custom segments
+
+*******************************************************************************/
+
+class ktopgun2_state : public ktmnt2_state
+{
+public:
+ ktopgun2_state(const machine_config &mconfig, device_type type, const char *tag) :
+ ktmnt2_state(mconfig, type, tag)
+ { }
+
+ void ktopgun2(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( ktopgun2 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
+INPUT_PORTS_END
+
+// config
+
+static const char *const ktopgun2_sample_names[] =
+{
+ "*ktopgun2",
+ "explosion",
+ "crash",
+ "none",
+ "machinegun",
+ "boom",
+ "lockon",
+ "none",
+ "danger",
+ "missioncomplete",
+ "targetinrange",
+ "none",
+ "bailout",
+ "none",
+ "gameover",
+ nullptr
+};
+
+void ktopgun2_state::ktopgun2(machine_config &config)
+{
+ ktmnt2(config);
+
+ config.device_remove("screen");
+ mcfg_svg_screen(config, 1496, 1080);
+ m_samples->set_samples_names(ktopgun2_sample_names);
+}
+
+// roms
+
+ROM_START( ktopgun2 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "792.program", 0x0000, 0x1000, CRC(bb6eeeb6) SHA1(7bb21d1736ef7fdfc58ffc0e9dc633ec3c491117) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "792.melody", 0x000, 0x100, CRC(dce276ae) SHA1(27ce9c02e69c38120fd3608577176cdce29f6f06) )
+
+ ROM_REGION( 756991, "screen", 0)
+ ROM_LOAD( "ktopgun2.svg", 0, 756991, CRC(d65dbf75) SHA1(f2b55bfba784919f6601a7adaeeb7e5951a03367) )
+
+ ROM_REGION( 0x8000, "adpcm", 0)
+ ROM_LOAD( "msm6373", 0, 0x8000, NO_DUMP )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Konami Teenage Mutant Ninja Turtles 3: Shredder's Last Stand (model 13017)
+ * PCB label: BH018
+ * Sharp SM511 under epoxy (die label KMS73B, 794)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+ This game was also embedded in a PDA sold by Takara, called Teenage Mutant
+ Ninja Turtles: Electrical Note.
-class kbilly_state : public hh_sm510_state
+*******************************************************************************/
+
+class ktmnt3_state : public hh_sm510_state
{
public:
- kbilly_state(const machine_config &mconfig, device_type type, const char *tag) :
+ ktmnt3_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_sm510_state(mconfig, type, tag)
{ }
- void kbilly(machine_config &config);
+ void ktmnt3(machine_config &config);
};
+// inputs
+
+static INPUT_PORTS_START( ktmnt3 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
+INPUT_PORTS_END
+
// config
-static INPUT_PORTS_START( kbilly )
+void ktmnt3_state::ktmnt3(machine_config &config)
+{
+ sm511_common(config, 1593, 1080);
+}
+
+// roms
+
+ROM_START( ktmnt3 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "794.program", 0x0000, 0x1000, CRC(fcbd6f79) SHA1(45badb94fb3e32350efb7e46e2e271c18135e2aa) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "794.melody", 0x000, 0x100, CRC(9731c180) SHA1(443c4b9c2564e0901a0777d90ab8c138b24788ea) )
+
+ ROM_REGION( 563465, "screen", 0)
+ ROM_LOAD( "ktmnt3.svg", 0, 563465, CRC(7877c17e) SHA1(276e42a7dce9d57647b9168a0843dd988d043d88) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Konami Teenage Mutant Ninja Turtles: Basketball (model 13018)
+ * PCB label: BH019
+ * Sharp SM511 under epoxy (die label KMS73B, 793)
+ * lcd screen with custom segments, 1-bit sound
+
+*******************************************************************************/
+
+class ktmntbb_state : public hh_sm510_state
+{
+public:
+ ktmntbb_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void ktmntbb(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( ktmntbb )
PORT_START("IN.0") // S1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
@@ -5169,44 +6102,45 @@ static INPUT_PORTS_START( kbilly )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
PORT_START("IN.2") // S3
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("ACL")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
-void kbilly_state::kbilly(machine_config &config)
+// config
+
+void ktmntbb_state::ktmntbb(machine_config &config)
{
- sm511_common(config, 1490, 1080);
+ sm511_common(config, 1466, 1080);
}
// roms
-ROM_START( kbilly )
+ROM_START( ktmntbb )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "788.program", 0x0000, 0x1000, CRC(b8b1f734) SHA1(619dd527187b43276d081cdb1b13e0a9a81f2c6a) )
+ ROM_LOAD( "793.program", 0x0000, 0x1000, CRC(0973b329) SHA1(1c4161e5c53f6c6dd9752a228f361cf053f181f4) )
ROM_REGION( 0x100, "maincpu:melody", 0 )
- ROM_LOAD( "788.melody", 0x000, 0x100, CRC(cd488bea) SHA1(8fc60081f46e392978d6950c74711fb7ebd154de) )
+ ROM_LOAD( "793.melody", 0x000, 0x100, CRC(cddefb96) SHA1(e9b6d3947c415a3ed520a3dab66a381159dfd79b) )
- ROM_REGION( 598317, "screen", 0)
- ROM_LOAD( "kbilly.svg", 0, 598317, CRC(fec67ddf) SHA1(3e5f520733e8b720966028ed6a72062be5381f27) )
+ ROM_REGION( 873508, "screen", 0)
+ ROM_LOAD( "ktmntbb.svg", 0, 873508, CRC(cc4bbfbd) SHA1(1b300e24a8890ad36a7f6e65ba8d5e41e2de2858) )
ROM_END
-/***************************************************************************
+/*******************************************************************************
- Konami Bucky O'Hare
+ Konami Bucky O'Hare (model 13019)
+ * PCB label: BH020
* Sharp SM511 under epoxy (die label KMS73B, N58)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class kbucky_state : public hh_sm510_state
{
@@ -5218,7 +6152,7 @@ public:
void kbucky(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( kbucky )
PORT_START("IN.0") // S1
@@ -5237,6 +6171,8 @@ static INPUT_PORTS_START( kbucky )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void kbucky_state::kbucky(machine_config &config)
{
sm511_common(config, 1490, 1080);
@@ -5259,13 +6195,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Konami Garfield
+ * PCB label: BH021
* Sharp SM511 under epoxy (die label KMS73B, N62)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class kgarfld_state : public hh_sm510_state
{
@@ -5280,7 +6217,7 @@ public:
void kgarfld(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( kgarfld )
PORT_START("IN.0") // S1
@@ -5303,6 +6240,8 @@ static INPUT_PORTS_START( kgarfld )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear")
INPUT_PORTS_END
+// config
+
void kgarfld_state::kgarfld(machine_config &config)
{
sm511_common(config, 1500, 1080);
@@ -5325,7 +6264,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nelsonic Game Watches on SM530*, wristwatch with an LCD game on it.
*: Older games are on a different MCU, several seen with OKI MSM5055.
@@ -5342,7 +6281,7 @@ ROM_END
Different hardware:
- Star Fox (extra sound effect chip)
-***************************************************************************/
+*******************************************************************************/
class gamewatch_state : public hh_sm510_state
{
@@ -5357,7 +6296,7 @@ public:
void nsmw(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( gamewatch )
PORT_START("IN.0")
@@ -5371,6 +6310,8 @@ static INPUT_PORTS_START( gamewatch )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
INPUT_PORTS_END
+// config
+
void gamewatch_state::nsmb3(machine_config &config)
{
sm530_common(config, 1000, 1000);
@@ -5411,7 +6352,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Nelsonic Star Fox (Game Watch)
* Sharp SM530 under epoxy (die label KAS600, 643)
@@ -5425,16 +6366,14 @@ ROM_END
in electronic toys such as the Executor keychain. There are 8 sound effects
in the ROM, only 3 are used in Star Fox.
-***************************************************************************/
+*******************************************************************************/
-class nstarfox_state : public hh_sm510_state
+class nstarfox_state : public gamewatch_state
{
public:
nstarfox_state(const machine_config &mconfig, device_type type, const char *tag) :
- hh_sm510_state(mconfig, type, tag)
- {
- inp_fixed_last();
- }
+ gamewatch_state(mconfig, type, tag)
+ { }
void nstarfox(machine_config &config);
@@ -5449,7 +6388,7 @@ void nstarfox_state::sound_w(u8 data)
// S2-S4: falling edge starts sound effect
}
-// config
+// inputs
static INPUT_PORTS_START( nstarfox )
PORT_INCLUDE( gamewatch )
@@ -5459,6 +6398,8 @@ static INPUT_PORTS_START( nstarfox )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) // bomb
INPUT_PORTS_END
+// config
+
void nstarfox_state::nstarfox(machine_config &config)
{
sm530_common(config, 1176, 1080);
@@ -5485,20 +6426,20 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Gauntlet (model 7-778), Robin Hood (model 7-861)
+ Tiger Gauntlet (model 7-778) (licensed from Tengen)
* Sharp SM510 under epoxy (die label CMS54C, KMS583)
* lcd screen with custom segments, 1-bit sound
- known releases (Gauntlet):
+ known releases:
- World: Gauntlet, published by Tiger
- Japan: Gauntlet, published by Sega
- UK: Gauntlet, published by Grandstand
- Robin Hood is the same MCU/ROM, different LCD.
+ MCU ROM is the same for Gauntlet, Robin Hood.
-***************************************************************************/
+*******************************************************************************/
class tgaunt_state : public hh_sm510_state
{
@@ -5509,11 +6450,10 @@ public:
inp_fixed_last();
}
- void trobhood(machine_config &config);
void tgaunt(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tgaunt )
PORT_START("IN.0") // S1
@@ -5557,23 +6497,13 @@ static INPUT_PORTS_START( tgaunt )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
-static INPUT_PORTS_START( trobhood )
- PORT_INCLUDE( tgaunt )
-
- PORT_MODIFY("IN.3")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Money")
-INPUT_PORTS_END
+// config
void tgaunt_state::tgaunt(machine_config &config)
{
sm510_tiger(config, 1425, 1080);
}
-void tgaunt_state::trobhood(machine_config &config)
-{
- sm510_tiger(config, 1468, 1080);
-}
-
// roms
ROM_START( tgaunt )
@@ -5584,28 +6514,20 @@ ROM_START( tgaunt )
ROM_LOAD( "tgaunt.svg", 0, 713071, CRC(b2dfb31b) SHA1(3e57c6aaa665e2874e6e7e051245a81ab7a917b3) )
ROM_END
-ROM_START( trobhood )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "583", 0x0000, 0x1000, CRC(598d8156) SHA1(9f776e8b9b4321e8118481e6b1304f8a38f9932e) )
-
- ROM_REGION( 704816, "screen", 0)
- ROM_LOAD( "trobhood.svg", 0, 704816, CRC(f4b94f32) SHA1(8f68a7f4240489d42934d3875f82456aceabfb48) )
-ROM_END
-
-/***************************************************************************
+/*******************************************************************************
- Tiger Double Dragon (model 7-780)
+ Tiger Double Dragon (model 7-780) (licensed from Technos / Tradewest)
* Sharp SM510 under epoxy (die label CMS54C, KMS570, 593)
* lcd screen with custom segments, 1-bit sound
BTANB: On the baddie in the background throwing dynamite, the sparks
above his head are the same segment as the body, not the arm.
-***************************************************************************/
+*******************************************************************************/
class tddragon_state : public hh_sm510_state
{
@@ -5619,7 +6541,7 @@ public:
void tddragon(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tddragon )
PORT_START("IN.0") // S1
@@ -5658,6 +6580,8 @@ static INPUT_PORTS_START( tddragon )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tddragon_state::tddragon(machine_config &config)
{
sm510_tiger(config, 1467, 1080); // R mask option confirmed
@@ -5677,13 +6601,97 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Tiger Castlevania II: Simon's Quest (model 7-781) (licensed from Konami)
+ * Sharp SM510 under epoxy (die label 581)
+ * lcd screen with custom segments, 1-bit sound
+
+*******************************************************************************/
+
+class tsimquest_state : public hh_sm510_state
+{
+public:
+ tsimquest_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void tsimquest(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( tsimquest )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Whip Up")
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Whip Down")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sword")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump Up")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump Forward")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Max Score")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void tsimquest_state::tsimquest(machine_config &config)
+{
+ sm510_tiger(config, 1434, 1080); // R mask option confirmed
+}
+
+// roms
+
+ROM_START( tsimquest )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "581", 0x0000, 0x1000, CRC(f6bd105f) SHA1(86255bf9fea63f27d10552fbbfc5f8764846f0ab) )
+
+ ROM_REGION( 413414, "screen", 0)
+ ROM_LOAD( "tsimquest.svg", 0, 413414, CRC(fe59b341) SHA1(42cff257f28a1796a66fffd142c95644e0130e3b) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
- Tiger Karnov (model 7-783)
+ Tiger Karnov (model 7-783) (licensed from Data East)
* Sharp SM510 under epoxy (die label CMS54C, KMS582)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tkarnov_state : public hh_sm510_state
{
@@ -5697,7 +6705,7 @@ public:
void tkarnov(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tkarnov )
PORT_START("IN.0") // S1
@@ -5740,6 +6748,8 @@ static INPUT_PORTS_START( tkarnov )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tkarnov_state::tkarnov(machine_config &config)
{
sm510_tiger(config, 1477, 1080);
@@ -5759,13 +6769,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Vindicators (model 7-786)
+ Tiger Vindicators (model 7-786) (licensed from Tengen)
* Sharp SM510 under epoxy (die label CMS54C, KMS595)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tvindictr_state : public hh_sm510_state
{
@@ -5779,7 +6789,7 @@ public:
void tvindictr(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tvindictr )
PORT_START("IN.0") // S1
@@ -5821,6 +6831,8 @@ static INPUT_PORTS_START( tvindictr )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tvindictr_state::tvindictr(machine_config &config)
{
sm510_tiger(config, 1459, 1080);
@@ -5840,13 +6852,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Ninja Gaiden (model 7-787)
+ Tiger Ninja Gaiden (model 7-787) (licensed from Tecmo)
* Sharp SM510 under epoxy (die label M82)
* lcd screen with custom segments, 1 led, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tgaiden_state : public hh_sm510_state
{
@@ -5865,8 +6877,8 @@ protected:
private:
// R2 connects to a single LED behind the screen
- void led_w(u8 data) { m_led_out = data >> 1 & 1; }
output_finder<> m_led_out;
+ void led_w(u8 data) { m_led_out = data >> 1 & 1; }
};
void tgaiden_state::machine_start()
@@ -5875,7 +6887,7 @@ void tgaiden_state::machine_start()
m_led_out.resolve();
}
-// config
+// inputs
static INPUT_PORTS_START( tgaiden )
PORT_START("IN.0") // S1
@@ -5914,6 +6926,8 @@ static INPUT_PORTS_START( tgaiden )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tgaiden_state::tgaiden(machine_config &config)
{
sm510_tiger(config, 1476, 1080);
@@ -5934,13 +6948,99 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Batman (model 7-799)
- * Sharp SM510 under epoxy (die label CMS54C, KMS597)
+ Tiger Double Dragon II: The Revenge (model 7-798) (licensed from Technos)
+ * Sharp SM510 under epoxy (die label M84)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
+
+class tddragon2_state : public hh_sm510_state
+{
+public:
+ tddragon2_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void tddragon2(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( tddragon2 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump")
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) // Down
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick Right")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick Left")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void tddragon2_state::tddragon2(machine_config &config)
+{
+ sm510_tiger(config, 1451, 1080);
+}
+
+// roms
+
+ROM_START( tddragon2 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "m84", 0x0000, 0x1000, CRC(fe4d3618) SHA1(44c6ad512a01126799cfbc87634fa04edf81b6af) )
+
+ ROM_REGION( 435894, "screen", 0)
+ ROM_LOAD( "tddragon2.svg", 0, 435894, CRC(6244f507) SHA1(578f1b3bf7fe757162d231cd0f93d05bbb120ed1) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger Batman (model 7-799) (licensed from DC Comics)
+ * Sharp SM510 under epoxy (die label CMS54C, KMS597, 597)
+ * lcd screen with custom segments, 1-bit sound
+
+ MCU ROM is the same for Shinobi, Batman.
+
+*******************************************************************************/
class tbatman_state : public hh_sm510_state
{
@@ -5954,7 +7054,7 @@ public:
void tbatman(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tbatman )
PORT_START("IN.0") // S1
@@ -5992,6 +7092,8 @@ static INPUT_PORTS_START( tbatman )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tbatman_state::tbatman(machine_config &config)
{
sm510_tiger(config, 1442, 1080);
@@ -6011,9 +7113,9 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Space Harrier II (model 7-814)
+ Tiger Space Harrier II (model 7-814) (licensed from Sega)
* Sharp SM510 under epoxy (die label M91)
* lcd screen with custom segments, 1-bit sound
@@ -6021,7 +7123,7 @@ ROM_END
- World: Space Harrier II, published by Tiger
- Japan: Space Harrier, published by Sega
-***************************************************************************/
+*******************************************************************************/
class tsharr2_state : public hh_sm510_state
{
@@ -6035,7 +7137,7 @@ public:
void tsharr2(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tsharr2 )
PORT_START("IN.0") // S1
@@ -6073,6 +7175,8 @@ static INPUT_PORTS_START( tsharr2 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tsharr2_state::tsharr2(machine_config &config)
{
sm510_tiger(config, 1493, 1080); // R mask option confirmed
@@ -6092,13 +7196,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Strider (model 7-815)
+ Tiger Strider (model 7-815) (licensed from Capcom)
* Sharp SM510 under epoxy (die label M92)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tstrider_state : public hh_sm510_state
{
@@ -6112,7 +7216,7 @@ public:
void tstrider(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tstrider )
PORT_START("IN.0") // S1
@@ -6151,6 +7255,8 @@ static INPUT_PORTS_START( tstrider )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tstrider_state::tstrider(machine_config &config)
{
sm510_tiger(config, 1479, 1080);
@@ -6170,13 +7276,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Golden Axe (model 7-817)
+ Tiger Golden Axe (model 7-817) (licensed from Sega)
* Sharp SM510 under epoxy (die label M94)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tgoldnaxe_state : public hh_sm510_state
{
@@ -6190,7 +7296,7 @@ public:
void tgoldnaxe(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tgoldnaxe )
PORT_START("IN.0") // S1
@@ -6233,6 +7339,8 @@ static INPUT_PORTS_START( tgoldnaxe )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tgoldnaxe_state::tgoldnaxe(machine_config &config)
{
sm510_tiger(config, 1456, 1080);
@@ -6252,15 +7360,15 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Robocop 2 (model 7-830), The Rocketeer (model 7-864)
+ Tiger Robocop 2 (model 7-830) (licensed from Orion Pictures)
* Sharp SM510 under epoxy (die label M96)
* lcd screen with custom segments, 1-bit sound
- The Rocketeer is the same MCU/ROM, different LCD.
+ MCU ROM is the same for Robocop 2, The Rocketeer.
-***************************************************************************/
+*******************************************************************************/
class trobocop2_state : public hh_sm510_state
{
@@ -6272,10 +7380,9 @@ public:
}
void trobocop2(machine_config &config);
- void trockteer(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( trobocop2 )
PORT_START("IN.0") // S1
@@ -6318,30 +7425,13 @@ static INPUT_PORTS_START( trobocop2 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
-static INPUT_PORTS_START( trockteer )
- PORT_INCLUDE( trobocop2 )
-
- PORT_MODIFY("IN.0")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("P1 Up/Rocket Pack")
-
- PORT_MODIFY("IN.3")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire Right")
-
- PORT_MODIFY("IN.4")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire Up")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire Left")
-INPUT_PORTS_END
+// config
void trobocop2_state::trobocop2(machine_config &config)
{
sm510_tiger(config, 1487, 1080);
}
-void trobocop2_state::trockteer(machine_config &config)
-{
- sm510_tiger(config, 1463, 1080);
-}
-
// roms
ROM_START( trobocop2 )
@@ -6352,21 +7442,13 @@ ROM_START( trobocop2 )
ROM_LOAD( "trobocop2.svg", 0, 463572, CRC(0218c1d9) SHA1(2932825ca03e008e5c2993882d363ae00df43f26) )
ROM_END
-ROM_START( trockteer )
- ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "m96", 0x0000, 0x1000, CRC(3704b60c) SHA1(04275833e1a79fd33226faf060890b66ae54e1d3) )
- ROM_REGION( 558128, "screen", 0)
- ROM_LOAD( "trockteer.svg", 0, 558128, CRC(70ff1f46) SHA1(5cd94655654614206ed11844ba31650edb51eb22) )
-ROM_END
+/*******************************************************************************
-
-/***************************************************************************
-
- Tiger Altered Beast (model 7-831)
+ Tiger Altered Beast (model 7-831) (licensed from Sega)
* Sharp SM510 under epoxy (die label M88)
* lcd screen with custom segments, 1-bit sound
@@ -6374,7 +7456,7 @@ ROM_END
- World: Altered Beast, published by Tiger
- Japan: Juuouki, published by Sega
-***************************************************************************/
+*******************************************************************************/
class taltbeast_state : public hh_sm510_state
{
@@ -6388,7 +7470,7 @@ public:
void taltbeast(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( taltbeast )
PORT_START("IN.0") // S1
@@ -6431,6 +7513,8 @@ static INPUT_PORTS_START( taltbeast )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void taltbeast_state::taltbeast(machine_config &config)
{
sm510_tiger(config, 1455, 1080); // R mask option confirmed
@@ -6450,13 +7534,93 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Tiger Mega Man 3 (model 7-834) (licensed from Capcom)
+ * Sharp SM510 under epoxy (die label MA4)
+ * lcd screen with custom segments, 1-bit sound
+
+*******************************************************************************/
+
+class tmegaman3_state : public hh_sm510_state
+{
+public:
+ tmegaman3_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
- Tiger Street Fighter 2010 - The Final Fight (model 7-837)
+ void tmegaman3(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( tmegaman3 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick")
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Weapon")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Select")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void tmegaman3_state::tmegaman3(machine_config &config)
+{
+ sm510_tiger(config, 1457, 1080);
+}
+
+// roms
+
+ROM_START( tmegaman3 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "ma4", 0x0000, 0x1000, CRC(851ef37a) SHA1(0b67db3fe6ffcdee0427d9fea895de6943a28abc) )
+
+ ROM_REGION( 320824, "screen", 0)
+ ROM_LOAD( "tmegaman3.svg", 0, 320824, CRC(770e9497) SHA1(0fc68b999aa4d00eef3fa1d1226dfdf8ee2aeb7b) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger Street Fighter 2010: The Final Fight (model 7-837) (licensed from Capcom)
* Sharp SM510 under epoxy (die label MA2)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tsf2010_state : public hh_sm510_state
{
@@ -6470,7 +7634,7 @@ public:
void tsf2010(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tsf2010 )
PORT_START("IN.0") // S1
@@ -6513,6 +7677,8 @@ static INPUT_PORTS_START( tsf2010 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tsf2010_state::tsf2010(machine_config &config)
{
sm510_tiger(config, 1465, 1080);
@@ -6532,13 +7698,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Swamp Thing (model 7-851)
+ Tiger Swamp Thing (model 7-851) (licensed from DC Comics)
* Sharp SM510 under epoxy (die label MB0)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tswampt_state : public hh_sm510_state
{
@@ -6552,7 +7718,7 @@ public:
void tswampt(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tswampt )
PORT_START("IN.0") // S1
@@ -6591,6 +7757,8 @@ static INPUT_PORTS_START( tswampt )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tswampt_state::tswampt(machine_config &config)
{
sm510_tiger(config, 1450, 1080);
@@ -6610,13 +7778,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Spider-Man (model 7-853)
+ Tiger Spider-Man (model 7-853) (licensed from Marvel Entertainment Group)
* Sharp SM510 under epoxy (die label MA5)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tspidman_state : public hh_sm510_state
{
@@ -6630,7 +7798,7 @@ public:
void tspidman(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tspidman )
PORT_START("IN.0") // S1
@@ -6673,6 +7841,8 @@ static INPUT_PORTS_START( tspidman )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tspidman_state::tspidman(machine_config &config)
{
sm510_tiger(config, 1440, 1080);
@@ -6692,13 +7862,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger X-Men (model 7-854)
+ Tiger X-Men (model 7-854) (licensed from Marvel Entertainment Group)
* Sharp SM510 under epoxy (die label MA7)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class txmen_state : public hh_sm510_state
{
@@ -6712,7 +7882,7 @@ public:
void txmen(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( txmen )
PORT_START("IN.0") // S1
@@ -6755,6 +7925,8 @@ static INPUT_PORTS_START( txmen )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void txmen_state::txmen(machine_config &config)
{
sm510_tiger(config, 1467, 1080);
@@ -6774,13 +7946,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Double Dragon 3 - The Rosetta Stone (model 7-858)
+ Tiger Double Dragon 3: The Rosetta Stone (model 7-858) (licensed from Technos)
* Sharp SM510 under epoxy (die label MA6)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tddragon3_state : public hh_sm510_state
{
@@ -6794,7 +7966,7 @@ public:
void tddragon3(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tddragon3 )
PORT_START("IN.0") // S1
@@ -6837,6 +8009,8 @@ static INPUT_PORTS_START( tddragon3 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tddragon3_state::tddragon3(machine_config &config)
{
sm510_tiger(config, 1514, 1080);
@@ -6856,13 +8030,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger The Flash (model 7-859)
+ Tiger The Flash (model 7-859) (licensed from DC Comics)
* Sharp SM510 under epoxy (die label MB5)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tflash_state : public hh_sm510_state
{
@@ -6876,7 +8050,7 @@ public:
void tflash(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tflash )
PORT_START("IN.0") // S1
@@ -6919,6 +8093,8 @@ static INPUT_PORTS_START( tflash )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tflash_state::tflash(machine_config &config)
{
sm510_tiger(config, 1444, 1080);
@@ -6938,13 +8114,210 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Tiger Robin Hood (model 7-861) (not licensed)
+ * Sharp SM510 under epoxy (die label CMS54C, KMS583)
+ * lcd screen with custom segments, 1-bit sound
+
+ MCU ROM is the same for Gauntlet, Robin Hood.
+
+*******************************************************************************/
+
+class trobhood_state : public hh_sm510_state
+{
+public:
+ trobhood_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void trobhood(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( trobhood )
+ PORT_INCLUDE( tgaunt )
+
+ PORT_MODIFY("IN.3")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Money")
+INPUT_PORTS_END
+
+// config
- Tiger MC Hammer: U Can't Touch This (model 7-863)
+void trobhood_state::trobhood(machine_config &config)
+{
+ sm510_tiger(config, 1468, 1080);
+}
+
+// roms
+
+ROM_START( trobhood )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "583", 0x0000, 0x1000, CRC(598d8156) SHA1(9f776e8b9b4321e8118481e6b1304f8a38f9932e) )
+
+ ROM_REGION( 704816, "screen", 0)
+ ROM_LOAD( "trobhood.svg", 0, 704816, CRC(f4b94f32) SHA1(8f68a7f4240489d42934d3875f82456aceabfb48) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger Pit-Fighter (model 7-863) (licensed from Atari Games / Tengen)
+ * Sharp SM510 under epoxy (die label MA8)
+ * lcd screen with custom segments, 1-bit sound
+
+*******************************************************************************/
+
+class tpitfight_state : public hh_sm510_state
+{
+public:
+ tpitfight_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void tpitfight(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( tpitfight )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Left Attack High")
+ PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Right Attack Low")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Right Attack High")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick On Right")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Left Attack Low")
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick On Left")
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S6
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Select")
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void tpitfight_state::tpitfight(machine_config &config)
+{
+ sm510_tiger(config, 1447, 1080);
+}
+
+// roms
+
+ROM_START( tpitfight )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "ma8", 0x0000, 0x1000, CRC(8470a539) SHA1(f857da9a498dfbae10307c55f3c4e49c94fe4ea8) )
+
+ ROM_REGION( 330535, "screen", 0)
+ ROM_LOAD( "tpitfight.svg", 0, 330535, CRC(5407b415) SHA1(e489c63a4bbbf9f146a25a451227f1916df7e868) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger The Rocketeer (model 7-864) (licensed from Walt Disney)
+ * Sharp SM510 under epoxy (die label M96)
+ * lcd screen with custom segments, 1-bit sound
+
+ MCU ROM is the same for Robocop 2, The Rocketeer.
+
+*******************************************************************************/
+
+class trockteer_state : public hh_sm510_state
+{
+public:
+ trockteer_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void trockteer(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( trockteer )
+ PORT_INCLUDE( trobocop2 )
+
+ PORT_MODIFY("IN.0")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("P1 Up/Rocket Pack")
+
+ PORT_MODIFY("IN.3")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire Right")
+
+ PORT_MODIFY("IN.4")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire Up")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire Left")
+INPUT_PORTS_END
+
+// config
+
+void trockteer_state::trockteer(machine_config &config)
+{
+ sm510_tiger(config, 1463, 1080);
+}
+
+// roms
+
+ROM_START( trockteer )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "m96", 0x0000, 0x1000, CRC(3704b60c) SHA1(04275833e1a79fd33226faf060890b66ae54e1d3) )
+
+ ROM_REGION( 558128, "screen", 0)
+ ROM_LOAD( "trockteer.svg", 0, 558128, CRC(70ff1f46) SHA1(5cd94655654614206ed11844ba31650edb51eb22) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger MC Hammer: U Can't Touch This (model 7-865) (licensed from Winterland
+ Productions)
* Sharp SM511 under epoxy (die label N63)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tmchammer_state : public hh_sm510_state
{
@@ -6958,7 +8331,7 @@ public:
void tmchammer(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tmchammer )
PORT_START("IN.0") // S1
@@ -7002,6 +8375,8 @@ static INPUT_PORTS_START( tmchammer )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tmchammer_state::tmchammer(machine_config &config)
{
sm511_tiger1bit(config, 1471, 1080);
@@ -7024,13 +8399,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Battletoads (model 7-868)
+ Tiger Battletoads (model 7-868) (licensed from Rare / Tradewest)
* Sharp SM510 under epoxy (die label MB3)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tbtoads_state : public hh_sm510_state
{
@@ -7044,7 +8419,7 @@ public:
void tbtoads(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tbtoads )
PORT_START("IN.0") // S1
@@ -7087,6 +8462,8 @@ static INPUT_PORTS_START( tbtoads )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tbtoads_state::tbtoads(machine_config &config)
{
sm510_tiger(config, 1454, 1080);
@@ -7106,13 +8483,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Hook (model 7-869)
+ Tiger Hook (model 7-869) (licensed from Tri-Star Pictures)
* Sharp SM510 under epoxy (die label MB7)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class thook_state : public hh_sm510_state
{
@@ -7126,7 +8503,7 @@ public:
void thook(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( thook )
PORT_START("IN.0") // S1
@@ -7169,6 +8546,8 @@ static INPUT_PORTS_START( thook )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void thook_state::thook(machine_config &config)
{
sm510_tiger(config, 1489, 1080);
@@ -7188,16 +8567,16 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Back to the Future (model 7-809)
+ Tiger Back to the Future (model 7-809) (licensed from UCS & Amblin)
* Sharp SM510 under epoxy (die label MC3)
* lcd screen with custom segments, 1-bit sound
This game is from 1992, even though the model number suggests otherwise.
Perhaps Tiger filled unused model numbers before switching to 78-xxx.
-***************************************************************************/
+*******************************************************************************/
class tbttf_state : public hh_sm510_state
{
@@ -7211,7 +8590,7 @@ public:
void tbttf(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tbttf )
PORT_START("IN.0") // S1
@@ -7250,6 +8629,8 @@ static INPUT_PORTS_START( tbttf )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tbttf_state::tbttf(machine_config &config)
{
sm510_tiger(config, 1466, 1080);
@@ -7269,15 +8650,15 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger The Addams Family (model 7-829)
+ Tiger The Addams Family (model 7-829) (licensed from Paramount Pictures)
* Sharp SM510 under epoxy (die label MC2)
* lcd screen with custom segments, 1-bit sound
Like Back to the Future, this game is newer than the model number suggests.
-***************************************************************************/
+*******************************************************************************/
class taddams_state : public hh_sm510_state
{
@@ -7291,7 +8672,7 @@ public:
void taddams(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( taddams )
PORT_START("IN.0") // S1
@@ -7334,6 +8715,8 @@ static INPUT_PORTS_START( taddams )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void taddams_state::taddams(machine_config &config)
{
sm510_tiger(config, 1464, 1080);
@@ -7353,13 +8736,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Home Alone (model 78-502)
+ Tiger Home Alone (model 78-502) (licensed from Twentieth Century Fox)
* Sharp SM510 under epoxy (die label MC7)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class thalone_state : public hh_sm510_state
{
@@ -7373,7 +8756,7 @@ public:
void thalone(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( thalone )
PORT_START("IN.0") // S1
@@ -7416,6 +8799,8 @@ static INPUT_PORTS_START( thalone )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void thalone_state::thalone(machine_config &config)
{
sm510_tiger(config, 1448, 1080);
@@ -7435,13 +8820,93 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Tiger Ninja Gaiden III (model 78-503) (licensed from Tecmo)
+ * Sharp SM510 under epoxy (die label MD6)
+ * lcd screen with custom segments, 1-bit sound
+
+*******************************************************************************/
+
+class tgaiden3_state : public hh_sm510_state
+{
+public:
+ tgaiden3_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void tgaiden3(machine_config &config);
+};
+
+// inputs
- Tiger X-Men - Project X (model 78-504)
+static INPUT_PORTS_START( tgaiden3 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack/Pick")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pause")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void tgaiden3_state::tgaiden3(machine_config &config)
+{
+ sm510_tiger(config, 1474, 1080);
+}
+
+// roms
+
+ROM_START( tgaiden3 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "md6", 0x0000, 0x1000, CRC(00037018) SHA1(ca1e9f87706e44fb14c302626bdb4d1b274ffe03) )
+
+ ROM_REGION( 512535, "screen", 0)
+ ROM_LOAD( "tgaiden3.svg", 0, 512535, CRC(c9006c7b) SHA1(c50279d8133f5fb4d1e3da5c6ebefbc9bbd9dbcd) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger X-Men: Project X (model 78-504) (licensed from Marvel Entertainment Group)
* Sharp SM510 under epoxy (die label MD3)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class txmenpx_state : public hh_sm510_state
{
@@ -7455,7 +8920,7 @@ public:
void txmenpx(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( txmenpx )
PORT_START("IN.0") // S1
@@ -7494,6 +8959,8 @@ static INPUT_PORTS_START( txmenpx )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void txmenpx_state::txmenpx(machine_config &config)
{
sm510_tiger(config, 1464, 1080);
@@ -7513,13 +8980,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Home Alone 2 - Lost in New York (model 78-506)
+ Tiger Home Alone 2: Lost in New York (model 78-506) (licensed from Twentieth
+ Century Fox)
* Sharp SM510 under epoxy (die label MD7)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class thalone2_state : public hh_sm510_state
{
@@ -7533,7 +9001,7 @@ public:
void thalone2(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( thalone2 )
PORT_START("IN.0") // S1
@@ -7576,6 +9044,8 @@ static INPUT_PORTS_START( thalone2 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void thalone2_state::thalone2(machine_config &config)
{
sm510_tiger(config, 1454, 1080);
@@ -7595,13 +9065,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Sonic The Hedgehog (model 78-513)
+ Tiger Sonic The Hedgehog (model 78-513) (licensed from Sega)
* Sharp SM511 under epoxy (die label KMS73B, N71)
* lcd screen with custom segments, 2-bit sound
-***************************************************************************/
+*******************************************************************************/
class tsonic_state : public hh_sm510_state
{
@@ -7615,7 +9085,7 @@ public:
void tsonic(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tsonic )
PORT_START("IN.0") // S2
@@ -7653,6 +9123,8 @@ static INPUT_PORTS_START( tsonic )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tsonic_state::tsonic(machine_config &config)
{
sm511_tiger2bit(config, 1517, 1080);
@@ -7675,13 +9147,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Robocop 3 (model 78-514)
+ Tiger Robocop 3 (model 78-514) (licensed from Orion Pictures)
* Sharp SM510 under epoxy (die label MC6)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class trobocop3_state : public hh_sm510_state
{
@@ -7695,7 +9167,7 @@ public:
void trobocop3(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( trobocop3 )
PORT_START("IN.0") // S1
@@ -7738,6 +9210,8 @@ static INPUT_PORTS_START( trobocop3 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void trobocop3_state::trobocop3(machine_config &config)
{
sm510_tiger(config, 1464, 1080);
@@ -7757,13 +9231,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger The Incredible Crash Dummies (model 78-516)
+ Tiger The Incredible Crash Dummies (model 78-516) (licensed from Tyco / LCI)
* Sharp SM510 under epoxy (die label ME0)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tdummies_state : public hh_sm510_state
{
@@ -7777,7 +9251,7 @@ public:
void tdummies(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tdummies )
PORT_START("IN.0") // S1
@@ -7816,6 +9290,8 @@ static INPUT_PORTS_START( tdummies )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tdummies_state::tdummies(machine_config &config)
{
sm510_tiger(config, 1441, 1080);
@@ -7835,13 +9311,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Street Fighter II (model 78-522)
+ Tiger Street Fighter II (model 78-522) (licensed from Capcom)
* Sharp SM510 under epoxy (die label ME1)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tsfight2_state : public hh_sm510_state
{
@@ -7855,7 +9331,7 @@ public:
void tsfight2(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tsfight2 )
PORT_START("IN.0") // S1
@@ -7898,6 +9374,8 @@ static INPUT_PORTS_START( tsfight2 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tsfight2_state::tsfight2(machine_config &config)
{
sm510_tiger(config, 1444, 1080);
@@ -7917,13 +9395,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Wayne's World (model 78-523)
+ Tiger Wayne's World (model 78-523) (licensed from Broadway Video / NBC)
* Sharp SM510 under epoxy (die label ME7)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class twworld_state : public hh_sm510_state
{
@@ -7937,7 +9415,7 @@ public:
void twworld(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( twworld )
PORT_START("IN.0") // S1
@@ -7980,6 +9458,8 @@ static INPUT_PORTS_START( twworld )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void twworld_state::twworld(machine_config &config)
{
sm510_tiger(config, 1429, 1080);
@@ -7999,13 +9479,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Jurassic Park (model 78-524)
+ Tiger Jurassic Park (model 78-524) (licensed from Universal City Studios & Amblin)
* Sharp SM510 under epoxy (die label MF4)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tjpark_state : public hh_sm510_state
{
@@ -8019,7 +9499,7 @@ public:
void tjpark(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tjpark )
PORT_START("IN.0") // S1
@@ -8058,6 +9538,8 @@ static INPUT_PORTS_START( tjpark )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tjpark_state::tjpark(machine_config &config)
{
sm510_tiger(config, 1454, 1080);
@@ -8077,13 +9559,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Sonic The Hedgehog 2 (model 78-527)
+ Tiger Sonic The Hedgehog 2 (model 78-527) (licensed from Sega)
* Sharp SM511 under epoxy (die label N86)
* lcd screen with custom segments, 2-bit sound
-***************************************************************************/
+*******************************************************************************/
class tsonic2_state : public hh_sm510_state
{
@@ -8097,7 +9579,7 @@ public:
void tsonic2(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tsonic2 )
PORT_START("IN.0") // S2
@@ -8135,6 +9617,8 @@ static INPUT_PORTS_START( tsonic2 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tsonic2_state::tsonic2(machine_config &config)
{
sm511_tiger2bit(config, 1475, 1080);
@@ -8157,9 +9641,9 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Super Double Dragon (model 78-528)
+ Tiger Super Double Dragon (model 78-528) (licensed from Technos)
* Sharp SM510 under epoxy (die label MF5)
* lcd screen with custom segments, 1-bit sound
@@ -8167,7 +9651,7 @@ ROM_END
They probably meant to use it for the right punch segment, but this is
how it shows on the LCD.
-***************************************************************************/
+*******************************************************************************/
class tsddragon_state : public hh_sm510_state
{
@@ -8181,7 +9665,7 @@ public:
void tsddragon(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tsddragon )
PORT_START("IN.0") // S1
@@ -8225,6 +9709,8 @@ static INPUT_PORTS_START( tsddragon )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tsddragon_state::tsddragon(machine_config &config)
{
sm510_tiger(config, 1503, 1080);
@@ -8244,13 +9730,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Dennis the Menace (model 78-532)
+ Tiger Dennis the Menace (model 78-532) (licensed from Warner Bros. / HKE)
* Sharp SM510 under epoxy (die label MF9)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tdennis_state : public hh_sm510_state
{
@@ -8264,7 +9750,7 @@ public:
void tdennis(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tdennis )
PORT_START("IN.0") // S1
@@ -8308,6 +9794,8 @@ static INPUT_PORTS_START( tdennis )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tdennis_state::tdennis(machine_config &config)
{
sm510_tiger(config, 1467, 1080);
@@ -8327,13 +9815,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Nightmare Before Christmas (model 78-537)
+ Tiger Nightmare Before Christmas (model 78-537) (licensed from Touchstone Pictures)
* Sharp SM510 under epoxy (die label MG0)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tnmarebc_state : public hh_sm510_state
{
@@ -8358,7 +9846,7 @@ void tnmarebc_state::input_w(u8 data)
hh_sm510_state::input_w((data & 0x1f) | (data >> 1 & 0x10));
}
-// config
+// inputs
static INPUT_PORTS_START( tnmarebc )
PORT_START("IN.0") // S1
@@ -8396,6 +9884,8 @@ static INPUT_PORTS_START( tnmarebc )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tnmarebc_state::tnmarebc(machine_config &config)
{
sm510_tiger(config, 1456, 1080);
@@ -8415,13 +9905,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Transformers - Generation 2 (model 78-541)
+ Tiger Transformers: Generation 2 (model 78-541) (not licensed: Transformers
+ was owned by parent company Hasbro)
* Sharp SM510 under epoxy (die label MG2)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class ttransf2_state : public hh_sm510_state
{
@@ -8435,7 +9926,7 @@ public:
void ttransf2(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( ttransf2 )
PORT_START("IN.0") // S1
@@ -8478,6 +9969,8 @@ static INPUT_PORTS_START( ttransf2 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void ttransf2_state::ttransf2(machine_config &config)
{
sm510_tiger(config, 1476, 1080);
@@ -8497,13 +9990,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Operation: Aliens (model 78-552)
+ Tiger Operation: Aliens (model 78-552) (licensed from Twentieth Century Fox)
* Sharp SM510 under epoxy (die label MJ1)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class topaliens_state : public hh_sm510_state
{
@@ -8517,7 +10010,7 @@ public:
void topaliens(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( topaliens )
PORT_START("IN.0") // S1
@@ -8556,6 +10049,8 @@ static INPUT_PORTS_START( topaliens )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void topaliens_state::topaliens(machine_config &config)
{
sm510_tiger(config, 1450, 1080);
@@ -8575,13 +10070,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Mortal Kombat (model 78-553)
+ Tiger Mortal Kombat (model 78-553) (licensed from Midway)
* Sharp SM510 under epoxy (die label MG6)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tmkombat_state : public hh_sm510_state
{
@@ -8595,7 +10090,7 @@ public:
void tmkombat(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tmkombat )
PORT_START("IN.0") // S1
@@ -8639,6 +10134,8 @@ static INPUT_PORTS_START( tmkombat )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tmkombat_state::tmkombat(machine_config &config)
{
sm510_tiger(config, 1468, 1080);
@@ -8658,13 +10155,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger The Shadow (model 78-559)
+ Tiger The Shadow (model 78-559) (licensed from The Conde Nast Publications)
* Sharp SM510 under epoxy (die label MJ5)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tshadow_state : public hh_sm510_state
{
@@ -8678,7 +10175,7 @@ public:
void tshadow(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tshadow )
PORT_START("IN.0") // S1
@@ -8721,6 +10218,8 @@ static INPUT_PORTS_START( tshadow )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tshadow_state::tshadow(machine_config &config)
{
sm510_tiger(config, 1484, 1080);
@@ -8740,13 +10239,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Skeleton Warriors - The Dark Crusade (model 78-569)
+ Tiger Skeleton Warriors: The Dark Crusade (model 78-569) (licensed from Landmark
+ Entertainment Group)
* Sharp SM510 under epoxy (die label MK0)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tskelwarr_state : public hh_sm510_state
{
@@ -8760,7 +10260,7 @@ public:
void tskelwarr(machine_config &);
};
-// config
+// inputs
static INPUT_PORTS_START( tskelwarr )
PORT_START("IN.0") // S1
@@ -8803,6 +10303,8 @@ static INPUT_PORTS_START( tskelwarr )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tskelwarr_state::tskelwarr(machine_config &config)
{
sm510_tiger(config, 1444, 1080);
@@ -8822,13 +10324,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Batman Forever - Double Dose of Doom (model 78-572)
+ Tiger Batman Forever: Double Dose of Doom (model 78-572) (licensed from DC Comics)
* Sharp SM510 under epoxy (die label MK3)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tbatfor_state : public hh_sm510_state
{
@@ -8842,7 +10344,7 @@ public:
void tbatfor(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tbatfor )
PORT_START("IN.0") // S1
@@ -8886,6 +10388,8 @@ static INPUT_PORTS_START( tbatfor )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tbatfor_state::tbatfor(machine_config &config)
{
sm510_tiger(config, 1493, 1080);
@@ -8905,13 +10409,14 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Judge Dredd (model 78-581)
+ Tiger Judge Dredd (model 78-581) (licensed from Cinergi / Egmont Foundation /
+ CPI / Surge Comic Prop.)
* Sharp SM510 under epoxy (die label MK5)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tjdredd_state : public hh_sm510_state
{
@@ -8925,7 +10430,7 @@ public:
void tjdredd(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tjdredd )
PORT_START("IN.0") // S1
@@ -8969,6 +10474,8 @@ static INPUT_PORTS_START( tjdredd )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tjdredd_state::tjdredd(machine_config &config)
{
sm510_tiger(config, 1444, 1080);
@@ -8988,13 +10495,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Apollo 13 (model 78-591)
+ Tiger Apollo 13 (model 78-591) (licensed from UCS)
* Sharp SM510 under epoxy (die label 10 07)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tapollo13_state : public hh_sm510_state
{
@@ -9008,7 +10515,7 @@ public:
void tapollo13(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tapollo13 )
PORT_START("IN.0") // S1
@@ -9052,6 +10559,8 @@ static INPUT_PORTS_START( tapollo13 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tapollo13_state::tapollo13(machine_config &config)
{
sm510_tiger(config, 1467, 1080);
@@ -9071,13 +10580,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger 007: GoldenEye (model 78-594)
+ Tiger 007: GoldenEye (model 78-594) (licensed from Danjaq / United Artists)
* Sharp SM510 under epoxy (die label 10 06)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tgoldeye_state : public hh_sm510_state
{
@@ -9091,7 +10600,7 @@ public:
void tgoldeye(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tgoldeye )
PORT_START("IN.0") // S1
@@ -9135,6 +10644,8 @@ static INPUT_PORTS_START( tgoldeye )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tgoldeye_state::tgoldeye(machine_config &config)
{
sm510_tiger(config, 1461, 1080);
@@ -9154,13 +10665,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Kazaam (model 78-613)
+ Tiger Kazaam (model 78-613) (licensed from Interscope Communications)
* Sharp SM510 under epoxy (die label KMS10, 18)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tkazaam_state : public hh_sm510_state
{
@@ -9174,7 +10685,7 @@ public:
void tkazaam(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tkazaam )
PORT_START("IN.0") // S1
@@ -9218,6 +10729,8 @@ static INPUT_PORTS_START( tkazaam )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tkazaam_state::tkazaam(machine_config &config)
{
sm510_tiger(config, 1452, 1080); // no external XTAL
@@ -9237,13 +10750,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Space Jam (model 78-621)
+ Tiger Space Jam (model 78-621) (licensed from Warner Bros.)
* Sharp SM510 under epoxy (die label KMS10, 23)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tsjam_state : public hh_sm510_state
{
@@ -9257,7 +10770,7 @@ public:
void tsjam(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tsjam )
PORT_START("IN.0") // S1
@@ -9296,6 +10809,8 @@ static INPUT_PORTS_START( tsjam )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tsjam_state::tsjam(machine_config &config)
{
sm510_tiger(config, 1421, 1080); // no external XTAL
@@ -9315,13 +10830,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Independence Day (model 78-624)
+ Tiger Independence Day (aka ID4) (model 78-624) (licensed from Fox)
* Sharp SM510 under epoxy (die label 10 16)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class tinday_state : public hh_sm510_state
{
@@ -9335,7 +10850,7 @@ public:
void tinday(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tinday )
PORT_START("IN.0") // S1
@@ -9374,6 +10889,8 @@ static INPUT_PORTS_START( tinday )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tinday_state::tinday(machine_config &config)
{
sm510_tiger(config, 1463, 1080);
@@ -9393,13 +10910,13 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
- Tiger Batman: The Animated Series (model 72-505)
+ Tiger Batman: The Animated Series (model 72-505) (licensed from DC Comics)
* Sharp SM511 under epoxy (die label N81)
* lcd screen with custom segments, 2-bit sound
-***************************************************************************/
+*******************************************************************************/
class tbatmana_state : public hh_sm510_state
{
@@ -9413,18 +10930,18 @@ public:
void tbatmana(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( tbatmana )
PORT_START("IN.0") // S2
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("Jump")
PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // S3
PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.2") // S4
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fast")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("Fast")
PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // S5
@@ -9452,6 +10969,8 @@ static INPUT_PORTS_START( tbatmana )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void tbatmana_state::tbatmana(machine_config &config)
{
sm511_tiger2bit(config, 1478, 1080);
@@ -9474,7 +10993,235 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Tiger Mighty Max (model 72-544) (licensed from Film Roman / Bluebird Toys / Canal+)
+ * Sharp SM511 under epoxy (die label KMS73B, ND1)
+ * lcd screen with custom segments, 2-bit sound
+
+*******************************************************************************/
+
+class tmigmax_state : public hh_sm510_state
+{
+public:
+ tmigmax_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void tmigmax(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( tmigmax )
+ PORT_START("IN.0") // S2
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S4
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S5
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Call")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S7
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Max Score")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void tmigmax_state::tmigmax(machine_config &config)
+{
+ sm511_tiger2bit(config, 1474, 1080);
+}
+
+// roms
+
+ROM_START( tmigmax )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "nd1.program", 0x0000, 0x1000, CRC(0950a05e) SHA1(829c722bf2c9554cb22baa6e987034c417196cc4) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "nd1.melody", 0x000, 0x100, CRC(9f8e719a) SHA1(6bf2e3e8cecf9ec659ca587d53a2428521b702d8) )
+
+ ROM_REGION( 735451, "screen", 0)
+ ROM_LOAD( "tmigmax.svg", 0, 735451, CRC(4d83d754) SHA1(ade145888aee60aac1a184d5b35754711dab22a0) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger Gargoyles: Night Flight (Tiger) (model 72-816) (licensed from BVTV)
+ * Sharp SM511 under epoxy (die label KMS73B, NE1)
+ * lcd screen with custom segments, 2-bit sound
+
+ MCU ROM is the same for Gargoyles: Night Flight, Superman.
+
+*******************************************************************************/
+
+class tgargnf_state : public hh_sm510_state
+{
+public:
+ tgargnf_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void tgargnf(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( tgargnf )
+ PORT_START("IN.0") // S2
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S4
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S5
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch/Claw")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Call")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S7
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Max Score")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void tgargnf_state::tgargnf(machine_config &config)
+{
+ sm511_tiger2bit(config, 1479, 1080);
+}
+
+// roms
+
+ROM_START( tgargnf )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "ne1.program", 0x0000, 0x1000, CRC(187b1f47) SHA1(dc01a89ac856133f948453aca5367b49d1b4b42b) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "ne1.melody", 0x000, 0x100, CRC(840cfed6) SHA1(81590f6a6c2b1aa53a9e9260a0e79eb4ce2f2d62) )
+
+ ROM_REGION( 1110760, "screen", 0)
+ ROM_LOAD( "tgargnf.svg", 0, 1110760, CRC(7883d3a7) SHA1(2c382b483683f1b9ea9ba2dd7d27479c0524a511) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
+
+ Tiger Superman (model 72-???) (licensed from DC Comics)
+ * Sharp SM511 under epoxy (no decap, dumped electronically)
+ * lcd screen with custom segments, 2-bit sound
+
+ MCU ROM is the same for Gargoyles: Night Flight, Superman.
+
+ In the same year, Tiger also sold a red & blue Superman handheld (model 71-093),
+ it's not the same game as this.
+
+*******************************************************************************/
+
+class tsuperman_state : public hh_sm510_state
+{
+public:
+ tsuperman_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ {
+ inp_fixed_last();
+ }
+
+ void tsuperman(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( tsuperman )
+ PORT_INCLUDE( tgargnf )
+
+ PORT_MODIFY("IN.3")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch")
+INPUT_PORTS_END
+
+// config
+
+void tsuperman_state::tsuperman(machine_config &config)
+{
+ sm511_tiger2bit(config, 1487, 1080);
+}
+
+// roms
+
+ROM_START( tsuperman )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "ne1.program", 0x0000, 0x1000, CRC(187b1f47) SHA1(dc01a89ac856133f948453aca5367b49d1b4b42b) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "ne1.melody", 0x000, 0x100, CRC(840cfed6) SHA1(81590f6a6c2b1aa53a9e9260a0e79eb4ce2f2d62) )
+
+ ROM_REGION( 853009, "screen", 0)
+ ROM_LOAD( "tsuperman.svg", 0, 853009, CRC(d9a4a681) SHA1(d25a0198a705ed84ef00a9020819d047f10192a6) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
Tronica Shuttle Voyage (MG-8)
* Sharp SM510 label 0019 238E TRONICA (no decap)
@@ -9483,7 +11230,7 @@ ROM_END
Even though the serial is MG-8, the back of the game says 1983, newer than MG-9?
Thief in Garden (model TG-18) is the exact same MCU, but different graphics.
-***************************************************************************/
+*******************************************************************************/
class trshutvoy_state : public hh_sm510_state
{
@@ -9496,7 +11243,7 @@ public:
void tigarden(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( trshutvoy )
PORT_START("IN.0") // S1
@@ -9550,6 +11297,8 @@ static INPUT_PORTS_START( trshutvoy )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound")
INPUT_PORTS_END
+// config
+
void trshutvoy_state::trshutvoy(machine_config &config)
{
sm510_common(config, 1496, 1080); // R mask option confirmed
@@ -9582,7 +11331,7 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
Tronica: Space Rescue (model MG-9), Thunder Ball (model FR-23)
* PCB labels: SPACE RESCUE MG-9 080492 (MG-9)
@@ -9591,7 +11340,7 @@ ROM_END
0015 236D TRONICA (FR-23)
* lcd screen with custom segments, 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class trsrescue_state : public hh_sm510_state
{
@@ -9604,7 +11353,7 @@ public:
void trthuball(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( trsrescue )
PORT_START("IN.0") // S1
@@ -9628,6 +11377,8 @@ static INPUT_PORTS_START( trsrescue )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void trsrescue_state::trsrescue(machine_config &config)
{
sm510_common(config, 1533, 1080); // R mask option confirmed
@@ -9660,7 +11411,79 @@ ROM_END
-/***************************************************************************
+/*******************************************************************************
+
+ Tronica: Super Goal Keeper (model SK-10)
+ * PCB labels: SK-10 280683 32-647-1
+ * Sharp SM5A labels (no decap): 0132 238A TRONICA
+ * lcd screen with custom segments, 1-bit sound
+
+*******************************************************************************/
+
+class trsgkeep_state : public hh_sm510_state
+{
+public:
+ trsgkeep_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void trsgkeep(machine_config &config);
+};
+
+// inputs
+
+static INPUT_PORTS_START( trsgkeep )
+ PORT_START("IN.0") // R2
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed)
+
+ PORT_START("IN.2") // R4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm")
+
+ PORT_START("BA")
+ PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
+ PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("B")
+ PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB -- this one multiplies scoring factor with 10
+ PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
+INPUT_PORTS_END
+
+// config
+
+void trsgkeep_state::trsgkeep(machine_config &config)
+{
+ sm5a_common(config, 1465, 1080); // R mask option confirmed
+}
+
+// roms
+
+ROM_START( trsgkeep )
+ ROM_REGION( 0x800, "maincpu", 0 )
+ ROM_LOAD( "0132_238a", 0x0000, 0x0740, CRC(db80f1ed) SHA1(030e18ec05bbc98a474105d8d6f503082ab638cc) )
+
+ ROM_REGION( 119358, "screen", 0)
+ ROM_LOAD( "trsgkeep.svg", 0, 119358, CRC(4108349e) SHA1(359fb4eee1cfd85965efd1308f0002ebf38d231a) )
+ROM_END
+
+
+
+
+
+/*******************************************************************************
Tronica: Space Mission (model SM-11), Spider (model SG-21)
* PCB labels: SPACE MISSION SM-11 250582 (SM-11)
@@ -9675,7 +11498,7 @@ ROM_END
overlays. This version can be distinguished by having the year 1983 labeled
on the backside of the unit.
-***************************************************************************/
+*******************************************************************************/
class trspacmis_state : public hh_sm510_state
{
@@ -9688,7 +11511,7 @@ public:
void trspider(machine_config & config);
};
-// config
+// inputs
static INPUT_PORTS_START( trspacmis )
PORT_START("IN.0") // R2
@@ -9718,6 +11541,8 @@ static INPUT_PORTS_START( trspacmis )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
INPUT_PORTS_END
+// config
+
void trspacmis_state::trspacmis(machine_config &config)
{
sm5a_common(config, 1601, 1080); // R mask option confirmed
@@ -9750,75 +11575,13 @@ ROM_END
-/***************************************************************************
-
- Elektronika Автослалом (Autoslalom) (model ИМ-23)
- * KB1013VK1-2 MCU
- * lcd screen with custom segments, 1-bit sound
-
- This is not an unlicensed clone, but doing a hex compare with MC-25
- still shows around 30% similarity so clearly they used that as a base.
-
-***************************************************************************/
-
-class auslalom_state : public hh_sm510_state
-{
-public:
- auslalom_state(const machine_config &mconfig, device_type type, const char *tag) :
- hh_sm510_state(mconfig, type, tag)
- { }
-
- void auslalom(machine_config &config);
-};
-
-// config
-
-static INPUT_PORTS_START( auslalom )
- PORT_START("IN.0") // R2
- PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("IN.1") // R3
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME(u8"Запуск (Start)")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME(u8"Скорость (Speed)")
-
- PORT_START("IN.2") // R4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm")
-
- PORT_START("ACL")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
-INPUT_PORTS_END
-
-void auslalom_state::auslalom(machine_config &config)
-{
- kb1013vk12_common(config, 1732, 1080); // R mask option ?
-}
-
-// roms
-
-ROM_START( auslalom )
- ROM_REGION( 0x800, "maincpu", 0 )
- ROM_LOAD( "im-23.bin", 0x0000, 0x0740, CRC(3b6e726f) SHA1(eabd04722811d1cc6519db9386b14a535f5aa865) )
-
- ROM_REGION( 117520, "screen", 0)
- ROM_LOAD( "auslalom.svg", 0, 117520, CRC(2f90fd4c) SHA1(f0de58b1fe2f7c18fc219f9f9a94c227ca1245e4) )
-ROM_END
-
-
-
-
-
-/***************************************************************************
+/*******************************************************************************
VTech Electronic Number Muncher
* Sharp SM511 under epoxy (die label 772)
* lcd screen with custom segments(no background), 1-bit sound
-***************************************************************************/
+*******************************************************************************/
class nummunch_state : public hh_sm510_state
{
@@ -9830,7 +11593,7 @@ public:
void nummunch(machine_config &config);
};
-// config
+// inputs
static INPUT_PORTS_START( nummunch )
PORT_START("IN.0") // S1
@@ -9882,6 +11645,8 @@ static INPUT_PORTS_START( nummunch )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_ON ) PORT_CHANGED_CB(acl_button)
INPUT_PORTS_END
+// config
+
void nummunch_state::nummunch(machine_config &config)
{
sm511_common(config, 1920, 875);
@@ -9904,188 +11669,206 @@ ROM_END
} // anonymous namespace
-/***************************************************************************
+/*******************************************************************************
Game driver(s)
-***************************************************************************/
+*******************************************************************************/
-// YEAR NAME PARENT COMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
+// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
// Nintendo G&W: Silver/Gold (initial series is uncategorized, "Silver" was made up later)
-CONS( 1980, gnw_ball, 0, 0, gnw_ball, gnw_ball, gnw_ball_state, empty_init, "Nintendo", "Game & Watch: Ball", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, gnw_flagman, 0, 0, gnw_flagman, gnw_flagman, gnw_flagman_state, empty_init, "Nintendo", "Game & Watch: Flagman", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, gnw_vermin, 0, 0, gnw_vermin, gnw_vermin, gnw_vermin_state, empty_init, "Nintendo", "Game & Watch: Vermin", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, gnw_fires, 0, 0, gnw_fires, gnw_fires, gnw_fires_state, empty_init, "Nintendo", "Game & Watch: Fire (Silver)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1980, gnw_judge, 0, 0, gnw_judge, gnw_judge, gnw_judge_state, empty_init, "Nintendo", "Game & Watch: Judge (purple version)", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, gnw_judgeo, gnw_judge, 0, gnw_judge, gnw_judge, gnw_judge_state, empty_init, "Nintendo", "Game & Watch: Judge (green version)", MACHINE_SUPPORTS_SAVE )
-CONS( 1981, gnw_manholeg, 0, 0, gnw_manholeg, gnw_manholeg, gnw_manholeg_state, empty_init, "Nintendo", "Game & Watch: Manhole (Gold)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_helmet, 0, 0, gnw_helmet, gnw_helmet, gnw_helmet_state, empty_init, "Nintendo", "Game & Watch: Helmet (version CN-17)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_helmeto, gnw_helmet, 0, gnw_helmet, gnw_helmet, gnw_helmet_state, empty_init, "Nintendo", "Game & Watch: Helmet (version CN-07)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_lion, 0, 0, gnw_lion, gnw_lion, gnw_lion_state, empty_init, "Nintendo", "Game & Watch: Lion", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1980, gnw_ball, 0, 0, gnw_ball, gnw_ball, gnw_ball_state, empty_init, "Nintendo", "Game & Watch: Ball", MACHINE_SUPPORTS_SAVE )
+SYST( 1980, gnw_flagman, 0, 0, gnw_flagman, gnw_flagman, gnw_flagman_state, empty_init, "Nintendo", "Game & Watch: Flagman", MACHINE_SUPPORTS_SAVE )
+SYST( 1980, gnw_vermin, 0, 0, gnw_vermin, gnw_vermin, gnw_vermin_state, empty_init, "Nintendo", "Game & Watch: Vermin", MACHINE_SUPPORTS_SAVE )
+SYST( 1980, gnw_fires, 0, 0, gnw_fires, gnw_fires, gnw_fires_state, empty_init, "Nintendo", "Game & Watch: Fire (Silver)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1980, gnw_judge, 0, 0, gnw_judge, gnw_judge, gnw_judge_state, empty_init, "Nintendo", "Game & Watch: Judge (purple version)", MACHINE_SUPPORTS_SAVE )
+SYST( 1980, gnw_judgeo, gnw_judge, 0, gnw_judge, gnw_judge, gnw_judge_state, empty_init, "Nintendo", "Game & Watch: Judge (green version)", MACHINE_SUPPORTS_SAVE )
+SYST( 1981, gnw_manholeg, 0, 0, gnw_manholeg, gnw_manholeg, gnw_manholeg_state, empty_init, "Nintendo", "Game & Watch: Manhole (Gold)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_helmet, 0, 0, gnw_helmet, gnw_helmet, gnw_helmet_state, empty_init, "Nintendo", "Game & Watch: Helmet (version CN-17)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_helmeto, gnw_helmet, 0, gnw_helmet, gnw_helmet, gnw_helmet_state, empty_init, "Nintendo", "Game & Watch: Helmet (version CN-07)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_lion, 0, 0, gnw_lion, gnw_lion, gnw_lion_state, empty_init, "Nintendo", "Game & Watch: Lion", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nintendo G&W: Wide Screen
-CONS( 1981, gnw_pchute, 0, 0, gnw_pchute, gnw_pchute, gnw_pchute_state, empty_init, "Nintendo", "Game & Watch: Parachute", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_octopus, 0, 0, gnw_octopus, gnw_octopus, gnw_octopus_state, empty_init, "Nintendo", "Game & Watch: Octopus", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_popeye, 0, 0, gnw_popeye, gnw_popeye, gnw_popeye_state, empty_init, "Nintendo", "Game & Watch: Popeye (Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_chef, 0, 0, gnw_chef, gnw_chef, gnw_chef_state, empty_init, "Nintendo", "Game & Watch: Chef", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_mmouse, 0, 0, gnw_mmouse, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Mickey Mouse (Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_egg, gnw_mmouse, 0, gnw_egg, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1981, gnw_fire, 0, 0, gnw_fire, gnw_fire, gnw_fire_state, empty_init, "Nintendo", "Game & Watch: Fire (Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, gnw_tbridge, 0, 0, gnw_tbridge, gnw_tbridge, gnw_tbridge_state, empty_init, "Nintendo", "Game & Watch: Turtle Bridge", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, gnw_fireatk, 0, 0, gnw_fireatk, gnw_fireatk, gnw_fireatk_state, empty_init, "Nintendo", "Game & Watch: Fire Attack", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, gnw_stennis, 0, 0, gnw_stennis, gnw_stennis, gnw_stennis_state, empty_init, "Nintendo", "Game & Watch: Snoopy Tennis", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_pchute, 0, 0, gnw_pchute, gnw_pchute, gnw_pchute_state, empty_init, "Nintendo", "Game & Watch: Parachute", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_octopus, 0, 0, gnw_octopus, gnw_octopus, gnw_octopus_state, empty_init, "Nintendo", "Game & Watch: Octopus", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_popeye, 0, 0, gnw_popeye, gnw_popeye, gnw_popeye_state, empty_init, "Nintendo", "Game & Watch: Popeye (Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_chef, 0, 0, gnw_chef, gnw_chef, gnw_chef_state, empty_init, "Nintendo", "Game & Watch: Chef", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_mmouse, 0, 0, gnw_mmouse, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Mickey Mouse (Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_egg, gnw_mmouse, 0, gnw_egg, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1981, gnw_fire, 0, 0, gnw_fire, gnw_fire, gnw_fire_state, empty_init, "Nintendo", "Game & Watch: Fire (Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_tbridge, 0, 0, gnw_tbridge, gnw_tbridge, gnw_tbridge_state, empty_init, "Nintendo", "Game & Watch: Turtle Bridge", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_fireatk, 0, 0, gnw_fireatk, gnw_fireatk, gnw_fireatk_state, empty_init, "Nintendo", "Game & Watch: Fire Attack", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_stennis, 0, 0, gnw_stennis, gnw_stennis, gnw_stennis_state, empty_init, "Nintendo", "Game & Watch: Snoopy Tennis", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nintendo G&W: Multi Screen
-CONS( 1982, gnw_opanic, 0, 0, gnw_opanic, gnw_opanic, gnw_opanic_state, empty_init, "Nintendo", "Game & Watch: Oil Panic", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, gnw_dkong, 0, 0, gnw_dkong, gnw_dkong, gnw_dkong_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, gnw_mickdon, 0, 0, gnw_mickdon, gnw_mickdon, gnw_mickdon_state, empty_init, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, gnw_ghouse, 0, 0, gnw_ghouse, gnw_ghouse, gnw_ghouse_state, empty_init, "Nintendo", "Game & Watch: Green House", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_dkong2, 0, 0, gnw_dkong2, gnw_dkong2, gnw_dkong2_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_mario, 0, 0, gnw_mario, gnw_mario, gnw_mario_state, empty_init, "Nintendo", "Game & Watch: Mario Bros.", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_rshower, 0, 0, gnw_rshower, gnw_rshower, gnw_rshower_state, empty_init, "Nintendo", "Game & Watch: Rain Shower", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_lboat, 0, 0, gnw_lboat, gnw_lboat, gnw_lboat_state, empty_init, "Nintendo", "Game & Watch: Life Boat", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_pinball, 0, 0, gnw_pinball, gnw_pinball, gnw_pinball_state, empty_init, "Nintendo", "Game & Watch: Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1985, gnw_bjack, 0, 0, gnw_bjack, gnw_bjack, gnw_bjack_state, empty_init, "Nintendo", "Game & Watch: Black Jack", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1986, gnw_squish, 0, 0, gnw_squish, gnw_squish, gnw_squish_state, empty_init, "Nintendo", "Game & Watch: Squish", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1987, gnw_bsweep, 0, 0, gnw_bsweep, gnw_bsweep, gnw_bsweep_state, empty_init, "Nintendo", "Game & Watch: Bomb Sweeper", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1988, gnw_sbuster, 0, 0, gnw_sbuster, gnw_sbuster, gnw_sbuster_state, empty_init, "Nintendo", "Game & Watch: Safe Buster", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1988, gnw_gcliff, 0, 0, gnw_gcliff, gnw_gcliff, gnw_gcliff_state, empty_init, "Nintendo", "Game & Watch: Gold Cliff", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, gnw_zelda, 0, 0, gnw_zelda, gnw_zelda, gnw_zelda_state, empty_init, "Nintendo", "Game & Watch: Zelda", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_opanic, 0, 0, gnw_opanic, gnw_opanic, gnw_opanic_state, empty_init, "Nintendo", "Game & Watch: Oil Panic", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_dkong, 0, 0, gnw_dkong, gnw_dkong, gnw_dkong_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_mickdon, 0, 0, gnw_mickdon, gnw_mickdon, gnw_mickdon_state, empty_init, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_ghouse, 0, 0, gnw_ghouse, gnw_ghouse, gnw_ghouse_state, empty_init, "Nintendo", "Game & Watch: Green House", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_dkong2, 0, 0, gnw_dkong2, gnw_dkong2, gnw_dkong2_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_mario, 0, 0, gnw_mario, gnw_mario, gnw_mario_state, empty_init, "Nintendo", "Game & Watch: Mario Bros.", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_rshower, 0, 0, gnw_rshower, gnw_rshower, gnw_rshower_state, empty_init, "Nintendo", "Game & Watch: Rain Shower", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_lboat, 0, 0, gnw_lboat, gnw_lboat, gnw_lboat_state, empty_init, "Nintendo", "Game & Watch: Life Boat", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_pinball, 0, 0, gnw_pinball, gnw_pinball, gnw_pinball_state, empty_init, "Nintendo", "Game & Watch: Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1985, gnw_bjack, 0, 0, gnw_bjack, gnw_bjack, gnw_bjack_state, empty_init, "Nintendo", "Game & Watch: Black Jack", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1986, gnw_squish, 0, 0, gnw_squish, gnw_squish, gnw_squish_state, empty_init, "Nintendo", "Game & Watch: Squish", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1987, gnw_bsweep, 0, 0, gnw_bsweep, gnw_bsweep, gnw_bsweep_state, empty_init, "Nintendo", "Game & Watch: Bomb Sweeper", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, gnw_sbuster, 0, 0, gnw_sbuster, gnw_sbuster, gnw_sbuster_state, empty_init, "Nintendo", "Game & Watch: Safe Buster", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, gnw_gcliff, 0, 0, gnw_gcliff, gnw_gcliff, gnw_gcliff_state, empty_init, "Nintendo", "Game & Watch: Gold Cliff", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, gnw_zelda, 0, 0, gnw_zelda, gnw_zelda, gnw_zelda_state, empty_init, "Nintendo", "Game & Watch: Zelda", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nintendo G&W: New Wide Screen / Crystal Screen
-CONS( 1982, gnw_dkjr, 0, 0, gnw_dkjr, gnw_dkjr, gnw_dkjr_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Jr. (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_mariocm, 0, 0, gnw_mariocm, gnw_mariocm, gnw_mariocm_state, empty_init, "Nintendo", "Game & Watch: Mario's Cement Factory (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_manhole, 0, 0, gnw_manhole, gnw_manhole, gnw_manhole_state, empty_init, "Nintendo", "Game & Watch: Manhole (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1985, gnw_tfish, 0, 0, gnw_tfish, gnw_tfish, gnw_tfish_state, empty_init, "Nintendo", "Game & Watch: Tropical Fish", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1986, gnw_smb, 0, 0, gnw_smb, gnw_smb, gnw_smb_state, empty_init, "Nintendo", "Game & Watch: Super Mario Bros. (Crystal Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1988, gnw_smbn, gnw_smb, 0, gnw_smbn, gnw_smb, gnw_smb_state, empty_init, "Nintendo", "Game & Watch: Super Mario Bros. (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1986, gnw_climber, 0, 0, gnw_climber, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (Crystal Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1988, gnw_climbern, gnw_climber, 0, gnw_climbern, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1986, gnw_bfight, 0, 0, gnw_bfight, gnw_bfight, gnw_bfight_state, empty_init, "Nintendo", "Game & Watch: Balloon Fight (Crystal Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1988, gnw_bfightn, gnw_bfight, 0, gnw_bfightn, gnw_bfight, gnw_bfight_state, empty_init, "Nintendo", "Game & Watch: Balloon Fight (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, gnw_mariotj, 0, 0, gnw_mariotj, gnw_mariotj, gnw_mariotj_state, empty_init, "Nintendo", "Game & Watch: Mario The Juggler", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, gnw_dkjr, 0, 0, gnw_dkjr, gnw_dkjr, gnw_dkjr_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Jr. (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_mariocm, 0, 0, gnw_mariocm, gnw_mariocm, gnw_mariocm_state, empty_init, "Nintendo", "Game & Watch: Mario's Cement Factory (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_manhole, 0, 0, gnw_manhole, gnw_manhole, gnw_manhole_state, empty_init, "Nintendo", "Game & Watch: Manhole (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1985, gnw_tfish, 0, 0, gnw_tfish, gnw_tfish, gnw_tfish_state, empty_init, "Nintendo", "Game & Watch: Tropical Fish", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1986, gnw_smb, 0, 0, gnw_smb, gnw_smb, gnw_smb_state, empty_init, "Nintendo", "Game & Watch: Super Mario Bros. (Crystal Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, gnw_smbn, gnw_smb, 0, gnw_smbn, gnw_smb, gnw_smb_state, empty_init, "Nintendo", "Game & Watch: Super Mario Bros. (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1986, gnw_climber, 0, 0, gnw_climber, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (Crystal Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, gnw_climbern, gnw_climber, 0, gnw_climbern, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1986, gnw_bfight, 0, 0, gnw_bfight, gnw_bfight, gnw_bfight_state, empty_init, "Nintendo", "Game & Watch: Balloon Fight (Crystal Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, gnw_bfightn, gnw_bfight, 0, gnw_bfightn, gnw_bfight, gnw_bfight_state, empty_init, "Nintendo", "Game & Watch: Balloon Fight (New Wide Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, gnw_mariotj, 0, 0, gnw_mariotj, gnw_mariotj, gnw_mariotj_state, empty_init, "Nintendo", "Game & Watch: Mario The Juggler", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nintendo G&W: Table Top / Panorama Screen (the first Table Top releases in Japan were called "Color Screen")
-CONS( 1983, gnw_mariocmt, 0, 0, gnw_mariocmt, gnw_mariocmt, gnw_mariocmt_state, empty_init, "Nintendo", "Game & Watch: Mario's Cement Factory (Table Top, version CM-72)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // "Another one bites the dust" startup jingle
-CONS( 1983, gnw_mariocmta,gnw_mariocmt,0, gnw_mariocmt, gnw_mariocmt, gnw_mariocmt_state, empty_init, "Nintendo", "Game & Watch: Mario's Cement Factory (Table Top, version CM-72A)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // Plays an alternate jingle when starting a game
-CONS( 1983, gnw_snoopyp, 0, 0, gnw_snoopyp, gnw_snoopyp, gnw_snoopyp_state, empty_init, "Nintendo", "Game & Watch: Snoopy (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_popeyep, 0, 0, gnw_popeyep, gnw_popeyep, gnw_popeyep_state, empty_init, "Nintendo", "Game & Watch: Popeye (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_dkjrp, 0, 0, gnw_dkjrp, gnw_dkjrp, gnw_dkjrp_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Jr. (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, gnw_mbaway, 0, 0, gnw_mbaway, gnw_mbaway, gnw_mbaway_state, empty_init, "Nintendo", "Game & Watch: Mario's Bombs Away", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1984, gnw_mmousep, 0, 0, gnw_mmousep, gnw_mmousep, gnw_mmousep_state, empty_init, "Nintendo", "Game & Watch: Mickey Mouse (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1984, gnw_dkcirc, gnw_mmousep, 0, gnw_dkcirc, gnw_mmousep, gnw_mmousep_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Circus", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_mariocmt, 0, 0, gnw_mariocmt, gnw_mariocmt, gnw_mariocmt_state, empty_init, "Nintendo", "Game & Watch: Mario's Cement Factory (Table Top, version CM-72)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // "Another one bites the dust" startup jingle
+SYST( 1983, gnw_mariocmta,gnw_mariocmt,0, gnw_mariocmt, gnw_mariocmt, gnw_mariocmt_state, empty_init, "Nintendo", "Game & Watch: Mario's Cement Factory (Table Top, version CM-72A)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // Plays an alternate jingle when starting a game
+SYST( 1983, gnw_snoopyp, 0, 0, gnw_snoopyp, gnw_snoopyp, gnw_snoopyp_state, empty_init, "Nintendo", "Game & Watch: Snoopy (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_popeyep, 0, 0, gnw_popeyep, gnw_popeyep, gnw_popeyep_state, empty_init, "Nintendo", "Game & Watch: Popeye (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_dkjrp, 0, 0, gnw_dkjrp, gnw_dkjrp, gnw_dkjrp_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Jr. (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, gnw_mbaway, 0, 0, gnw_mbaway, gnw_mbaway, gnw_mbaway_state, empty_init, "Nintendo", "Game & Watch: Mario's Bombs Away", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, gnw_mmousep, 0, 0, gnw_mmousep, gnw_mmousep, gnw_mmousep_state, empty_init, "Nintendo", "Game & Watch: Mickey Mouse (Panorama Screen)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, gnw_dkcirc, gnw_mmousep, 0, gnw_dkcirc, gnw_mmousep, gnw_mmousep_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Circus", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nintendo G&W: Super Color
-CONS( 1984, gnw_ssparky, 0, 0, gnw_ssparky, gnw_ssparky, gnw_ssparky_state, empty_init, "Nintendo", "Game & Watch: Spitball Sparky", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1984, gnw_cgrab, 0, 0, gnw_cgrab, gnw_cgrab, gnw_cgrab_state, empty_init, "Nintendo", "Game & Watch: Crab Grab", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, gnw_ssparky, 0, 0, gnw_ssparky, gnw_ssparky, gnw_ssparky_state, empty_init, "Nintendo", "Game & Watch: Spitball Sparky", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, gnw_cgrab, 0, 0, gnw_cgrab, gnw_cgrab, gnw_cgrab_state, empty_init, "Nintendo", "Game & Watch: Crab Grab", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nintendo G&W: Micro Vs. System (actually, no official Game & Watch logo anywhere)
-CONS( 1984, gnw_boxing, 0, 0, gnw_boxing, gnw_boxing, gnw_boxing_state, empty_init, "Nintendo", "Micro Vs. System: Boxing", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1984, gnw_dkong3, 0, 0, gnw_dkong3, gnw_dkong3, gnw_dkong3_state, empty_init, "Nintendo", "Micro Vs. System: Donkey Kong 3", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1984, gnw_dkhockey, 0, 0, gnw_dkhockey, gnw_dkhockey, gnw_dkhockey_state, empty_init, "Nintendo", "Micro Vs. System: Donkey Kong Hockey", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, gnw_boxing, 0, 0, gnw_boxing, gnw_boxing, gnw_boxing_state, empty_init, "Nintendo", "Micro Vs. System: Boxing", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, gnw_dkong3, 0, 0, gnw_dkong3, gnw_dkong3, gnw_dkong3_state, empty_init, "Nintendo", "Micro Vs. System: Donkey Kong 3", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, gnw_dkhockey, 0, 0, gnw_dkhockey, gnw_dkhockey, gnw_dkhockey_state, empty_init, "Nintendo", "Micro Vs. System: Donkey Kong Hockey", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nintendo G&W hardware licensed to other companies (not part of G&W series)
-CONS( 1984, bassmate, 0, 0, bassmate, bassmate, bassmate_state, empty_init, "Telko / Nintendo", "Bassmate Computer", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, bassmate, 0, 0, bassmate, bassmate, bassmate_state, empty_init, "Telko / Nintendo", "Bassmate Computer", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Elektronika (mostly G&W clones)
-CONS( 1988, taynyoke, gnw_octopus, 0, taynyoke, gnw_octopus, gnw_octopus_state, empty_init, "bootleg (Elektronika)", "Tayny okeana", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, vespovar, gnw_chef, 0, vespovar, gnw_chef, gnw_chef_state, empty_init, "bootleg (Elektronika)", "Vesyolyy povar", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1984, nupogodi, gnw_mmouse, 0, nupogodi, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1988, ehockey, gnw_mmouse, 0, ehockey, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Hockey (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, rkosmosa, gnw_mmouse, 0, rkosmosa, rkosmosa, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Razvedchiki kosmosa", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, okhota, gnw_mmouse, 0, okhota, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Okhota", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, biathlon, gnw_mmouse, 0, biathlon, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Biathlon", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, vfutbol, gnw_mmouse, 0, vfutbol, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Vesyolye futbolisty", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, krybolov, gnw_mmouse, 0, krybolov, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Kot-rybolov (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, kvakazad, gnw_mmouse, 0, kvakazad, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Kvaka-zadavaka", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 19??, nochnyev, gnw_mmouse, 0, nochnyev, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Nochnye vorishki", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 19??, kosmicpt, gnw_mmouse, 0, kosmicpt, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Kosmicheskiy polyot", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 19??, morataka, gnw_mmouse, 0, morataka, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Morskaja ataka", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, atakaast, gnw_mmouse, 0, atakaast, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Ataka asteroidov", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 19??, ecircus, gnw_mmouse, 0, ecircus, gnw_mmouse, gnw_mmouse_state, empty_init, "bootleg (Elektronika)", "Circus (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, kosmicmt, gnw_fire, 0, kosmicmt, gnw_fire, gnw_fire_state, empty_init, "bootleg (Elektronika)", "Kosmicheskiy most", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1990, auslalom, 0, 0, auslalom, auslalom, auslalom_state, empty_init, "Elektronika", "Autoslalom", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, taynyoke, gnw_octopus, 0, taynyoke, gnw_octopus, gnw_octopus_state, empty_init, "bootleg (Elektronika)", "Tayny okeana", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, vespovar, gnw_chef, 0, vespovar, gnw_chef, gnw_chef_state, empty_init, "bootleg (Elektronika)", "Vesyolyy povar", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1984, nupogodi, gnw_mmouse, 0, nupogodi, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, ehockey, gnw_mmouse, 0, ehockey, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Hockey (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, rkosmosa, gnw_mmouse, 0, rkosmosa, rkosmosa, nupogodi_state, empty_init, "bootleg (Elektronika)", "Razvedchiki kosmosa", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, okhota, gnw_mmouse, 0, okhota, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Okhota", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, biathlon, gnw_mmouse, 0, biathlon, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Biathlon", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, vfutbol, gnw_mmouse, 0, vfutbol, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Vesyolye futbolisty", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, krybolov, gnw_mmouse, 0, krybolov, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Kot-rybolov (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, kvakazad, gnw_mmouse, 0, kvakazad, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Kvaka-zadavaka", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 19??, nochnyev, gnw_mmouse, 0, nochnyev, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Nochnye vorishki", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 19??, kosmicpt, gnw_mmouse, 0, kosmicpt, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Kosmicheskiy polyot", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 19??, morataka, gnw_mmouse, 0, morataka, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Morskaja ataka", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, atakaast, gnw_mmouse, 0, atakaast, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Ataka asteroidov", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 19??, ecircus, gnw_mmouse, 0, ecircus, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Circus (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, naltair, gnw_mmouse, 0, vfutbol, naltair, nupogodi_state, empty_init, "bootleg (Nauchpribor)", "Altair (Nauchpribor)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
+SYST( 1989, kosmicmt, gnw_fire, 0, kosmicmt, gnw_fire, gnw_fire_state, empty_init, "bootleg (Elektronika)", "Kosmicheskiy most", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, auslalom, 0, 0, auslalom, auslalom, auslalom_state, empty_init, "Elektronika", "Autoslalom", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Konami
-CONS( 1989, kdribble, 0, 0, kdribble, kdribble, kdribble_state, empty_init, "Konami", "Double Dribble (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, empty_init, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, empty_init, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, empty_init, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, empty_init, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, kblades, 0, 0, kblades, kblades, kblades_state, empty_init, "Konami", "Blades of Steel (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, knfl, 0, 0, knfl, knfl, knfl_state, empty_init, "Konami", "NFL Football (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, kbilly, 0, 0, kbilly, kbilly, kbilly_state, empty_init, "Konami", "The Adventures of Bayou Billy (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, kbucky, 0, 0, kbucky, kbucky, kbucky_state, empty_init, "Konami", "Bucky O'Hare (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, empty_init, "Konami", "Garfield (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, kdribble, 0, 0, kdribble, kdribble, kdribble_state, empty_init, "Konami", "Double Dribble (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, empty_init, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, empty_init, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, empty_init, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, kskatedie, 0, 0, kskatedie, kskatedie, kskatedie_state, empty_init, "Konami", "Skate or Die (Konami, handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, kbilly, 0, 0, kbilly, kbilly, kbilly_state, empty_init, "Konami", "The Adventures of Bayou Billy (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, kbottom9, 0, 0, kbottom9, kbottom9, kbottom9_state, empty_init, "Konami", "Bottom of the Ninth (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, kloneran, 0, 0, kloneran, kloneran, kloneran_state, empty_init, "Konami", "The Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, knascar, 0, 0, knascar, knascar, knascar_state, empty_init, "Konami", "Bill Elliott's NASCAR Racing (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, kblades, 0, 0, kblades, kblades, kblades_state, empty_init, "Konami", "Blades of Steel (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, ktmnt2, 0, 0, ktmnt2, ktmnt2, ktmnt2_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles II: Splinter Speaks (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_SOUND )
+SYST( 1990, knfl, 0, 0, knfl, knfl, knfl_state, empty_init, "Konami", "NFL Football (Konami, handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, kst25, 0, 0, kst25, kst25, kst25_state, empty_init, "Konami", "Star Trek: 25th Anniversary (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_SOUND )
+SYST( 1991, ktopgun2, 0, 0, ktopgun2, ktopgun2, ktopgun2_state, empty_init, "Konami", "Top Gun: Second Mission (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_SOUND )
+SYST( 1991, ktmnt3, 0, 0, ktmnt3, ktmnt3, ktmnt3_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles 3: Shredder's Last Stand (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, ktmntbb, 0, 0, ktmntbb, ktmntbb, ktmntbb_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles: Basketball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, kbucky, 0, 0, kbucky, kbucky, kbucky_state, empty_init, "Konami", "Bucky O'Hare (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, empty_init, "Konami", "Garfield (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Nelsonic Game Watch series
-CONS( 1990, nsmb3, 0, 0, nsmb3, gamewatch, gamewatch_state, empty_init, "Nelsonic (licensed from Nintendo)", "Super Mario Bros. 3 (Nelsonic)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
-CONS( 1991, nsmw, 0, 0, nsmw, gamewatch, gamewatch_state, empty_init, "Nelsonic (licensed from Nintendo)", "Super Mario World (Nelsonic)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
-CONS( 1993, nstarfox, 0, 0, nstarfox, nstarfox, nstarfox_state, empty_init, "Nelsonic (licensed from Nintendo)", "Star Fox (Nelsonic)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_SOUND )
+SYST( 1990, nsmb3, 0, 0, nsmb3, gamewatch, gamewatch_state, empty_init, "Nelsonic", "Super Mario Bros. 3 (Nelsonic)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+SYST( 1991, nsmw, 0, 0, nsmw, gamewatch, gamewatch_state, empty_init, "Nelsonic", "Super Mario World (Nelsonic)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+SYST( 1993, nstarfox, 0, 0, nstarfox, nstarfox, nstarfox_state, empty_init, "Nelsonic", "Star Fox (Nelsonic)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_SOUND )
// Tiger 7-xxx/78-xxx models
-CONS( 1989, tgaunt, 0, 0, tgaunt, tgaunt, tgaunt_state, empty_init, "Tiger Electronics (licensed from Tengen)", "Gauntlet (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, trobhood, tgaunt, 0, trobhood, trobhood, tgaunt_state, empty_init, "Tiger Electronics", "Robin Hood (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, tddragon, 0, 0, tddragon, tddragon, tddragon_state, empty_init, "Tiger Electronics (licensed from Technos/Tradewest)", "Double Dragon (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, tkarnov, 0, 0, tkarnov, tkarnov, tkarnov_state, empty_init, "Tiger Electronics (licensed from Data East)", "Karnov (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, tvindictr, 0, 0, tvindictr, tvindictr, tvindictr_state, empty_init, "Tiger Electronics (licensed from Tengen)", "Vindicators (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, tgaiden, 0, 0, tgaiden, tgaiden, tgaiden_state, empty_init, "Tiger Electronics (licensed from Tecmo)", "Ninja Gaiden (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1989, tbatman, 0, 0, tbatman, tbatman, tbatman_state, empty_init, "Tiger Electronics", "Batman (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1990, tsharr2, 0, 0, tsharr2, tsharr2, tsharr2_state, empty_init, "Tiger Electronics (licensed from Sega)", "Space Harrier II (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1990, tstrider, 0, 0, tstrider, tstrider, tstrider_state, empty_init, "Tiger Electronics (licensed from Capcom)", "Strider (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1990, tgoldnaxe, 0, 0, tgoldnaxe, tgoldnaxe, tgoldnaxe_state, empty_init, "Tiger Electronics (licensed from Sega)", "Golden Axe (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1990, trobocop2, 0, 0, trobocop2, trobocop2, trobocop2_state, empty_init, "Tiger Electronics", "Robocop 2 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, trockteer, trobocop2, 0, trockteer, trockteer, trobocop2_state, empty_init, "Tiger Electronics", "The Rocketeer (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1990, taltbeast, 0, 0, taltbeast, taltbeast, taltbeast_state, empty_init, "Tiger Electronics (licensed from Sega)", "Altered Beast (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1990, tsf2010, 0, 0, tsf2010, tsf2010, tsf2010_state, empty_init, "Tiger Electronics (licensed from Capcom)", "Street Fighter 2010 - The Final Fight (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, tswampt, 0, 0, tswampt, tswampt, tswampt_state, empty_init, "Tiger Electronics", "Swamp Thing (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, tspidman, 0, 0, tspidman, tspidman, tspidman_state, empty_init, "Tiger Electronics", "Spider-Man (Tiger, 1991 version)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, txmen, 0, 0, txmen, txmen, txmen_state, empty_init, "Tiger Electronics", "X-Men (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, tddragon3, 0, 0, tddragon3, tddragon3, tddragon3_state, empty_init, "Tiger Electronics (licensed from Technos)", "Double Dragon 3 - The Rosetta Stone (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, tflash, 0, 0, tflash, tflash, tflash_state, empty_init, "Tiger Electronics", "The Flash (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, tmchammer, 0, 0, tmchammer, tmchammer, tmchammer_state, empty_init, "Tiger Electronics", "MC Hammer: U Can't Touch This (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, tbtoads, 0, 0, tbtoads, tbtoads, tbtoads_state, empty_init, "Tiger Electronics (licensed from Rare/Tradewest)", "Battletoads (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1991, thook, 0, 0, thook, thook, thook_state, empty_init, "Tiger Electronics", "Hook (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, tbttf, 0, 0, tbttf, tbttf, tbttf_state, empty_init, "Tiger Electronics", "Back to the Future (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, taddams, 0, 0, taddams, taddams, taddams_state, empty_init, "Tiger Electronics", "The Addams Family (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, thalone, 0, 0, thalone, thalone, thalone_state, empty_init, "Tiger Electronics", "Home Alone (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, txmenpx, 0, 0, txmenpx, txmenpx, txmenpx_state, empty_init, "Tiger Electronics", "X-Men - Project X (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, thalone2, 0, 0, thalone2, thalone2, thalone2_state, empty_init, "Tiger Electronics", "Home Alone 2 - Lost in New York (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, tsonic, 0, 0, tsonic, tsonic, tsonic_state, empty_init, "Tiger Electronics (licensed from Sega)", "Sonic The Hedgehog (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, trobocop3, 0, 0, trobocop3, trobocop3, trobocop3_state, empty_init, "Tiger Electronics", "Robocop 3 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tdummies, 0, 0, tdummies, tdummies, tdummies_state, empty_init, "Tiger Electronics", "The Incredible Crash Dummies (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tsfight2, 0, 0, tsfight2, tsfight2, tsfight2_state, empty_init, "Tiger Electronics (licensed from Capcom)", "Street Fighter II (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1992, twworld, 0, 0, twworld, twworld, twworld_state, empty_init, "Tiger Electronics", "Wayne's World (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tjpark, 0, 0, tjpark, tjpark, tjpark_state, empty_init, "Tiger Electronics", "Jurassic Park (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tsonic2, 0, 0, tsonic2, tsonic2, tsonic2_state, empty_init, "Tiger Electronics (licensed from Sega)", "Sonic The Hedgehog 2 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tsddragon, 0, 0, tsddragon, tsddragon, tsddragon_state, empty_init, "Tiger Electronics (licensed from Technos)", "Super Double Dragon (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tdennis, 0, 0, tdennis, tdennis, tdennis_state, empty_init, "Tiger Electronics", "Dennis the Menace (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tnmarebc, 0, 0, tnmarebc, tnmarebc, tnmarebc_state, empty_init, "Tiger Electronics", "Nightmare Before Christmas (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // note: title has no "The"
-CONS( 1993, ttransf2, 0, 0, ttransf2, ttransf2, ttransf2_state, empty_init, "Tiger Electronics", "Transformers - Generation 2 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1994, topaliens, 0, 0, topaliens, topaliens, topaliens_state, empty_init, "Tiger Electronics", "Operation: Aliens (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1993, tmkombat, 0, 0, tmkombat, tmkombat, tmkombat_state, empty_init, "Tiger Electronics (licensed from Midway)", "Mortal Kombat (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1994, tshadow, 0, 0, tshadow, tshadow, tshadow_state, empty_init, "Tiger Electronics", "The Shadow (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1994, tskelwarr, 0, 0, tskelwarr, tskelwarr, tskelwarr_state, empty_init, "Tiger Electronics", "Skeleton Warriors - The Dark Crusade (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1995, tbatfor, 0, 0, tbatfor, tbatfor, tbatfor_state, empty_init, "Tiger Electronics", "Batman Forever - Double Dose of Doom (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1995, tjdredd, 0, 0, tjdredd, tjdredd, tjdredd_state, empty_init, "Tiger Electronics", "Judge Dredd (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1995, tapollo13, 0, 0, tapollo13, tapollo13, tapollo13_state, empty_init, "Tiger Electronics", "Apollo 13 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1995, tgoldeye, 0, 0, tgoldeye, tgoldeye, tgoldeye_state, empty_init, "Tiger Electronics", "007: GoldenEye (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1996, tkazaam, 0, 0, tkazaam, tkazaam, tkazaam_state, empty_init, "Tiger Electronics", "Kazaam (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1996, tsjam, 0, 0, tsjam, tsjam, tsjam_state, empty_init, "Tiger Electronics", "Space Jam (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1996, tinday, 0, 0, tinday, tinday, tinday_state, empty_init, "Tiger Electronics", "Independence Day (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, tgaunt, 0, 0, tgaunt, tgaunt, tgaunt_state, empty_init, "Tiger Electronics", "Gauntlet (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, tddragon, 0, 0, tddragon, tddragon, tddragon_state, empty_init, "Tiger Electronics", "Double Dragon (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, tsimquest, 0, 0, tsimquest, tsimquest, tsimquest_state, empty_init, "Tiger Electronics", "Castlevania II: Simon's Quest (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1988, tkarnov, 0, 0, tkarnov, tkarnov, tkarnov_state, empty_init, "Tiger Electronics", "Karnov (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, tvindictr, 0, 0, tvindictr, tvindictr, tvindictr_state, empty_init, "Tiger Electronics", "Vindicators (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, tgaiden, 0, 0, tgaiden, tgaiden, tgaiden_state, empty_init, "Tiger Electronics", "Ninja Gaiden (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, tddragon2, 0, 0, tddragon2, tddragon2, tddragon2_state, empty_init, "Tiger Electronics", "Double Dragon II: The Revenge (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1989, tbatman, 0, 0, tbatman, tbatman, tbatman_state, empty_init, "Tiger Electronics", "Batman (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, tsharr2, 0, 0, tsharr2, tsharr2, tsharr2_state, empty_init, "Tiger Electronics", "Space Harrier II (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, tstrider, 0, 0, tstrider, tstrider, tstrider_state, empty_init, "Tiger Electronics", "Strider (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, tgoldnaxe, 0, 0, tgoldnaxe, tgoldnaxe, tgoldnaxe_state, empty_init, "Tiger Electronics", "Golden Axe (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, trobocop2, 0, 0, trobocop2, trobocop2, trobocop2_state, empty_init, "Tiger Electronics", "Robocop 2 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1990, taltbeast, 0, 0, taltbeast, taltbeast, taltbeast_state, empty_init, "Tiger Electronics", "Altered Beast (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tmegaman3, 0, 0, tmegaman3, tmegaman3, tmegaman3_state, empty_init, "Tiger Electronics", "Mega Man 3 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tsf2010, 0, 0, tsf2010, tsf2010, tsf2010_state, empty_init, "Tiger Electronics", "Street Fighter 2010: The Final Fight (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tswampt, 0, 0, tswampt, tswampt, tswampt_state, empty_init, "Tiger Electronics", "Swamp Thing (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tspidman, 0, 0, tspidman, tspidman, tspidman_state, empty_init, "Tiger Electronics", "Spider-Man (Tiger, 1991 version)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, txmen, 0, 0, txmen, txmen, txmen_state, empty_init, "Tiger Electronics", "X-Men (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tddragon3, 0, 0, tddragon3, tddragon3, tddragon3_state, empty_init, "Tiger Electronics", "Double Dragon 3: The Rosetta Stone (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tflash, 0, 0, tflash, tflash, tflash_state, empty_init, "Tiger Electronics", "The Flash (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, trobhood, tgaunt, 0, trobhood, trobhood, trobhood_state, empty_init, "Tiger Electronics", "Robin Hood (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tpitfight, 0, 0, tpitfight, tpitfight, tpitfight_state, empty_init, "Tiger Electronics", "Pit-Fighter (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, trockteer, trobocop2, 0, trockteer, trockteer, trockteer_state, empty_init, "Tiger Electronics", "The Rocketeer (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tmchammer, 0, 0, tmchammer, tmchammer, tmchammer_state, empty_init, "Tiger Electronics", "MC Hammer: U Can't Touch This (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, tbtoads, 0, 0, tbtoads, tbtoads, tbtoads_state, empty_init, "Tiger Electronics", "Battletoads (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1991, thook, 0, 0, thook, thook, thook_state, empty_init, "Tiger Electronics", "Hook (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, tbttf, 0, 0, tbttf, tbttf, tbttf_state, empty_init, "Tiger Electronics", "Back to the Future (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, taddams, 0, 0, taddams, taddams, taddams_state, empty_init, "Tiger Electronics", "The Addams Family (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, thalone, 0, 0, thalone, thalone, thalone_state, empty_init, "Tiger Electronics", "Home Alone (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, tgaiden3, 0, 0, tgaiden3, tgaiden3, tgaiden3_state, empty_init, "Tiger Electronics", "Ninja Gaiden III (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, txmenpx, 0, 0, txmenpx, txmenpx, txmenpx_state, empty_init, "Tiger Electronics", "X-Men: Project X (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, thalone2, 0, 0, thalone2, thalone2, thalone2_state, empty_init, "Tiger Electronics", "Home Alone 2: Lost in New York (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, tsonic, 0, 0, tsonic, tsonic, tsonic_state, empty_init, "Tiger Electronics", "Sonic The Hedgehog (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, trobocop3, 0, 0, trobocop3, trobocop3, trobocop3_state, empty_init, "Tiger Electronics", "Robocop 3 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tdummies, 0, 0, tdummies, tdummies, tdummies_state, empty_init, "Tiger Electronics", "The Incredible Crash Dummies (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tsfight2, 0, 0, tsfight2, tsfight2, tsfight2_state, empty_init, "Tiger Electronics", "Street Fighter II (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, twworld, 0, 0, twworld, twworld, twworld_state, empty_init, "Tiger Electronics", "Wayne's World (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tjpark, 0, 0, tjpark, tjpark, tjpark_state, empty_init, "Tiger Electronics", "Jurassic Park (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tsonic2, 0, 0, tsonic2, tsonic2, tsonic2_state, empty_init, "Tiger Electronics", "Sonic The Hedgehog 2 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tsddragon, 0, 0, tsddragon, tsddragon, tsddragon_state, empty_init, "Tiger Electronics", "Super Double Dragon (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tdennis, 0, 0, tdennis, tdennis, tdennis_state, empty_init, "Tiger Electronics", "Dennis the Menace (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tnmarebc, 0, 0, tnmarebc, tnmarebc, tnmarebc_state, empty_init, "Tiger Electronics", "Nightmare Before Christmas (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) // note: title has no "The"
+SYST( 1993, ttransf2, 0, 0, ttransf2, ttransf2, ttransf2_state, empty_init, "Tiger Electronics", "Transformers: Generation 2 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, topaliens, 0, 0, topaliens, topaliens, topaliens_state, empty_init, "Tiger Electronics", "Operation: Aliens (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1993, tmkombat, 0, 0, tmkombat, tmkombat, tmkombat_state, empty_init, "Tiger Electronics", "Mortal Kombat (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1994, tshadow, 0, 0, tshadow, tshadow, tshadow_state, empty_init, "Tiger Electronics", "The Shadow (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1994, tskelwarr, 0, 0, tskelwarr, tskelwarr, tskelwarr_state, empty_init, "Tiger Electronics", "Skeleton Warriors: The Dark Crusade (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1995, tbatfor, 0, 0, tbatfor, tbatfor, tbatfor_state, empty_init, "Tiger Electronics", "Batman Forever: Double Dose of Doom (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1995, tjdredd, 0, 0, tjdredd, tjdredd, tjdredd_state, empty_init, "Tiger Electronics", "Judge Dredd (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1995, tapollo13, 0, 0, tapollo13, tapollo13, tapollo13_state, empty_init, "Tiger Electronics", "Apollo 13 (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1996, tgoldeye, 0, 0, tgoldeye, tgoldeye, tgoldeye_state, empty_init, "Tiger Electronics", "007: GoldenEye (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1996, tkazaam, 0, 0, tkazaam, tkazaam, tkazaam_state, empty_init, "Tiger Electronics", "Kazaam (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1996, tsjam, 0, 0, tsjam, tsjam, tsjam_state, empty_init, "Tiger Electronics", "Space Jam (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1996, tinday, 0, 0, tinday, tinday, tinday_state, empty_init, "Tiger Electronics", "Independence Day (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Tiger 72-xxx models
-CONS( 1992, tbatmana, 0, 0, tbatmana, tbatmana, tbatmana_state, empty_init, "Tiger Electronics", "Batman: The Animated Series (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1992, tbatmana, 0, 0, tbatmana, tbatmana, tbatmana_state, empty_init, "Tiger Electronics", "Batman: The Animated Series (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1994, tmigmax, 0, 0, tmigmax, tmigmax, tmigmax_state, empty_init, "Tiger Electronics", "Mighty Max (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1995, tgargnf, 0, 0, tgargnf, tgargnf, tgargnf_state, empty_init, "Tiger Electronics", "Gargoyles: Night Flight (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1996, tsuperman, tgargnf, 0, tsuperman, tsuperman, tsuperman_state, empty_init, "Tiger Electronics", "Superman (Tiger)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Tronica Game Clock series
-CONS( 1983, trshutvoy, 0, 0, trshutvoy, trshutvoy, trshutvoy_state, empty_init, "Tronica", "Shuttle Voyage", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, tigarden, trshutvoy, 0, tigarden, trshutvoy, trshutvoy_state, empty_init, "Tronica", "Thief in Garden", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, trsrescue, 0, 0, trsrescue, trsrescue, trsrescue_state, empty_init, "Tronica", "Space Rescue", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1983, trthuball, trsrescue, 0, trthuball, trsrescue, trsrescue_state, empty_init, "Tronica", "Thunder Ball (Tronica)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, trspacmis, 0, 0, trspacmis, trspacmis, trspacmis_state, empty_init, "Tronica", "Space Mission (Tronica)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
-CONS( 1982, trspider, trspacmis, 0, trspider, trspacmis, trspacmis_state, empty_init, "Tronica", "Spider (Tronica)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, trshutvoy, 0, 0, trshutvoy, trshutvoy, trshutvoy_state, empty_init, "Tronica", "Shuttle Voyage", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, tigarden, trshutvoy, 0, tigarden, trshutvoy, trshutvoy_state, empty_init, "Tronica", "Thief in Garden", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, trsrescue, 0, 0, trsrescue, trsrescue, trsrescue_state, empty_init, "Tronica", "Space Rescue", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, trthuball, trsrescue, 0, trthuball, trsrescue, trsrescue_state, empty_init, "Tronica", "Thunder Ball (Tronica)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1983, trsgkeep, 0, 0, trsgkeep, trsgkeep, trsgkeep_state, empty_init, "Tronica", "Super Goal Keeper", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, trspacmis, 0, 0, trspacmis, trspacmis, trspacmis_state, empty_init, "Tronica", "Space Mission (Tronica)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+SYST( 1982, trspider, trspacmis, 0, trspider, trspacmis, trspacmis_state, empty_init, "Tronica", "Spider (Tronica)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// misc
-CONS( 1989, nummunch, 0, 0, nummunch, nummunch, nummunch_state, empty_init, "VTech", "Electronic Number Muncher", MACHINE_SUPPORTS_SAVE )
+SYST( 1989, nummunch, 0, 0, nummunch, nummunch, nummunch_state, empty_init, "VTech", "Electronic Number Muncher", MACHINE_SUPPORTS_SAVE )