diff options
Diffstat (limited to 'src/mame/drivers/dkong.cpp')
-rw-r--r-- | src/mame/drivers/dkong.cpp | 260 |
1 files changed, 243 insertions, 17 deletions
diff --git a/src/mame/drivers/dkong.cpp b/src/mame/drivers/dkong.cpp index a4afe49f901..61faabf0b0f 100644 --- a/src/mame/drivers/dkong.cpp +++ b/src/mame/drivers/dkong.cpp @@ -527,6 +527,11 @@ MACHINE_RESET_MEMBER(dkong_state,dkong) /* nothing */ } +MACHINE_RESET_MEMBER(dkong_state,ddk) +{ + dk_braze_a15(!membank("bank1")->entry()); +} + MACHINE_RESET_MEMBER(dkong_state,strtheat) { uint8_t *ROM = memregion("maincpu")->base(); @@ -616,6 +621,10 @@ WRITE8_MEMBER(dkong_state::p8257_drq_w) READ8_MEMBER(dkong_state::dkong_in2_r) { + // 2 board DK and all DKjr has a watchdog + if (m_watchdog) + m_watchdog->reset_w(space, 0, 0); + /* mcu status (sound feedback) is inverted bit4 from port B (8039) */ uint8_t mcustatus = m_dev_vp2->bit4_q_r(); uint8_t r; @@ -629,6 +638,10 @@ READ8_MEMBER(dkong_state::dkong_in2_r) READ8_MEMBER(dkong_state::dkongjr_in2_r) { + // 2 board DK and all DKjr has a watchdog + if (m_watchdog) + m_watchdog->reset_w(space, 0, 0); + /* dkongjr does not have the mcu line connected */ uint8_t r; @@ -1096,6 +1109,15 @@ static INPUT_PORTS_START( dkongx ) PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "SW1:!7" ) INPUT_PORTS_END +static INPUT_PORTS_START( dkongike ) + PORT_INCLUDE( dkongx ) + + PORT_START("GAME") + PORT_CONFNAME(0x01, 0x00, "Game") PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, dkong_state, dk_braze_a15) + PORT_CONFSETTING(0x00, "1") + PORT_CONFSETTING(0x01, "2") +INPUT_PORTS_END + static INPUT_PORTS_START( radarscp ) PORT_INCLUDE( radarscp_in0_2 ) PORT_INCLUDE( radarscp_in1_2 ) @@ -1629,10 +1651,15 @@ READ8_MEMBER(dkong_state::braze_eeprom_r) return m_eeprom->do_read(); } -WRITE8_MEMBER(dkong_state::braze_a15_w) +WRITE_LINE_MEMBER(dkong_state::dk_braze_a15) +{ + membank("bank1")->set_entry(state & 0x01); + membank("bank2")->set_entry(state & 0x01); +} + +WRITE8_MEMBER(dkong_state::dk_braze_a15_w) { - membank("bank1")->set_entry(data & 0x01); - membank("bank2")->set_entry(data & 0x01); + dk_braze_a15(data); } WRITE8_MEMBER(dkong_state::braze_eeprom_w) @@ -1750,13 +1777,25 @@ MACHINE_CONFIG_DERIVED(dkong_state::dkong2b, dkong_base) /* sound hardware */ MCFG_FRAGMENT_ADD(dkong2b_audio) + + MCFG_WATCHDOG_ADD("watchdog") MACHINE_CONFIG_END -MACHINE_CONFIG_DERIVED(dkong_state::braze, dkong2b) +MACHINE_CONFIG_DERIVED(dkong_state::dk_braze, dkong2b) MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") MACHINE_CONFIG_END +MACHINE_CONFIG_DERIVED(dkong_state::dkj_braze, dkongjr) + + MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom") +MACHINE_CONFIG_END + +MACHINE_CONFIG_DERIVED(dkong_state::ddk_braze, dkj_braze) + + MCFG_MACHINE_RESET_OVERRIDE(dkong_state,ddk) +MACHINE_CONFIG_END + MACHINE_CONFIG_START(dkong_state::dkong3) /* basic machine hardware */ @@ -1795,6 +1834,8 @@ MACHINE_CONFIG_DERIVED(dkong_state::dkongjr, dkong_base) /* sound hardware */ MCFG_FRAGMENT_ADD(dkongjr_audio) + + MCFG_WATCHDOG_ADD("watchdog") MACHINE_CONFIG_END MACHINE_CONFIG_DERIVED(dkong_state::pestplce, dkongjr) @@ -2197,6 +2238,103 @@ ROM_START( dkongf ) /* Donkey Kong Foundry (hack) from Jeff's Romhack */ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ ROM_END +ROM_START( dkonghs ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + /* space for diagnostic ROM */ + + ROM_REGION( 0x10000, "braze", 0 ) + ROM_LOAD( "dk_12.bin", 0x0000, 0x8000, CRC(2dd82c1d) SHA1(d5e28962a784b1f9169d248f0f416748ab7b5315) ) /* Version 1.2 */ + ROM_RELOAD( 0x8000, 0x8000 ) + + ROM_REGION( 0x1800, "soundcpu", 0 ) /* sound */ + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) + ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) + ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) + ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ +ROM_END + +ROM_START( dkongike ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + /* space for diagnostic ROM */ + + ROM_REGION( 0x10000, "braze", 0 ) + ROM_LOAD( "kong_ike.bin", 0x0000, 0x10000, CRC(f924bd05) SHA1(3a52678018ddebaeff29e9c6c1cd7cee066a3390) ) /* Version 1.1 IKE */ + + ROM_REGION( 0x1800, "soundcpu", 0 ) /* sound */ + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) + ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) + ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) + ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ +ROM_END + +ROM_START( dkongjrc ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) + ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) ) + ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) ) + ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) ) + /* space for diagnostic ROM */ + + ROM_REGION( 0x10000, "braze", 0 ) + ROM_LOAD( "kong_12.bin", 0x0000, 0x10000, CRC(4d82dc5b) SHA1(59479a0312155fc0d5fa7ae5e46c4f003e04d068) ) /* Version 1.2 */ + + ROM_REGION( 0x1800, "soundcpu", 0 ) /* sound */ + ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) ) + ROM_RELOAD( 0x0800, 0x0800 ) + ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) ) + + ROM_REGION( 0x1000, "gfx1", 0 ) + ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) ) + ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) ) + ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) ) + ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) ) + ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) ) /* palette low 4 bits (inverted) */ + ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) ) /* palette high 4 bits (inverted) */ + ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) ) /* character color codes on a per-column basis */ +ROM_END + ROM_START( dkongx ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) ) @@ -2454,6 +2592,77 @@ ROM_START( dkongjrb ) ROM_LOAD( "v-2n.bpr", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ ROM_END +ROM_START( dkongjrhs ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "djr1-c_5b_f-2.5b", 0x0000, 0x1000, CRC(dea28158) SHA1(08baf84ae6f9b40a2c743fe1d8c158c74a40e95a) ) + ROM_CONTINUE( 0x3000, 0x1000 ) + ROM_LOAD( "djr1-c_5c_f-2.5c", 0x2000, 0x0800, CRC(6fb5faf6) SHA1(ce1cfde71a9e2a8b5896a6301d386f72869a1d2e) ) + ROM_CONTINUE( 0x4800, 0x0800 ) + ROM_CONTINUE( 0x1000, 0x0800 ) + ROM_CONTINUE( 0x5800, 0x0800 ) + ROM_LOAD( "djr1-c_5e_f-2.5e", 0x4000, 0x0800, CRC(d042b6a8) SHA1(57ac237d273496b44220b4437118115ef11dbd9f) ) + ROM_CONTINUE( 0x2800, 0x0800 ) + ROM_CONTINUE( 0x5000, 0x0800 ) + ROM_CONTINUE( 0x1800, 0x0800 ) + + ROM_REGION( 0x10000, "braze", 0 ) + ROM_LOAD( "dkj_12.bin", 0x0000, 0x8000, CRC(e341b337) SHA1(7cba8305d9618769ba3afb52a60984e16a0dd266) ) /* Version 1.2 */ + ROM_RELOAD( 0x8000, 0x8000 ) + + ROM_REGION( 0x1000, "soundcpu", 0 ) /* sound */ + ROM_LOAD( "djr1-c_3h.3h", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "djr1-v.3n", 0x0000, 0x1000, CRC(8d51aca9) SHA1(64887564b079d98e98aafa53835e398f34fe4e3f) ) + ROM_LOAD( "djr1-v.3p", 0x1000, 0x1000, CRC(4ef64ba5) SHA1(41a7a4005087951f57f62c9751d62a8c495e6bb3) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "djr1-v_7c.7c", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) + ROM_LOAD( "djr1-v_7d.7d", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) + ROM_LOAD( "djr1-v_7e.7e", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) + ROM_LOAD( "djr1-v_7f.7f", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "djr1-c-2e.2e", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ + ROM_LOAD( "djr1-c-2f.2f", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ + ROM_LOAD( "djr1-v-2n.2n", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ +ROM_END + +ROM_START( dkongddk ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "djr1-c_5b_f-2.5b", 0x0000, 0x1000, CRC(dea28158) SHA1(08baf84ae6f9b40a2c743fe1d8c158c74a40e95a) ) + ROM_CONTINUE( 0x3000, 0x1000 ) + ROM_LOAD( "djr1-c_5c_f-2.5c", 0x2000, 0x0800, CRC(6fb5faf6) SHA1(ce1cfde71a9e2a8b5896a6301d386f72869a1d2e) ) + ROM_CONTINUE( 0x4800, 0x0800 ) + ROM_CONTINUE( 0x1000, 0x0800 ) + ROM_CONTINUE( 0x5800, 0x0800 ) + ROM_LOAD( "djr1-c_5e_f-2.5e", 0x4000, 0x0800, CRC(d042b6a8) SHA1(57ac237d273496b44220b4437118115ef11dbd9f) ) + ROM_CONTINUE( 0x2800, 0x0800 ) + ROM_CONTINUE( 0x5000, 0x0800 ) + ROM_CONTINUE( 0x1800, 0x0800 ) + + ROM_REGION( 0x10000, "braze", 0 ) + ROM_LOAD( "ddk_12.bin", 0x0000, 0x10000, CRC(26caaf8a) SHA1(8abd5855326a6653f12ae1bdc8f18ef45861c344) ) /* Version 1.2 */ + + ROM_REGION( 0x1000, "soundcpu", 0 ) /* sound */ + ROM_LOAD( "djr1-c_3h.3h", 0x0000, 0x1000, CRC(715da5f8) SHA1(f708c3fd374da65cbd9fe2e191152f5d865414a0) ) + + ROM_REGION( 0x2000, "gfx1", 0 ) + ROM_LOAD( "djr1-v.3n", 0x0000, 0x1000, CRC(8d51aca9) SHA1(64887564b079d98e98aafa53835e398f34fe4e3f) ) + ROM_LOAD( "djr1-v.3p", 0x1000, 0x1000, CRC(4ef64ba5) SHA1(41a7a4005087951f57f62c9751d62a8c495e6bb3) ) + + ROM_REGION( 0x2000, "gfx2", 0 ) + ROM_LOAD( "djr1-v_7c.7c", 0x0000, 0x0800, CRC(dc7f4164) SHA1(07a6242e95b5c3b8dfdcd4b4950f463dba16dd77) ) + ROM_LOAD( "djr1-v_7d.7d", 0x0800, 0x0800, CRC(0ce7dcf6) SHA1(0654b77526c49f0dfa077ac4f1f69cf5cb2e2f64) ) + ROM_LOAD( "djr1-v_7e.7e", 0x1000, 0x0800, CRC(24d1ff17) SHA1(696854bf3dc5447d33b4815db357e6ce3834d867) ) + ROM_LOAD( "djr1-v_7f.7f", 0x1800, 0x0800, CRC(0f8c083f) SHA1(0b688ae9da296b2447fffa5e135fd6a56ec3e790) ) + + ROM_REGION( 0x0300, "proms", 0 ) + ROM_LOAD( "djr1-c-2e.2e", 0x0000, 0x0100, CRC(463dc7ad) SHA1(b2c9f22facc8885be2d953b056eb8dcddd4f34cb) ) /* palette low 4 bits (inverted) */ + ROM_LOAD( "djr1-c-2f.2f", 0x0100, 0x0100, CRC(47ba0042) SHA1(dbec3f4b8013628c5b8f83162e5f8b1f82f6ee5f) ) /* palette high 4 bits (inverted) */ + ROM_LOAD( "djr1-v-2n.2n", 0x0200, 0x0100, CRC(dbf185bf) SHA1(2697a991a4afdf079dd0b7e732f71c7618f43b70) ) /* character color codes on a per-column basis */ +ROM_END + /* only the graphic roms differ from dkongjrb but it's a common bootleg */ ROM_START( jrking ) ROM_REGION( 0x10000, "maincpu", 0 ) @@ -3325,20 +3534,12 @@ DRIVER_INIT_MEMBER(dkong_state,strtheat) m_maincpu->space(AS_PROGRAM).install_read_handler(0x7c80, 0x7c80, read8_delegate(FUNC(dkong_state::strtheat_inputport_1_r),this)); } - -DRIVER_INIT_MEMBER(dkong_state,dkongx) +void dkong_state::dk_braze_decrypt() { - address_space &space = m_maincpu->space(AS_PROGRAM); - m_decrypted = std::make_unique<uint8_t[]>(0x10000); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x5fff, "bank1" ); - m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xffff, "bank2" ); - - space.install_write_handler(0xe000, 0xe000, write8_delegate(FUNC(dkong_state::braze_a15_w),this)); - - space.install_read_handler(0xc800, 0xc800, read8_delegate(FUNC(dkong_state::braze_eeprom_r),this)); - space.install_write_handler(0xc800, 0xc800, write8_delegate(FUNC(dkong_state::braze_eeprom_w),this)); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x5fff, "bank1"); + m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xffff, "bank2"); braze_decrypt_rom(m_decrypted.get()); @@ -3348,6 +3549,26 @@ DRIVER_INIT_MEMBER(dkong_state,dkongx) membank("bank2")->set_entry(0); } +DRIVER_INIT_MEMBER(dkong_state, dkonghs) +{ + dk_braze_decrypt(); + + address_space &space = m_maincpu->space(AS_PROGRAM); + space.install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(dkong_state::braze_eeprom_r), this)); + space.install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(dkong_state::braze_eeprom_w), this)); +} + +DRIVER_INIT_MEMBER(dkong_state,dkongx) +{ + dk_braze_decrypt(); + + address_space &space = m_maincpu->space(AS_PROGRAM); + space.install_write_handler(0xe000, 0xe000, write8_delegate(FUNC(dkong_state::dk_braze_a15_w),this)); + + space.install_read_handler(0xc800, 0xc800, read8_delegate(FUNC(dkong_state::braze_eeprom_r),this)); + space.install_write_handler(0xc800, 0xc800, write8_delegate(FUNC(dkong_state::braze_eeprom_w),this)); +} + DRIVER_INIT_MEMBER(dkong_state,dkingjr) { uint8_t *prom = memregion("proms")->base(); @@ -3377,8 +3598,13 @@ GAME( 1981, dkongjo, dkong, dkong2b, dkong, dkong_state, 0, ROT GAME( 1981, dkongjo1, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 2004, dkongf, dkong, dkong2b, dkongf, dkong_state, 0, ROT90, "hack (Jeff Kulczycki)", "Donkey Kong Foundry (hack)", MACHINE_SUPPORTS_SAVE ) /* from Jeff's Romhack */ -GAME( 2006, dkongx, dkong, braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.2)", MACHINE_SUPPORTS_SAVE ) -GAME( 2006, dkongx11, dkong, braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, dkonghs, dkong, dk_braze, dkongx, dkong_state, dkonghs, ROT90, "hack (Braze Technologies)", "Donkey Kong High Score Kit (hack,V1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, dkongike, dkong, dk_braze, dkongike, dkong_state, dkonghs, ROT90, "hack (Braze Technologies)", "Donkey Kong/DK (Japan) (hack,V1.1 IKE)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, dkongjrhs, dkongjr, dkj_braze, dkongx, dkong_state, dkonghs, ROT90, "hack (Braze Technologies)", "Donkey Junior High Score Kit (hack,V1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, dkongjrc, dkong, dkj_braze, dkongike, dkong_state, dkonghs, ROT90, "hack (Braze Technologies)", "Donkey Kong/JR (combo) (hack,V1.2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING) /* Graphic roms not switched */ +GAME( 2001, dkongddk, dkongjr, ddk_braze, dkongx, dkong_state, dkonghs, ROT90, "hack (Braze Technologies)", "Double Donkey Kong (hack,V1.2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING) /* Graphic roms not switched */ +GAME( 2006, dkongx, dkong, dk_braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.2)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, dkongx11, dkong, dk_braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.1)", MACHINE_SUPPORTS_SAVE ) GAME( 2013, dkongpe, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "hack (Clay Cowgill and Mike Mika)", "Donkey Kong: Pauline Edition Rev 5 (2013-04-22)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, dkongjr, 0, dkongjr, dkongjr, dkong_state, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US set F-2)", MACHINE_SUPPORTS_SAVE ) |