From 0fa973879341af191f38b0bce11a7bc6a02e8f2f Mon Sep 17 00:00:00 2001 From: algestam Date: Sun, 8 Sep 2019 20:58:03 +0200 Subject: * New working machine added (#5603) * * New working machine added ---------- Game & Watch: Fire (silver) [algestam, Mr. Do, Sean Riddle] * hh_sm510: rename gnw_fires (nw) --- src/mame/drivers/hh_sm510.cpp | 86 ++++++++++++++++++++++++++++++++++++++++++- src/mame/mame.lst | 1 + 2 files changed, 86 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index 924e7764f55..0ad843c0bdf 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -46,7 +46,7 @@ Serial Series MCU Title AC-01 s SM5A Ball (aka Toss-Up) FL-02 s SM5A Flagman MT-03 s SM5A Vermin (aka The Exterminator) -RC-04* s SM5A? Fire (aka Fireman Fireman) +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) @@ -1458,6 +1458,89 @@ 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) +{ + /* basic machine hardware */ + SM5A(config, m_maincpu); + m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_r1_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); + screen.set_refresh_hz(60); + screen.set_size(1646, 1080); + screen.set_visarea_full(); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker); + m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); +} + +// roms + +ROM_START( gnw_fires ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "rc-04", 0x0000, 0x0740, CRC(154ef27d) SHA1(fb65826dfd405ad05fe0f5f947c213214bbd61c0) ) + + ROM_REGION( 102509, "screen", 0) + ROM_LOAD( "gnw_fires.svg", 0, 102509, CRC(6052df76) SHA1(15bd9694f6a23d4b399b9d3ab3d2d46f0e30d5dd) ) +ROM_END + + + + + /*************************************************************************** Nintendo Game & Watch: Helmet (model CN-07) @@ -9999,6 +10082,7 @@ CONS( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, 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( 1981, gnw_helmet, 0, 0, gnw_helmet, gnw_helmet, gnw_helmet_state, empty_init, "Nintendo", "Game & Watch: Helmet", MACHINE_SUPPORTS_SAVE ) // Nintendo G&W: wide screen diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 1eafe40a89a..abd4c2bfebb 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15322,6 +15322,7 @@ gnw_dkong2 // Nintendo gnw_egg // Nintendo gnw_fire // Nintendo gnw_fireatk // Nintendo +gnw_fires // Nintendo gnw_flagman // Nintendo gnw_gcliff // Nintendo gnw_ghouse // Nintendo -- cgit v1.2.3