diff options
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 |
commit | 1482a81fc2b6028141063748bbf5cb3e0ae4ae95 (patch) | |
tree | b6625b2bd15f1bff0b8488dc5fd46b6be63d39f9 | |
parent | dbaf83eebf629bd318eec83861b253fc61fb3f9b (diff) |
New working machine added (#4173)
-----------
Green House (Nintendo Game & Watch) [algestam]
-rw-r--r-- | src/mame/drivers/hh_sm510.cpp | 95 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
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 |