New working machine added (#4173)

-----------
Green House (Nintendo Game & Watch) [algestam]
This commit is contained in:
algestam 2018-10-21 13:37:41 +02:00 committed by hap
parent dbaf83eebf
commit 1482a81fc2
2 changed files with 96 additions and 0 deletions

View File

@ -1301,6 +1301,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)
@ -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 )

View File

@ -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