Sent: Friday, August 07, 2009 6:45 AM
To: submit@mamedev.org
Subject: spacwalk dips and player2 support
Hello,

Attached is a diff for 0133u1 Space Walk that adds game time and coinage 
DIP switches, as well as service mode and input test. DIP switches 5 and 6 
are still unknown. It also adds support for the 2nd controller and 
coincounter, similar to clowns. I've removed the GAME_NOT_WORKING flag, since 
other than a glitch with the CPU controlled pad on the left side, the gameplay 
is working fine. The fact that the middle section is inaccessible looks 
deliberate: there's probably a vertical-shape object in the original artwork 
the clown (astronaut in this case:P) can bump into.

Greets,
hap
This commit is contained in:
Aaron Giles 2009-08-13 05:04:23 +00:00
parent 9b0333264b
commit 8ff3556c40
4 changed files with 62 additions and 34 deletions

View File

@ -572,8 +572,7 @@ endif
$(CPUOBJ)/i8085/i8085.o: $(CPUSRC)/i8085/i8085.c \
$(CPUSRC)/i8085/i8085.h \
$(CPUSRC)/i8085/i8085cpu.h \
$(CPUSRC)/i8085/i8085daa.h
$(CPUSRC)/i8085/i8085cpu.h

View File

@ -2065,6 +2065,30 @@ WRITE8_DEVICE_HANDLER( clowns_audio_2_w )
/*************************************
*
* Space Walk
*
*************************************/
MACHINE_DRIVER_START( spacwalk_audio )
MDRV_SPEAKER_STANDARD_MONO("mono")
MACHINE_DRIVER_END
WRITE8_HANDLER( spacwalk_audio_1_w )
{
coin_counter_w(0, (data >> 0) & 0x01);
clowns_set_controller_select((data >> 1) & 0x01);
// D2: ?
// D3: ?
// D4-7: unused?
// if (data&0xfc) printf("%02x ",data);
}
/*************************************
*
* Shuffleboard

View File

@ -20,6 +20,7 @@
* Guided Missile
* M-4
* Clowns
* Space Walk
* Extra Inning
* Shuffleboard
* Dog Patch
@ -33,7 +34,6 @@
Other games on this basic hardware:
* Gun Fight (cocktail version)
* Space Walk
* 4 Player Bowling Alley (cocktail version)
Notes:
@ -1839,6 +1839,13 @@ static MACHINE_DRIVER_START( clowns )
MACHINE_DRIVER_END
/*************************************
*
* Space Walk (PCB #640)
*
*************************************/
static ADDRESS_MAP_START( spacwalk_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0x7)
@ -1847,10 +1854,10 @@ static ADDRESS_MAP_START( spacwalk_io_map, ADDRESS_SPACE_IO, 8 )
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)
AM_RANGE(0x03, 0x03) AM_WRITE(spacwalk_audio_1_w)
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( spacwalk )
@ -1868,30 +1875,26 @@ static INPUT_PORTS_START( spacwalk )
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( 0x03, 0x01, DEF_STR( Game_Time ) ) PORT_CONDITION("IN2", 0x80, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW:1,2")
PORT_DIPSETTING( 0x03, "40 seconds" ) // 45 for 2 players
PORT_DIPSETTING( 0x02, "50 seconds" ) // 60 for 2 players
PORT_DIPSETTING( 0x01, "60 seconds" ) // 75 for 2 players
PORT_DIPSETTING( 0x00, "70 seconds" ) // 90 for 2 players
PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) ) PORT_CONDITION("IN2", 0x80, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW:3,4")
PORT_DIPSETTING( 0x00, "1 Coin per Player" )
PORT_DIPSETTING( 0x04, "1 Coin/1 or 2 Players" )
PORT_DIPSETTING( 0x0c, "2 Coins per Player" )
PORT_DIPSETTING( 0x08, "2 Coins/1 or 2 Players" )
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 ) )
PORT_DIPNAME( 0x40, 0x00, "Input Test" ) PORT_CONDITION("IN2", 0x80, PORTCOND_EQUALS, 0x00) PORT_DIPLOCATION("SW:7")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_HIGH, "SW:8" )
/* fake ports for two analog controls multiplexed */
PORT_START(CLOWNS_CONTROLLER_P1_TAG)
@ -1899,9 +1902,6 @@ static INPUT_PORTS_START( spacwalk )
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 )
@ -1914,10 +1914,12 @@ static MACHINE_DRIVER_START( spacwalk )
MDRV_WATCHDOG_TIME_INIT(USEC(255000000 / (MW8080BW_PIXEL_CLOCK / MW8080BW_HTOTAL / MW8080BW_VTOTAL)))
/* audio hardware */
MDRV_IMPORT_FROM(clowns_audio)
// MDRV_IMPORT_FROM(spacwalk_audio)
MACHINE_DRIVER_END
/*************************************
*
* Shuffleboard (PCB #643)
@ -3166,7 +3168,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 */ 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
/* 640 */ GAME( 1978, spacwalk, 0, spacwalk, spacwalk, 0, ROT0, "Midway", "Space Walk", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
/* 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 )

View File

@ -142,6 +142,9 @@ MACHINE_DRIVER_EXTERN( clowns_audio );
WRITE8_HANDLER( clowns_audio_1_w );
WRITE8_DEVICE_HANDLER( clowns_audio_2_w );
MACHINE_DRIVER_EXTERN( spacwalk_audio );
WRITE8_HANDLER( spacwalk_audio_1_w );
MACHINE_DRIVER_EXTERN( shuffle_audio );
WRITE8_HANDLER( shuffle_audio_1_w );
WRITE8_HANDLER( shuffle_audio_2_w );