summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author algestam <henrik@algestam.se>2019-11-14 23:53:40 +0100
committer algestam <henrik@algestam.se>2019-11-14 23:53:40 +0100
commitda627cfcadba7105b56039660c1a2357c14b882f (patch)
tree893135da274c222e10cbf0698cf985aa5fa09dd2
parentdc4fa0420182bffb9be8d5e9f654d94b9aafe6b1 (diff)
New working machine added
---------- Game & Watch: Donkey Kong Circus [algestam, Mr Jiggles the Christmas Man]
-rw-r--r--src/mame/drivers/hh_sm510.cpp76
-rw-r--r--src/mame/mame.lst1
2 files changed, 75 insertions, 2 deletions
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index d7e96270278..01f7a7a9333 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -29,7 +29,8 @@ TODO:
electronically. For the ones that weren't decapped, they were read by
playing back all melody data and reconstructing it to ROM. Visual(decap)
verification is wanted for: gnw_bfightn, gnw_bjack, gnw_bsweep, gnw_climbern,
- gnw_dkjrp, gnw_gcliff, gnw_mariotj, gnw_mbaway, gnw_sbuster, gnw_zelda
+ gnw_dkcirc, gnw_dkjrp, gnw_gcliff, gnw_mariotj, gnw_mbaway, gnw_sbuster,
+ gnw_zelda
****************************************************************************
@@ -89,7 +90,7 @@ PG-92* p SM511? Popeye "
CJ-93 p SM511 Donkey Kong Jr. "
TB-94 p SM511 Mario's Bombs Away
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)
DJ-101 nws SM510 Donkey Kong Jr.
ML-102 nws SM510 Mario's Cement Factory
NH-103 nws SM510 Manhole
@@ -2929,6 +2930,76 @@ ROM_END
/***************************************************************************
+ Nintendo Game & Watch: Donkey Kong Circus (model MK-96)
+ * PCB labels: DC-95M (main board), DC-95C (controller board)
+ * Sharp SM511 label DC-95 541D (no decap)
+ * inverted lcd screen with custom segments, 1-bit sound
+
+***************************************************************************/
+
+class gnw_dkcirc_state : public hh_sm510_state
+{
+public:
+ gnw_dkcirc_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_sm510_state(mconfig, type, tag)
+ { }
+
+ void gnw_dkcirc(machine_config &config);
+};
+
+// config
+
+static INPUT_PORTS_START( gnw_dkcirc )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) 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_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, "Infinite Lives (Cheat)") // "
+ PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+void gnw_dkcirc_state::gnw_dkcirc(machine_config &config)
+{
+ sm511_common(config, 1920, 1107);
+}
+
+// roms
+
+ROM_START( gnw_dkcirc )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "mk-96.program", 0x0000, 0x1000, CRC(39dd864a) SHA1(25c67dac7320fe00990989cd42438461950a68ec) )
+
+ ROM_REGION( 0x100, "maincpu:melody", 0 )
+ ROM_LOAD( "mk-96.melody", 0x000, 0x100, BAD_DUMP CRC(2908380f) SHA1(8361bbe4df28b17e791035d077e892f29149c777) ) // decap needed for verification
+
+ ROM_REGION( 367718, "screen", 0)
+ ROM_LOAD( "gnw_dkcirc.svg", 0, 367718, CRC(f8571437) SHA1(bc000267deab83dfd460aea5c4102a23ac51f169) )
+ROM_END
+
+
+
+
+
+/***************************************************************************
+
Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101)
* Sharp SM510 label DJ-101 52ZA (no decap)
* lcd screen with custom segments, 1-bit sound
@@ -8733,6 +8804,7 @@ CONS( 1991, gnw_mariotj, 0, 0, gnw_mariotj, gnw_mariotj, gnw_mariotj_st
// Nintendo G&W: table top / 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 )
CONS( 1983, gnw_mbaway, 0, 0, gnw_mbaway, gnw_mbaway, gnw_mbaway_state, empty_init, "Nintendo", "Game & Watch: Mario's Bombs Away", MACHINE_SUPPORTS_SAVE )
+CONS( 1984, gnw_dkcirc, 0, 0, gnw_dkcirc, gnw_dkcirc, gnw_dkcirc_state, empty_init, "Nintendo", "Game & Watch: Donkey Kong Circus", MACHINE_SUPPORTS_SAVE )
// Nintendo G&W: super color
CONS( 1984, gnw_ssparky, 0, 0, gnw_ssparky, gnw_ssparky, gnw_ssparky_state, empty_init, "Nintendo", "Game & Watch: Spitball Sparky", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 391207a5a25..5960815c464 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -15498,6 +15498,7 @@ gnw_bsweep // Nintendo
gnw_chef // Nintendo
gnw_climber // Nintendo
gnw_climbern // Nintendo
+gnw_dkcirc // Nintendo
gnw_dkjr // Nintendo
gnw_dkjrp // Nintendo
gnw_dkong // Nintendo