New working machine added (#5354)

----------
Game & Watch: Safe Buster [algestam, Ryan Holtz]
This commit is contained in:
algestam 2019-07-17 14:52:34 +02:00 committed by hap
parent 82404081d6
commit 31b0a7b4b4
2 changed files with 101 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_gcliff, gnw_zelda gnw_gcliff, gnw_sbuster, gnw_zelda
**************************************************************************** ****************************************************************************
@ -73,7 +73,7 @@ PB-59* ms SM511? Pinball
BJ-60 ms SM512 Black Jack 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 SM512 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.
@ -3126,6 +3126,103 @@ ROM_END
/***************************************************************************
Nintendo Game & Watch: Safe Buster (model JB-63)
* PCB label JB-63
* Sharp SM511 label JB-63 8841 B (no decap)
* vertical dual lcd screens with custom segments, 1-bit sound
***************************************************************************/
class gnw_sbuster_state : public hh_sm510_state
{
public:
gnw_sbuster_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_sm510_state(mconfig, type, tag)
{ }
void gnw_sbuster(machine_config &config);
};
// config
static INPUT_PORTS_START( gnw_sbuster )
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_RIGHT ) PORT_CHANGED_CB(input_changed)
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // S2
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_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, "Increase Score (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, "Invincibility (Cheat)") // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
void gnw_sbuster_state::gnw_sbuster(machine_config &config)
{
/* basic machine hardware */
SM511(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, 1246/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, 1269/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_sbuster )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "jb-63.program", 0x0000, 0x1000, CRC(231d358d) SHA1(c748788da125e77b9d0fe1228f64de71f41af42b) )
ROM_REGION( 0x100, "maincpu:melody", 0 )
ROM_LOAD( "jb-63.melody", 0x000, 0x100, BAD_DUMP CRC(28cb2914) SHA1(52d34265611f786b597653193752d16563dd5e82) ) // decap needed for verification
ROM_REGION( 221735, "screen_top", 0)
ROM_LOAD( "gnw_sbuster_top.svg", 0, 221735, CRC(38b8e39c) SHA1(2e07ea057b2c78c956898ee2587926188498dfc0) )
ROM_REGION( 282423, "screen_bottom", 0)
ROM_LOAD( "gnw_sbuster_bottom.svg", 0, 282423, CRC(89659f2a) SHA1(47db203908249cb96a949799cf85fbd1af601874) )
ROM_END
/*************************************************************************** /***************************************************************************
Nintendo Game & Watch: Gold Cliff (model MV-64) Nintendo Game & Watch: Gold Cliff (model MV-64)
@ -9454,6 +9551,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_sbuster, 0, 0, gnw_sbuster, gnw_sbuster, gnw_sbuster_state, empty_init, "Nintendo", "Game & Watch: Safe Buster", 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( 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 )

View File

@ -15280,6 +15280,7 @@ gnw_opanic // Nintendo
gnw_pchute // Nintendo gnw_pchute // Nintendo
gnw_popeye // Nintendo gnw_popeye // Nintendo
gnw_rshower // Nintendo gnw_rshower // Nintendo
gnw_sbuster // Nintendo
gnw_smb // Nintendo gnw_smb // Nintendo
gnw_squish // Nintendo gnw_squish // Nintendo
gnw_stennis // Nintendo gnw_stennis // Nintendo