From f3bf7b89f72bf00e727fe2d3b4cea4d164dd9411 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sat, 24 Jun 2017 11:21:12 +0100 Subject: new working clone Lock'n'Chase (DECO Cassette) (Japan) [??] this is in various public rom collections, and even on MAMEdev, but was never added? looks like a 100% legitimate Japanese version, complete with the alt (harder) maze. --- src/mame/drivers/decocass.cpp | 16 ++++++++++++++++ src/mame/includes/decocass.h | 1 + src/mame/machine/decocass.cpp | 29 +++++++++++++++++++++++++++++ src/mame/mame.lst | 1 + 4 files changed, 47 insertions(+) diff --git a/src/mame/drivers/decocass.cpp b/src/mame/drivers/decocass.cpp index 55b11a0c13b..50109eb3721 100644 --- a/src/mame/drivers/decocass.cpp +++ b/src/mame/drivers/decocass.cpp @@ -892,6 +892,11 @@ static MACHINE_CONFIG_DERIVED( clocknch, decocass ) MCFG_MACHINE_RESET_OVERRIDE(decocass_state,clocknch) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( clocknchj, decocass ) + + /* basic machine hardware */ + MCFG_MACHINE_RESET_OVERRIDE(decocass_state,clocknchj) +MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cfboy0a1, decocass ) /* 12 */ @@ -1271,6 +1276,16 @@ ROM_START( clocknch ) ROM_LOAD( "clocknch.cas", 0x0000, 0x8000, CRC(c9d163a4) SHA1(3ef55a8d8f603059e263776c08eb81f2cf18b75c) ) ROM_END +ROM_START( clocknchj ) + DECOCASS_BIOS_A_ROMS + + ROM_REGION( 0x00020, "dongle", 0 ) /* dongle data */ + ROM_LOAD( "a-0061.dgl", 0x0000, 0x0020, CRC(1bc9fccb) SHA1(ffc59c7660d5c87a8deca294f80260b6bc7c3027) ) /* ? */ + + ROM_REGION( 0x10000, "cassette", 0 ) /* (max) 64k for cassette image */ + ROM_LOAD( "dt-1111-a-0.bin", 0x0000, 0x6300, CRC(9753e815) SHA1(fd0c8e4733e1548fe47a4d34a2f6ce48d9303e22) ) +ROM_END + /* 12 Flash Boy (early vertical Japan version, then horizontal version), The Deco Kid (early vertical World version, then vertical version) */ ROM_START( cfboy0a1 ) // version MD 0-A-1 verified, 105 blocks, decrypted main data CRC(7ca358f0) DECOCASS_BIOS_AO_ROMS @@ -1833,6 +1848,7 @@ DRIVER_INIT_MEMBER(decocass_state,cdsteljn) /* 10 */ GAME( 1981, cocean1a, decocass, cocean1a, cocean1a, decocass_state, decocass, ROT270, "Data East Corporation", "Ocean to Ocean (Medal) (DECO Cassette MD) (No.10/Ver.1,Japan)", 0 ) /* no lever, 1P/2P buttons used to switch player, cocktail mode not emulated */ /* */ GAME( 1981, cocean6b, cocean1a, cocean1a, cocean1a, decocass_state, decocass, ROT270, "Data East Corporation", "Ocean to Ocean (Medal) (DECO Cassette MD) (No.10/Ver.6,US)", 0 ) /* lever, 1P/2P buttons used to switch player, cocktail mode not emulated */ /* 11 */ GAME( 1981, clocknch, decocass, clocknch, clocknch, decocass_state, decocass, ROT270, "Data East Corporation", "Lock'n'Chase (DECO Cassette) (US)", 0 ) +/* */ GAME( 1981, clocknchj, decocass, clocknchj,clocknch, decocass_state, decocass, ROT270, "Data East Corporation", "Lock'n'Chase (DECO Cassette) (Japan)", 0 ) /* 12 */ GAME( 1981, cfboy0a1, decocass, cfboy0a1, cfboy0a1, decocass_state, decocass, ROT270, "Data East Corporation", "Flash Boy (vertical) [DECO Cassette MD] (No.12/Ver.0/Set.1,Japan)", 0 ) /* 13 */ GAME( 1981, cprogolf, decocass, cprogolf, cprogolf, decocass_state, decocass, ROT270, "Data East Corporation", "Tournament Pro Golf (DECO Cassette) (US)", 0 ) /* */ GAME( 1981, cprogolfj, cprogolf, cprogolfj,cprogolf, decocass_state, decocass, ROT270, "Data East Corporation", "Tournament Pro Golf (DECO Cassette) (Japan)", 0 ) diff --git a/src/mame/includes/decocass.h b/src/mame/includes/decocass.h index 89f7e80b338..74ef1cc5f01 100644 --- a/src/mame/includes/decocass.h +++ b/src/mame/includes/decocass.h @@ -185,6 +185,7 @@ public: DECLARE_MACHINE_RESET(cflyball); DECLARE_MACHINE_RESET(cmanhat); DECLARE_MACHINE_RESET(cocean1a); /* 10 */ + DECLARE_MACHINE_RESET(clocknchj); /* 11 */ DECLARE_MACHINE_RESET(cfboy0a1); /* 12 */ uint32_t screen_update_decocass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE8_MEMBER(decocass_coin_counter_w); diff --git a/src/mame/machine/decocass.cpp b/src/mame/machine/decocass.cpp index 94d38b9a5d9..184a087717c 100644 --- a/src/mame/machine/decocass.cpp +++ b/src/mame/machine/decocass.cpp @@ -462,6 +462,35 @@ MACHINE_RESET_MEMBER(decocass_state,cfboy0a1) /* 12 */ m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7); } +/* + +TYPE 1 +* Latched bits = $48 (2 latch bits) +* Input bits that are passed uninverted = $04 (1 true bits) +* Input bits that are passed inverted = $00 (0 inverted bits) +* Remaining bits for addressing PROM = $B3 (5 bits) +* Latched bit #0: +- Input bit position = 3 +- Output bit position = 3 +- Type = Inverting latch +* Latched bit #1: +- Input bit position = 6 +- Output bit position = 6 +- Type = Non-inverting latch + +*/ + +static uint8_t type1_map_clocknchj[8] = { T1PROM,T1PROM,T1DIRECT,T1LATCHINV,T1PROM,T1PROM,T1LATCH,T1PROM }; + +MACHINE_RESET_MEMBER(decocass_state,clocknchj) /* 11 */ +{ + decocass_state::machine_reset(); + LOG(0,("dongle type #1x (type1_map_clocknchj map)\n")); + m_dongle_r = read8_delegate(FUNC(decocass_state::decocass_type1_r),this); + m_type1_map = type1_map_clocknchj; + m_type1_inmap = MAKE_MAP(0,1,2,3,4,5,6,7); + m_type1_outmap = MAKE_MAP(0,1,2,3,4,5,6,7); +} /*************************************************************************** diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 29b49c722d8..2fa87e79caf 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -11098,6 +11098,7 @@ chwy // 01 1980.12 Highway Chase clapapa // 29 1982.11 La-Pa-Pa clapapa2 // 29 Rootin' Tootin' // this one doesn't display lapapa anywhere clocknch // 11 1981.04 Lock'n'Chase +clocknchj // cluckypo // 15 1981.?? Lucky Poker cmanhat // 03 1981.01 Manhattan cmissnx // 21 1982.04 Mission-X/Zoar -- cgit v1.2.3