diff options
Diffstat (limited to 'src/mame/drivers/hh_sm510.cpp')
-rw-r--r-- | src/mame/drivers/hh_sm510.cpp | 8915 |
1 files changed, 0 insertions, 8915 deletions
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp deleted file mode 100644 index f5db6ec9c35..00000000000 --- a/src/mame/drivers/hh_sm510.cpp +++ /dev/null @@ -1,8915 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:hap, Henrik Algestam -// thanks-to:Sean Riddle, Igor, Lee Robson -/*************************************************************************** - -Sharp SM5xx family handhelds. -List of child drivers: -- rzone: Tiger R-Zone - -The LCD screen graphics are provided internally with an SVG file. -MAME external artwork is recommended for the backgrounds inlays. - -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. - -TODO: -- improve display decay simulation? but SVG doesn't support setting brightness - per segment, adding pwm_display_device right now has no added value -- improve/redo SVGs of: gnw_egg, exospace -- confirm gnw_egg rom (now using gnw_mmouse rom, but pretty confident that it's - the same) -- 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) -- dump/add purple version of gnw_judge -- dump/add CN-07 version of gnw_helmet -- 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) - verification is wanted for: gnw_bfightn, gnw_bjack, gnw_bsweep, gnw_climbern, - gnw_dkcirc, gnw_dkjrp, gnw_gcliff, gnw_mariotj, gnw_mbaway, gnw_mmousep, - gnw_sbuster, gnw_zelda - -**************************************************************************** - -Misc Nintendo Game & Watch notes: - -Trivia: Most of the Nintendo G&W have built-in cheats, likely kept in by -Nintendo to test the game. These were not accessible to users of course, -but for the sake of fun they're available on MAME. - -BTANB: On some of the earlier G&W games, eg. gnw_fire, gnw_mmouse, gnw_pchute, -gnw_popeye, the controls still work after game over, this happens on the real -thing too. - -Game list (* denotes not emulated yet) - -Serial Series MCU Title ---------------------------------------------- -AC-01 s SM5A Ball (aka Toss-Up) -FL-02 s SM5A Flagman (aka Flag Man) -MT-03 s SM5A Vermin (aka The Exterminator) -RC-04 s SM5A Fire (aka Fireman Fireman) -IP-05 s SM5A Judge -MN-06 g SM5A Manhole -CN-07 g SM5A Helmet (aka Headache) -LN-08 g SM5A Lion -PR-21 ws SM5A Parachute -OC-22 ws SM5A Octopus -PP-23 ws SM5A Popeye -FP-24 ws SM5A Chef -MC-25 ws SM5A Mickey Mouse -EG-26 ws SM5A Egg (near-certainly same ROM as MC-25, but LCD differs) -FR-27 ws SM5A Fire -TL-28 ws SM510 Turtle Bridge -ID-29 ws SM510 Fire Attack -SP-30 ws SM510 Snoopy Tennis -OP-51 ms SM510 Oil Panic -DK-52 ms SM510 Donkey Kong -DM-53 ms SM510 Mickey & Donald -GH-54 ms SM510 Green House -JR-55 ms SM510 Donkey Kong II -MW-56 ms SM510 Mario Bros. -LP-57 ms SM510 Rain Shower -TC-58 ms SM510 Life Boat -PB-59* ms SM511? Pinball -BJ-60 ms SM512 Black Jack -MG-61 ms SM510 Squish -BD-62 ms SM512 Bomb Sweeper -JB-63 ms SM511 Safe Buster -MV-64 ms SM512 Gold Cliff -ZL-65 ms SM512 Zelda -CJ-71* tt SM511? Donkey Kong Jr. -CM-72* tt SM511? Mario's Cement Factory -SM-73* tt SM511? Snoopy -PG-74* tt SM511? Popeye -SM-91* p SM511? Snoopy (assume same ROM & LCD as tabletop version) -PG-92* p SM511? Popeye " -CJ-93 p SM511 Donkey Kong Jr. " -TB-94 p SM511 Mario's Bombs Away -DC-95 p SM511 Mickey Mouse -MK-96 p SM511 Donkey Kong Circus (same ROM as DC-95, LCD is different) -DJ-101 nws SM510 Donkey Kong Jr. -ML-102 nws SM510 Mario's Cement Factory -NH-103 nws SM510 Manhole -TF-104 nws SM510 Tropical Fish -YM-105 nws SM511 Super Mario Bros. -DR-106 nws SM511 Climber -BF-107 nws SM511 Balloon Fight -MB-108 nws SM511 Mario The Juggler -BU-201 sc SM510 Spitball Sparky -UD-202* sc SM510? Crab Grab -BX-301 mvs SM511 Boxing (aka Punch Out) -AK-302* mvs SM511? Donkey Kong 3 -HK-303* mvs SM511? Donkey Kong Hockey -YM-801 cs SM511 Super Mario Bros. (assume same ROM as nws version) -DR-802 cs SM511 Climber " -BF-803 cs SM511 Balloon Fight " -YM-901-S* x SM511 Super Mario Bros. " - -RGW-001 (2010 Ball remake) is on different hardware, ATmega169PV MCU. -The "Mini Classics" keychains are by Nelsonic, not Nintendo. - -***************************************************************************/ - -#include "emu.h" -#include "includes/hh_sm510.h" - -#include "cpu/sm510/sm500.h" -#include "screen.h" -#include "speaker.h" - -// internal artwork -#include "gnw_dualv.lh" -#include "gnw_dualh.lh" - -//#include "hh_sm510_test.lh" // common test-layout - use external artwork -//#include "hh_sm500_test.lh" // " - - -// machine start/reset - -void hh_sm510_state::machine_start() -{ - // resolve handlers - m_out_x.resolve(); - - // determine number of input lines (set it in the subclass constructor if different) - if (m_inp_lines == 0 && m_inp_fixed < 0) - { - for (; m_inputs[m_inp_lines] != nullptr; m_inp_lines++) { ; } - - // when last input line is fixed(GND) - if (m_inp_fixed == -2) - { - m_inp_lines--; - m_inp_fixed = m_inp_lines; - } - } - - // 1kHz display decay ticks - m_display_decay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(hh_sm510_state::display_decay_tick),this)); - m_display_decay_timer->adjust(attotime::from_hz(1024), 0, attotime::from_hz(1024)); - - // zerofill - m_inp_mux = 0; - m_speaker_data = 0; - m_s = 0; - m_r = 0; - m_display_x_len = 0; - m_display_y_len = 0; - m_display_z_len = 0; - memset(m_display_state, 0, sizeof(m_display_state)); - memset(m_display_decay, 0, sizeof(m_display_decay)); - - // register for savestates - save_item(NAME(m_inp_mux)); - save_item(NAME(m_inp_lines)); - save_item(NAME(m_inp_fixed)); - save_item(NAME(m_speaker_data)); - save_item(NAME(m_s)); - save_item(NAME(m_r)); - - save_item(NAME(m_display_x_len)); - save_item(NAME(m_display_y_len)); - save_item(NAME(m_display_z_len)); - save_item(NAME(m_display_state)); - save_item(NAME(m_display_decay)); - save_item(NAME(m_decay_pivot)); - save_item(NAME(m_decay_len)); -} - -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 - -TIMER_CALLBACK_MEMBER(hh_sm510_state::display_decay_tick) -{ - u8 z_mask = (1 << m_display_z_len) - 1; - u8 zx_len = 1 << (m_display_x_len + m_display_z_len); - - for (int zx = 0; zx < zx_len; zx++) - { - for (int y = 0; y < m_display_y_len; y++) - { - // delay lcd segment on/off state - if (m_display_state[zx] >> y & 1) - { - if (m_display_decay[y][zx] < (m_decay_pivot + m_decay_len)) - m_display_decay[y][zx]++; - } - else if (m_display_decay[y][zx] > 0) - m_display_decay[y][zx]--; - u8 active_state = (m_display_decay[y][zx] < m_decay_pivot) ? 0 : 1; - - // SM510 series: output to x.y.z, where: - // x = group a/b/bs/c (0/1/2/3) - // y = segment 1-16 (0-15) - // z = common H1-H4 (0-3) - - // SM500 series: output to x.y.z, where: - // x = O group (0-*) - // y = O segment 1-4 (0-3) - // z = common H1/H2 (0/1) - m_out_x[zx >> m_display_z_len][y][zx & z_mask] = active_state; - } - } -} - -void hh_sm510_state::set_display_size(u8 x, u8 y, u8 z) -{ - // x = groups(in bits) - // y = number of segments per group - // z = commons(in bits) - m_display_x_len = x; - m_display_y_len = y; - m_display_z_len = z; -} - -WRITE16_MEMBER(hh_sm510_state::sm510_lcd_segment_w) -{ - set_display_size(2, 16, 2); - m_display_state[offset] = data; -} - -WRITE16_MEMBER(hh_sm510_state::sm500_lcd_segment_w) -{ - set_display_size(4, 4, 1); - m_display_state[offset] = data; -} - - -// generic input handlers - usually S output is input mux, and K input for buttons - -#define PORT_CHANGED_CB(x) \ - PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, x, 0) - -u8 hh_sm510_state::read_inputs(int columns, int fixed) -{ - u8 ret = 0; - - // read selected input rows - for (int i = 0; i < columns; i++) - if (m_inp_mux >> i & 1) - ret |= m_inputs[i]->read(); - - if (fixed >= 0) - ret |= m_inputs[fixed]->read(); - - return ret; -} - -void hh_sm510_state::update_k_line() -{ - // this is necessary because the MCU can wake up on K input activity - m_maincpu->set_input_line(SM510_INPUT_LINE_K, input_r(machine().dummy_space(), 0, 0xff) ? ASSERT_LINE : CLEAR_LINE); -} - -INPUT_CHANGED_MEMBER(hh_sm510_state::input_changed) -{ - update_k_line(); -} - -WRITE8_MEMBER(hh_sm510_state::input_w) -{ - m_inp_mux = data; - update_k_line(); -} - -READ8_MEMBER(hh_sm510_state::input_r) -{ - return read_inputs(m_inp_lines, m_inp_fixed); -} - -INPUT_CHANGED_MEMBER(hh_sm510_state::acl_button) -{ - // ACL button is directly tied to MCU ACL pin - m_maincpu->set_input_line(SM510_INPUT_LINE_ACL, newval ? ASSERT_LINE : CLEAR_LINE); -} - - -// other generic output handlers - -WRITE8_MEMBER(hh_sm510_state::piezo_r1_w) -{ - // R1 to piezo (SM511 R pin is melody output) - m_speaker->level_w(data & 1); -} - -WRITE8_MEMBER(hh_sm510_state::piezo_r2_w) -{ - // R2 to piezo - m_speaker->level_w(data >> 1 & 1); -} - -WRITE8_MEMBER(hh_sm510_state::piezo_input_w) -{ - // R1 to piezo, other to input mux - piezo_r1_w(space, 0, data & 1); - input_w(space, 0, data >> 1); -} - -WRITE8_MEMBER(hh_sm510_state::piezo2bit_r1_w) -{ - // R1(+S1) to piezo - m_speaker_data = (m_speaker_data & ~1) | (data & 1); - m_speaker->level_w(m_speaker_data); -} - -WRITE8_MEMBER(hh_sm510_state::piezo2bit_input_w) -{ - // S1(+R1) to piezo, other to input mux - m_speaker_data = (m_speaker_data & ~2) | (data << 1 & 2); - m_speaker->level_w(m_speaker_data); - input_w(space, 0, data >> 1); -} - - - -/*************************************************************************** - - 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); }); -} - -void hh_sm510_state::mcfg_cpu_sm5a(machine_config &config) -{ - SM5A(config, m_maincpu); - mcfg_cpu_common(config); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); -} - -void hh_sm510_state::mcfg_cpu_kb1013vk12(machine_config &config) -{ - KB1013VK12(config, m_maincpu); - mcfg_cpu_common(config); - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); -} - -void hh_sm510_state::mcfg_cpu_sm510(machine_config &config) -{ - SM510(config, m_maincpu); - mcfg_cpu_common(config); - m_maincpu->set_r_mask_option(2); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); -} - -void hh_sm510_state::mcfg_cpu_sm511(machine_config &config) -{ - SM511(config, m_maincpu); - mcfg_cpu_common(config); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); -} - -void hh_sm510_state::mcfg_cpu_sm512(machine_config &config) -{ - SM512(config, m_maincpu); - mcfg_cpu_common(config); - m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); - m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w)); -} - -void hh_sm510_state::mcfg_svg_screen(machine_config &config, u16 width, u16 height, const char *tag) -{ - screen_device &screen(SCREEN(config, tag, SCREEN_TYPE_SVG)); - screen.set_refresh_hz(60); - screen.set_size(width, height); - screen.set_visarea_full(); -} - -void hh_sm510_state::mcfg_sound_r1(machine_config &config) -{ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker); - m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); - - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); -} - - -// common presets - -void hh_sm510_state::sm5a_common(machine_config &config, u16 width, u16 height) -{ - mcfg_cpu_sm5a(config); - mcfg_sound_r1(config); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); - mcfg_svg_screen(config, width, height); -} - -void hh_sm510_state::kb1013vk12_common(machine_config &config, u16 width, u16 height) -{ - mcfg_cpu_kb1013vk12(config); - mcfg_sound_r1(config); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); - mcfg_svg_screen(config, width, height); -} - -void hh_sm510_state::sm510_common(machine_config &config, u16 width, u16 height) -{ - mcfg_cpu_sm510(config); - mcfg_sound_r1(config); - mcfg_svg_screen(config, width, height); -} - -void hh_sm510_state::sm511_common(machine_config &config, u16 width, u16 height) -{ - mcfg_cpu_sm511(config); - mcfg_sound_r1(config); - mcfg_svg_screen(config, width, height); -} - - -// deviations - -// multi-screen - -void hh_sm510_state::sm510_dualh(machine_config &config, u16 leftwidth, u16 leftheight, u16 rightwidth, u16 rightheight) -{ - mcfg_cpu_sm510(config); - mcfg_sound_r1(config); - mcfg_svg_screen(config, leftwidth, leftheight, "screen_left"); - mcfg_svg_screen(config, rightwidth, rightheight, "screen_right"); - - config.set_default_layout(layout_gnw_dualh); -} - -void hh_sm510_state::dualv_common(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) -{ - mcfg_sound_r1(config); - mcfg_svg_screen(config, topwidth, topheight, "screen_top"); - mcfg_svg_screen(config, botwidth, botheight, "screen_bottom"); - - config.set_default_layout(layout_gnw_dualv); -} - -void hh_sm510_state::sm510_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) -{ - mcfg_cpu_sm510(config); - dualv_common(config, topwidth, topheight, botwidth, botheight); -} - -void hh_sm510_state::sm511_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) -{ - mcfg_cpu_sm511(config); - dualv_common(config, topwidth, topheight, botwidth, botheight); -} - -void hh_sm510_state::sm512_dualv(machine_config &config, u16 topwidth, u16 topheight, u16 botwidth, u16 botheight) -{ - mcfg_cpu_sm512(config); - dualv_common(config, topwidth, topheight, botwidth, botheight); -} - - -// Tiger (SM510 R mask is direct, BA/B pins always connected) - -void hh_sm510_state::sm510_tiger(machine_config &config, u16 width, u16 height) -{ - sm510_common(config, width, height); - - m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); -} - -void hh_sm510_state::sm511_tiger1bit(machine_config &config, u16 width, u16 height) -{ - sm511_common(config, width, height); - - m_maincpu->read_ba().set_ioport("BA"); - m_maincpu->read_b().set_ioport("B"); -} - -void hh_sm510_state::sm511_tiger2bit(machine_config &config, u16 width, u16 height) -{ - sm511_tiger1bit(config, width, height); - - m_maincpu->write_s().set(FUNC(hh_sm510_state::piezo2bit_input_w)); - m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo2bit_r1_w)); - - // R via 120K resistor, S1 via 39K resistor (eg. tsonic, tsonic2, tbatmana) - static const s16 speaker_levels[] = { 0, 0x7fff/3*1, 0x7fff/3*2, 0x7fff }; - m_speaker->set_levels(4, speaker_levels); -} - - - -/*************************************************************************** - - Minidrivers (subclass, I/O, Inputs, Machine Config, ROM Defs) - -***************************************************************************/ - -namespace { - -/*************************************************************************** - - Nintendo Game & Watch: Ball (model AC-01) - * PCB label AC-01 - * Sharp SM5A label AC-01 5009 (no decap) - * lcd screen with custom segments, 1-bit sound - - In the USA, it was distributed as Toss-Up by Mego under their Time-Out series. - -***************************************************************************/ - -class gnw_ball_state : public hh_sm510_state -{ -public: - gnw_ball_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void gnw_ball(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_ball ) - PORT_START("IN.0") - 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_CONFNAME( 0x08, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB -- disable after boot - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x08, DEF_STR( On ) ) - - PORT_START("BA") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_ball_state::gnw_ball(machine_config &config) -{ - sm5a_common(config, 1671, 1080); // R option mask confirmed -} - -// roms - -ROM_START( gnw_ball ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ac-01", 0x0000, 0x0740, CRC(ac94e6e4) SHA1(8270cb61f9fbff252eafec411b4c67f0171f8687) ) - - ROM_REGION( 71748, "screen", 0) - ROM_LOAD( "gnw_ball.svg", 0, 71748, CRC(7c116eaf) SHA1(578882af492b8a9f1eb72e06a547c8b574255fb9) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Flagman (model FL-02) - * PCB label FL-02 - * Sharp SM5A label FL-02 2005 (no decap) - * lcd screen with custom segments, 1-bit sound - - In the USA, it was distributed as Flag Man by Mego under their Time-Out series. - -***************************************************************************/ - -class gnw_flagman_state : public hh_sm510_state -{ -public: - gnw_flagman_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_flagman(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_flagman ) - 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_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("1") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("2") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("3") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("4") - - 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_UNUSED ) - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // display test? - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_flagman_state::gnw_flagman(machine_config &config) -{ - sm5a_common(config, 1511, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_flagman ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "fl-02", 0x0000, 0x0740, CRC(cc7a99e4) SHA1(d03d9a6b278bc11df7839708831241b5fa805f69) ) - - ROM_REGION( 56163, "screen", 0) - ROM_LOAD( "gnw_flagman.svg", 0, 56163, CRC(3aa97c65) SHA1(a363e71d371e5c85835cb3a0679760d0aedc75d5) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Vermin (model MT-03) - * PCB label MT-03 - * Sharp SM5A label MT-03 5012 (no decap) - * lcd screen with custom segments, 1-bit sound - - In the USA, it was distributed as The Exterminator by Mego under their Time-Out series. - -***************************************************************************/ - -class gnw_vermin_state : public hh_sm510_state -{ -public: - gnw_vermin_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void gnw_vermin(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_vermin ) - PORT_START("IN.0") - 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_CONFNAME( 0x08, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- disable after boot - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x08, DEF_STR( On ) ) - - PORT_START("BA") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_vermin_state::gnw_vermin(machine_config &config) -{ - sm5a_common(config, 1650, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_vermin ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mt-03", 0x0000, 0x0740, CRC(f8493177) SHA1(d629432ef8e9fbd7bbdc3fbeb45d9bd70d9d571b) ) - - ROM_REGION( 105603, "screen", 0) - ROM_LOAD( "gnw_vermin.svg", 0, 105603, CRC(1bd59ef4) SHA1(099120105e80d4753838ea513ffa784c4690cf5f) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Fire (model RC-04) - * PCB label RC-04 - * Sharp SM5A label RC-04 5103 (no decap) - * lcd screen with custom segments, 1-bit sound - - This is the silver version, there's also a wide screen version. - - In the USA, it was distributed as Fireman Fireman by Mego under their Time-Out series. - -***************************************************************************/ - -class gnw_fires_state : public hh_sm510_state -{ -public: - gnw_fires_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void gnw_fires(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_fires ) - PORT_START("IN.0") - 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_CONFNAME( 0x08, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB -- disable after boot - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x08, DEF_STR( On ) ) - - PORT_START("BA") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_fires_state::gnw_fires(machine_config &config) -{ - sm5a_common(config, 1646, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_fires ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "rc-04", 0x0000, 0x0740, CRC(154ef27d) SHA1(fb65826dfd405ad05fe0f5f947c213214bbd61c0) ) - - ROM_REGION( 102678, "screen", 0) - ROM_LOAD( "gnw_fires.svg", 0, 102678, CRC(4f61f2f8) SHA1(2873629f0e36d3170bc284fa031a9c6181021495) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Judge (model IP-05) - * PCB label IP-05 - * Sharp SM5A label IP-05 5010 (no decap) - * lcd screen with custom segments, 1-bit sound - - The first (green) issue of the game contains a bug where the players are - scored differently when wrongly dodging a win. This issue is fixed in the - second (purple) issue. - -***************************************************************************/ - -class gnw_judge_state : public hh_sm510_state -{ -public: - gnw_judge_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_judge(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_judge ) - 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_16WAY PORT_NAME("P2 Dodge") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("P2 Hit") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("P1 Dodge") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY PORT_NAME("P1 Hit") - - 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") // 2-Player - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A") // 1-Player - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // display test? - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_judge_state::gnw_judge(machine_config &config) -{ - sm5a_common(config, 1647, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_judge ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ip-05", 0x0000, 0x0740, CRC(1b28a834) SHA1(cb8dbbf678ba22c4484d18cc1a6b99c1d34d1951) ) - - ROM_REGION( 105108, "screen", 0) - ROM_LOAD( "gnw_judge.svg", 0, 105108, CRC(7760e82e) SHA1(cfc1f08465ecc8ac3385bcb078268cbbfca9fc41) ) -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) - -***************************************************************************/ - -class gnw_manholeg_state : public hh_sm510_state -{ -public: - gnw_manholeg_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_manholeg(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_manholeg ) - 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_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - 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("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // display test? - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // factory test, unpopulated on PCB - 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 - -void gnw_manholeg_state::gnw_manholeg(machine_config &config) -{ - sm5a_common(config, 1667, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_manholeg ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mh-06", 0x0000, 0x0740, CRC(ae52c425) SHA1(8da8a714ecbdde7d0f257b52a5014993675a5f3f) ) - - ROM_REGION( 125607, "screen", 0) - ROM_LOAD( "gnw_manholeg.svg", 0, 125607, CRC(4b281ff2) SHA1(18f212ab5738756e0841d6afa401a03f7aaddf7b) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Helmet (model CN-07) - * PCB label CN-07 - * Sharp SM5A label CN-17 21ZA (no decap) - * lcd screen with custom segments, 1-bit sound - - In the UK, it was distributed as Headache by CGL. - - MCU label CN-07 is the first version, CN-17 is a bugfix release. - -***************************************************************************/ - -class gnw_helmet_state : public hh_sm510_state -{ -public: - gnw_helmet_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_helmet(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_helmet ) - PORT_START("IN.0") // R2 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // R3 - PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB -- disable after boot - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // " - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // alarm test? - - 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_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_helmet_state::gnw_helmet(machine_config &config) -{ - sm5a_common(config, 1657, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_helmet ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "cn-17", 0x0000, 0x0740, CRC(6d251e2e) SHA1(c61f591514de36fb2270038a6505945564c9f90e) ) - - ROM_REGION( 109404, "screen", 0) - ROM_LOAD( "gnw_helmet.svg", 0, 109404, CRC(0dce1694) SHA1(412e69054b95f17fe08545f3c303c11abbe26304) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Lion (model LN-08) - * PCB label LN-08 - * Sharp SM5A label LN-08 519A (no decap) - * lcd screen with custom segments, 1-bit sound - - BTANB: The game doesn't support simultaneous button presses for the controls, - 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 -{ -public: - gnw_lion_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_lion(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_lion ) - PORT_START("IN.0") // R2 - PORT_CONFNAME( 0x01, 0x00, "Increase Speed (Cheat)") // factory test, unpopulated on PCB -- disable after boot - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // " - PORT_BIT( 0x08, 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_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - 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("B") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // display test? - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_lion_state::gnw_lion(machine_config &config) -{ - sm5a_common(config, 1646, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_lion ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ln-08", 0x0000, 0x0740, CRC(9677681d) SHA1(6f7c960e04b63f1b7d926b598413f4c818b8fe53) ) - - ROM_REGION( 155863, "screen", 0) - ROM_LOAD( "gnw_lion.svg", 0, 155863, CRC(b5a5a4dc) SHA1(49d894d6e1d1fb35cd11f08c7ce30518be89dd0f) ) -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 -{ -public: - gnw_pchute_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_pchute(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_pchute ) - PORT_START("IN.0") // R2 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // R3 - PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- disable after boot - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // " - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // alarm test? - - 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_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_pchute_state::gnw_pchute(machine_config &config) -{ - sm5a_common(config, 1602, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_pchute ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "pr-21", 0x0000, 0x0740, CRC(392b545e) SHA1(e71940cd4cee07ba1e62c1c7d9e9b19410e7232d) ) - - ROM_REGION( 169640, "screen", 0) - ROM_LOAD( "gnw_pchute.svg", 0, 169640, CRC(f30a0b31) SHA1(676989a418ae0dfe6bb1b097640422219c930453) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Octopus (model OC-22) - * PCB label OC-22Y A - * Sharp SM5A label OC-22 204A (no decap) - * lcd screen with custom segments, 1-bit sound - - Also cloned in 1989 by Elektronika(USSR) as Тайны океана (Tayny okeana, export - 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 -{ -public: - gnw_octopus_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_octopus(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_octopus ) - PORT_START("IN.0") // R2 - PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // " - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // " - - PORT_START("IN.1") // R3 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) // alarm test? - - 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_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_octopus_state::gnw_octopus(machine_config &config) -{ - sm5a_common(config, 1586, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_octopus ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "oc-22", 0x0000, 0x0740, CRC(bd27781d) SHA1(07b4feb9265c83b159f96c7e8ee1c61a2cc17dc5) ) - - ROM_REGION( 119827, "screen", 0) - ROM_LOAD( "gnw_octopus.svg", 0, 119827, CRC(efbdaa65) SHA1(42c746bef282176d59f57ddf7328f8d034f4ca02) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Popeye (model PP-23) - * PCB label PP-23 Y - * Sharp SM5A label PP-23 52YD (no decap) - * lcd screen with custom segments, 1-bit sound - - This is the wide screen version, there's also tabletop and panorama versions. - -***************************************************************************/ - -class gnw_popeye_state : public hh_sm510_state -{ -public: - gnw_popeye_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_popeye(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_popeye ) - PORT_START("IN.0") // R2 - PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // reset? - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // alarm test? - - PORT_START("IN.1") // R3 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - 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_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_popeye_state::gnw_popeye(machine_config &config) -{ - sm5a_common(config, 1604, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_popeye ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "pp-23", 0x0000, 0x0740, CRC(49987769) SHA1(ad90659a3ce7169a4df16367c5307435d9f9d956) ) - - ROM_REGION( 218587, "screen", 0) - ROM_LOAD( "gnw_popeye.svg", 0, 218587, CRC(4740bcd5) SHA1(a46ab455f2dd41caabd6c85cfa7dfde70805f157) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Chef (model FP-24) - * PCB label FP-24 - * Sharp SM5A label FP-24 51YB (die label CMS646, ROM ID 74) - * lcd screen with custom segments, 1-bit sound - - In 1989, Elektronika(USSR) released a clone: Весёлый повар (Vesolyy povar, - export version: Merry Cook). This game shares the same ROM, though the graphics - are slightly different. - -***************************************************************************/ - -class gnw_chef_state : public hh_sm510_state -{ -public: - gnw_chef_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void merrycook(machine_config &config); - void gnw_chef(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_chef ) - 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_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- only works after power-on - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_chef_state::gnw_chef(machine_config &config) -{ - sm5a_common(config, 1666, 1080); // assuming same R mask option as merry cook -} - -void gnw_chef_state::merrycook(machine_config & config) -{ - kb1013vk12_common(config, 1679, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_chef ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "fp-24", 0x0000, 0x0740, CRC(2806ab39) SHA1(18261a80eec5bf768bb88b803c598f80e078c71f) ) - - ROM_REGION( 199518, "screen", 0) - ROM_LOAD( "gnw_chef.svg", 0, 199518, CRC(ecc18d28) SHA1(1c0b7dfff71faa4d4395c19a84454870e403f927) ) -ROM_END - -ROM_START( merrycook ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "merrycook.bin", 0x0000, 0x0740, CRC(2806ab39) SHA1(18261a80eec5bf768bb88b803c598f80e078c71f) ) - - ROM_REGION( 144128, "screen", 0) - ROM_LOAD( "merrycook.svg", 0, 144128, CRC(dcd1c073) SHA1(e15bf643f17b7ead37407c985e053e6434683d7c) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Mickey Mouse (model MC-25), Egg (model EG-26) - * PCB label MC-25 EG-26 (yes, both listed) - * Sharp SM5A label MC-25 51YD (no decap) - * lcd screen with custom segments, 1-bit sound - - 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 a 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). - -***************************************************************************/ - -class gnw_mmouse_state : public hh_sm510_state -{ -public: - gnw_mmouse_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void exospace(machine_config &config); - void nupogodi(machine_config &config); - void gnw_egg(machine_config &config); - void gnw_mmouse(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_mmouse ) - 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_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- only works after power-on - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -static INPUT_PORTS_START( exospace ) - PORT_INCLUDE( gnw_mmouse ) - - PORT_MODIFY("BA") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) -INPUT_PORTS_END - -void gnw_mmouse_state::gnw_mmouse(machine_config &config) -{ - sm5a_common(config, 1684, 1080); // R mask option ? -} - -void gnw_mmouse_state::gnw_egg(machine_config &config) -{ - sm5a_common(config, 1694, 1080); // R mask option ? -} - -void gnw_mmouse_state::nupogodi(machine_config &config) -{ - kb1013vk12_common(config, 1715, 1080); // R mask option ? -} - -void gnw_mmouse_state::exospace(machine_config &config) -{ - kb1013vk12_common(config, 1756, 1080); // R mask option ? -} - -// roms - -ROM_START( gnw_mmouse ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mc-25", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) - - ROM_REGION( 181706, "screen", 0) - ROM_LOAD( "gnw_mmouse.svg", 0, 181706, CRC(60cdc76a) SHA1(09755abd16222c1a0fe6c7ebb902706440d3e369) ) -ROM_END - -ROM_START( gnw_egg ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "eg-26", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from MC-25 - - ROM_REGION( 102902, "screen", 0) - ROM_LOAD( "gnw_egg.svg", 0, 102902, BAD_DUMP CRC(dcd92ddf) SHA1(5d6c144a0cb9fb9c58aee965290a5428df90af21) ) -ROM_END - -ROM_START( nupogodi ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "nupogodi.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) - - ROM_REGION( 156488, "screen", 0) - ROM_LOAD( "nupogodi.svg", 0, 156488, CRC(8ae6ec5d) SHA1(28cb05967837e52fc40f088361456e1dcd4ec09f) ) -ROM_END - -ROM_START( exospace ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "exospace.bin", 0x0000, 0x0740, CRC(553e2b09) SHA1(2b74f8437b881fbb62b61f25435a5bfc66872a9a) ) - - ROM_REGION( 66850, "screen", 0) - ROM_LOAD( "exospace.svg", 0, 66850, BAD_DUMP CRC(905e2cf0) SHA1(38181381fb50bc01afe9f5827999636b051c0be0) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Fire (model FR-27) - * PCB label FR-27 - * Sharp SM5A label FR-27 523B (no decap) - * lcd screen with custom segments, 1-bit sound - - This is the wide screen version, there's also a silver version. Doing a - hex-compare between the two, this one seems to be a complete rewrite. - FR-27 is the last G&W on SM5A, they were followed with SM51x. - - In 1989 Elektronika(USSR) released a clone: Космический мост (Kosmicheskiy most, - export version: Space Bridge). This game shares the same ROM, though the - graphics are different. - -***************************************************************************/ - -class gnw_fire_state : public hh_sm510_state -{ -public: - gnw_fire_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void spacebridge(machine_config &config); - void gnw_fire(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_fire ) - PORT_START("IN.0") // R2 - PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x01, DEF_STR( On ) ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // reset? - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // alarm test? - - PORT_START("IN.1") // R3 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) // lcd test? - - 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_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("B") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void gnw_fire_state::gnw_fire(machine_config &config) -{ - sm5a_common(config, 1624, 1080); // R mask option confirmed -} - -void gnw_fire_state::spacebridge(machine_config & config) -{ - kb1013vk12_common(config, 1673, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_fire ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "fr-27", 0x0000, 0x0740, CRC(f4c53ef0) SHA1(6b57120a0f9d2fd4dcd65ad57a5f32def71d905f) ) - - ROM_REGION( 163920, "screen", 0) - ROM_LOAD( "gnw_fire.svg", 0, 163920, CRC(be8a9f05) SHA1(644d8bed6228fa7e2f541b60fcfc1a0d97df0df6) ) -ROM_END - -ROM_START( spacebridge ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "spacebridge.bin", 0x0000, 0x0740, CRC(f4c53ef0) SHA1(6b57120a0f9d2fd4dcd65ad57a5f32def71d905f) ) - - ROM_REGION( 124578, "screen", 0) - ROM_LOAD( "spacebridge.svg", 0, 124578, CRC(913324ef) SHA1(6e72f7f517da754075af11283d71fc8d24ac0529) ) -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 -{ -public: - gnw_tbridge_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - // increase lcd decay: unwanted segments light up - m_decay_pivot = 25; - m_decay_len = 25; - } - - void gnw_tbridge(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_tbridge ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_tbridge_state::gnw_tbridge(machine_config &config) -{ - sm510_common(config, 1587, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_tbridge ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "tl-28", 0x0000, 0x1000, CRC(284e7224) SHA1(b50d7f3a527ffe50771ef55fdf8214929bfa2253) ) - - ROM_REGION( 242944, "screen", 0) - ROM_LOAD( "gnw_tbridge.svg", 0, 242944, CRC(bf66cb38) SHA1(3f19d1e6584062944e56107d47ebe26335d50f42) ) -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 -{ -public: - gnw_fireatk_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_fireatk(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_fireatk ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_fireatk_state::gnw_fireatk(machine_config &config) -{ - sm510_common(config, 1655, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_fireatk ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "id-29", 0x0000, 0x1000, CRC(5f6e8042) SHA1(63afc3acd8a2a996095fa8ba2dfccd48e5214478) ) - - ROM_REGION( 267914, "screen", 0) - ROM_LOAD( "gnw_fireatk.svg", 0, 267914, CRC(f9eea340) SHA1(1fbc224dac447fe3902920ee3f1afc11150b5962) ) -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 -{ -public: - gnw_stennis_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_stennis(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_stennis ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Hit - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_stennis_state::gnw_stennis(machine_config &config) -{ - sm510_common(config, 1581, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_stennis ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "sp-30", 0x0000, 0x1000, CRC(ba1d9504) SHA1(ff601765d88564b1570a59f5b1a4005c7b0fd66c) ) - - ROM_REGION( 228125, "screen", 0) - ROM_LOAD( "gnw_stennis.svg", 0, 228125, CRC(1134ef9a) SHA1(6f35a4d610c952663761f7ccb74c6650752cac77) ) -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 -{ -public: - gnw_opanic_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_opanic(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_opanic ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_opanic_state::gnw_opanic(machine_config &config) -{ - sm510_dualv(config, 1920/2, 1292/2, 1920/2, 1230/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_opanic ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "op-51", 0x0000, 0x1000, CRC(31c288c9) SHA1(4bfd0fba94a9927cefc925db8196b063c5dd9b19) ) - - ROM_REGION( 79771, "screen_top", 0) - ROM_LOAD( "gnw_opanic_top.svg", 0, 79771, CRC(0e1e6485) SHA1(15d5ec48cad65759a50ed624e4161a8f2513f704) ) - - ROM_REGION( 112962, "screen_bottom", 0) - ROM_LOAD( "gnw_opanic_bottom.svg", 0, 112962, CRC(ae4f4f1f) SHA1(97907bea3ca92759a0ea889e80d60d25a701027a) ) -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 -{ -public: - gnw_dkong_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_dkong(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_dkong ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump - - 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_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) 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_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") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_dkong_state::gnw_dkong(machine_config &config) -{ - sm510_dualv(config, 1920/2, 1266/2, 1920/2, 1266/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_dkong ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "dk-52", 0x0000, 0x1000, CRC(5180cbf8) SHA1(5174570a8d6a601226f51e972bac6735535fe11d) ) - - ROM_REGION( 176843, "screen_top", 0) - ROM_LOAD( "gnw_dkong_top.svg", 0, 176843, CRC(16c16b84) SHA1(fa2e54c04366a30b51de024296b9f94c1cb76d68) ) - - ROM_REGION( 145516, "screen_bottom", 0) - ROM_LOAD( "gnw_dkong_bottom.svg", 0, 145516, CRC(2b711e9d) SHA1(0e263020cbe0e8b88bb68e3176630639b518935e) ) -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 -{ -public: - gnw_mickdon_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_mickdon(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_mickdon ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) 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_LEFT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_mickdon_state::gnw_mickdon(machine_config &config) -{ - sm510_dualv(config, 1920/2, 1281/2, 1920/2, 1236/2); // R mask option confirmed - - m_maincpu->write_r().set(FUNC(gnw_mickdon_state::piezo_r2_w)); -} - -// roms - -ROM_START( gnw_mickdon ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "dm-53_565", 0x0000, 0x1000, CRC(e21fc0f5) SHA1(3b65ccf9f98813319410414e11a3231b787cdee6) ) - - ROM_REGION( 126477, "screen_top", 0) - ROM_LOAD( "gnw_mickdon_top.svg", 0, 126477, CRC(11e02fce) SHA1(fe2700711c73940a9488a6d223db4c4e92df4188) ) - - ROM_REGION( 122915, "screen_bottom", 0) - ROM_LOAD( "gnw_mickdon_bottom.svg", 0, 122915, CRC(b8cf63c2) SHA1(2406c9826f94a345ca9641e51fb26088f434960c) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Green House (model GH-54) - * PCB label GH-54 - * Sharp SM510 label GH-54 52ZD (no decap) - * vertical dual lcd screens with custom segments, 1-bit sound - -***************************************************************************/ - -class gnw_ghouse_state : public hh_sm510_state -{ -public: - gnw_ghouse_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_ghouse(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_ghouse ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Spray - - 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_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) 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_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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Invincibility (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_ghouse_state::gnw_ghouse(machine_config &config) -{ - sm510_dualv(config, 1920/2, 1303/2, 1920/2, 1274/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_ghouse ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "gh-54", 0x0000, 0x1000, CRC(4df12b4d) SHA1(708be5fef8dbd9337f5ab35baaca5bdf21e1f36c) ) - - ROM_REGION( 159258, "screen_top", 0) - ROM_LOAD( "gnw_ghouse_top.svg", 0, 159258, CRC(308c9c86) SHA1(e83d114e702b6da3cba4e45bd48edfe9882afac1) ) - - ROM_REGION( 149922, "screen_bottom", 0) - ROM_LOAD( "gnw_ghouse_bottom.svg", 0, 149922, CRC(c07c6bb8) SHA1(7a0d6f38ecdbfcd09ab967417fa9d06b5c5c21e4) ) -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 -{ -public: - gnw_dkong2_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_dkong2(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_dkong2 ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump - - 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_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) 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_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") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_dkong2_state::gnw_dkong2(machine_config &config) -{ - sm510_dualv(config, 1920/2, 1241/2, 1920/2, 1237/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_dkong2 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "jr-55_560", 0x0000, 0x1000, CRC(46aed0ae) SHA1(72f75ccbd84aea094148c872fc7cc1683619a18a) ) - - ROM_REGION( 267462, "screen_top", 0) - ROM_LOAD( "gnw_dkong2_top.svg", 0, 267462, CRC(41bb5414) SHA1(20c7af7c64e12273320029eecc5a33ec65d15bc5) ) - - ROM_REGION( 390601, "screen_bottom", 0) - ROM_LOAD( "gnw_dkong2_bottom.svg", 0, 390601, CRC(3f85bb01) SHA1(8964f02e8372f5d8dd5e8edfe0b79dae31b59b3a) ) -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 -{ -public: - gnw_mario_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_mario(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_mario ) - PORT_START("IN.0") // S1 - 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_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_mario_state::gnw_mario(machine_config &config) -{ - sm510_dualh(config, 2258/2, 1440/2, 2261/2, 1440/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_mario ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mw-56", 0x0000, 0x1000, CRC(385e59da) SHA1(2f79281bdf2f2afca2fb5bd7b9a3beeffc9c4eb7) ) - - ROM_REGION( 154916, "screen_left", 0) - ROM_LOAD( "gnw_mario_left.svg", 0, 154916, CRC(8ea82355) SHA1(ad286039a215dfa0f02bb1caf875d55dedb9b71e) ) - - ROM_REGION( 202902, "screen_right", 0) - ROM_LOAD( "gnw_mario_right.svg", 0, 202902, CRC(cfe8c0ba) SHA1(87cd54a8104e9bb4f266b137b043e32a0c1d9772) ) -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 -{ -public: - gnw_rshower_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_rshower(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_rshower ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // L/R - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - 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("IN.2") // S3 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) 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_LEFT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_rshower_state::gnw_rshower(machine_config &config) -{ - sm510_dualh(config, 2126/2, 1440/2, 2146/2, 1440/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_rshower ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "lp-57", 0x0000, 0x1000, CRC(51a2c5c4) SHA1(d60542e6785ba7b6a44153a66c739787cf670816) ) - - ROM_REGION( 135868, "screen_left", 0) - ROM_LOAD( "gnw_rshower_left.svg", 0, 135868, CRC(806493f1) SHA1(0287fba2c2962aced8156c2ebc4f299c4703acf2) ) - - ROM_REGION( 140445, "screen_right", 0) - ROM_LOAD( "gnw_rshower_right.svg", 0, 140445, CRC(bead097a) SHA1(a3929e0043ff5132fb4cf7a41edece96926f50d2) ) -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 -{ -public: - gnw_lboat_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_lboat(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_lboat ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Invincibility (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_lboat_state::gnw_lboat(machine_config &config) -{ - sm510_dualh(config, 2116/2, 1440/2, 2057/2, 1440/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_lboat ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "tc-58", 0x0000, 0x1000, CRC(1f88f6a2) SHA1(22fd62127dda43a0ada2fe89b0518eec8cbe2a25) ) - - ROM_REGION( 156441, "screen_left", 0) - ROM_LOAD( "gnw_lboat_left.svg", 0, 156441, CRC(a1727890) SHA1(b1dd24f99496d215a3083a138fc3fff923303d34) ) - - ROM_REGION( 155258, "screen_right", 0) - ROM_LOAD( "gnw_lboat_right.svg", 0, 155258, CRC(76619ad3) SHA1(b44d57e2f4a2cecf98e402adf802d16c5934d301) ) -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 -{ -public: - gnw_bjack_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_bjack(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_bjack ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Double Down") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Bet x10 / Hit") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Bet x1 / Stand") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Enter") - - PORT_START("IN.1") // S2 - 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 gnw_bjack_state::gnw_bjack(machine_config &config) -{ - sm512_dualv(config, 1920/2, 1290/2, 1920/2, 1297/2); -} - -// roms - -ROM_START( gnw_bjack ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "bj-60.program", 0x0000, 0x1000, CRC(8e74f633) SHA1(54b0f65ee716d2820a9ed9c743755d2a2d99ce4d) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "bj-60.melody", 0x000, 0x100, BAD_DUMP CRC(2619224e) SHA1(b65dc590b6eb1de793e980af236ccf8360b3cfee) ) // decap needed for verification - - ROM_REGION( 75366, "screen_top", 0) - ROM_LOAD( "gnw_bjack_top.svg", 0, 75366, CRC(d36fb4e4) SHA1(7f2a0256d78eb01e757208ead0fd52ee63ce8efa) ) - - ROM_REGION( 112599, "screen_bottom", 0) - ROM_LOAD( "gnw_bjack_bottom.svg", 0, 112599, CRC(04880ae1) SHA1(60f3723f81965fe4891f25a3522351872f338389) ) -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 -{ -public: - gnw_squish_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - // increase lcd decay: unwanted segments light up - m_decay_pivot = 17; - } - - void gnw_squish(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_squish ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) 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_LEFT ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B") - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Bonus Life (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_squish_state::gnw_squish(machine_config &config) -{ - sm510_dualv(config, 1920/2, 1285/2, 1920/2, 1287/2); // R mask option confirmed -} - -// roms - -ROM_START( gnw_squish ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mg-61", 0x0000, 0x1000, CRC(79cd509c) SHA1(969e5425984ba9e5183c68b38b3588f53d1e8e5d) ) - - ROM_REGION( 70456, "screen_top", 0) - ROM_LOAD( "gnw_squish_top.svg", 0, 70456, CRC(8d10b94e) SHA1(33854e7ea8f02adceb597c9ba259aa553953e698) ) - - ROM_REGION( 279739, "screen_bottom", 0) - ROM_LOAD( "gnw_squish_bottom.svg", 0, 279739, CRC(7f4bd704) SHA1(e625910101896cf3a6d41e28ccda77f902f71c7a) ) -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 -{ -public: - gnw_bsweep_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_bsweep(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_bsweep ) - 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_RIGHT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.1") // S2 - 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") - - 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, "Level Skip (Cheat)") // " -- Controller keys skips level when activated - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_bsweep_state::gnw_bsweep(machine_config &config) -{ - sm512_dualv(config, 1920/2, 1291/2, 1920/2, 1239/2); -} - -// roms - -ROM_START( gnw_bsweep ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "bd-62.program", 0x0000, 0x1000, CRC(f3ac66ea) SHA1(3fbf444ade5bc96cf0073ca72f1d583cb0f48fc5) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "bd-62.melody", 0x000, 0x100, BAD_DUMP CRC(addc0368) SHA1(fc488bdf1c2ea5ca84cc66762126bb5874659d8f) ) // decap needed for verification - - ROM_REGION( 218174, "screen_top", 0) - ROM_LOAD( "gnw_bsweep_top.svg", 0, 218174, CRC(b2c8e895) SHA1(9f7d5973a5f920845c83d30f7ebbbec93232c41e) ) - - ROM_REGION( 277420, "screen_bottom", 0) - ROM_LOAD( "gnw_bsweep_bottom.svg", 0, 277420, CRC(8a9786cb) SHA1(48390a77b0e436ec7d7e8835923faef787e163d4) ) -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 -{ -public: - gnw_sbuster_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_sbuster(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_sbuster ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Invincibility (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_sbuster_state::gnw_sbuster(machine_config &config) -{ - sm511_dualv(config, 1920/2, 1246/2, 1920/2, 1269/2); -} - -// roms - -ROM_START( gnw_sbuster ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "jb-63.program", 0x0000, 0x1000, CRC(231d358d) SHA1(c748788da125e77b9d0fe1228f64de71f41af42b) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "jb-63.melody", 0x000, 0x100, BAD_DUMP CRC(28cb2914) SHA1(52d34265611f786b597653193752d16563dd5e82) ) // decap needed for verification - - ROM_REGION( 221903, "screen_top", 0) - ROM_LOAD( "gnw_sbuster_top.svg", 0, 221903, CRC(adb9b67f) SHA1(902998ead1a13d3c26854393283ab622e1fd3f70) ) - - ROM_REGION( 282593, "screen_bottom", 0) - ROM_LOAD( "gnw_sbuster_bottom.svg", 0, 282593, CRC(12542c5e) SHA1(fb05b8f4a2cbeeb566ae111cd27ff486c1478d7b) ) -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 -{ -public: - gnw_gcliff_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_gcliff(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_gcliff ) - 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_RIGHT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.2") // S3 - 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("Continue") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game") - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Invincibility (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, "Level Skip (Cheat)") // " -- Left or right skips level when activated - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_gcliff_state::gnw_gcliff(machine_config &config) -{ - sm512_dualv(config, 1920/2, 1257/2, 1920/2, 1239/2); -} - -// roms - -ROM_START( gnw_gcliff ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mv-64.program", 0x0000, 0x1000, CRC(2448a3bf) SHA1(bfb1a1b500321f8ee0b6f07ef8503e64fe6d37c0) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "mv-64.melody", 0x000, 0x100, BAD_DUMP CRC(cb938709) SHA1(516dcc8a1edffe02f50d349389caac0676de1eba) ) // decap needed for verification - - ROM_REGION( 530731, "screen_top", 0) - ROM_LOAD( "gnw_gcliff_top.svg", 0, 530731, CRC(3bb60d8f) SHA1(e7dac1fcbe7b682c9d988443c1446e5ad28d3baa) ) - - ROM_REGION( 519321, "screen_bottom", 0) - ROM_LOAD( "gnw_gcliff_bottom.svg", 0, 519321, CRC(1117041e) SHA1(0f87167614c1ba65915fa7205a6bb44778e443a8) ) -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 -{ -public: - gnw_zelda_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_zelda(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_zelda ) - 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_RIGHT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) // Water of Life - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Attack - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.2") // S3 - 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("Continue") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game") - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Invincibility (Cheat)") // " -- Invincibility when playing on bottom screen only - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_zelda_state::gnw_zelda(machine_config &config) -{ - sm512_dualv(config, 1920/2, 1346/2, 1920/2, 1291/2); -} - -// roms - -ROM_START( gnw_zelda ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "zl-65.program", 0x0000, 0x1000, CRC(b96aa64e) SHA1(d1f0c64104eb3ecbf370674d5078a3a85b2b7227) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "zl-65.melody", 0x000, 0x100, BAD_DUMP CRC(3a281b0f) SHA1(7a236775557939050bbcd6f9d0a598d219a032f2) ) // decap needed for verification - - ROM_REGION( 283029, "screen_top", 0) - ROM_LOAD( "gnw_zelda_top.svg", 0, 283029, CRC(aaab1d7e) SHA1(fe01e8a92e6dcf457da87afe6bf39fcf511da9db) ) - - ROM_REGION( 424886, "screen_bottom", 0) - ROM_LOAD( "gnw_zelda_bottom.svg", 0, 424886, CRC(09f00d09) SHA1(33045028bd7e0df4e976e79dc180028c6886359a) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Donkey Kong Jr. (model CJ-93) - * PCB labels: CJ-93 M (main board), CJ-93C (controller board) - * Sharp SM511 label CJ-93 539D (no decap) - * inverted lcd screen with custom segments, 1-bit sound - - This is the panorama version. There's also a tabletop version which is - assumed to use the same ROM/LCD, and a new wide screen version which is - a different game. - - The tabletop version was also licensed to Coleco. - -***************************************************************************/ - -class gnw_dkjrp_state : public hh_sm510_state -{ -public: - gnw_dkjrp_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_dkjrp(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_dkjrp ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump - - 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_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) 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_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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_dkjrp_state::gnw_dkjrp(machine_config &config) -{ - sm511_common(config, 1920, 1049); -} - -// roms - -ROM_START( gnw_dkjrp ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "cj-93.program", 0x0000, 0x1000, CRC(a2cd5a91) SHA1(33f6fd1530e5522491851f16d7c9f928b2dbdc3b) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "cj-93.melody", 0x000, 0x100, BAD_DUMP CRC(99fbf76a) SHA1(15ba1af51bebc316146eb9a0a3d58d28f644d45f) ) // decap needed for verification - - ROM_REGION( 340751, "screen", 0) - ROM_LOAD( "gnw_dkjrp.svg", 0, 340751, CRC(eb3cb98b) SHA1(5b148557d3ade2e2050ddde879a6cc05e119b446) ) -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 -{ -public: - gnw_mbaway_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_mbaway(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_mbaway ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Up/Down - 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( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Invincibility (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_mbaway_state::gnw_mbaway(machine_config &config) -{ - sm511_common(config, 1920, 1031); -} - -// roms - -ROM_START( gnw_mbaway ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "tb-94.program", 0x0000, 0x1000, CRC(11d18a48) SHA1(afccfa19dace7c4fcc15a84ecfcfb9d7ae3861e4) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "tb-94.melody", 0x000, 0x100, BAD_DUMP CRC(60d98353) SHA1(8789d7cd39111fe01848a89748ab91731de5caef) ) // decap needed for verification - - ROM_REGION( 514643, "screen", 0) - ROM_LOAD( "gnw_mbaway.svg", 0, 514643, CRC(2ec2f18b) SHA1(8e2fd20615d867aac97e443fb977513ff98138b4) ) -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) - * inverted lcd screen with custom segments, 1-bit sound - - This is the panorama version of Mickey Mouse. There's also a wide screen - version which is a different game. - - 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 -{ -public: - gnw_mmousep_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_mmousep(machine_config &config); - void gnw_dkcirc(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_mmousep ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - 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( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_mmousep_state::gnw_mmousep(machine_config &config) -{ - sm511_common(config, 1920, 1122); -} - -void gnw_mmousep_state::gnw_dkcirc(machine_config &config) -{ - sm511_common(config, 1920, 1107); -} - -// roms - -ROM_START( gnw_mmousep ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "dc-95.program", 0x0000, 0x1000, CRC(39dd864a) SHA1(25c67dac7320fe00990989cd42438461950a68ec) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "dc-95.melody", 0x000, 0x100, BAD_DUMP CRC(6ccde8e3) SHA1(4e704a1d61126465b14e3889b4a0179c5568b90b) ) // decap needed for verification - - ROM_REGION( 275609, "screen", 0) - ROM_LOAD( "gnw_mmousep.svg", 0, 275609, CRC(bac13689) SHA1(3ddcb4416bc5b8615b2854434ef78acac204a583) ) -ROM_END - -ROM_START( gnw_dkcirc ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mk-96.program", 0x0000, 0x1000, CRC(39dd864a) SHA1(25c67dac7320fe00990989cd42438461950a68ec) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "mk-96.melody", 0x000, 0x100, BAD_DUMP CRC(6ccde8e3) SHA1(4e704a1d61126465b14e3889b4a0179c5568b90b) ) // decap needed for verification - - ROM_REGION( 367718, "screen", 0) - ROM_LOAD( "gnw_dkcirc.svg", 0, 367718, CRC(f8571437) SHA1(bc000267deab83dfd460aea5c4102a23ac51f169) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101) - * Sharp SM510 label DJ-101 52ZA (no decap) - * lcd screen with custom segments, 1-bit sound - - 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 -{ -public: - gnw_dkjr_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_dkjr(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_dkjr ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump - - 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_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) 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_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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Invincibility (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_dkjr_state::gnw_dkjr(machine_config &config) -{ - sm510_common(config, 1647, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_dkjr ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "dj-101", 0x0000, 0x1000, CRC(8dcfb5d1) SHA1(e0ef578e9362eb9a3cab631376df3cf55978f2de) ) - - ROM_REGION( 281202, "screen", 0) - ROM_LOAD( "gnw_dkjr.svg", 0, 281202, CRC(f8b18d58) SHA1(fa8321b3d8f81685da763d66fc148d339e6bcd55) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Mario's Cement Factory (model ML-102) - * Sharp SM510 label ML-102 298D (die label CMS54C, KMS577) - * lcd screen with custom segments, 1-bit sound - - This is the new wide screen version, there's also a tabletop version. - -***************************************************************************/ - -class gnw_mariocm_state : public hh_sm510_state -{ -public: - gnw_mariocm_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_mariocm(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_mariocm ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Open - 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( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_mariocm_state::gnw_mariocm(machine_config &config) -{ - sm510_common(config, 1647, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_mariocm ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ml-102_577", 0x0000, 0x1000, CRC(c1128dea) SHA1(8647e36f43a0e37756a3c7b6a3f08d4c8243f1cc) ) - - ROM_REGION( 302983, "screen", 0) - ROM_LOAD( "gnw_mariocm.svg", 0, 302983, CRC(32ed7941) SHA1(ce7c5ae7a179ec9bcd17db7d7a27780801f7c1cb) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Manhole (model NH-103) - * PCB label NH-103 - * Sharp SM510 label NH-103 538A (no decap) - * lcd screen with custom segments, 1-bit sound - - This is the new wide screen version, there's also a Gold Series version - (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 -{ -public: - gnw_manhole_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_manhole(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_manhole ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Invincibility (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_manhole_state::gnw_manhole(machine_config &config) -{ - sm510_common(config, 1560, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_manhole ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "nh-103", 0x0000, 0x1000, CRC(ec03acf7) SHA1(b74ae672d8f8a155b2ea4ecee9afbaed95ec0ceb) ) - - ROM_REGION( 223414, "screen", 0) - ROM_LOAD( "gnw_manhole.svg", 0, 223414, CRC(774d806b) SHA1(acb730d8e397eb29988a353e0a9db8ae69913117) ) -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 -{ -public: - gnw_tfish_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_tfish(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_tfish ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B") - 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") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_tfish_state::gnw_tfish(machine_config &config) -{ - sm510_common(config, 1572, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_tfish ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "tf-104", 0x0000, 0x1000, CRC(53cde918) SHA1(bc1e1b8f8b282bb886bb076c1c7ce35d00eca6fc) ) - - ROM_REGION( 257396, "screen", 0) - ROM_LOAD( "gnw_tfish.svg", 0, 257396, CRC(6f457a30) SHA1(0b748c9573ff96b99f4fa0adb17d218e89b56d3f) ) -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 version) (die label ?) - * lcd screen with custom segments, 1-bit sound - - First released in 1986 on Crystal Screen (model YM-801), rereleased on - New Wide Screen in 1988 (model YM-105). It was also a prize in a Nintendo - game contest in 1987 (model YM-901-S). In YM-801, Mario looks like the - 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 -{ -public: - gnw_smb_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_smb(machine_config &config); - void gnw_smbn(machine_config & config); -}; - -// config - -static INPUT_PORTS_START( gnw_smb ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - 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_RIGHT ) 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_LEFT ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.2") // S3 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump - 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("ACL") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_smb_state::gnw_smb(machine_config &config) -{ - sm511_common(config, 1768, 1080); -} - -void gnw_smb_state::gnw_smbn(machine_config &config) -{ - sm511_common(config, 1677, 1080); -} - -// roms - -ROM_START( gnw_smb ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ym-801.program", 0x0000, 0x1000, BAD_DUMP CRC(0dff3b12) SHA1(3fa83f88e49ea9d7080fe935ec90ce69acbe8850) ) // dumped from NWS version - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "ym-801.melody", 0x000, 0x100, BAD_DUMP CRC(b48c6d90) SHA1(a1ce1e52627767752974ab0d49bec48ead36663e) ) // dumped from NWS version - - ROM_REGION( 342106, "screen", 0) - ROM_LOAD( "gnw_smb.svg", 0, 342106, CRC(243224ac) SHA1(9b7f41abe4e340e32893ff1ef6e4d696deadc637) ) -ROM_END - -ROM_START( gnw_smbn ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ym-105.program", 0x0000, 0x1000, CRC(0dff3b12) SHA1(3fa83f88e49ea9d7080fe935ec90ce69acbe8850) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "ym-105.melody", 0x000, 0x100, CRC(b48c6d90) SHA1(a1ce1e52627767752974ab0d49bec48ead36663e) ) - - ROM_REGION( 648313, "screen", 0) - ROM_LOAD( "gnw_smbn.svg", 0, 648313, CRC(5808c793) SHA1(06b90993eb9db2a1909509f99ebf00e27c20dcad) ) -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 version) (no decap) - * lcd screen with custom segments, 1-bit sound - - First released in 1986 on Crystal Screen (model DR-802), rereleased on - New Wide Screen in 1988 (model DR-106). The graphic LCD elements look the same - in both versions but the display aspect ratio and the graphical background is - 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 -{ -public: - gnw_climber_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_climber(machine_config &config); - void gnw_climbern(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_climber ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - 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_RIGHT ) 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_LEFT ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.2") // S3 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump - 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("ACL") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_climber_state::gnw_climber(machine_config &config) -{ - sm511_common(config, 1756, 1080); -} - -void gnw_climber_state::gnw_climbern(machine_config &config) -{ - sm511_common(config, 1677, 1080); -} - -// roms - -ROM_START( gnw_climber ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "dr-802.program", 0x0000, 0x1000, BAD_DUMP CRC(2adcbd6d) SHA1(110dc08c65120ab2c76ee647e89aa2726e24ac1a) ) // dumped from NWS version - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "dr-802.melody", 0x000, 0x100, BAD_DUMP CRC(7c49a3a3) SHA1(fad00d650b4864135c7d50f6fae735b7fffe720f) ) // dumped from NWS version - - ROM_REGION( 564868, "screen", 0) - ROM_LOAD( "gnw_climber.svg", 0, 564868, CRC(a50ebd1c) SHA1(51047db960c8f110c1b681347cf8efd1d6263b85) ) -ROM_END - -ROM_START( gnw_climbern ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "dr-106.program", 0x0000, 0x1000, CRC(2adcbd6d) SHA1(110dc08c65120ab2c76ee647e89aa2726e24ac1a) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "dr-106.melody", 0x000, 0x100, BAD_DUMP CRC(7c49a3a3) SHA1(fad00d650b4864135c7d50f6fae735b7fffe720f) ) // decap needed for verification - - ROM_REGION( 542453, "screen", 0) - ROM_LOAD( "gnw_climbern.svg", 0, 542453, CRC(2ded966e) SHA1(7e9c99d372b6e547b9b3e789dca9dee60455a427) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Game & Watch: Balloon Fight Crystal Screen (model BF-803), - Nintendo Game & Watch: Balloon Fight New Wide Screen (model BF-107) - * PCB labels - - DR-802-2 (Crystal Screen) - - DR-106 (new wide screen version) - * Sharp SM511 - - label BF-803 8646A (crystal screen) (not dumped yet) - - label BF-107 9031B (new wide screen version) (no decap) - * lcd screen with custom segments, 1-bit sound - - First released in 1986 on Crystal Screen (model BF-803), rereleased on - New Wide Screen in 1988 (model BF-107). The graphic LCD elements look the same - in both versions but the graphical background is slightly different. - Until further proof, it's assumed that the ROM is the same for both models. - - 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 -{ -public: - gnw_bfight_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_bfight(machine_config &config); - void gnw_bfightn(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_bfight ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - 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_RIGHT ) 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_LEFT ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.2") // S3 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Eject - 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("ACL") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_bfight_state::gnw_bfight(machine_config &config) -{ - sm511_common(config, 1771, 1080); -} - -void gnw_bfight_state::gnw_bfightn(machine_config &config) -{ - sm511_common(config, 1549, 1080); -} - -// roms - -ROM_START( gnw_bfight ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "bf-803.program", 0x0000, 0x1000, BAD_DUMP CRC(4c8d07ed) SHA1(a8974dff85d5f3bacaadb71b86e9b30994b6d129) ) // dumped from NWS version - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "bf-803.melody", 0x000, 0x100, BAD_DUMP CRC(ffddf9ed) SHA1(e9cb3a340924363eeef5ab453c452b9cc69207b9) ) // dumped from NWS version - - ROM_REGION( 586453, "screen", 0) - ROM_LOAD( "gnw_bfight.svg", 0, 586453, CRC(40d81b65) SHA1(96ed909647229cfde6d733ba10d54ace29e5618a) ) -ROM_END - -ROM_START( gnw_bfightn ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "bf-107.program", 0x0000, 0x1000, CRC(4c8d07ed) SHA1(a8974dff85d5f3bacaadb71b86e9b30994b6d129) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "bf-107.melody", 0x000, 0x100, BAD_DUMP CRC(ffddf9ed) SHA1(e9cb3a340924363eeef5ab453c452b9cc69207b9) ) // decap needed for verification - - ROM_REGION( 558496, "screen", 0) - ROM_LOAD( "gnw_bfightn.svg", 0, 558496, CRC(c488000e) SHA1(f9a042799a1489f83b07a91827b8b421238a67e8) ) -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 -{ -public: - gnw_mariotj_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_mariotj(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_mariotj ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("IN.1") // S2 - 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") - - PORT_START("B") - PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_mariotj_state::gnw_mariotj(machine_config &config) -{ - sm511_common(config, 1630, 1080); -} - -// roms - -ROM_START( gnw_mariotj ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mb-108.program", 0x0000, 0x1000, CRC(f7118bb4) SHA1(c3117fd009e4686a149f85fb65786ddffc091eeb) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "mb-108.melody", 0x000, 0x100, BAD_DUMP CRC(d8cc1f74) SHA1(4bbb470ef01777b0c1dbd7b84dc560da6d3b87e7) ) // decap needed for verification - - ROM_REGION( 210391, "screen", 0) - ROM_LOAD( "gnw_mariotj.svg", 0, 210391, CRC(8f1e6118) SHA1(4ecad443142330470384659af1e8dd59bca519e4) ) -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 -{ -public: - gnw_ssparky_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_ssparky(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_ssparky ) - 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_RIGHT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Shooter - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "Increase Score (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, "Infinite Lives (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_ssparky_state::gnw_ssparky(machine_config &config) -{ - sm510_common(config, 627, 1080); // R mask option confirmed -} - -// roms - -ROM_START( gnw_ssparky ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "bu-201", 0x0000, 0x1000, CRC(ae0d28e7) SHA1(1427cca1f3aaf3ef6fc3499171a5220428d9894f) ) - - ROM_REGION( 136929, "screen", 0) - ROM_LOAD( "gnw_ssparky.svg", 0, 136929, CRC(66e5d586) SHA1(b666f675abb8edef65ff402e8bc9a5213b630851) ) -ROM_END - - - - - -/*************************************************************************** - - Nintendo Micro Vs. System: Boxing (model BX-301) - * Sharp SM511 label BX-301 287C (die label KMS73B, KMS744) - * wide lcd screen with custom segments, 1-bit sound - - Also known as Punch-Out!! in the USA. - -***************************************************************************/ - -class gnw_boxing_state : public hh_sm510_state -{ -public: - gnw_boxing_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void gnw_boxing(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( gnw_boxing ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_PLAYER(2) - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.2") // S3 - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_PLAYER(2) - - PORT_START("IN.3") // S4 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_PLAYER(2) - - PORT_START("IN.5") // S6 - 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( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.6") // S7 - 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") - - PORT_START("BA") - PORT_CONFNAME( 0x01, 0x01, "P2 Decrease Health (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, "P1 Infinite Health (Cheat)") // " - PORT_CONFSETTING( 0x01, DEF_STR( Off ) ) - PORT_CONFSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -void gnw_boxing_state::gnw_boxing(machine_config &config) -{ - sm511_common(config, 1920, 524); -} - -// roms - -ROM_START( gnw_boxing ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "bx-301_744.program", 0x0000, 0x1000, CRC(0fdf0303) SHA1(0b791c9d4874e9534d0a9b7a8968ce02fe4bee96) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "bx-301_744.melody", 0x000, 0x100, CRC(439d943d) SHA1(52880df15ec7513f96482f455ef3d9778aa24750) ) - - ROM_REGION( 265217, "screen", 0) - ROM_LOAD( "gnw_boxing.svg", 0, 265217, CRC(306c733e) SHA1(8c80df1295ff0889e16ef9a14e45b27a6ebaa9a2) ) -ROM_END - - - - - -/*************************************************************************** - - Konami Double Dribble - * Sharp SM510 under epoxy (die label CMS54C, KMS584) - * lcd screen with custom segments, 1-bit sound - - BTANB: At the basket, the ball goes missing sometimes for 1 frame, or - may show 2 balls at the same time. It's the same on the real handheld. - BTANB: players flicker (increasing LCD delay won't improve it much) - 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 -{ -public: - kdribble_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void kdribble(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( kdribble ) - 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_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Level 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_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 - -void kdribble_state::kdribble(machine_config &config) -{ - sm510_common(config, 1524, 1080); // R mask option confirmed -} - -// roms - -ROM_START( kdribble ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "584", 0x0000, 0x1000, CRC(1d9022c8) SHA1(64567f9f161e830a0634d5c89917ab866c26c0f8) ) - - ROM_REGION( 450349, "screen", 0) - ROM_LOAD( "kdribble.svg", 0, 450349, CRC(0ea4153e) SHA1(b5deb398bb9f5e56e5bbcbe477d54528fb989487) ) -ROM_END - - - - - -/*************************************************************************** - - Konami Top Gun - * 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 -{ -public: - ktopgun_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void ktopgun(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( ktopgun ) - 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_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 - -void ktopgun_state::ktopgun(machine_config &config) -{ - sm510_common(config, 1515, 1080); // R mask option confirmed -} - -// roms - -ROM_START( ktopgun ) // except for filler/unused bytes, ROM listing in patent US5137277 "BH003 Top Gun" is same - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "598", 0x0000, 0x1000, CRC(50870b35) SHA1(cda1260c2e1c180995eced04b7d7ff51616dcef5) ) - - ROM_REGION( 425839, "screen", 0) - ROM_LOAD( "ktopgun.svg", 0, 425839, CRC(f0eb200f) SHA1(cbdc7cfaf1785b393c806dabd1a355d325bddc3f) ) -ROM_END - - - - - -/*************************************************************************** - - Konami Contra - * PCB label BH002 - * Sharp SM511 under epoxy (die label KMS73B, KMS773) - * 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); -}; - -// config - -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( 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_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 - -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 Teenage Mutant Ninja Turtles - * PCB label BH005 - * Sharp SM511 under epoxy (die label KMS73B, KMS774) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class ktmnt_state : public hh_sm510_state -{ -public: - ktmnt_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void ktmnt(machine_config &config); -}; - -// config - -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_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_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_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear") -INPUT_PORTS_END - -void ktmnt_state::ktmnt(machine_config &config) -{ - sm511_common(config, 1505, 1080); -} - -// roms - -ROM_START( ktmnt ) // except for filler/unused bytes, ROM listing in patent US5150899 "BH005 TMNT" program/melody is same - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "774.program", 0x0000, 0x1000, CRC(a1064f87) SHA1(92156c35fbbb414007ee6804fe635128a741d5f1) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "774.melody", 0x000, 0x100, CRC(8270d626) SHA1(bd91ca1d5cd7e2a62eef05c0033b19dcdbe441ca) ) - - ROM_REGION( 610309, "screen", 0) - ROM_LOAD( "ktmnt.svg", 0, 610309, CRC(9f48c50d) SHA1(917c0ed8e83d949e5115c897cacda8d60e42d74d) ) -ROM_END - - - - - -/*************************************************************************** - - Konami Gradius - * PCB label BH004 - * Sharp SM511 under epoxy (die label KMS73B, KMS774) - * lcd screen with custom segments, 1-bit sound - - Known in Japan as Nemesis. - -***************************************************************************/ - -class kgradius_state : public hh_sm510_state -{ -public: - kgradius_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void kgradius(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( kgradius ) - 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_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( 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 kgradius_state::kgradius(machine_config &config) -{ - sm511_common(config, 1420, 1080); -} - -// roms - -ROM_START( kgradius ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "771.program", 0x0000, 0x1000, CRC(830c2afc) SHA1(bb9ebd4e52831cc02cd92dd4b37675f34cf37b8c) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "771.melody", 0x000, 0x100, CRC(4c586b73) SHA1(14c5ab2898013a577f678970a648c374749cc66d) ) - - ROM_REGION( 638136, "screen", 0) - ROM_LOAD( "kgradius.svg", 0, 638136, CRC(85dd296e) SHA1(bd75d0c08387a69bbcf4fd100252846499a261b3) ) -ROM_END - - - - - -/*************************************************************************** - - Konami Lone Ranger - * PCB label BH009 - * Sharp SM511 under epoxy (die label KMS73B, KMS781) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class kloneran_state : public hh_sm510_state -{ -public: - kloneran_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void kloneran(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( kloneran ) - 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_BUTTON1 ) PORT_CHANGED_CB(input_changed) - 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("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear") -INPUT_PORTS_END - -void kloneran_state::kloneran(machine_config &config) -{ - sm511_common(config, 1497, 1080); -} - -// roms - -ROM_START( kloneran ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "781.program", 0x0000, 0x1000, CRC(52b9735f) SHA1(06c5ef6e7e781b1176d4c1f2445f765ccf18b3f7) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "781.melody", 0x000, 0x100, CRC(a393de36) SHA1(55089f04833ccb318524ab2b584c4817505f4019) ) - - ROM_REGION( 633161, "screen", 0) - ROM_LOAD( "kloneran.svg", 0, 633161, CRC(1fb937ff) SHA1(9e5841dc67e50b789f0161693ebbd75f79915980) ) -ROM_END - - - - - -/*************************************************************************** - - Konami Blades of Steel - * PCB label BH011 - * Sharp SM511 under epoxy (die label KMS73B, KMS782) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class kblades_state : public hh_sm510_state -{ -public: - kblades_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - // increase lcd decay: too much overall flicker - m_decay_len = 25; - } - - void kblades(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( kblades ) - 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("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( 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 - -void kblades_state::kblades(machine_config &config) -{ - sm511_common(config, 1516, 1080); -} - -// roms - -ROM_START( kblades ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "782.program", 0x0000, 0x1000, CRC(3351a35d) SHA1(84c64b65d3cabfa20c18f4649c9ede2578b82523) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "782.melody", 0x000, 0x100, CRC(e8bf48ba) SHA1(3852c014dc9136566322b4f9e2aab0e3ec3a7387) ) - - ROM_REGION( 455154, "screen", 0) - ROM_LOAD( "kblades.svg", 0, 455154, CRC(f17ec8ba) SHA1(ed999ef4b3f0ae94c243219ea8ea1eedd7179c26) ) -ROM_END - - - - - -/*************************************************************************** - - Konami NFL Football - * Sharp SM511 under epoxy (die label KMS73B, KMS786) - * lcd screen with custom segments, 1-bit sound - - This is the 1989 version. It was rereleased in 1992, assumed to be the same - game underneath. - -***************************************************************************/ - -class knfl_state : public hh_sm510_state -{ -public: - knfl_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - // increase lcd decay: too much overall flicker - m_decay_len = 35; - } - - void knfl(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( knfl ) - 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("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( 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 - -void knfl_state::knfl(machine_config &config) -{ - sm511_common(config, 1449, 1080); -} - -// roms - -ROM_START( knfl ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "786.program", 0x0000, 0x1000, CRC(0535c565) SHA1(44cdcd284713ff0b194b24beff9f1b94c8bc63b2) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "786.melody", 0x000, 0x100, CRC(6c80263b) SHA1(d3c21e2f8491fef101907b8e0871b1e1c1ed58f5) ) - - ROM_REGION( 571173, "screen", 0) - ROM_LOAD( "knfl.svg", 0, 571173, CRC(406c5bed) SHA1(1f3a704f091b78c89c06108ba11310f4072cc178) ) -ROM_END - - - - - -/*************************************************************************** - - Konami The Adventures of Bayou Billy - * Sharp SM511 under epoxy (die label KMS73B, KMS788) - * 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); -}; - -// config - -static INPUT_PORTS_START( kbilly ) - 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("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( 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_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) -{ - sm511_common(config, 1490, 1080); -} - -// roms - -ROM_START( kbilly ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "788.program", 0x0000, 0x1000, CRC(b8b1f734) SHA1(619dd527187b43276d081cdb1b13e0a9a81f2c6a) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "788.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 Bucky O'Hare - * Sharp SM511 under epoxy (die label KMS73B, N58) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class kbucky_state : public hh_sm510_state -{ -public: - kbucky_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void kbucky(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( kbucky ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) 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_DOWN ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - 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 - -void kbucky_state::kbucky(machine_config &config) -{ - sm511_common(config, 1490, 1080); -} - -// roms - -ROM_START( kbucky ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "n58.program", 0x0000, 0x1000, CRC(7c36a0c4) SHA1(1b55ac64a71af746fd0a0f44266fcc92cca77482) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "n58.melody", 0x000, 0x100, CRC(7e99e469) SHA1(3e9a3843c6ab392f5989f3366df87a2d26cb8620) ) - - ROM_REGION( 727879, "screen", 0) - ROM_LOAD( "kbucky.svg", 0, 727879, CRC(64cde7e6) SHA1(60c0120c7955a694bb07eb013e42c7a71757ab9f) ) -ROM_END - - - - - -/*************************************************************************** - - Konami Garfield - * Sharp SM511 under epoxy (die label KMS73B, N62) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class kgarfld_state : public hh_sm510_state -{ -public: - kgarfld_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - // increase lcd decay: too much overall flicker - m_decay_len = 30; - } - - void kgarfld(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( kgarfld ) - 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_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.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_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( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear") -INPUT_PORTS_END - -void kgarfld_state::kgarfld(machine_config &config) -{ - sm511_common(config, 1500, 1080); -} - -// roms - -ROM_START( kgarfld ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "n62.program", 0x0000, 0x1000, CRC(5a762049) SHA1(26d4d891160d254dfd752734e1047126243f88dd) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "n62.melody", 0x000, 0x100, CRC(232b7d55) SHA1(76f6a19e8182ee3f00c9f4ef007b5dde75a9c00d) ) - - ROM_REGION( 581147, "screen", 0) - ROM_LOAD( "kgarfld.svg", 0, 581147, CRC(ef2e5a61) SHA1(fbf0236cd0d4228403823d2623c6fd2d68349f7a) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Gauntlet (model 7-778), Robin Hood (model 7-861) - * Sharp SM510 under epoxy (die label CMS54C, KMS583) - * lcd screen with custom segments, 1-bit sound - - known releases (Gauntlet): - - World: Gauntlet - - Japan: Gauntlet (published by Sega) - - UK: Gauntlet (published by Grandstand) - - Robin Hood is the same MCU/ROM, different LCD. - -***************************************************************************/ - -class tgaunt_state : public hh_sm510_state -{ -public: - tgaunt_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); - void tgaunt(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tgaunt ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Bomb") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Key") - 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_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 - -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 - -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 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "583", 0x0000, 0x1000, CRC(598d8156) SHA1(9f776e8b9b4321e8118481e6b1304f8a38f9932e) ) - - ROM_REGION( 713071, "screen", 0) - 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) - * 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 -{ -public: - tddragon_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tddragon(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tddragon ) - 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) PORT_NAME("Sway") - 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("Punch/Pick") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick") - 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("Status") - 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 - -void tddragon_state::tddragon(machine_config &config) -{ - sm510_tiger(config, 1467, 1080); // R mask option confirmed -} - -// roms - -ROM_START( tddragon ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "593", 0x0000, 0x1000, CRC(2642f778) SHA1(fee77acf93e057a8b4627389dfd481c6d9cbd02b) ) - - ROM_REGION( 511477, "screen", 0) - ROM_LOAD( "tddragon.svg", 0, 511477, CRC(d3046671) SHA1(15fd328e28362402eab1094851dddd8e20a0bcec) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Karnov (model 7-783) - * Sharp SM510 under epoxy (die label CMS54C, KMS582) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tkarnov_state : public hh_sm510_state -{ -public: - tkarnov_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tkarnov(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tkarnov ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - 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( 0x0c, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire-Ball") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Boomerang") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shield") - PORT_BIT( 0x09, 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("Max Score") - 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 - -void tkarnov_state::tkarnov(machine_config &config) -{ - sm510_tiger(config, 1477, 1080); -} - -// roms - -ROM_START( tkarnov ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "582", 0x0000, 0x1000, CRC(cee85bdd) SHA1(143e39524f1dea523e0575f327ed189343cc87f5) ) - - ROM_REGION( 527432, "screen", 0) - ROM_LOAD( "tkarnov.svg", 0, 527432, CRC(9317066c) SHA1(087cfde97e106c6fd8c52d3a1138e6bde2ad9289) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Vindicators (model 7-786) - * Sharp SM510 under epoxy (die label CMS54C, KMS595) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tvindictr_state : public hh_sm510_state -{ -public: - tvindictr_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tvindictr(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tvindictr ) - 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( 0x0f, 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("Gun 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("Fire") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Gun 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("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 - -void tvindictr_state::tvindictr(machine_config &config) -{ - sm510_tiger(config, 1459, 1080); -} - -// roms - -ROM_START( tvindictr ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "595", 0x0000, 0x1000, CRC(b574d16f) SHA1(d2cb0f2e21ca2defe49a4b45f4c8e169ae9979ab) ) - - ROM_REGION( 314205, "screen", 0) - ROM_LOAD( "tvindictr.svg", 0, 314205, CRC(fefe9f31) SHA1(3c8e7ab2cd81de72740b2948def07a2fc000a78a) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Ninja Gaiden (model 7-787) - * Sharp SM510 under epoxy (die label M82) - * lcd screen with custom segments, 1 led, 1-bit sound - -***************************************************************************/ - -class tgaiden_state : public hh_sm510_state -{ -public: - tgaiden_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag), - m_led_out(*this, "led") - { - inp_fixed_last(); - } - - // R2 connects to a single LED behind the screen - DECLARE_WRITE8_MEMBER(led_w) { m_led_out = data >> 1 & 1; } - output_finder<> m_led_out; - - void tgaiden(machine_config &config); - -protected: - virtual void machine_start() override; -}; - -void tgaiden_state::machine_start() -{ - hh_sm510_state::machine_start(); - m_led_out.resolve(); -} - -// config - -static INPUT_PORTS_START( tgaiden ) - 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 - -void tgaiden_state::tgaiden(machine_config &config) -{ - sm510_tiger(config, 1476, 1080); - - m_maincpu->write_r().append(FUNC(tgaiden_state::led_w)); -} - -// roms - -ROM_START( tgaiden ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "m82", 0x0000, 0x1000, CRC(278eafb0) SHA1(14396a0010bade0fde705969151200ed432321e7) ) - - ROM_REGION( 588916, "screen", 0) - ROM_LOAD( "tgaiden.svg", 0, 588916, CRC(5845c630) SHA1(c4b0d4d85e4b58a051920b6b34668847049c57a7) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Batman (model 7-799) - * Sharp SM510 under epoxy (die label CMS54C, KMS597) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tbatman_state : public hh_sm510_state -{ -public: - tbatman_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tbatman(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tbatman ) - 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( 0x0d, 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("Pick") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack") - 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("Max Score") - 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 - -void tbatman_state::tbatman(machine_config &config) -{ - sm510_tiger(config, 1442, 1080); -} - -// roms - -ROM_START( tbatman ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "597", 0x0000, 0x1000, CRC(8b7acc97) SHA1(fe811675dc5c5ef9f6f969685c933926c8b9e868) ) - - ROM_REGION( 551931, "screen", 0) - ROM_LOAD( "tbatman.svg", 0, 551931, CRC(95ae104b) SHA1(0508f925f29b2152b41c478447e63c74fce718ad) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Space Harrier II (model 7-814) - * Sharp SM510 under epoxy (die label M91) - * lcd screen with custom segments, 1-bit sound - - known releases: - - World: Space Harrier II - - Japan: Space Harrier (published by Sega) - -***************************************************************************/ - -class tsharr2_state : public hh_sm510_state -{ -public: - tsharr2_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tsharr2(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tsharr2 ) - 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) // Attack - PORT_BIT( 0x0e, 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("Max Score") - 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 - -void tsharr2_state::tsharr2(machine_config &config) -{ - sm510_tiger(config, 1493, 1080); // R mask option confirmed -} - -// roms - -ROM_START( tsharr2 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "m91", 0x0000, 0x1000, CRC(b207ac79) SHA1(9889dfec26089313ba2bdac845a75a26742d09e1) ) - - ROM_REGION( 555177, "screen", 0) - ROM_LOAD( "tsharr2.svg", 0, 555177, CRC(842f8f7e) SHA1(2c523531059acdfa3a0cebac9d8f84f1971e1086) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Strider (model 7-815) - * Sharp SM510 under epoxy (die label M92) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tstrider_state : public hh_sm510_state -{ -public: - tstrider_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tstrider(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tstrider ) - 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("Attack/Pick") - 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 - -void tstrider_state::tstrider(machine_config &config) -{ - sm510_tiger(config, 1479, 1080); -} - -// roms - -ROM_START( tstrider ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "m92", 0x0000, 0x1000, CRC(4b488e8f) SHA1(b037c220c4a456f0dac67d759736f202a7609ee5) ) - - ROM_REGION( 554858, "screen", 0) - ROM_LOAD( "tstrider.svg", 0, 554858, CRC(12767799) SHA1(9d67a96affee18dacaf3d49d89f60940c33492aa) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Golden Axe (model 7-817) - * Sharp SM510 under epoxy (die label M94) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tgoldnaxe_state : public hh_sm510_state -{ -public: - tgoldnaxe_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tgoldnaxe(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tgoldnaxe ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Magic") - 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("Attack Left") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack Right") - 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 - -void tgoldnaxe_state::tgoldnaxe(machine_config &config) -{ - sm510_tiger(config, 1456, 1080); -} - -// roms - -ROM_START( tgoldnaxe ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "m94", 0x0000, 0x1000, CRC(af183fbf) SHA1(23716e2a7c4bb4842b2af1a43fe88db44e18dc17) ) - - ROM_REGION( 605525, "screen", 0) - ROM_LOAD( "tgoldnaxe.svg", 0, 605525, CRC(9c1097c5) SHA1(bf9c2a1f4ae98ebe5eb9d381b0729588a150fa27) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Robocop 2 (model 7-830), The Rocketeer (model 7-864) - * Sharp SM510 under epoxy (die label M96) - * lcd screen with custom segments, 1-bit sound - - The Rocketeer is the same MCU/ROM, different LCD. - -***************************************************************************/ - -class trobocop2_state : public hh_sm510_state -{ -public: - trobocop2_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void trobocop2(machine_config &config); - void trockteer(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( trobocop2 ) - 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("Rescue") - 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("P1 Down/Pick") - 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("Shoot 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("Shoot Up") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shoot 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 - -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 - -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 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "m96", 0x0000, 0x1000, CRC(3704b60c) SHA1(04275833e1a79fd33226faf060890b66ae54e1d3) ) - - ROM_REGION( 463572, "screen", 0) - 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) - * Sharp SM510 under epoxy (die label M88) - * lcd screen with custom segments, 1-bit sound - - known releases: - - World: Altered Beast - - Japan: Juuouki (published by Sega) - -***************************************************************************/ - -class taltbeast_state : public hh_sm510_state -{ -public: - taltbeast_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void taltbeast(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( taltbeast ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch 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("Kick/Attack") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch 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 - -void taltbeast_state::taltbeast(machine_config &config) -{ - sm510_tiger(config, 1455, 1080); // R mask option confirmed -} - -// roms - -ROM_START( taltbeast ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "m88", 0x0000, 0x1000, CRC(1b3d15e7) SHA1(78371230dff872d6c07eefdbc4856c2a3336eb61) ) - - ROM_REGION( 667931, "screen", 0) - ROM_LOAD( "taltbeast.svg", 0, 667931, CRC(a642d5f7) SHA1(ad005deaa35189e59317a07d860403adeef51aad) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Street Fighter 2010 - The Final Fight (model 7-837) - * Sharp SM510 under epoxy (die label MA2) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tsf2010_state : public hh_sm510_state -{ -public: - tsf2010_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tsf2010(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tsf2010 ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch Right") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch 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("Select Planet") - 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 - -void tsf2010_state::tsf2010(machine_config &config) -{ - sm510_tiger(config, 1465, 1080); -} - -// roms - -ROM_START( tsf2010 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ma2", 0x0000, 0x1000, CRC(764b3757) SHA1(c5f90b860128658576bb837e9cabbb3045ad2756) ) - - ROM_REGION( 595191, "screen", 0) - ROM_LOAD( "tsf2010.svg", 0, 595191, CRC(78f96bad) SHA1(4389580e3d47dda0243b01625427013eb7ec4336) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Swamp Thing (model 7-851) - * Sharp SM510 under epoxy (die label MB0) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tswampt_state : public hh_sm510_state -{ -public: - tswampt_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tswampt(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tswampt ) - 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("Punch/Fire") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Throw") - 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 - -void tswampt_state::tswampt(machine_config &config) -{ - sm510_tiger(config, 1450, 1080); -} - -// roms - -ROM_START( tswampt ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mb0", 0x0000, 0x1000, CRC(8433530c) SHA1(60716d3bba92dc8ac3f1ee29c5734c9e894a1aff) ) - - ROM_REGION( 578544, "screen", 0) - ROM_LOAD( "tswampt.svg", 0, 578544, CRC(921e2b43) SHA1(176426fe9bf4855256e0ff7804ca48e619fa0cf3) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Spider-Man (model 7-853) - * Sharp SM510 under epoxy (die label MA5) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tspidman_state : public hh_sm510_state -{ -public: - tspidman_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tspidman(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tspidman ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shoot Right/Kick") - 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("Shoot Up/Punch") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shoot Left/Rescue") - 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("Status") - 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 - -void tspidman_state::tspidman(machine_config &config) -{ - sm510_tiger(config, 1440, 1080); -} - -// roms - -ROM_START( tspidman ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ma5", 0x0000, 0x1000, CRC(2624daed) SHA1(7c10434ae899637264de706045d48e3fce1d30a7) ) - - ROM_REGION( 605375, "screen", 0) - ROM_LOAD( "tspidman.svg", 0, 605375, CRC(6c032ce4) SHA1(69043096e28709821ddc26ef05f60f353fc3e35d) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger X-Men (model 7-854) - * Sharp SM510 under epoxy (die label MA7) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class txmen_state : public hh_sm510_state -{ -public: - txmen_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void txmen(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( txmen ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack/Pick Right") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch/Claws") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack/Pick 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 - -void txmen_state::txmen(machine_config &config) -{ - sm510_tiger(config, 1467, 1080); -} - -// roms - -ROM_START( txmen ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ma7", 0x0000, 0x1000, CRC(6f3ff34f) SHA1(aa24fbc3a4117ea51ebf951ee343a36c77692b72) ) - - ROM_REGION( 543273, "screen", 0) - ROM_LOAD( "txmen.svg", 0, 543273, CRC(039b37bb) SHA1(bd57cba8f380185beda2eb5ea7b5d1f25c8d447b) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Double Dragon 3 - The Rosetta Stone (model 7-858) - * Sharp SM510 under epoxy (die label MA6) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tddragon3_state : public hh_sm510_state -{ -public: - tddragon3_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tddragon3(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tddragon3 ) - 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) PORT_NAME("P1 Down/Pick") - 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("Punch") - 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("Throw") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick") - 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("Select") - 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 - -void tddragon3_state::tddragon3(machine_config &config) -{ - sm510_tiger(config, 1514, 1080); -} - -// roms - -ROM_START( tddragon3 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "ma6", 0x0000, 0x1000, CRC(8e2da0d9) SHA1(54dd05124b4c605975b0cb1eadd7456ff4a94d68) ) - - ROM_REGION( 615734, "screen", 0) - ROM_LOAD( "tddragon3.svg", 0, 615734, CRC(4c94d574) SHA1(e2717db6c0279da4813550f0035a23bdaaa8b7bb) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger The Flash (model 7-859) - * Sharp SM510 under epoxy (die label MB5) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tflash_state : public hh_sm510_state -{ -public: - tflash_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tflash(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tflash ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.1") // S2 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch/Brake") - PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.2") // S3 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.3") // S4 - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Run") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Tie") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.5") // S6 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick") - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.6") // S7 - 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.7") // 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 - -void tflash_state::tflash(machine_config &config) -{ - sm510_tiger(config, 1444, 1080); -} - -// roms - -ROM_START( tflash ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mb5", 0x0000, 0x1000, CRC(f7f1d082) SHA1(49a7a931450cf27fe69076c4e15ffb34814e25d4) ) - - ROM_REGION( 587863, "screen", 0) - ROM_LOAD( "tflash.svg", 0, 587863, CRC(8ddb9391) SHA1(fa8b4610a914de8ae95123c4273a12cdb4353a39) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger MC Hammer: U Can't Touch This (model 7-863) - * Sharp SM511 under epoxy (die label N63) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tmchammer_state : public hh_sm510_state -{ -public: - tmchammer_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tmchammer(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tmchammer ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Leg Footwork Left") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Arm Up") - 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("Leg Footwork Right") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Leg Leaps Up/Jump") - 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("Leg Leaps Down") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Arm Splits Right") - 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("Arm Splits Left") - 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("Arm Down") - 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("Mode") - 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 - -void tmchammer_state::tmchammer(machine_config &config) -{ - sm511_tiger1bit(config, 1471, 1080); -} - -// roms - -ROM_START( tmchammer ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "n63.program", 0x0000, 0x1000, CRC(303aa6f7) SHA1(296689be1ee05238e52e9882812868b2ea96202c) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "n63.melody", 0x000, 0x100, CRC(77c1a5a3) SHA1(c00ae3b7c64dd9db96eab520fe674a40571fc15f) ) - - ROM_REGION( 456487, "screen", 0) - ROM_LOAD( "tmchammer.svg", 0, 456487, CRC(1cd10ff3) SHA1(092396c56adae7f872c3b5916ef3ecf67ab30161) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Battletoads (model 7-868) - * Sharp SM510 under epoxy (die label MB3) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tbtoads_state : public hh_sm510_state -{ -public: - tbtoads_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tbtoads(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tbtoads ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack Right") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Select") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack 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("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 - -void tbtoads_state::tbtoads(machine_config &config) -{ - sm510_tiger(config, 1454, 1080); -} - -// roms - -ROM_START( tbtoads ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mb3", 0x0000, 0x1000, CRC(8fa4c55a) SHA1(2be97e63dfed51313e180d7388dd431058db5a51) ) - - ROM_REGION( 694417, "screen", 0) - ROM_LOAD( "tbtoads.svg", 0, 694417, CRC(c0fbc25d) SHA1(def54ab2f10123246f7809fc3caf3e9d26800f87) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Hook (model 7-869) - * Sharp SM510 under epoxy (die label MB7) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class thook_state : public hh_sm510_state -{ -public: - thook_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void thook(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( thook ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sword 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("Sword Down/Dodge") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.3") // S4 - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Swing Right") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack/Pick") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Swing 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 - -void thook_state::thook(machine_config &config) -{ - sm510_tiger(config, 1489, 1080); -} - -// roms - -ROM_START( thook ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mb7", 0x0000, 0x1000, CRC(7eb1a6e2) SHA1(f4a09ab95c968b0ddbe56cd7bb2667881c145731) ) - - ROM_REGION( 680544, "screen", 0) - ROM_LOAD( "thook.svg", 0, 680544, CRC(bddefb9b) SHA1(438b0fe6f4c0196952bd179075498d6bd19c3e48) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Back to the Future (model 7-809) - * 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 -{ -public: - tbttf_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tbttf(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tbttf ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Repair") - 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("Brake") - 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("Accelerate") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Rescue") - 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 - -void tbttf_state::tbttf(machine_config &config) -{ - sm510_tiger(config, 1466, 1080); -} - -// roms - -ROM_START( tbttf ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mc3", 0x0000, 0x1000, CRC(9c37a23c) SHA1(c09fa5caac8b574f8460265b98c0bea1d5e78c6a) ) - - ROM_REGION( 667741, "screen", 0) - ROM_LOAD( "tbttf.svg", 0, 667741, CRC(1a57e35a) SHA1(9b622e08cc44e3d48b71a283cd07b89fbcc6faa4) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger The Addams Family (model 7-829) - * 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 -{ -public: - taddams_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void taddams(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( taddams ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Take") - 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("Throw") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Select") - 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 - -void taddams_state::taddams(machine_config &config) -{ - sm510_tiger(config, 1464, 1080); -} - -// roms - -ROM_START( taddams ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mc2", 0x0000, 0x1000, CRC(af33d432) SHA1(676ada238c389d1dd02dcb29731d69624f60b342) ) - - ROM_REGION( 554703, "screen", 0) - ROM_LOAD( "taddams.svg", 0, 554703, CRC(85f15123) SHA1(088dbfbe760b782988bbfe6d29d89b8427844992) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Home Alone (model 78-???) - * Sharp SM510 under epoxy (die label MC7) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class thalone_state : public hh_sm510_state -{ -public: - thalone_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void thalone(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( thalone ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Trap 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("Climb") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Trap 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 - -void thalone_state::thalone(machine_config &config) -{ - sm510_tiger(config, 1448, 1080); -} - -// roms - -ROM_START( thalone ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mc7", 0x0000, 0x1000, CRC(eceda335) SHA1(20c9ffcf914db61aba03716fe146bac42873ac82) ) - - ROM_REGION( 494279, "screen", 0) - ROM_LOAD( "thalone.svg", 0, 494279, CRC(2479d88d) SHA1(061413d6e0893106b335ca42cf0260f45c7dacc7) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger X-Men - Project X (model 78-504) - * Sharp SM510 under epoxy (die label MD3) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class txmenpx_state : public hh_sm510_state -{ -public: - txmenpx_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void txmenpx(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( txmenpx ) - 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_NAME("Pick") - 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("Move") - 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 - -void txmenpx_state::txmenpx(machine_config &config) -{ - sm510_tiger(config, 1464, 1080); -} - -// roms - -ROM_START( txmenpx ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "md3", 0x0000, 0x1000, CRC(11c2b09a) SHA1(f94b1e3e60f002398b39c98946469dd1a6aa8e77) ) - - ROM_REGION( 572583, "screen", 0) - ROM_LOAD( "txmenpx.svg", 0, 572583, CRC(b98f3134) SHA1(78ac7cd32b36f214b5e6eada725378ccbca91987) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Home Alone 2 - Lost in New York (model 78-506) - * Sharp SM510 under epoxy (die label MD7) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class thalone2_state : public hh_sm510_state -{ -public: - thalone2_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void thalone2(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( thalone2 ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Trap/Flash 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("Climb/Pick") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Trap/Flash 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 - -void thalone2_state::thalone2(machine_config &config) -{ - sm510_tiger(config, 1454, 1080); -} - -// roms - -ROM_START( thalone2 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "md7", 0x0000, 0x1000, CRC(ac8a21e9) SHA1(9024f74e34056f90b7dbf439300797183f74eb00) ) - - ROM_REGION( 748928, "screen", 0) - ROM_LOAD( "thalone2.svg", 0, 748928, CRC(d42ec743) SHA1(7df9654b7f700662f29ca7cabe25ac78b2c4b04b) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Sonic The Hedgehog (model 78-513) - * Sharp SM511 under epoxy (die label KMS73B, N71) - * lcd screen with custom segments, 2-bit sound - -***************************************************************************/ - -class tsonic_state : public hh_sm510_state -{ -public: - tsonic_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tsonic(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tsonic ) - PORT_START("IN.0") // S2 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) // Jump Up - PORT_BIT( 0x0b, 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_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") // S4 - 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") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Super Sonic Spin - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // 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.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 - -void tsonic_state::tsonic(machine_config &config) -{ - sm511_tiger2bit(config, 1517, 1080); -} - -// roms - -ROM_START( tsonic ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "n71.program", 0x0000, 0x1000, CRC(44cafd68) SHA1(bf8d0ab88d153fabc688ffec19959209ca79c3db) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "n71.melody", 0x000, 0x100, CRC(bae258c8) SHA1(81cb75d73fab4479cd92fcb13d9cb03cec2afdd5) ) - - ROM_REGION( 541491, "screen", 0) - ROM_LOAD( "tsonic.svg", 0, 541491, CRC(ac6bff26) SHA1(fa944958eb64e8283d35951ff105cead28e6ab8a) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Robocop 3 (model 78-514) - * Sharp SM510 under epoxy (die label MC6) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class trobocop3_state : public hh_sm510_state -{ -public: - trobocop3_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void trobocop3(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( trobocop3 ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump/Fly") - 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("Rescue") - 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("P1 Down/Pick") - 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("Shoot 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("Shoot Up") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shoot 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 - -void trobocop3_state::trobocop3(machine_config &config) -{ - sm510_tiger(config, 1464, 1080); -} - -// roms - -ROM_START( trobocop3 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mc6", 0x0000, 0x1000, CRC(07b44e4c) SHA1(3165c85e16c062d2d9d0c0f1b1f6bd6079b4de15) ) - - ROM_REGION( 612142, "screen", 0) - ROM_LOAD( "trobocop3.svg", 0, 612142, CRC(b55c1440) SHA1(e8f692deecf489be22be570510175b750d65d5c5) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger The Incredible Crash Dummies (model 78-516) - * Sharp SM510 under epoxy (die label ME0) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tdummies_state : public hh_sm510_state -{ -public: - tdummies_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tdummies(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tdummies ) - 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_NAME("Crash") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Brake") - 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("Accelerate") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("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 - -void tdummies_state::tdummies(machine_config &config) -{ - sm510_tiger(config, 1441, 1080); -} - -// roms - -ROM_START( tdummies ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "me0", 0x0000, 0x1000, CRC(29efae4a) SHA1(0b26913a3fd2fde2b39549f0f7cbc3daaa41eb50) ) - - ROM_REGION( 525535, "screen", 0) - ROM_LOAD( "tdummies.svg", 0, 525535, CRC(b0db8655) SHA1(937b3edd9c0949b9f7d01ef8920ac63b61e64909) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Street Fighter II (model 78-522) - * Sharp SM510 under epoxy (die label ME1) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tsfight2_state : public hh_sm510_state -{ -public: - tsfight2_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tsfight2(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tsfight2 ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) // 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/Special Move") - 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("Game") - 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 - -void tsfight2_state::tsfight2(machine_config &config) -{ - sm510_tiger(config, 1444, 1080); -} - -// roms - -ROM_START( tsfight2 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "me1", 0x0000, 0x1000, CRC(73384e94) SHA1(350417d101ce034b3974b4a1d2e04bcb3bf70605) ) - - ROM_REGION( 630444, "screen", 0) - ROM_LOAD( "tsfight2.svg", 0, 630444, CRC(42b82c9b) SHA1(8e18d0cfd629478973f2c857105daad70eae46d9) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Wayne's World (model 78-523) - * Sharp SM510 under epoxy (die label ME7) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class twworld_state : public hh_sm510_state -{ -public: - twworld_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void twworld(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( twworld ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("High Five") - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Hockey Right") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shoot/Cassandra") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Hockey 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 - -void twworld_state::twworld(machine_config &config) -{ - sm510_tiger(config, 1429, 1080); -} - -// roms - -ROM_START( twworld ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "me7", 0x0000, 0x1000, CRC(dcb16d98) SHA1(539989e12bbc4a719818546c5edcfda02b98210e) ) - - ROM_REGION( 527901, "screen", 0) - ROM_LOAD( "twworld.svg", 0, 527901, CRC(515fede8) SHA1(e9c5adfb02b860fb97968957f282e685b1a4e3bc) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Jurassic Park (model 78-524) - * Sharp SM510 under epoxy (die label MF4) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tjpark_state : public hh_sm510_state -{ -public: - tjpark_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tjpark(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tjpark ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump/Climb") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Swing/Power") - PORT_BIT( 0x0a, 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("Forward") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.3") // S4 - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Call") - PORT_BIT( 0x0d, 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 - -void tjpark_state::tjpark(machine_config &config) -{ - sm510_tiger(config, 1454, 1080); -} - -// roms - -ROM_START( tjpark ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mf4", 0x0000, 0x1000, CRC(f66faf73) SHA1(4cfa743dcd6e44a3c1f56206d5824fddba16df01) ) - - ROM_REGION( 812619, "screen", 0) - ROM_LOAD( "tjpark.svg", 0, 812619, CRC(04d85ec6) SHA1(97f67bb496d985b62dc094f6f1d6b5597a4df895) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Sonic The Hedgehog 2 (model 78-527) - * Sharp SM511 under epoxy (die label N86) - * lcd screen with custom segments, 2-bit sound - -***************************************************************************/ - -class tsonic2_state : public hh_sm510_state -{ -public: - tsonic2_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tsonic2(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tsonic2 ) - PORT_START("IN.0") // S2 - 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") // S3 - 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") // S4 - 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") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Action - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // 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.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 - -void tsonic2_state::tsonic2(machine_config &config) -{ - sm511_tiger2bit(config, 1475, 1080); -} - -// roms - -ROM_START( tsonic2 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "n86.program", 0x0000, 0x1000, CRC(782874c5) SHA1(b7eb1f56cbc781ba0b90f6b4b5b51944120733cc) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "n86.melody", 0x000, 0x100, CRC(c16fa2b2) SHA1(222772d311fd3b3b05d80cfd539c2c862bed0be5) ) - - ROM_REGION( 667927, "screen", 0) - ROM_LOAD( "tsonic2.svg", 0, 667927, CRC(d2c52e67) SHA1(24ffbc8fae606dcd2f60a4d95fe1dcfd261c3576) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Super Double Dragon (model 78-528) - * Sharp SM510 under epoxy (die label MF5) - * lcd screen with custom segments, 1-bit sound - - BTANB: The player char right arm muscle is part of the right kick segment. - 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 -{ -public: - tsddragon_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tsddragon(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tsddragon ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick Left") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Jump") - PORT_BIT( 0x0a, 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("P1 Down/Pick") - 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("Special Technique") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick Right") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch") - 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("Select") - 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 - -void tsddragon_state::tsddragon(machine_config &config) -{ - sm510_tiger(config, 1503, 1080); -} - -// roms - -ROM_START( tsddragon ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mf5", 0x0000, 0x1000, CRC(264c8e82) SHA1(470eb2f09a58ef05eb0b7c8e11380ad1d8ce4e1a) ) - - ROM_REGION( 753572, "screen", 0) - ROM_LOAD( "tsddragon.svg", 0, 753572, CRC(0759388b) SHA1(4e4acb1b97845e529522ba21de846ce1dc74357d) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Dennis the Menace (model 78-532) - * Sharp SM510 under epoxy (die label MF9) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tdennis_state : public hh_sm510_state -{ -public: - tdennis_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tdennis(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tdennis ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Slingshot Left") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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("Brake") - 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("Pick Left") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Slingshot Right") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick Right") - 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 - -void tdennis_state::tdennis(machine_config &config) -{ - sm510_tiger(config, 1467, 1080); -} - -// roms - -ROM_START( tdennis ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mf9", 0x0000, 0x1000, CRC(d95f54d5) SHA1(1b3a170f32deec98e54ad09c04b404f5ae03dcea) ) - - ROM_REGION( 754896, "screen", 0) - ROM_LOAD( "tdennis.svg", 0, 754896, CRC(6e7512c3) SHA1(b84ef988051a6a883f3435a779ea67e544d50dae) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Nightmare Before Christmas (model 78-537) - * Sharp SM510 under epoxy (die label MG0) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tnmarebc_state : public hh_sm510_state -{ -public: - tnmarebc_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - virtual DECLARE_WRITE8_MEMBER(input_w) override; - void tnmarebc(machine_config &config); -}; - -// handlers - -WRITE8_MEMBER(tnmarebc_state::input_w) -{ - // S5 and S6 tied together - hh_sm510_state::input_w(space, 0, (data & 0x1f) | (data >> 1 & 0x10)); -} - -// config - -static INPUT_PORTS_START( tnmarebc ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) // 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) - 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) // Action - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5/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.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 - -void tnmarebc_state::tnmarebc(machine_config &config) -{ - sm510_tiger(config, 1456, 1080); -} - -// roms - -ROM_START( tnmarebc ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mg0", 0x0000, 0x1000, CRC(5ef21421) SHA1(8fd458575111b89d7c33c969e76703bde5ad2c36) ) - - ROM_REGION( 631351, "screen", 0) - ROM_LOAD( "tnmarebc.svg", 0, 631351, CRC(140e278b) SHA1(f0d2b6e6ee2328f54255532ad03d5d505ebbb23b) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Transformers - Generation 2 (model 78-541) - * Sharp SM510 under epoxy (die label MG2) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class ttransf2_state : public hh_sm510_state -{ -public: - ttransf2_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void ttransf2(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( ttransf2 ) - 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_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack") - PORT_BIT( 0x0e, 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("Call") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Transform") - 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 - -void ttransf2_state::ttransf2(machine_config &config) -{ - sm510_tiger(config, 1476, 1080); -} - -// roms - -ROM_START( ttransf2 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mg2", 0x0000, 0x1000, CRC(65c0f456) SHA1(b1bc3887c5088b3fe359585658e5c5236c09af9e) ) - - ROM_REGION( 727708, "screen", 0) - ROM_LOAD( "ttransf2.svg", 0, 727708, CRC(bd527f23) SHA1(9ce35bbfe1ea61c431eccaf32274faa4181587da) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Operation: Aliens (model 78-552) - * Sharp SM510 under epoxy (die label MJ1) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class topaliens_state : public hh_sm510_state -{ -public: - topaliens_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void topaliens(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( topaliens ) - 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("Attack") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("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 - -void topaliens_state::topaliens(machine_config &config) -{ - sm510_tiger(config, 1450, 1080); -} - -// roms - -ROM_START( topaliens ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mj1", 0x0000, 0x1000, CRC(ccc196cf) SHA1(f18f7cf842cddecf90d05ab0f90257bb76514f54) ) - - ROM_REGION( 1214917, "screen", 0) - ROM_LOAD( "topaliens.svg", 0, 1214917, CRC(cbd57ab4) SHA1(efac0833f421212a81a8fc9b35c97369375aa1a9) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Mortal Kombat (model 78-553) - * Sharp SM510 under epoxy (die label MG6) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tmkombat_state : public hh_sm510_state -{ -public: - tmkombat_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tmkombat(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tmkombat ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch High") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick High") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch Low") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick Low") - 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("Select") - 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 - -void tmkombat_state::tmkombat(machine_config &config) -{ - sm510_tiger(config, 1468, 1080); -} - -// roms - -ROM_START( tmkombat ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mg6", 0x0000, 0x1000, CRC(f6375dc7) SHA1(a711199c2623979f19c11067ebfff9355256c2c3) ) - - ROM_REGION( 841871, "screen", 0) - ROM_LOAD( "tmkombat.svg", 0, 841871, CRC(3bd5a963) SHA1(4d093f34c64caf60233e156fe160d8fceb15b6c6) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger The Shadow (model 78-559) - * Sharp SM510 under epoxy (die label MJ5) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tshadow_state : public hh_sm510_state -{ -public: - tshadow_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tshadow(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tshadow ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shadow") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick") - 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 - -void tshadow_state::tshadow(machine_config &config) -{ - sm510_tiger(config, 1484, 1080); -} - -// roms - -ROM_START( tshadow ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mj5", 0x0000, 0x1000, CRC(09822d73) SHA1(30cae8b783a4f388193aee248fa18c6c1042e0ec) ) - - ROM_REGION( 946494, "screen", 0) - ROM_LOAD( "tshadow.svg", 0, 946494, CRC(e62de82e) SHA1(94fcef33066e97266efcd0d91b60229859088b36) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Skeleton Warriors - The Dark Crusade (model 78-569) - * Sharp SM510 under epoxy (die label MK0) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tskelwarr_state : public hh_sm510_state -{ -public: - tskelwarr_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tskelwarr(machine_config &); -}; - -// config - -static INPUT_PORTS_START( tskelwarr ) - 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack Right") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick/Call") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Attack 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 - -void tskelwarr_state::tskelwarr(machine_config &config) -{ - sm510_tiger(config, 1444, 1080); -} - -// roms - -ROM_START( tskelwarr ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mk0", 0x0000, 0x1000, CRC(dc7827a1) SHA1(74ff143605684df0c70db604a5f22dbf512044d7) ) - - ROM_REGION( 1125043, "screen", 0) - ROM_LOAD( "tskelwarr.svg", 0, 1125043, CRC(ee086073) SHA1(70e06a7fe8a1a8b8fee483c08522996da9917501) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Batman Forever - Double Dose of Doom (model 78-572) - * Sharp SM510 under epoxy (die label MK3) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tbatfor_state : public hh_sm510_state -{ -public: - tbatfor_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tbatfor(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tbatfor ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Grappling Gun") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Help") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Batarang") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Thruster") - 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 - -void tbatfor_state::tbatfor(machine_config &config) -{ - sm510_tiger(config, 1493, 1080); -} - -// roms - -ROM_START( tbatfor ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mk3", 0x0000, 0x1000, CRC(9993c382) SHA1(0c89e21024315ce7c086af5390c60f5766028c4f) ) - - ROM_REGION( 902412, "screen", 0) - ROM_LOAD( "tbatfor.svg", 0, 902412, CRC(d92d799e) SHA1(fa8b4198099748570a9cc9772c81aa583ac7ea72) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Judge Dredd (model 78-581) - * Sharp SM510 under epoxy (die label MK5) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tjdredd_state : public hh_sm510_state -{ -public: - tjdredd_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tjdredd(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tjdredd ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick/Call") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire") - 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 - -void tjdredd_state::tjdredd(machine_config &config) -{ - sm510_tiger(config, 1444, 1080); -} - -// roms - -ROM_START( tjdredd ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "mk5", 0x0000, 0x1000, CRC(7beee5a7) SHA1(9a190197c5751b43a9ab2dc8c536934dc5fc5e83) ) - - ROM_REGION( 1051637, "screen", 0) - ROM_LOAD( "tjdredd.svg", 0, 1051637, CRC(0f3541c6) SHA1(9838e2ae5806a48be595f53e6096b7c150b91651) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Apollo 13 (model 78-591) - * Sharp SM510 under epoxy (die label 10 07) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tapollo13_state : public hh_sm510_state -{ -public: - tapollo13_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tapollo13(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tapollo13 ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Thruster Left") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Parachute") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Thruster Right") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Capture") - 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 - -void tapollo13_state::tapollo13(machine_config &config) -{ - sm510_tiger(config, 1467, 1080); -} - -// roms - -ROM_START( tapollo13 ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "10_07", 0x0000, 0x1000, CRC(63d0deaa) SHA1(d5de99d5e0ee08ec2ebeef7189ebac1c008d2e7d) ) - - ROM_REGION( 643219, "screen", 0) - ROM_LOAD( "tapollo13.svg", 0, 643219, CRC(f4b94141) SHA1(d67367212f2be1685de0f3acaebaae0dc67734c4) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger 007: GoldenEye (model 78-594) - * Sharp SM510 under epoxy (die label 10 06) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tgoldeye_state : public hh_sm510_state -{ -public: - tgoldeye_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tgoldeye(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tgoldeye ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Q") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire") - 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 - -void tgoldeye_state::tgoldeye(machine_config &config) -{ - sm510_tiger(config, 1461, 1080); -} - -// roms - -ROM_START( tgoldeye ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "10_06", 0x0000, 0x1000, CRC(fe053efb) SHA1(3c90c0fa43e6e5e1f76b306e402f902d19175c96) ) - - ROM_REGION( 938956, "screen", 0) - ROM_LOAD( "tgoldeye.svg", 0, 938956, CRC(c4ad9836) SHA1(23555bd5fdaebed190ce02054a8ee681c88a8afb) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Kazaam (model 78-613) - * Sharp SM510 under epoxy (die label KMS10, 18) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tkazaam_state : public hh_sm510_state -{ -public: - tkazaam_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tkazaam(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tkazaam ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Kick") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0a, 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Pick/Rescue") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch Forward") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Punch Back") - 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 - -void tkazaam_state::tkazaam(machine_config &config) -{ - sm510_tiger(config, 1452, 1080); // no external XTAL -} - -// roms - -ROM_START( tkazaam ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "10_18", 0x0000, 0x1000, CRC(aa796372) SHA1(fdaea736e1df46c19fca08ed981e9659e038d15a) ) - - ROM_REGION( 929109, "screen", 0) - ROM_LOAD( "tkazaam.svg", 0, 929109, CRC(5eb178d4) SHA1(bcf64df4f342d16d5fd3d4cb503fceb1e5485591) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Space Jam (model 78-621) - * Sharp SM510 under epoxy (die label KMS10, 23) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tsjam_state : public hh_sm510_state -{ -public: - tsjam_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tsjam(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tsjam ) - 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("Shoot/Block") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Tune/Steal") - 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 - -void tsjam_state::tsjam(machine_config &config) -{ - sm510_tiger(config, 1421, 1080); // no external XTAL -} - -// roms - -ROM_START( tsjam ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "10_23", 0x0000, 0x1000, CRC(6eaabfbd) SHA1(f0ecbd6f65fe72ce2d8a452685be2e77a63fc9f0) ) - - ROM_REGION( 1046158, "screen", 0) - ROM_LOAD( "tsjam.svg", 0, 1046158, CRC(29187365) SHA1(f277a064e6ecd6219c930736a0bdf56196279b42) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Independence Day (model 78-624) - * Sharp SM510 under epoxy (die label 10 16) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class tinday_state : public hh_sm510_state -{ -public: - tinday_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tinday(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( tinday ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_NAME("Shield") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Fire") - PORT_BIT( 0x0a, 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("Alert") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.3") // S4 - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Velocity") - PORT_BIT( 0x0d, 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 - -void tinday_state::tinday(machine_config &config) -{ - sm510_tiger(config, 1463, 1080); -} - -// roms - -ROM_START( tinday ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "10_16", 0x0000, 0x1000, CRC(77c2c2f7) SHA1(06326b26d0f6757180724ba0bdeb4110cc7e29d6) ) - - ROM_REGION( 1162716, "screen", 0) - ROM_LOAD( "tinday.svg", 0, 1162716, CRC(97056e62) SHA1(0348f0aca5d9b8e24f83c7e73b5e31f419fe60df) ) -ROM_END - - - - - -/*************************************************************************** - - Tiger Batman: The Animated Series (model 72-505) - * Sharp SM511 under epoxy (die label N81) - * lcd screen with custom segments, 2-bit sound - -***************************************************************************/ - -class tbatmana_state : public hh_sm510_state -{ -public: - tbatmana_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { - inp_fixed_last(); - } - - void tbatmana(machine_config &config); -}; - -// config - -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( 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( 0x0d, 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("Throw/Attack") - PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // S6 - PORT_BIT( 0x0f, 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 - -void tbatmana_state::tbatmana(machine_config &config) -{ - sm511_tiger2bit(config, 1478, 1080); -} - -// roms - -ROM_START( tbatmana ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "n81.program", 0x0000, 0x1000, CRC(efb3f122) SHA1(d55c2fb92fb9bd41d6001f42143691b84f3f389a) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "n81.melody", 0x000, 0x100, CRC(56ba8fe5) SHA1(5c286ae1bfc943bbe8c8f4cdc9c8b73d9b3c186e) ) - - ROM_REGION( 618872, "screen", 0) - ROM_LOAD( "tbatmana.svg", 0, 618872, CRC(8c721273) SHA1(d8c52441466943254bffcd6449af47a9fad6296b) ) -ROM_END - - - - - -/*************************************************************************** - - Tronica Shuttle Voyage (MG-8) - * Sharp SM510 label 0019 238E TRONICA (no decap) - * lcd screen with custom segments, 1-bit sound - - 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 -{ -public: - trshutvoy_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void trshutvoy(machine_config &config); - void tigarden(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( trshutvoy ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("0") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("1") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("2") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("3") - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("4") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("5") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("6") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("7") - - PORT_START("IN.2") // S3 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("8") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("9") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME(".") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("=") - - PORT_START("IN.3") // S4 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("+") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("-") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_CHANGED_CB(input_changed) PORT_NAME(UTF8_MULTIPLY) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME(UTF8_DIVIDE) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_CHANGED_CB(input_changed) PORT_NAME("ALM") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_CHANGED_CB(input_changed) PORT_NAME("%") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_CHANGED_CB(input_changed) PORT_NAME("C") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.5") // S6 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.6") // S7 - PORT_BIT( 0x01, 0x01, IPT_CUSTOM ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // Up/Sound - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // F - - PORT_START("IN.7") // S8 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_CHANGED_CB(input_changed) PORT_NAME("Mode") - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") - - PORT_START("FAKE") // Up/Sound are electronically the same button - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound") -INPUT_PORTS_END - -void trshutvoy_state::trshutvoy(machine_config &config) -{ - sm510_common(config, 1496, 1080); // R mask options confirmed -} - -void trshutvoy_state::tigarden(machine_config &config) -{ - sm510_common(config, 1515, 1080); -} - -// roms - -ROM_START( trshutvoy ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "0019_238e", 0x0000, 0x1000, CRC(8bd0eadd) SHA1(7bb5eb30d569901dce52d777bc01c0979e4afa06) ) - - ROM_REGION( 221748, "screen", 0) - ROM_LOAD( "trshutvoy.svg", 0, 221748, CRC(9e630b4e) SHA1(7e2a3a82519f29f7b1b92930604e010b5b9fdb06) ) -ROM_END - -ROM_START( tigarden ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "0019_238e", 0x0000, 0x1000, CRC(8bd0eadd) SHA1(7bb5eb30d569901dce52d777bc01c0979e4afa06) ) - - ROM_REGION( 409134, "screen", 0) - ROM_LOAD( "tigarden.svg", 0, 409134, CRC(628f4aee) SHA1(5fa4843be61b52660a932e0d1efad403cf12de88) ) -ROM_END - - - - - -/*************************************************************************** - - Tronica Space Rescue (model MG-9) - * PCB label MG-9 080492 - * Sharp SM510 label 0015 224B TRONICA (no decap) - * lcd screen with custom segments, 1-bit sound - -***************************************************************************/ - -class trsrescue_state : public hh_sm510_state -{ -public: - trsrescue_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void trsrescue(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( trsrescue ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_16WAY - - PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm") - 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_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time") - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL") -INPUT_PORTS_END - -void trsrescue_state::trsrescue(machine_config &config) -{ - sm510_common(config, 1533, 1080); // R mask options confirmed -} - -// roms - -ROM_START( trsrescue ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "0015_224b", 0x0000, 0x1000, CRC(f58a3832) SHA1(2d843b3520de66463e628cea9344a04015d1f5f1) ) - - ROM_REGION( 178760, "screen", 0) - ROM_LOAD( "trsrescue.svg", 0, 178760, CRC(40756fd3) SHA1(9762ebbe4753a3194d7f0844c91addb8e1f8930b) ) -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 -{ -public: - nummunch_state(const machine_config &mconfig, device_type type, const char *tag) : - hh_sm510_state(mconfig, type, tag) - { } - - void nummunch(machine_config &config); -}; - -// config - -static INPUT_PORTS_START( nummunch ) - PORT_START("IN.0") // S1 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - 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_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_CHANGED_CB(input_changed) PORT_NAME("Calc. / Clear") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("=") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.2") // S3 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_CHANGED_CB(input_changed) PORT_NAME("Game") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_CHANGED_CB(input_changed) PORT_NAME("Count") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_CHANGED_CB(input_changed) PORT_NAME("Quiz") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.3") // S4 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_CHANGED_CB(input_changed) PORT_NAME("Choose +") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_CHANGED_CB(input_changed) PORT_NAME("Choose -") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_CHANGED_CB(input_changed) PORT_NAME("Choose " UTF8_MULTIPLY) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_CHANGED_CB(input_changed) PORT_NAME("Choose " UTF8_DIVIDE) - - PORT_START("IN.4") // S5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("1") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("0") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_CHANGED_CB(input_changed) PORT_NAME("Left") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_CHANGED_CB(input_changed) PORT_NAME("Right") - - PORT_START("IN.5") // S6 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("5") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("4") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("3") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("2") - - PORT_START("IN.6") // S7 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("9") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("8") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("7") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("6") - - PORT_START("IN.7") // S8 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("+") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME("-") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_CHANGED_CB(input_changed) PORT_NAME(UTF8_MULTIPLY) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_CHANGED_CB(input_changed) PORT_NAME(UTF8_DIVIDE) - - PORT_START("ACL") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_ON ) PORT_CHANGED_CB(acl_button) -INPUT_PORTS_END - -void nummunch_state::nummunch(machine_config &config) -{ - sm511_common(config, 1920, 875); -} - -// roms - -ROM_START( nummunch ) - ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "772.program", 0x0000, 0x1000, CRC(2f7ff516) SHA1(132e7c5c4d69170953b2e51731992d6d6ba829f9) ) - - ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "772.melody", 0x000, 0x100, CRC(96fe463a) SHA1(dcef5eee15a3f6d21e0db1b8ae3fbddc81633fc8) ) - - ROM_REGION( 140704, "screen", 0) - ROM_LOAD( "nummunch.svg", 0, 140704, CRC(050301d7) SHA1(3671d0e1b0cc788d74df0c6adb57a01729f66d7c) ) -ROM_END - - - -} // anonymous namespace - -/*************************************************************************** - - Game driver(s) - -***************************************************************************/ - -// YEAR NAME PARENT COMP 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 ) -CONS( 1980, gnw_judge, 0, 0, gnw_judge, gnw_judge, gnw_judge_state, empty_init, "Nintendo", "Game & Watch: Judge (green)", 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 ) -CONS( 1981, gnw_helmet, 0, 0, gnw_helmet, gnw_helmet, gnw_helmet_state, empty_init, "Nintendo", "Game & Watch: Helmet (Rev. 2)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, gnw_lion, 0, 0, gnw_lion, gnw_lion, gnw_lion_state, empty_init, "Nintendo", "Game & Watch: Lion", MACHINE_SUPPORTS_SAVE ) - -// 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 ) -CONS( 1981, gnw_octopus, 0, 0, gnw_octopus, gnw_octopus, gnw_octopus_state, empty_init, "Nintendo", "Game & Watch: Octopus", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, gnw_popeye, 0, 0, gnw_popeye, gnw_popeye, gnw_popeye_state, empty_init, "Nintendo", "Game & Watch: Popeye (wide screen)", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, gnw_chef, 0, 0, gnw_chef, gnw_chef, gnw_chef_state, empty_init, "Nintendo", "Game & Watch: Chef", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, merrycook, gnw_chef, 0, merrycook, gnw_chef, gnw_chef_state, empty_init, "Elektronika", "Merry Cook", MACHINE_SUPPORTS_SAVE) -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 ) -CONS( 1981, gnw_egg, gnw_mmouse, 0, gnw_egg, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE ) -CONS( 1984, nupogodi, gnw_mmouse, 0, nupogodi, gnw_mmouse, gnw_mmouse_state, empty_init, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, exospace, gnw_mmouse, 0, exospace, exospace, gnw_mmouse_state, empty_init, "Elektronika", "Explorers of Space", MACHINE_SUPPORTS_SAVE ) -CONS( 1981, gnw_fire, 0, 0, gnw_fire, gnw_fire, gnw_fire_state, empty_init, "Nintendo", "Game & Watch: Fire (wide screen)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, spacebridge, gnw_fire, 0, spacebridge, gnw_fire, gnw_fire_state, empty_init, "Elektronika", "Space Bridge", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gnw_tbridge, 0, 0, gnw_tbridge, gnw_tbridge, gnw_tbridge_state, empty_init, "Nintendo", "Game & Watch: Turtle Bridge", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gnw_fireatk, 0, 0, gnw_fireatk, gnw_fireatk, gnw_fireatk_state, empty_init, "Nintendo", "Game & Watch: Fire Attack", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gnw_stennis, 0, 0, gnw_stennis, gnw_stennis, gnw_stennis_state, empty_init, "Nintendo", "Game & Watch: Snoopy Tennis", MACHINE_SUPPORTS_SAVE ) - -// 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) -CONS( 1982, gnw_dkong, 0, 0, gnw_dkong, gnw_dkong, gnw_dkong_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gnw_mickdon, 0, 0, gnw_mickdon, gnw_mickdon, gnw_mickdon_state, empty_init, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, gnw_ghouse, 0, 0, gnw_ghouse, gnw_ghouse, gnw_ghouse_state, empty_init, "Nintendo", "Game & Watch: Green House", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_dkong2, 0, 0, gnw_dkong2, gnw_dkong2, gnw_dkong2_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_mario, 0, 0, gnw_mario, gnw_mario, gnw_mario_state, empty_init, "Nintendo", "Game & Watch: Mario Bros.", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, gnw_rshower, 0, 0, gnw_rshower, gnw_rshower, gnw_rshower_state, empty_init, "Nintendo", "Game & Watch: Rain Shower", MACHINE_SUPPORTS_SAVE) -CONS( 1983, gnw_lboat, 0, 0, gnw_lboat, gnw_lboat, gnw_lboat_state, empty_init, "Nintendo", "Game & Watch: Life Boat", MACHINE_SUPPORTS_SAVE) -CONS( 1985, gnw_bjack, 0, 0, gnw_bjack, gnw_bjack, gnw_bjack_state, empty_init, "Nintendo", "Game & Watch: Black Jack", MACHINE_SUPPORTS_SAVE) -CONS( 1986, gnw_squish, 0, 0, gnw_squish, gnw_squish, gnw_squish_state, empty_init, "Nintendo", "Game & Watch: Squish", MACHINE_SUPPORTS_SAVE ) -CONS( 1987, gnw_bsweep, 0, 0, gnw_bsweep, gnw_bsweep, gnw_bsweep_state, empty_init, "Nintendo", "Game & Watch: Bomb Sweeper", MACHINE_SUPPORTS_SAVE ) -CONS( 1988, gnw_sbuster, 0, 0, gnw_sbuster, gnw_sbuster, gnw_sbuster_state, empty_init, "Nintendo", "Game & Watch: Safe Buster", MACHINE_SUPPORTS_SAVE ) -CONS( 1988, gnw_gcliff, 0, 0, gnw_gcliff, gnw_gcliff, gnw_gcliff_state, empty_init, "Nintendo", "Game & Watch: Gold Cliff", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, gnw_zelda, 0, 0, gnw_zelda, gnw_zelda, gnw_zelda_state, empty_init, "Nintendo", "Game & Watch: Zelda", MACHINE_SUPPORTS_SAVE ) - -// 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 ) -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 ) -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 ) -CONS( 1985, gnw_tfish, 0, 0, gnw_tfish, gnw_tfish, gnw_tfish_state, empty_init, "Nintendo", "Game & Watch: Tropical Fish", MACHINE_SUPPORTS_SAVE ) -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 ) -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 ) -CONS( 1986, gnw_climber, 0, 0, gnw_climber, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (crystal screen)", MACHINE_SUPPORTS_SAVE ) -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 ) -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 ) -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 ) -CONS( 1991, gnw_mariotj, 0, 0, gnw_mariotj, gnw_mariotj, gnw_mariotj_state, empty_init, "Nintendo", "Game & Watch: Mario The Juggler", MACHINE_SUPPORTS_SAVE ) - -// Nintendo G&W: table top / panorama screen -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 ) -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 ) -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 ) -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 ) - -// 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 ) - -// 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 ) - -// Konami -CONS( 1989, kdribble, 0, 0, kdribble, kdribble, kdribble_state, empty_init, "Konami", "Double Dribble (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, empty_init, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, empty_init, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, empty_init, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, empty_init, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kblades, 0, 0, kblades, kblades, kblades_state, empty_init, "Konami", "Blades of Steel (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, knfl, 0, 0, knfl, knfl, knfl_state, empty_init, "Konami", "NFL Football (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, kbilly, 0, 0, kbilly, kbilly, kbilly_state, empty_init, "Konami", "The Adventures of Bayou Billy (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, kbucky, 0, 0, kbucky, kbucky, kbucky_state, empty_init, "Konami", "Bucky O'Hare (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, empty_init, "Konami", "Garfield (handheld)", MACHINE_SUPPORTS_SAVE ) - -// Tiger 7-xxx/78-xxx models -CONS( 1989, tgaunt, 0, 0, tgaunt, tgaunt, tgaunt_state, empty_init, "Tiger Electronics (licensed from Tengen)", "Gauntlet (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, trobhood, tgaunt, 0, trobhood, trobhood, tgaunt_state, empty_init, "Tiger Electronics", "Robin Hood (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, tddragon, 0, 0, tddragon, tddragon, tddragon_state, empty_init, "Tiger Electronics (licensed from Technos/Tradewest)", "Double Dragon (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, tkarnov, 0, 0, tkarnov, tkarnov, tkarnov_state, empty_init, "Tiger Electronics (licensed from Data East)", "Karnov (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, tvindictr, 0, 0, tvindictr, tvindictr, tvindictr_state, empty_init, "Tiger Electronics (licensed from Tengen)", "Vindicators (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, tgaiden, 0, 0, tgaiden, tgaiden, tgaiden_state, empty_init, "Tiger Electronics (licensed from Tecmo)", "Ninja Gaiden (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1989, tbatman, 0, 0, tbatman, tbatman, tbatman_state, empty_init, "Tiger Electronics", "Batman (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, tsharr2, 0, 0, tsharr2, tsharr2, tsharr2_state, empty_init, "Tiger Electronics (licensed from Sega)", "Space Harrier II (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, tstrider, 0, 0, tstrider, tstrider, tstrider_state, empty_init, "Tiger Electronics (licensed from Capcom)", "Strider (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, tgoldnaxe, 0, 0, tgoldnaxe, tgoldnaxe, tgoldnaxe_state, empty_init, "Tiger Electronics (licensed from Sega)", "Golden Axe (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, trobocop2, 0, 0, trobocop2, trobocop2, trobocop2_state, empty_init, "Tiger Electronics", "Robocop 2 (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, trockteer, trobocop2, 0, trockteer, trockteer, trobocop2_state, empty_init, "Tiger Electronics", "The Rocketeer (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, taltbeast, 0, 0, taltbeast, taltbeast, taltbeast_state, empty_init, "Tiger Electronics (licensed from Sega)", "Altered Beast (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1990, tsf2010, 0, 0, tsf2010, tsf2010, tsf2010_state, empty_init, "Tiger Electronics (licensed from Capcom)", "Street Fighter 2010 - The Final Fight (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, tswampt, 0, 0, tswampt, tswampt, tswampt_state, empty_init, "Tiger Electronics", "Swamp Thing (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, tspidman, 0, 0, tspidman, tspidman, tspidman_state, empty_init, "Tiger Electronics", "Spider-Man (handheld, Tiger 1991 version)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, txmen, 0, 0, txmen, txmen, txmen_state, empty_init, "Tiger Electronics", "X-Men (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, tddragon3, 0, 0, tddragon3, tddragon3, tddragon3_state, empty_init, "Tiger Electronics (licensed from Technos)", "Double Dragon 3 - The Rosetta Stone (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, tflash, 0, 0, tflash, tflash, tflash_state, empty_init, "Tiger Electronics", "The Flash (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, tmchammer, 0, 0, tmchammer, tmchammer, tmchammer_state, empty_init, "Tiger Electronics", "MC Hammer: U Can't Touch This (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, tbtoads, 0, 0, tbtoads, tbtoads, tbtoads_state, empty_init, "Tiger Electronics (licensed from Rare/Tradewest)", "Battletoads (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1991, thook, 0, 0, thook, thook, thook_state, empty_init, "Tiger Electronics", "Hook (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1992, tbttf, 0, 0, tbttf, tbttf, tbttf_state, empty_init, "Tiger Electronics", "Back to the Future (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1992, taddams, 0, 0, taddams, taddams, taddams_state, empty_init, "Tiger Electronics", "The Addams Family (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1992, thalone, 0, 0, thalone, thalone, thalone_state, empty_init, "Tiger Electronics", "Home Alone (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, txmenpx, 0, 0, txmenpx, txmenpx, txmenpx_state, empty_init, "Tiger Electronics", "X-Men - Project X (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1992, thalone2, 0, 0, thalone2, thalone2, thalone2_state, empty_init, "Tiger Electronics", "Home Alone 2 - Lost in New York (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1992, tsonic, 0, 0, tsonic, tsonic, tsonic_state, empty_init, "Tiger Electronics (licensed from Sega)", "Sonic The Hedgehog (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1992, trobocop3, 0, 0, trobocop3, trobocop3, trobocop3_state, empty_init, "Tiger Electronics", "Robocop 3 (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tdummies, 0, 0, tdummies, tdummies, tdummies_state, empty_init, "Tiger Electronics", "The Incredible Crash Dummies (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tsfight2, 0, 0, tsfight2, tsfight2, tsfight2_state, empty_init, "Tiger Electronics (licensed from Capcom)", "Street Fighter II (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1992, twworld, 0, 0, twworld, twworld, twworld_state, empty_init, "Tiger Electronics", "Wayne's World (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tjpark, 0, 0, tjpark, tjpark, tjpark_state, empty_init, "Tiger Electronics", "Jurassic Park (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tsonic2, 0, 0, tsonic2, tsonic2, tsonic2_state, empty_init, "Tiger Electronics (licensed from Sega)", "Sonic The Hedgehog 2 (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tsddragon, 0, 0, tsddragon, tsddragon, tsddragon_state, empty_init, "Tiger Electronics (licensed from Technos)", "Super Double Dragon (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tdennis, 0, 0, tdennis, tdennis, tdennis_state, empty_init, "Tiger Electronics", "Dennis the Menace (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tnmarebc, 0, 0, tnmarebc, tnmarebc, tnmarebc_state, empty_init, "Tiger Electronics", "Nightmare Before Christmas (handheld)", MACHINE_SUPPORTS_SAVE ) // note: title has no "The" -CONS( 1993, ttransf2, 0, 0, ttransf2, ttransf2, ttransf2_state, empty_init, "Tiger Electronics", "Transformers - Generation 2 (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1994, topaliens, 0, 0, topaliens, topaliens, topaliens_state, empty_init, "Tiger Electronics", "Operation: Aliens (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1993, tmkombat, 0, 0, tmkombat, tmkombat, tmkombat_state, empty_init, "Tiger Electronics (licensed from Midway)", "Mortal Kombat (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1994, tshadow, 0, 0, tshadow, tshadow, tshadow_state, empty_init, "Tiger Electronics", "The Shadow (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1994, tskelwarr, 0, 0, tskelwarr, tskelwarr, tskelwarr_state, empty_init, "Tiger Electronics", "Skeleton Warriors - The Dark Crusade (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1995, tbatfor, 0, 0, tbatfor, tbatfor, tbatfor_state, empty_init, "Tiger Electronics", "Batman Forever - Double Dose of Doom (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1995, tjdredd, 0, 0, tjdredd, tjdredd, tjdredd_state, empty_init, "Tiger Electronics", "Judge Dredd (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1995, tapollo13, 0, 0, tapollo13, tapollo13, tapollo13_state, empty_init, "Tiger Electronics", "Apollo 13 (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1995, tgoldeye, 0, 0, tgoldeye, tgoldeye, tgoldeye_state, empty_init, "Tiger Electronics", "007: GoldenEye (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1996, tkazaam, 0, 0, tkazaam, tkazaam, tkazaam_state, empty_init, "Tiger Electronics", "Kazaam (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1996, tsjam, 0, 0, tsjam, tsjam, tsjam_state, empty_init, "Tiger Electronics", "Space Jam (handheld)", MACHINE_SUPPORTS_SAVE ) -CONS( 1996, tinday, 0, 0, tinday, tinday, tinday_state, empty_init, "Tiger Electronics", "Independence Day (handheld)", MACHINE_SUPPORTS_SAVE ) - -// Tiger 72-xxx models -CONS( 1992, tbatmana, 0, 0, tbatmana, tbatmana, tbatmana_state, empty_init, "Tiger Electronics", "Batman: The Animated Series (handheld)", MACHINE_SUPPORTS_SAVE ) - -// Tronica -CONS( 1983, trshutvoy, 0, 0, trshutvoy, trshutvoy, trshutvoy_state, empty_init, "Tronica", "Shuttle Voyage", MACHINE_SUPPORTS_SAVE ) -CONS( 1983, tigarden, trshutvoy, 0, tigarden, trshutvoy, trshutvoy_state, empty_init, "Tronica", "Thief in Garden", MACHINE_SUPPORTS_SAVE ) -CONS( 1982, trsrescue, 0, 0, trsrescue, trsrescue, trsrescue_state, empty_init, "Tronica", "Space Rescue", MACHINE_SUPPORTS_SAVE ) - -// misc -CONS( 1989, nummunch, 0, 0, nummunch, nummunch, nummunch_state, empty_init, "VTech", "Electronic Number Muncher", MACHINE_SUPPORTS_SAVE ) |