From c640f66a7a251c5e7afaa9576c79ee6f9073e542 Mon Sep 17 00:00:00 2001 From: mariuszw Date: Sat, 27 Dec 2014 00:04:18 +0100 Subject: [PATCH] New clones added -------------------- Dominos 4 (Coctail) [Mariusz Wojcieszek] --- src/mame/drivers/sprint2.c | 86 ++++++++++++++++++++++++++++--------- src/mame/includes/sprint2.h | 3 ++ src/mame/mame.lst | 1 + 3 files changed, 70 insertions(+), 20 deletions(-) diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index 26bff4ed055..8bfed5bd433 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -39,6 +39,14 @@ DRIVER_INIT_MEMBER(sprint2_state,dominos) m_game = 3; } +DRIVER_INIT_MEMBER(sprint2_state,dominos4) +{ + m_game = 3; + m_maincpu->space(AS_PROGRAM).install_read_port(0x0880, 0x0880, "SELFTTEST"); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c50, 0x0c5f, write8_delegate(FUNC(sprint2_state::dominos4_lamp3_w),this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x0c60, 0x0c6f, write8_delegate(FUNC(sprint2_state::dominos4_lamp4_w),this)); +} + int sprint2_state::service_mode() { UINT8 v = ioport("INB")->read(); @@ -234,8 +242,17 @@ WRITE8_MEMBER(sprint2_state::sprint2_lamp2_w) set_led_status(machine(), 1, offset & 1); } +WRITE8_MEMBER(sprint2_state::dominos4_lamp3_w) +{ + set_led_status(machine(), 2, offset & 1); +} +WRITE8_MEMBER(sprint2_state::dominos4_lamp4_w) +{ + set_led_status(machine(), 3, offset & 1); +} static ADDRESS_MAP_START( sprint2_map, AS_PROGRAM, 8, sprint2_state ) + ADDRESS_MAP_GLOBAL_MASK(0x3fff) AM_RANGE(0x0000, 0x03ff) AM_READWRITE(sprint2_wram_r,sprint2_wram_w) AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(sprint2_video_ram_w) AM_SHARE("video_ram") AM_RANGE(0x0818, 0x081f) AM_READ(sprint2_input_A_r) @@ -261,7 +278,6 @@ static ADDRESS_MAP_START( sprint2_map, AS_PROGRAM, 8, sprint2_state ) AM_RANGE(0x1400, 0x17ff) AM_READ(sprint2_collision2_r) AM_RANGE(0x1800, 0x1800) AM_READNOP /* debugger ROM location? */ AM_RANGE(0x2000, 0x3fff) AM_ROM - AM_RANGE(0xe000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -441,6 +457,32 @@ static INPUT_PORTS_START( dominos ) PORT_ADJUSTER( 50, "R23 - Tone Freq" ) INPUT_PORTS_END +static INPUT_PORTS_START( dominos4 ) + PORT_INCLUDE(dominos) + + PORT_MODIFY("INA") /* input A */ + PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(1) + PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(1) + PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(1) + PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(1) + PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2) + PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) + PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2) + PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) + + PORT_MODIFY("INB") /* input A */ + PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(3) + PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(3) + PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(3) + PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(3) + PORT_BIT ( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(4) + PORT_BIT ( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(4) + PORT_BIT ( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(4) + PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(4) + + PORT_START("SELFTTEST") + PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) +INPUT_PORTS_END static const gfx_layout tile_layout = { @@ -542,17 +584,12 @@ static MACHINE_CONFIG_DERIVED( dominos, sprint2 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END - ROM_START( sprint1 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "6290-01.b1", 0x2000, 0x0800, CRC(41fc985e) SHA1(7178846480cbf8d15955ccd987d0b0e902ab9f90) ) - ROM_RELOAD( 0xe000, 0x0800 ) ROM_LOAD( "6291-01.c1", 0x2800, 0x0800, CRC(07f7a920) SHA1(845f65d2bd290eb295ca6bae2575f27aaa08c0dd) ) - ROM_RELOAD( 0xe800, 0x0800 ) ROM_LOAD( "6442-01.d1", 0x3000, 0x0800, CRC(e9ff0124) SHA1(42fe028e2e595573ccc0821de3bb6970364c585d) ) - ROM_RELOAD( 0xf000, 0x0800 ) ROM_LOAD( "6443-01.e1", 0x3800, 0x0800, CRC(d6bb00d0) SHA1(cdcd4bb7b32be7a11480d3312fcd8d536e2d0caf) ) - ROM_RELOAD( 0xf800, 0x0800 ) ROM_REGION( 0x0200, "gfx1", 0 ) /* tiles */ ROM_LOAD_NIB_HIGH( "6396-01.p4", 0x0000, 0x0200, CRC(801b42dd) SHA1(1db58390d803f404253cbf36d562016441ca568d) ) @@ -571,13 +608,9 @@ ROM_END ROM_START( sprint2 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "6290-01.b1", 0x2000, 0x0800, CRC(41fc985e) SHA1(7178846480cbf8d15955ccd987d0b0e902ab9f90) ) - ROM_RELOAD( 0xe000, 0x0800 ) ROM_LOAD( "6291-01.c1", 0x2800, 0x0800, CRC(07f7a920) SHA1(845f65d2bd290eb295ca6bae2575f27aaa08c0dd) ) - ROM_RELOAD( 0xe800, 0x0800 ) ROM_LOAD( "6404.d1", 0x3000, 0x0800, CRC(d2878ff6) SHA1(b742a8896c1bf1cfacf48d06908920d88a2c9ea8) ) - ROM_RELOAD( 0xf000, 0x0800 ) ROM_LOAD( "6405.e1", 0x3800, 0x0800, CRC(6c991c80) SHA1(c30a5b340f05dd702c7a186eb62607a48fa19f72) ) - ROM_RELOAD( 0xf800, 0x0800 ) ROM_REGION( 0x0200, "gfx1", 0 ) /* tiles */ ROM_LOAD_NIB_HIGH( "6396-01.p4", 0x0000, 0x0200, CRC(801b42dd) SHA1(1db58390d803f404253cbf36d562016441ca568d) ) @@ -596,13 +629,9 @@ ROM_END ROM_START( sprint2a ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "6290-01.b1", 0x2000, 0x0800, CRC(41fc985e) SHA1(7178846480cbf8d15955ccd987d0b0e902ab9f90) ) - ROM_RELOAD( 0xe000, 0x0800 ) ROM_LOAD( "6291-01.c1", 0x2800, 0x0800, CRC(07f7a920) SHA1(845f65d2bd290eb295ca6bae2575f27aaa08c0dd) ) - ROM_RELOAD( 0xe800, 0x0800 ) ROM_LOAD( "6404.d1", 0x3000, 0x0800, CRC(d2878ff6) SHA1(b742a8896c1bf1cfacf48d06908920d88a2c9ea8) ) - ROM_RELOAD( 0xf000, 0x0800 ) ROM_LOAD( "6405-02.e1", 0x3800, 0x0800, CRC(e80fd249) SHA1(7bcf7dfd72ca83fdd80593eaf392570da1f71298) ) - ROM_RELOAD( 0xf800, 0x0800 ) ROM_REGION( 0x0200, "gfx1", 0 ) /* tiles */ ROM_LOAD_NIB_HIGH( "6396-01.p4", 0x0000, 0x0200, CRC(801b42dd) SHA1(1db58390d803f404253cbf36d562016441ca568d) ) @@ -621,13 +650,9 @@ ROM_END ROM_START( sprint2h ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "6290-01.b1", 0x2000, 0x0800, CRC(41fc985e) SHA1(7178846480cbf8d15955ccd987d0b0e902ab9f90) ) - ROM_RELOAD( 0xe000, 0x0800 ) ROM_LOAD( "6291-01.c1", 0x2800, 0x0800, CRC(07f7a920) SHA1(845f65d2bd290eb295ca6bae2575f27aaa08c0dd) ) - ROM_RELOAD( 0xe800, 0x0800 ) ROM_LOAD( "6404.d1", 0x3000, 0x0800, CRC(d2878ff6) SHA1(b742a8896c1bf1cfacf48d06908920d88a2c9ea8) ) - ROM_RELOAD( 0xf000, 0x0800 ) ROM_LOAD( "6405-02.e1", 0x3800, 0x0800, CRC(6de291f1) SHA1(00c2826011d80ac0784649a7bc156a97c26565fd) ) // sldh - ROM_RELOAD( 0xf800, 0x0800 ) ROM_REGION( 0x0200, "gfx1", 0 ) /* tiles */ ROM_LOAD_NIB_HIGH( "6396-01.p4", 0x0000, 0x0200, CRC(801b42dd) SHA1(1db58390d803f404253cbf36d562016441ca568d) ) @@ -646,9 +671,7 @@ ROM_END ROM_START( dominos ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "7352-02.d1", 0x3000, 0x0800, CRC(738b4413) SHA1(3a90ab25bb5f65504692f97da43f03e21392dcd8) ) - ROM_RELOAD( 0xf000, 0x0800 ) ROM_LOAD( "7438-02.e1", 0x3800, 0x0800, CRC(c84e54e2) SHA1(383b388a1448a195f28352fc5e4ff1a2af80cc95) ) - ROM_RELOAD( 0xf800, 0x0800 ) ROM_REGION( 0x200, "gfx1", 0 ) /* tiles */ ROM_LOAD_NIB_HIGH( "7439-01.p4", 0x0000, 0x0200, CRC(4f42fdd6) SHA1(f8ea4b582e26cad37b746174cdc9f1c7ae0819c3) ) @@ -662,9 +685,32 @@ ROM_START( dominos ) ROM_LOAD( "6401-01.e2", 0x0100, 0x0020, CRC(857df8db) SHA1(06313d5bde03220b2bc313d18e50e4bb1d0cfbbb) ) /* address */ ROM_END +ROM_START( dominos4 ) // built from original Atari source code + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD_NIB_HIGH( "007754-01.l1", 0x3000, 0x0400, CRC(03fae4a9) SHA1(a132bd8bc866e33cdf6b4881064c8d265c2b25f4) ) + ROM_LOAD_NIB_LOW ( "007755-01.l0", 0x3000, 0x0400, CRC(fa2d0c04) SHA1(fcf618c7089db46d55933d58ea04701af515ad49) ) + ROM_LOAD_NIB_HIGH( "007756-01.m1", 0x3400, 0x0400, CRC(d2acb1b5) SHA1(ad81eed9dd0a2d5ecfd42daf90825726e64063b3) ) + ROM_LOAD_NIB_LOW ( "007757-01.m0", 0x3400, 0x0400, CRC(69f2db90) SHA1(a064c840599c4e7cb65670e5480adeb310247f16) ) + ROM_LOAD_NIB_HIGH( "007758-01.n1", 0x3800, 0x0400, CRC(b49083b4) SHA1(41999e8d3fd6104c42f3a034045f9f9c75d8247a) ) + ROM_LOAD_NIB_LOW ( "007759-01.n0", 0x3800, 0x0400, CRC(542200c7) SHA1(111f06e942e247b00b9f90fae2986c3c8d9ec8c5) ) + ROM_LOAD_NIB_HIGH( "007760-01.p1", 0x3c00, 0x0400, CRC(7dc2a7a1) SHA1(9d02572cf689c6476b33226a5358dd1f72c4e61d) ) + ROM_LOAD_NIB_LOW ( "007761-01.p0", 0x3c00, 0x0400, CRC(04365e0d) SHA1(fefc3c04e55f1aa8c80b1e5e1e403af8698c3530) ) + + ROM_REGION( 0x200, "gfx1", 0 ) /* tiles */ + ROM_LOAD_NIB_HIGH( "007764-01.p4", 0x0000, 0x0200, CRC(e4332dc0) SHA1(1f16c5b9f9fd7d478fd729cc79968f17746111f4) ) + ROM_LOAD_NIB_LOW ( "007765-01.r4", 0x0000, 0x0200, CRC(6e4e6c75) SHA1(0fc77fecaa73eac57baf778bc51387c75883aad4) ) + + ROM_REGION( 0x200, "gfx2", 0 ) /* sprites, not used */ + ROM_FILL( 0x0000, 0x0200, 0 ) + + ROM_REGION( 0x0120, "proms", 0 ) + ROM_LOAD( "6400-01.m2", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) ) /* SYNC */ + ROM_LOAD( "6401-01.e2", 0x0100, 0x0020, CRC(857df8db) SHA1(06313d5bde03220b2bc313d18e50e4bb1d0cfbbb) ) /* address */ +ROM_END GAME( 1978, sprint1, 0, sprint1, sprint1, sprint2_state, sprint1, ROT0, "Atari (Kee Games)", "Sprint 1", 0 ) GAME( 1976, sprint2, sprint1, sprint2, sprint2, sprint2_state, sprint2, ROT0, "Atari (Kee Games)", "Sprint 2 (set 1)", 0 ) GAME( 1976, sprint2a, sprint1, sprint2, sprint2, sprint2_state, sprint2, ROT0, "Atari (Kee Games)", "Sprint 2 (set 2)", 0 ) GAME( 1976, sprint2h, sprint1, sprint2, sprint2, sprint2_state, sprint2, ROT0, "hack", "Sprint 2 (color kit, Italy)", GAME_WRONG_COLORS ) // Italian hack, supposedly is color instead of b/w? how? GAME( 1977, dominos, 0, dominos, dominos, sprint2_state, dominos, ROT0, "Atari", "Dominos", 0 ) +GAME( 1977, dominos4, dominos, dominos, dominos4,sprint2_state, dominos4,ROT0, "Atari", "Dominos 4 (Coctail)", 0 ) diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h index 93cf0df632a..392b75c7dc6 100644 --- a/src/mame/includes/sprint2.h +++ b/src/mame/includes/sprint2.h @@ -54,6 +54,8 @@ public: DECLARE_WRITE8_MEMBER(sprint2_wram_w); DECLARE_WRITE8_MEMBER(sprint2_lamp1_w); DECLARE_WRITE8_MEMBER(sprint2_lamp2_w); + DECLARE_WRITE8_MEMBER(dominos4_lamp3_w); + DECLARE_WRITE8_MEMBER(dominos4_lamp4_w); DECLARE_READ8_MEMBER(sprint2_collision1_r); DECLARE_READ8_MEMBER(sprint2_collision2_r); DECLARE_WRITE8_MEMBER(sprint2_collision_reset1_w); @@ -66,6 +68,7 @@ public: DECLARE_DRIVER_INIT(sprint1); DECLARE_DRIVER_INIT(sprint2); DECLARE_DRIVER_INIT(dominos); + DECLARE_DRIVER_INIT(dominos4); TILE_GET_INFO_MEMBER(get_tile_info); virtual void video_start(); DECLARE_PALETTE_INIT(sprint2); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 04ea02a760d..49894e15b35 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -6860,6 +6860,7 @@ sprint4 // 008716 1977/12 [6502] sprint4a // 008716 1977/12 [6502] nitedrvr // 006321 1976/10 [6502] dominos // 007305 1977/01 [6502] +dominos4 // 007754-007765 ??????? [6502] triplhnt // 008422-008791 1977/04 [6800] sprint8 // ?????? 1977/05 [6800] sprint8a // ?????? 1977/05 [6800]