summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2009-08-02 21:41:39 +0000
committer Aaron Giles <aaron@aarongiles.com>2009-08-02 21:41:39 +0000
commit0e7df8860868254fce6f6f6d3e07f96bdba3b1d0 (patch)
tree4a3cd4cc7464f220a78091ccfcea5df036983eca
parent1fc576e72f5ce1856886b3b0132cf5f6dcc8f80d (diff)
From: David Haywood <neohaze@nildram.co.uk>
Date: Sun, 26 Jul 2009 09:31:24 To: Aaron Giles<aaron@aarongiles.com>; Angelo Salese<salese_corp_ltd@email.it> Subject: Space Walk? I got the Software This guy to redump the 'Space Walk' rom which was obviously bad, and added it to the driver. A second opinion is needed, maybe there is something else wrong because the gameplay doesn't appear to make any sense at all. It's a similar game to clowns, but more often than not the character falls through the pad, and the pads jump and flip positions when they reach the middle of the screen. Since this falls into the 'ultra rare' category I think it would be a good idea if somebody with a good knowledge of the CPU made absolutely sure that things are correct. New not-working =============== Space Walk [Siftware, David Haywood]
-rw-r--r--src/mame/drivers/mw8080bw.c93
-rw-r--r--src/mame/mamedriv.c2
2 files changed, 92 insertions, 3 deletions
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index 75236028e85..46244fc5e84 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -1839,6 +1839,84 @@ static MACHINE_DRIVER_START( clowns )
MACHINE_DRIVER_END
+static ADDRESS_MAP_START( spacwalk_io_map, ADDRESS_SPACE_IO, 8 )
+ ADDRESS_MAP_GLOBAL_MASK(0x7)
+
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
+ AM_RANGE(0x03, 0x03) AM_READ(mb14241_0_shift_result_r)
+
+ AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
+
+ AM_RANGE(0x01, 0x01) AM_WRITE(mb14241_0_shift_count_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(mb14241_0_shift_data_w)
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( spacwalk )
+ PORT_START("IN0")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(clowns_controller_r, NULL)
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x01, 0x01, "IN2" )
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ /* fake ports for two analog controls multiplexed */
+ PORT_START(CLOWNS_CONTROLLER_P1_TAG)
+ PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(1)
+
+ PORT_START(CLOWNS_CONTROLLER_P2_TAG)
+ PORT_BIT( 0xff, 0x7f, IPT_PADDLE ) PORT_MINMAX(0x01,0xfe) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_PLAYER(2)
+
+ PORT_START("MUSIC_ADJ") /* 3 */
+ PORT_ADJUSTER( 40, "Music Volume" )
+INPUT_PORTS_END
+
+static MACHINE_DRIVER_START( spacwalk )
+
+ /* basic machine hardware */
+ MDRV_IMPORT_FROM(mw8080bw_root)
+ MDRV_CPU_MODIFY("maincpu")
+ MDRV_CPU_IO_MAP(spacwalk_io_map)
+ MDRV_MACHINE_START(clowns)
+ MDRV_WATCHDOG_TIME_INIT(USEC(255000000 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)))
+
+ /* audio hardware */
+ MDRV_IMPORT_FROM(clowns_audio)
+
+MACHINE_DRIVER_END
/*************************************
*
@@ -2296,7 +2374,6 @@ static READ8_HANDLER( bowler_shift_result_r )
return ~mb14241_0_shift_result_r(space,0);
}
-
static WRITE8_HANDLER( bowler_lights_1_w )
{
output_set_value("200_LEFT_LIGHT", (data >> 0) & 0x01);
@@ -2960,6 +3037,18 @@ ROM_START( clowns1 )
ROM_LOAD( "clownsv1.c", 0x1400, 0x0400, CRC(12968e52) SHA1(71e4f09d30b992a4ac44b0e88e83b4f8a0f63caa) )
ROM_END
+ROM_START( spacwalk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sw.h", 0x0000, 0x0400, CRC(1b07fc1f) SHA1(bc6423ebcfcc1d158bc44c1a577485682b0aa79b) )
+ ROM_LOAD( "sw.g", 0x0400, 0x0400, CRC(52220910) SHA1(2d479b241d6a57f28a91d6a085f10cc3fd6787a1) )
+ ROM_LOAD( "sw.f", 0x0800, 0x0400, CRC(787d4ef6) SHA1(42b24a80e750bb51b81caeaf418014e62f55810d) )
+ ROM_LOAD( "sw.e", 0x0c00, 0x0400, CRC(d62d324b) SHA1(1c1ed2f9995d960f6dac79cae53fd4e82cb06640) )
+ ROM_LOAD( "sw.d", 0x1000, 0x0400, CRC(17dcc591) SHA1(a6c96da27713e51f4d400ef3bb33654a40214aa8))
+ ROM_LOAD( "sw.c", 0x1400, 0x0400, CRC(61aef726) SHA1(fbb8e90e0a0f7de4e5e5a37b9595a1be626ada9b) )
+ ROM_LOAD( "sw.b", 0x1800, 0x0400, CRC(c59d45d0) SHA1(5e772772e235ab8c0615ec26334d2e192f297604))
+ ROM_LOAD( "sw.a", 0x1c00, 0x0400, CRC(d563da07) SHA1(937b683dddfddbc1c0f2e45571657b569c0c4928) )
+ROM_END
+
ROM_START( einning )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -3077,7 +3166,7 @@ ROM_END
/* 626 */ GAME( 1977, m4, 0, m4, m4, 0, ROT0, "Midway", "M-4", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
/* 630 */ GAMEL(1978, clowns, 0, clowns, clowns, 0, ROT0, "Midway", "Clowns (rev. 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE , layout_clowns )
/* 630 */ GAMEL(1978, clowns1, clowns, clowns, clowns1, 0, ROT0, "Midway", "Clowns (rev. 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE , layout_clowns )
-/* 640 Space Walk (dump does not exist) */
+/* 640 */ GAME( 1978, spacwalk, 0, spacwalk, spacwalk, 0, ROT0, "Midway", "Space Walk", GAME_NO_SOUND | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // gameplay appears to be broken
/* 642 */ GAME( 1978, einning, 0, dplay, einning, 0, ROT0, "Midway", "Extra Inning", GAME_SUPPORTS_SAVE )
/* 643 */ GAME( 1978, shuffle, 0, shuffle, shuffle, 0, ROT90, "Midway", "Shuffleboard", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
/* 644 */ GAME( 1977, dogpatch, 0, dogpatch, dogpatch, 0, ROT0, "Midway", "Dog Patch", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c
index 8f7787f7adb..65b108d8b53 100644
--- a/src/mame/mamedriv.c
+++ b/src/mame/mamedriv.c
@@ -1172,7 +1172,7 @@ const game_driver * const drivers[] =
DRIVER( m4 ) /* 626 [1977] */
DRIVER( clowns ) /* 630 [1978] */
DRIVER( clowns1 ) /* 630 [1978] */
- /* 640 - Space Walk [1978] */
+ DRIVER( spacwalk ) /* 640 [1978] */
DRIVER( einning ) /* 642 [1978] Midway */
DRIVER( shuffle ) /* 643 [1978] */
DRIVER( dogpatch ) /* 644 [1977] */