diff options
Diffstat (limited to 'src/mame/handheld/hh_sm510.cpp')
-rw-r--r-- | src/mame/handheld/hh_sm510.cpp | 3799 |
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 ) |