small update to spacecom, added sound

This commit is contained in:
Michaël Banaan Ananas 2012-12-09 18:42:24 +00:00
parent aacbe8afed
commit be4217deb5
3 changed files with 32 additions and 21 deletions

View File

@ -643,30 +643,32 @@ 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*/
/* TODO: */
/* - port $41 write is unknown, $44 read is unknown, */
/* port $48 no function/unused? */
/* - dip settings/locs need confirming */
/* - it doesn't have a mb14241 video shifter? */
/* - using space invaders audio as placeholder until */
/* more is known about the sound hw */
/* - always in cocktail mode but flipscreen 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_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
PORT_START("IN0") // 5-pos dipsw at ic79 (row F)
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x04, "5" )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4")
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
PORT_DIPSETTING( 0x00, "2500" ) // not confirmed
PORT_DIPSETTING( 0x08, "1500" )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5")
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
@ -690,9 +692,8 @@ INPUT_PORTS_END
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(0x42, 0x42) AM_READ_PORT("IN1") AM_WRITE(invaders_audio_1_w)
AM_RANGE(0x44, 0x44) AM_READNOP AM_WRITE(invaders_audio_2_w)
ADDRESS_MAP_END
MACHINE_CONFIG_DERIVED_CLASS( spacecom, invaders, _8080bw_state )
@ -700,10 +701,20 @@ MACHINE_CONFIG_DERIVED_CLASS( spacecom, invaders, _8080bw_state )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_IO_MAP(spacecom_io_map)
// assume there is no watchdog
MCFG_WATCHDOG_VBLANK_INIT(0)
MCFG_WATCHDOG_TIME_INIT(attotime::from_usec(0))
MACHINE_CONFIG_END
DRIVER_INIT_MEMBER(_8080bw_state, spacecom)
{
UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
// bad byte: should be push a at RST 10h
ROM[0x10] = 0xf5;
}
/*******************************************************/
@ -2933,7 +2944,7 @@ ROM_END
ROM_START( spacecom )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "1f.ic67", 0x0000, 0x0400, CRC(703f2cbe) SHA1(b183f9fbedd8658399555c0ba21ecab6370e86cb) )
ROM_LOAD( "1f.ic67", 0x0000, 0x0400, BAD_DUMP CRC(703f2cbe) SHA1(b183f9fbedd8658399555c0ba21ecab6370e86cb) )
ROM_LOAD( "2g.ic82", 0x0400, 0x0400, CRC(7269b719) SHA1(6fd5879a6f2a5b1d38c7f00996037418df9491d3) )
ROM_LOAD( "3f.ic68", 0x0800, 0x0400, CRC(6badac4f) SHA1(7b998d8fb21d143f26d605fe2a7dbbe1cf65210f) )
ROM_LOAD( "4g.ic83", 0x0c00, 0x0400, CRC(75b59ea7) SHA1(e00eb4a9cf662c84e18fc9efc29cedebf0c5af67) )
@ -2941,7 +2952,6 @@ 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 )
@ -4110,7 +4120,7 @@ GAMEL(1979, cosmicm2, invaders, invaders, cosmicmo, driver_device, 0, ROT270
GAMEL(1980?,sinvzen, invaders, invaders, spaceatt, driver_device, 0, ROT270, "Taito / Zenitone-Microsec Ltd.", "Super Invaders (Zenitone-Microsec)", GAME_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg?
GAMEL(1978, spaceatt, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg (Video Games GmbH)", "Space Attack (bootleg of Space Invaders)", GAME_SUPPORTS_SAVE, layout_invaders )
GAMEL(1980, spaceat2, invaders, invaders, spaceatt, driver_device, 0, ROT270, "bootleg (Video Games UK)", "Space Attack II (bootleg of Super Invaders)", GAME_SUPPORTS_SAVE, layout_invaders ) // bootleg of Zenitone-Microsec Super Invaders
GAMEL(1979, spacecom, invaders, spacecom, spacecom, driver_device, 0, ROT270, "bootleg", "Space Combat (bootleg of Space Invaders)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING, layout_spacecom ) // not working: need to investigate it more, could be bad dump?
GAMEL(1979, spacecom, invaders, spacecom, spacecom, _8080bw_state, spacecom, ROT270, "bootleg", "Space Combat (bootleg of Space Invaders)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_spacecom )
GAME( 1978, spacerng, invaders, spacerng, sitv, driver_device, 0, ROT90, "bootleg (Leisure Time Electronics)", "Space Ranger (bootleg of Space Invaders)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) // many modifications
GAMEL(19??, invasion, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg (Sidam)", "Invasion (Sidam)", GAME_SUPPORTS_SAVE, layout_invaders )
GAMEL(19??, invasiona, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg", "Invasion (bootleg set 1, normal graphics)", GAME_SUPPORTS_SAVE, layout_invaders ) // has Sidam replaced with 'Ufo Monster Attack' and standard GFX

View File

@ -86,6 +86,7 @@ public:
DECLARE_WRITE8_MEMBER(invmulti_bank_w);
DECLARE_DRIVER_INIT(invmulti);
DECLARE_DRIVER_INIT(spacecom);
DECLARE_DRIVER_INIT(vortex);
DECLARE_MACHINE_START(extra_8080bw);

View File

@ -6,15 +6,15 @@
<color red="0.1" green="1" blue="0.2" />
</rect>
<rect>
<bounds left="0" top="52" right="224" bottom="210" />
<bounds left="0" top="54" right="224" bottom="212" />
<color red="1" green="0.1" blue="0.1" />
</rect>
<rect>
<bounds left="0" top="86" right="224" bottom="180" />
<bounds left="0" top="88" right="224" bottom="182" />
<color red="1" green="1" blue="0.1" />
</rect>
<rect>
<bounds left="0" top="118" right="224" bottom="150" />
<bounds left="0" top="120" right="224" bottom="152" />
<color red="0.1" green="0.2" blue="1" />
</rect>
</element>