From 941e26ac2f81d6b2bdffba6c9987ee5e8dceff11 Mon Sep 17 00:00:00 2001 From: mariuszw Date: Wed, 7 Jan 2015 20:36:50 +0100 Subject: New clones added -------------------- Black Widow (prototype) [Mariusz Wojcieszek] --- src/mame/drivers/bwidow.c | 50 +++++++++++++++++++++++++++++++++++++++++++++- src/mame/includes/bwidow.h | 1 + src/mame/mame.lst | 1 + 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/bwidow.c b/src/mame/drivers/bwidow.c index 7134c904810..1e7df6b634b 100644 --- a/src/mame/drivers/bwidow.c +++ b/src/mame/drivers/bwidow.c @@ -310,6 +310,10 @@ CUSTOM_INPUT_MEMBER(bwidow_state::clock_r) return (m_maincpu->total_cycles() & 0x100) ? 1 : 0; } +READ8_MEMBER(bwidow_state::bwidowp_in_r) +{ + return (ioport("IN4")->read() & 0x0f) | ((ioport("IN3")->read() & 0x0f) << 4); +} /************************************* * @@ -386,6 +390,25 @@ static ADDRESS_MAP_START( bwidow_map, AS_PROGRAM, 8, bwidow_state ) AM_RANGE(0x9000, 0xffff) AM_ROM ADDRESS_MAP_END +static ADDRESS_MAP_START( bwidowp_map, AS_PROGRAM, 8, bwidow_state ) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE("pokey1", pokey_device, read, write) + AM_RANGE(0x0810, 0x081f) AM_DEVREADWRITE("pokey2", pokey_device, read, write) + AM_RANGE(0x1000, 0x1000) AM_READ(bwidowp_in_r) + AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0") + AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("avg", avg_device, go_w) + AM_RANGE(0x2800, 0x2800) AM_DEVWRITE("avg", avg_device, reset_w) + AM_RANGE(0x3000, 0x3000) AM_WRITE(watchdog_reset_w) + AM_RANGE(0x3800, 0x3800) AM_WRITE(bwidow_misc_w) /* coin counters, leds */ + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x4000) + AM_RANGE(0x4800, 0x6fff) AM_ROM + AM_RANGE(0x6000, 0x6000) AM_WRITE(irq_ack_w) /* interrupt acknowledge */ + AM_RANGE(0x8000, 0x803f) AM_DEVWRITE("earom", atari_vg_earom_device, write) + AM_RANGE(0x8800, 0x8800) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w) + AM_RANGE(0x9000, 0x9000) AM_DEVREAD("earom", atari_vg_earom_device, read) + AM_RANGE(0x9800, 0x9800) AM_WRITENOP /* ? written once at startup */ + AM_RANGE(0xa000, 0xffff) AM_ROM +ADDRESS_MAP_END static ADDRESS_MAP_START( spacduel_map, AS_PROGRAM, 8, bwidow_state ) AM_RANGE(0x0000, 0x03ff) AM_RAM @@ -493,7 +516,6 @@ static INPUT_PORTS_START( bwidow ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END - static INPUT_PORTS_START( gravitar ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) // To fit "Coin B" Dip Switch @@ -729,6 +751,12 @@ static MACHINE_CONFIG_START( bwidow, bwidow_state ) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( bwidowp, bwidow ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(bwidowp_map) + +MACHINE_CONFIG_END + static MACHINE_CONFIG_DERIVED( gravitar, bwidow ) /* basic machine hardware */ @@ -794,6 +822,25 @@ ROM_START( bwidow ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_END +ROM_START( bwidowp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + /* Vector ROM */ + ROM_LOAD( "vg4800", 0x4800, 0x0800, CRC(12c0e382) SHA1(b0a899d013ad00ff5f861da9897780c5f0c5d221) ) + ROM_LOAD( "vg5000", 0x5000, 0x1000, CRC(7009106a) SHA1(d41d147eccb2bb4e0a3e9bb184c2bfd09c80b92f) ) + ROM_RELOAD( 0x6000, 0x1000 ) + /* Program ROM */ + ROM_LOAD( "a000", 0xa000, 0x1000, CRC(ebe0ace2) SHA1(fa919797c243d06761e3fa04b548679b310f0542) ) + ROM_LOAD( "b000", 0xb000, 0x1000, CRC(b14f33e2) SHA1(f8b2c6cc6907b379786e246ccd559316d3edffb3) ) + ROM_LOAD( "c000", 0xc000, 0x1000, CRC(79b8af00) SHA1(53e31962d2124bfe06afc6374d5fb2d87bf9e952) ) + ROM_LOAD( "d000", 0xd000, 0x1000, CRC(10ac77c3) SHA1(f7b832974c224341f67fc4c3d151d8978774b462) ) + ROM_LOAD( "e000", 0xe000, 0x1000, CRC(dfdda385) SHA1(ac77411722842033027b1717ac1b494507153e55) ) + ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "avgsmr", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) +ROM_END + ROM_START( gravitar ) ROM_REGION( 0x10000, "maincpu", 0 ) /* Vector ROM */ @@ -1009,6 +1056,7 @@ GAME( 1980, spacduel, 0, spacduel, spacduel, driver_device, 0, ROT0, "Ata GAME( 1980, spacduel1,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (version 1)", GAME_SUPPORTS_SAVE ) GAME( 1980, spacduel0,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (prototype)", GAME_SUPPORTS_SAVE ) GAME( 1982, bwidow, 0, bwidow, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow", GAME_SUPPORTS_SAVE ) +GAME( 1982, bwidowp, bwidow, bwidowp, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow (prototype)", GAME_NOT_WORKING ) GAME( 1982, gravitar, 0, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 3)", GAME_SUPPORTS_SAVE ) GAME( 1982, gravitar2,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 2)", GAME_SUPPORTS_SAVE ) GAME( 1982, gravitar1,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 1)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/bwidow.h b/src/mame/includes/bwidow.h index 717d1ff102f..6cb893619ac 100644 --- a/src/mame/includes/bwidow.h +++ b/src/mame/includes/bwidow.h @@ -15,6 +15,7 @@ public: int m_lastdata; DECLARE_READ8_MEMBER(spacduel_IN3_r); + DECLARE_READ8_MEMBER(bwidowp_in_r); DECLARE_WRITE8_MEMBER(bwidow_misc_w); DECLARE_WRITE8_MEMBER(spacduel_coin_counter_w); DECLARE_WRITE8_MEMBER(irq_ack_w); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4ae0e599c6a..2fb67956ce6 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -6963,6 +6963,7 @@ quantum // 136016 (c) 1982 // made by Gencomp quantum1 // 136016 (c) 1982 // made by Gencomp quantump // 136016 (c) 1982 // made by Gencomp bwidow // 136017 (c) 1982 +bwidowp // (proto) (c) 1982 starwars // 136021 (c) 1983 starwars1 // 136021 (c) 1983 starwarso // 136021 (c) 1983 -- cgit v1.2.3