New working machine added (#5294)

* New working machine added
----------
Game & Watch: Gold Cliff [algestam, hydef, Ryan Holtz]

* hh_sm510: Remove ambigious comment from gnw_gcliff (nw)
This commit is contained in:
algestam 2019-06-29 15:55:47 +02:00 committed by hap
parent 106c63c749
commit 01c9502213
2 changed files with 106 additions and 2 deletions

View File

@ -25,7 +25,7 @@ TODO:
electronically. For the ones that weren't decapped, they were read by electronically. For the ones that weren't decapped, they were read by
playing back all melody data and reconstructing it to ROM. Visual(decap) playing back all melody data and reconstructing it to ROM. Visual(decap)
verification is wanted for: gnw_bfight, gnw_bjack, gnw_climber, gnw_dkjrp, verification is wanted for: gnw_bfight, gnw_bjack, gnw_climber, gnw_dkjrp,
gnw_zelda gnw_gcliff, gnw_zelda
- identify lcd segments for tgaiden - identify lcd segments for tgaiden
**************************************************************************** ****************************************************************************
@ -75,7 +75,7 @@ BJ-60 ms SM512 Black Jack
MG-61 ms SM510 Squish MG-61 ms SM510 Squish
BD-62* ms SM512 Bomb Sweeper BD-62* ms SM512 Bomb Sweeper
JB-63* ms SM511? Safe Buster JB-63* ms SM511? Safe Buster
MV-64* ms SM511? Gold Cliff MV-64 ms SM512 Gold Cliff
ZL-65 ms SM512 Zelda ZL-65 ms SM512 Zelda
CJ-71* tt SM511? Donkey Kong Jr. CJ-71* tt SM511? Donkey Kong Jr.
CM-72* tt SM511? Mario's Cement Factory CM-72* tt SM511? Mario's Cement Factory
@ -3127,6 +3127,108 @@ 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)
{
/* basic machine hardware */
SM512(config, m_maincpu);
m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w));
m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r));
m_maincpu->write_s().set(FUNC(hh_sm510_state::input_w));
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_top(SCREEN(config, "screen_top", SCREEN_TYPE_SVG));
screen_top.set_refresh_hz(60);
screen_top.set_size(1920/2, 1257/2);
screen_top.set_visarea_full();
screen_device &screen_bottom(SCREEN(config, "screen_bottom", SCREEN_TYPE_SVG));
screen_bottom.set_refresh_hz(60);
screen_bottom.set_size(1920/2, 1239/2);
screen_bottom.set_visarea_full();
config.set_default_layout(layout_gnw_dualv);
/* 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_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( 530558, "screen_top", 0)
ROM_LOAD( "gnw_gcliff_top.svg", 0, 530558, CRC(a0207f25) SHA1(763519d163bc6924e92dde501c785286f5949072) )
ROM_REGION( 519157, "screen_bottom", 0)
ROM_LOAD( "gnw_gcliff_bottom.svg", 0, 519157, CRC(af120931) SHA1(fd27a89368c9ba533852fd3bc2554a1268624f67) )
ROM_END
/*************************************************************************** /***************************************************************************
Nintendo Game & Watch: Zelda (model ZL-65) Nintendo Game & Watch: Zelda (model ZL-65)
@ -9262,6 +9364,7 @@ CONS( 1983, gnw_rshower, 0, 0, gnw_rshower, gnw_rshower, gnw_rshower_st
CONS( 1983, gnw_lboat, 0, 0, gnw_lboat, gnw_lboat, gnw_lboat_state, empty_init, "Nintendo", "Game & Watch: Lifeboat", MACHINE_SUPPORTS_SAVE) CONS( 1983, gnw_lboat, 0, 0, gnw_lboat, gnw_lboat, gnw_lboat_state, empty_init, "Nintendo", "Game & Watch: Lifeboat", 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( 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( 1986, gnw_squish, 0, 0, gnw_squish, gnw_squish, gnw_squish_state, empty_init, "Nintendo", "Game & Watch: Squish", 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 ) 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 // Nintendo G&W: new wide screen / crystal screen

View File

@ -15230,6 +15230,7 @@ gnw_dkong2 // Nintendo
gnw_egg // Nintendo gnw_egg // Nintendo
gnw_fire // Nintendo gnw_fire // Nintendo
gnw_fireatk // Nintendo gnw_fireatk // Nintendo
gnw_gcliff // Nintendo
gnw_ghouse // Nintendo gnw_ghouse // Nintendo
gnw_lboat // Nintendo gnw_lboat // Nintendo
gnw_manhole // Nintendo gnw_manhole // Nintendo