Previous 199869 Revisions Next

r20027 Thursday 3rd January, 2013 at 05:50:04 UTC by Robbbert
Galactic, spacmiss : hooked up port 7 (nw)
[src/mame/audio]8080bw.c
[src/mame/drivers]8080bw.c
[src/mame/includes]8080bw.h

trunk/src/mame/includes/8080bw.h
r20026r20027
8585   DECLARE_WRITE8_MEMBER(shuttlei_ff_w);
8686   DECLARE_WRITE8_MEMBER(shuttlei_sh_port_1_w);
8787   DECLARE_WRITE8_MEMBER(shuttlei_sh_port_2_w);
88   DECLARE_WRITE8_MEMBER(galactic_07_w);
89   DECLARE_WRITE8_MEMBER(galactic_sh_port_1_w);
90   DECLARE_WRITE8_MEMBER(galactic_sh_port_2_w);
8891   DECLARE_READ8_MEMBER(claybust_gun_lo_r);
8992   DECLARE_READ8_MEMBER(claybust_gun_hi_r);
9093   DECLARE_READ8_MEMBER(invmulti_eeprom_r);
r20026r20027
137140
138141DISCRETE_SOUND_EXTERN( ballbomb );
139142DISCRETE_SOUND_EXTERN( indianbt );
143DISCRETE_SOUND_EXTERN( galactic );
140144DISCRETE_SOUND_EXTERN( polaris );
141145
142146extern const sn76477_interface lupin3_sn76477_interface;
trunk/src/mame/drivers/8080bw.c
r20026r20027
28502850
28512851
28522852
2853/* Taito Galactica / Space Missile
2853/**************************************************************************************
2854
2855Taito Galactica / Space Missile
2856
28542857This game was officially only distributed in Brazil.
28552858Regarding release data, not much information is available online.
28562859
2857ROM dump came from a collection of old 5 1/4 disks (Apple II) that used to be in the possession of an arcade operator in the early 80s.
2860ROM dump came from a collection of old 5 1/4 disks (Apple II) that used to be in the
2861 possession of an arcade operator in the early 80s.
28582862
2859TODO sound (currently same as invaders):
2860- sound mutes when a few aliens are left?
2861- port 7 write is used too
2862*/
2863TODO sound to be verified.
28632864
2865***************************************************************************************/
2866
2867static ADDRESS_MAP_START( galactic_io_map, AS_IO, 8, _8080bw_state )
2868   AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
2869   AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
2870   AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
2871   AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(galactic_sh_port_1_w)
2872   AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
2873   AM_RANGE(0x05, 0x05) AM_WRITE(galactic_sh_port_2_w)
2874   AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
2875   AM_RANGE(0x07, 0x07) AM_WRITE(galactic_07_w)
2876ADDRESS_MAP_END
2877
2878
2879static MACHINE_CONFIG_DERIVED_CLASS( galactic, mw8080bw_root, _8080bw_state )
2880
2881   /* basic machine hardware */
2882   MCFG_CPU_MODIFY("maincpu")
2883   MCFG_CPU_IO_MAP(galactic_io_map)
2884   MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw)
2885
2886   /* add shifter */
2887   MCFG_MB14241_ADD("mb14241")
2888
2889   /* sound hardware */
2890   MCFG_FRAGMENT_ADD(invaders_samples_audio)
2891   MCFG_DISCRETE_ADD("discrete", 0, galactic)
2892   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
2893
2894   /* video hardware */
2895   MCFG_SCREEN_MODIFY("screen")
2896   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invaders)
2897MACHINE_CONFIG_END
2898
2899
28642900static INPUT_PORTS_START( galactic )
28652901   PORT_START("IN0")
2866   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2867   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2868   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2869   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2870   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2871   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2872   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
2873   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // tilt?
2902   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // gets read into memory (0x2012) then never used
28742903
28752904   PORT_START("IN1")
28762905   PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_COIN1 )
r20026r20027
43924421GAME( 1980, ballbomb,   0,        ballbomb,  ballbomb,  driver_device, 0, ROT270, "Taito", "Balloon Bomber", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )   /* missing clouds */
43934422GAME( 1980, indianbt,   0,        indianbt,  indianbt,  driver_device, 0, ROT270, "Taito", "Indian Battle", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
43944423GAME( 1980, steelwkr,   0,        steelwkr,  steelwkr,  driver_device, 0, ROT0  , "Taito", "Steel Worker", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
4395GAMEL(1980?,galactic,   0,        invaders,  galactic,  driver_device, 0, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic )
4396GAMEL(1980?,spacmiss,   galactic, invaders,  galactic,  driver_device, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic )
4424GAMEL(1980?,galactic,   0,        galactic,  galactic,  driver_device, 0, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic )
4425GAMEL(1980?,spacmiss,   galactic, galactic,  galactic,  driver_device, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic )
43974426
43984427// Misc. manufacturers
43994428GAME( 1979, galxwars,   0,        invadpt2,  galxwars,  driver_device, 0, ROT270, "Universal", "Galaxy Wars (Universal set 1)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
trunk/src/mame/audio/8080bw.c
r20026r20027
12591259   }
12601260}
12611261
1262
1263/*****************************************/
1264/* "Darth Vader" preliminary sound       */
1265/* Proper samples are unavailable        */
1266/*****************************************/
1267
12621268WRITE8_MEMBER( _8080bw_state::darthvdr_00_w )
12631269{
12641270   m_flip_screen = BIT(data, 0) & ioport(CABINET_PORT_TAG)->read();
r20026r20027
12891295   m_port_1_last_extra = data;
12901296}
12911297
1298
1299/*******************************************************/
1300/*                                                     */
1301/*   "Galactic" and "Space Missile"                    */
1302/*   Due to no schematics, these sounds are nothing    */
1303/*   more than speculation.                            */
1304/*******************************************************/
1305
1306/*************************************
1307 *
1308 *  Discrete Sound
1309 * (copied from indianbt)
1310 *
1311 *************************************/
1312
1313static const discrete_dac_r1_ladder galactic_music_dac =
1314   {3, {0, RES_K(47), RES_K(12)}, 0, 0, 0, CAP_U(0.1)};
1315
1316#define GALACTIC_MUSIC_CLK      (150000)
1317
1318/* Nodes - Inputs */
1319#define GALACTIC_MUSIC_DATA      NODE_01
1320/* Nodes - Sounds */
1321#define GALACTIC_MUSIC         NODE_11
1322
1323DISCRETE_SOUND_START(galactic)
1324
1325   DISCRETE_INPUT_DATA (GALACTIC_MUSIC_DATA)
1326
1327/******************************************************************************
1328 *
1329 * Music Generator
1330 *
1331 ******************************************************************************/
1332   DISCRETE_NOTE(NODE_20, 1, GALACTIC_MUSIC_CLK, GALACTIC_MUSIC_DATA, 255, 5, DISC_CLK_IS_FREQ)
1333
1334   // Convert count to 7492 output
1335   DISCRETE_TRANSFORM2(NODE_21, NODE_20, 2, "01>0+")
1336
1337   DISCRETE_DAC_R1(NODE_22, NODE_21, DEFAULT_TTL_V_LOGIC_1, &galactic_music_dac)
1338
1339/******************************************************************************
1340 *
1341 * Final Mixing and Output
1342 *
1343 ******************************************************************************/
1344   DISCRETE_CRFILTER(NODE_90, NODE_22, RES_K(10), CAP_U(0.1))
1345
1346   DISCRETE_OUTPUT(NODE_90, 21000)
1347
1348DISCRETE_SOUND_END
1349
1350WRITE8_MEMBER( _8080bw_state::galactic_07_w )
1351{
1352   discrete_sound_w(m_discrete, space, GALACTIC_MUSIC_DATA, data | 0xc0);
1353}
1354
1355WRITE8_MEMBER(_8080bw_state::galactic_sh_port_1_w)
1356{
1357   UINT8 rising_bits = data & ~m_port_1_last_extra;
1358
1359   if (rising_bits & 0x02) m_samples->start(2, 2);      /* Killed an enemy */
1360   if (rising_bits & 0x04) m_samples->start(1, 1);      /* Lost a life */
1361
1362   m_port_1_last_extra = data;
1363}
1364
1365// bits 0-3 could make a variable background tone
1366WRITE8_MEMBER(_8080bw_state::galactic_sh_port_2_w)
1367{
1368   UINT8 rising_bits = data & ~m_port_2_last_extra;
1369
1370   if (rising_bits & 0x10) m_samples->start(0, 0);      /* Shoot */
1371
1372   m_flip_screen = BIT(data, 5) & ioport(CABINET_PORT_TAG)->read();
1373
1374   m_port_2_last_extra = data;
1375}
1376
1377

Previous 199869 Revisions Next


© 1997-2024 The MAME Team