diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 10aca64a9cd..242930824bd 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -643,28 +643,45 @@ INPUT_PORTS_END /* Preliminary emulation. PCB was working fine, but */ /* it's not certain that this is a good dump */ /* */ +/* Ports 41 and 48 output 0 at start, not used again */ +/* Sounds could be memory-mapped? */ +/* Seems to be no watchdog reset line */ +/* Diplocs need confirming */ +/* Couldn't confirm 2500 for extra life, game too hard*/ +/* Always in cocktail mode but flipscreen bit not found*/ +/* */ /*******************************************************/ static INPUT_PORTS_START( spacecom ) PORT_START("IN0") // 5-pos dipsw at ic79 (row F) - means 3 bits are for something else, which? - PORT_DIPUNKNOWN( 0x01, 0x01 ) - PORT_DIPUNKNOWN( 0x02, 0x02 ) - PORT_DIPUNKNOWN( 0x04, 0x04 ) - PORT_DIPUNKNOWN( 0x08, 0x08 ) - PORT_DIPUNKNOWN( 0x10, 0x10 ) - PORT_DIPUNKNOWN( 0x20, 0x20 ) - PORT_DIPUNKNOWN( 0x40, 0x40 ) - PORT_DIPUNKNOWN( 0x80, 0x80 ) + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1") + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:3") + PORT_DIPSETTING( 0x00, "3" ) + PORT_DIPSETTING( 0x04, "5" ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4") + PORT_DIPSETTING( 0x00, "2500" ) // not confirmed + PORT_DIPSETTING( 0x08, "1500" ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5") + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_SERVICE( 0x08, IP_ACTIVE_HIGH ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_START(CABINET_PORT_TAG) /* Dummy port for cocktail mode */ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) @@ -675,7 +692,7 @@ static ADDRESS_MAP_START( spacecom_io_map, AS_IO, 8, _8080bw_state ) AM_RANGE(0x41, 0x41) AM_READ_PORT("IN0") AM_RANGE(0x42, 0x42) AM_READ_PORT("IN1") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) AM_RANGE(0x44, 0x44) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) - AM_RANGE(0x48, 0x48) AM_WRITE(watchdog_reset_w) + //AM_RANGE(0x48, 0x48) AM_WRITE(watchdog_reset_w) ADDRESS_MAP_END MACHINE_CONFIG_DERIVED_CLASS( spacecom, invaders, _8080bw_state ) @@ -683,6 +700,8 @@ MACHINE_CONFIG_DERIVED_CLASS( spacecom, invaders, _8080bw_state ) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(spacecom_io_map) + MCFG_WATCHDOG_VBLANK_INIT(0) + MCFG_WATCHDOG_TIME_INIT(attotime::from_usec(0)) MACHINE_CONFIG_END @@ -2922,6 +2941,7 @@ ROM_START( spacecom ) ROM_LOAD( "6g.ic84", 0x1400, 0x0400, CRC(de383625) SHA1(7ec0d7171e771c4b43e026f3f50a88d8ab2236bb) ) ROM_LOAD( "7f.ic70", 0x1800, 0x0400, CRC(5a23dbc8) SHA1(4d193bb7b38fb7ccd57d2c72463a3fe123dbca58) ) ROM_LOAD( "8g.ic85", 0x1c00, 0x0400, CRC(a5a467e3) SHA1(ef591059e55d21f14baa8af1f1324a9bc2ada8c4) ) + ROM_FILL(0x10, 1, 0xF5) // fix bad byte ROM_END ROM_START( sinvzen )