summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author algestam <henrik@algestam.se>2018-10-21 13:37:41 +0200
committer hap <happppp@users.noreply.github.com>2018-10-21 13:37:41 +0200
commit1482a81fc2b6028141063748bbf5cb3e0ae4ae95 (patch)
treeb6625b2bd15f1bff0b8488dc5fd46b6be63d39f9
parentdbaf83eebf629bd318eec83861b253fc61fb3f9b (diff)
New working machine added (#4173)
----------- Green House (Nintendo Game & Watch) [algestam]
-rw-r--r--src/mame/drivers/hh_sm510.cpp95
-rw-r--r--src/mame/mame.lst1
2 files changed, 96 insertions, 0 deletions
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index d3c3c53b2d1..cffbe347e09 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -1303,6 +1303,90 @@ MACHINE_CONFIG_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)
+ {
+ m_inp_lines = 3;
+ }
+
+ 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_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) // Jump
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm")
+
+ PORT_START("ACL")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
+
+ PORT_START("B") // MCU B(beta) pin pulled to GND
+ PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)")
+ PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+MACHINE_CONFIG_START(gnw_ghouse_state::gnw_ghouse)
+
+ /* basic machine hardware */
+ MCFG_DEVICE_ADD("maincpu", SM510)
+ MCFG_SM510_R_MASK_OPTION(2) // confirmed
+ MCFG_SM510_WRITE_SEGS_CB(WRITE16(*this, hh_sm510_state, sm510_lcd_segment_w))
+ MCFG_SM510_READ_K_CB(READ8(*this, hh_sm510_state, input_r))
+ MCFG_SM510_WRITE_S_CB(WRITE8(*this, hh_sm510_state, input_w))
+ MCFG_SM510_WRITE_R_CB(WRITE8(*this, hh_sm510_state, piezo_r1_w))
+ MCFG_SM510_READ_B_CB(IOPORT("B"))
+
+ /* video hardware */
+ MCFG_SCREEN_SVG_ADD("screen_top", "svg_top")
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_SIZE(1920/2, 1303/2)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1920/2-1, 0, 1303/2-1)
+
+ MCFG_SCREEN_SVG_ADD("screen_bottom", "svg_bottom")
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_SIZE(1920/2, 1274/2)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1920/2-1, 0, 1274/2-1)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
+ config.set_default_layout(layout_gnw_dualv);
+
+ /* sound hardware */
+ SPEAKER(config, "mono").front_center();
+ MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Nintendo Game & Watch: Donkey Kong II (model JR-55)
* PCB label JR-55
* Sharp SM510 label JR-55 53YC (die label CMS54C, KMS560)
@@ -6663,6 +6747,16 @@ ROM_START( gnw_mickdon )
ROM_LOAD( "gnw_mickdon_bottom.svg", 0, 122870, CRC(8f06ddf1) SHA1(69d4b785781600abcdfc01b3902df1d0ae3608cf) )
ROM_END
+ROM_START( gnw_ghouse )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "gh-54", 0x0000, 0x1000, CRC(4df12b4d) SHA1(708be5fef8dbd9337f5ab35baaca5bdf21e1f36c) )
+
+ ROM_REGION( 159098, "svg_top", 0)
+ ROM_LOAD( "gnw_ghouse_top.svg", 0, 159098, CRC(96bc58d9) SHA1(eda6a0abde739fb71af3e150751a519e59ef021d) )
+
+ ROM_REGION( 149757, "svg_bottom", 0)
+ ROM_LOAD( "gnw_ghouse_bottom.svg", 0, 149757, CRC(d66ee72c) SHA1(dcbe1c81ee0c7ddb9692858749ce6934f4dd7f30) )
+ROM_END
ROM_START( gnw_dkong2 )
ROM_REGION( 0x1000, "maincpu", 0 )
@@ -7225,6 +7319,7 @@ CONS( 1989, exospace, gnw_mmouse, 0, exospace, exospace, gnw_mmouse_sta
// multi screen
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 )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 7f90a4db414..82ef45bf54d 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14946,6 +14946,7 @@ gnw_dkjr // Nintendo
gnw_dkong // Nintendo
gnw_dkong2 // Nintendo
gnw_egg // Nintendo
+gnw_ghouse // Nintendo
gnw_mario // Nintendo
gnw_mariocm // Nintendo
gnw_mmouse // Nintendo