diff options
| author | 2009-08-02 21:41:39 +0000 | |
|---|---|---|
| committer | 2009-08-02 21:41:39 +0000 | |
| commit | 0e7df8860868254fce6f6f6d3e07f96bdba3b1d0 (patch) | |
| tree | 4a3cd4cc7464f220a78091ccfcea5df036983eca | |
| parent | 1fc576e72f5ce1856886b3b0132cf5f6dcc8f80d (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.c | 93 | ||||
| -rw-r--r-- | src/mame/mamedriv.c | 2 |
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] */ |
