Merge pull request #5191 from algestam/gnw_dkjrp

New working machine added
This commit is contained in:
R. Belmont 2019-06-09 08:25:46 -04:00 committed by GitHub
commit f94a99b002
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 108 additions and 2 deletions

View File

@ -22,7 +22,8 @@ TODO:
- Currently there is no accurate way to dump the SM511/SM512 melody ROM - Currently there is no accurate way to dump the SM511/SM512 melody ROM
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_zelda verification is wanted for: gnw_bfight, gnw_bjack, gnw_climber, gnw_dkjrp,
gnw_zelda
- identify lcd segments for tgaiden - identify lcd segments for tgaiden
**************************************************************************** ****************************************************************************
@ -80,7 +81,7 @@ SM-73* tt SM511? Snoopy
PG-74* tt SM511? Popeye PG-74* tt SM511? Popeye
SM-91* p SM511? Snoopy (assume same ROM & LCD as tabletop version) SM-91* p SM511? Snoopy (assume same ROM & LCD as tabletop version)
PG-92* p SM511? Popeye " PG-92* p SM511? Popeye "
CJ-93* p SM511? Donkey Kong Jr. " CJ-93 p SM511 Donkey Kong Jr. "
PB-94* p SM511? Mario's Bombs Away PB-94* p SM511? Mario's Bombs Away
DC-95* p SM511? Mickey Mouse DC-95* p SM511? Mickey Mouse
MK-96* p SM511? Donkey Kong Circus (same ROM as DC-95? LCD is different) MK-96* p SM511? Donkey Kong Circus (same ROM as DC-95? LCD is different)
@ -3232,6 +3233,107 @@ ROM_END
/***************************************************************************
Nintendo Game & Watch: Donkey Kong Jr. (model CJ-93)
* PCB labels: CJ-93 M (main board), CJ-93C (controller board)
* Sharp SM511 label CJ-93 539D (no decap)
* lcd screen with custom segments, 1-bit sound
This is the panorama version. There's also a tabletop version which is
assumed to use the same ROM and a new wide screen version which is a
different game.
***************************************************************************/
class gnw_dkjrp_state : public hh_sm510_state
{
public:
gnw_dkjrp_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_sm510_state(mconfig, type, tag)
{ }
void gnw_dkjrp(machine_config &config);
};
// config
static INPUT_PORTS_START( gnw_dkjrp )
PORT_START("IN.0") // S1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Jump
PORT_START("IN.1") // S2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) 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_LEFT ) PORT_CHANGED_CB(input_changed)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed)
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("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") // MCU BA(alpha) pin pulled to GND
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)")
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
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
void gnw_dkjrp_state::gnw_dkjrp(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(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_svg_region("svg");
screen.set_refresh_hz(50);
screen.set_size(1857, 1080);
screen.set_visarea_full();
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
/* 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_dkjrp )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "cj-93.program", 0x0000, 0x1000, CRC(a2cd5a91) SHA1(33f6fd1530e5522491851f16d7c9f928b2dbdc3b) )
ROM_REGION( 0x100, "maincpu:melody", 0 )
ROM_LOAD( "cj-93.melody", 0x000, 0x100, BAD_DUMP CRC(99fbf76a) SHA1(15ba1af51bebc316146eb9a0a3d58d28f644d45f) )
ROM_REGION( 340859, "svg", 0)
ROM_LOAD( "gnw_dkjrp.svg", 0, 340859, CRC(04a03650) SHA1(b814dadd158cca8ffe6f5d7b993f67008af9931e) )
ROM_END
/*************************************************************************** /***************************************************************************
Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101) Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101)
@ -9349,6 +9451,9 @@ CONS( 1988, gnw_smb, 0, 0, gnw_smb, gnw_smb, gnw_smb_state,
CONS( 1988, gnw_climber, 0, 0, gnw_climber, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (new wide screen)", MACHINE_SUPPORTS_SAVE ) CONS( 1988, gnw_climber, 0, 0, gnw_climber, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (new wide screen)", MACHINE_SUPPORTS_SAVE )
CONS( 1988, gnw_bfight, 0, 0, gnw_bfight, gnw_bfight, gnw_bfight_state, empty_init, "Nintendo", "Game & Watch: Balloon Fight (new wide screen)", MACHINE_SUPPORTS_SAVE ) CONS( 1988, gnw_bfight, 0, 0, gnw_bfight, gnw_bfight, gnw_bfight_state, empty_init, "Nintendo", "Game & Watch: Balloon Fight (new wide screen)", MACHINE_SUPPORTS_SAVE )
// Nintendo G&W: panorama screen
CONS( 1983, gnw_dkjrp, 0, 0, gnw_dkjrp, gnw_dkjrp, gnw_dkjrp_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Jr. (panorama screen)", MACHINE_SUPPORTS_SAVE )
// Nintendo G&W: crystal screen // Nintendo G&W: crystal screen
CONS( 1986, gnw_climbcs, gnw_climber,0, gnw_climbcs, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (crystal screen)", MACHINE_SUPPORTS_SAVE ) CONS( 1986, gnw_climbcs, gnw_climber,0, gnw_climbcs, gnw_climber, gnw_climber_state, empty_init, "Nintendo", "Game & Watch: Climber (crystal screen)", MACHINE_SUPPORTS_SAVE )

View File

@ -15211,6 +15211,7 @@ gnw_chef // Nintendo
gnw_climber // Nintendo gnw_climber // Nintendo
gnw_climbcs // Nintendo gnw_climbcs // Nintendo
gnw_dkjr // Nintendo gnw_dkjr // Nintendo
gnw_dkjrp // Nintendo
gnw_dkong // Nintendo gnw_dkong // Nintendo
gnw_dkong2 // Nintendo gnw_dkong2 // Nintendo
gnw_egg // Nintendo gnw_egg // Nintendo