Previous 199869 Revisions Next

r18105 Monday 24th September, 2012 at 01:50:34 UTC by hap
cleaned up Lives dipswitches
[src/mame/drivers]vicdual.c
[src/mame/includes]vicdual.h

trunk/src/mame/includes/vicdual.h
r18104r18105
7171   DECLARE_CUSTOM_INPUT_MEMBER(vicdual_get_vblank_comp);
7272   DECLARE_CUSTOM_INPUT_MEMBER(vicdual_get_composite_blank_comp);
7373   DECLARE_CUSTOM_INPUT_MEMBER(vicdual_get_timer_value);
74   DECLARE_CUSTOM_INPUT_MEMBER(brdrline_lives);
74   DECLARE_CUSTOM_INPUT_MEMBER(vicdual_fake_lives_r);
7575   DECLARE_CUSTOM_INPUT_MEMBER(samurai_protection_r);
7676   DECLARE_INPUT_CHANGED_MEMBER(coin_changed);
7777   DECLARE_MACHINE_START(frogs_audio);
trunk/src/mame/drivers/vicdual.c
r18104r18105
4343          The timing is implemented according to the schematics, but
4444          who knows...
4545        * DIP switches need verifying in most of the games
46        * DIP switch locations need to be added to all the games
46        * DIP switch locations need to be added to most of the games
4747
4848****************************************************************************/
4949
r18104r18105
218218   /* video hardware */
219219   MCFG_SCREEN_ADD("screen", RASTER)
220220   MCFG_SCREEN_RAW_PARAMS(VICDUAL_PIXEL_CLOCK, VICDUAL_HTOTAL, VICDUAL_HBEND, VICDUAL_HBSTART, VICDUAL_VTOTAL, VICDUAL_VBEND, VICDUAL_VBSTART)
221
222221MACHINE_CONFIG_END
223222
224223
r18104r18105
300299   /* audio hardware */
301300   MCFG_SPEAKER_STANDARD_MONO("mono")
302301   MCFG_FRAGMENT_ADD(depthch_audio)
303
304302MACHINE_CONFIG_END
305303
306304
r18104r18105
384382   /* video hardware */
385383   MCFG_SCREEN_MODIFY("screen")
386384   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
387
388385MACHINE_CONFIG_END
389386
390387
r18104r18105
491488   /* audio hardware */
492489   MCFG_SPEAKER_STANDARD_MONO("mono")
493490   MCFG_FRAGMENT_ADD(frogs_audio)
494
495491MACHINE_CONFIG_END
496492
497493
r18104r18105
679675   /* audio hardware */
680676   MCFG_SPEAKER_STANDARD_MONO("mono")
681677   MCFG_FRAGMENT_ADD(headon_audio)
682
683678MACHINE_CONFIG_END
684679
685680static MACHINE_CONFIG_DERIVED( headons, headon )
r18104r18105
690685MACHINE_CONFIG_END
691686
692687
693
694688static MACHINE_CONFIG_DERIVED( sspaceat, vicdual_root )
695689
696690   /* basic machine hardware */
r18104r18105
701695   /* video hardware */
702696   MCFG_SCREEN_MODIFY("screen")
703697   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw_or_color)
704
705698MACHINE_CONFIG_END
706699
707700
r18104r18105
899892   /* audio hardware */
900893   MCFG_SPEAKER_STANDARD_MONO("mono")
901894   MCFG_FRAGMENT_ADD(headon_audio)
902
903895MACHINE_CONFIG_END
904896
905897static MACHINE_CONFIG_DERIVED( headon2bw, headon2 )
r18104r18105
921913   /* video hardware */
922914   MCFG_SCREEN_MODIFY("screen")
923915   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
924
925916MACHINE_CONFIG_END
926917
927918
r18104r18105
11821173ADDRESS_MAP_END
11831174
11841175
1176/* several of the games' lives DIPs are spread across two input ports */
1177CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_fake_lives_r)
1178{
1179   static const char *const portnames[] = { "FAKE_LIVES1", "FAKE_LIVES2" };
1180
1181   /* use the low byte for the bitmask */
1182   UINT8 bit_mask = ((FPTR)param) & 0xff;
1183
1184   /* and use d8 for the port */
1185   int port = ((FPTR)param) >> 8 & 1;
1186   return (ioport(portnames[port])->read_safe(0) & bit_mask) ? 0 : 1;
1187}
1188
1189
11851190static INPUT_PORTS_START( invho2 )
11861191   PORT_START("IN0")
11871192   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
11881193   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1189   PORT_DIPNAME( 0x04, 0x04, "Head On Lives (1/2)" )
1190   PORT_DIPSETTING(    0x04, "+0" )
1191   PORT_DIPSETTING(    0x00, "+1" )
1194   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x001)
11921195   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
11931196   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
11941197   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r18104r18105
11991202   PORT_START("IN1")
12001203   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
12011204   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1202   PORT_DIPNAME( 0x04, 0x00, "Head On Lives (2/2)" )
1203   PORT_DIPSETTING(    0x04, "+0" )
1204   PORT_DIPSETTING(    0x00, "+1" )
1205   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x002)
12051206   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL)
12061207   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
12071208   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
r18104r18105
12101211   PORT_START("IN2")
12111212   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
12121213   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1213   PORT_DIPNAME( 0x04, 0x00, "Invinco Lives" )
1214   PORT_DIPSETTING(    0x00, "5" )
1215   PORT_DIPSETTING(    0x04, "6" )
1214   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x101)
12161215   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL)
12171216   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
12181217   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
1219   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )   /* probably unused */
1218   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
12201219
12211220   PORT_START("IN3")
12221221   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
12231222   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1224   /* There's probably a bug in the code: this would likely be the second */
1225   /* bit of the Invinco Lives setting, but the game reads bit 3 instead */
1226   /* of bit 2. */
1227   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
1228   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1229   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1223   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x102)
12301224   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL)
12311225   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Game Select") PORT_TOGGLE
12321226   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
12331227   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
12341228
12351229   PORT_COIN
1230
1231   PORT_START("FAKE_LIVES1")
1232   PORT_DIPNAME( 0x03, 0x01, "Head On 2 Lives" )   PORT_DIPLOCATION("SW1:1,2")
1233   PORT_DIPSETTING(    0x00, "2" )
1234   PORT_DIPSETTING(    0x01, "3" )
1235//   PORT_DIPSETTING(    0x02, "3" ) // dupe
1236   PORT_DIPSETTING(    0x03, "4" )
1237
1238   /* There's probably a bug in the Invinco game code:
1239       it does support lives set to 5 or 6, but the game
1240       reads IN3 bit 3 instead of bit 2.
1241       Note that the manual only lists setting it to 3 or 4.
1242    */
1243   PORT_START("FAKE_LIVES2")
1244   PORT_DIPNAME( 0x03, 0x03, "Invinco Lives" )      PORT_DIPLOCATION("SW1:3,4")
1245   PORT_DIPSETTING(    0x03, "3" )
1246   PORT_DIPSETTING(    0x02, "4" )
1247//   PORT_DIPSETTING(    0x01, "5" ) // results in 3, see above
1248//   PORT_DIPSETTING(    0x00, "6" ) // results in 4, see above
1249
12361250INPUT_PORTS_END
12371251
12381252
r18104r18105
12401254   PORT_START("IN0")
12411255   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
12421256   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1243   PORT_DIPNAME( 0x04, 0x00, "Invinco Lives (1/2)" )
1244   PORT_DIPSETTING(    0x00, "+0" )
1245   PORT_DIPSETTING(    0x04, "+1" )
1257   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x001)
12461258   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
12471259   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
12481260   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r18104r18105
12531265   PORT_START("IN1")
12541266   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
12551267   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1256   PORT_DIPNAME( 0x04, 0x00, "Invinco Lives (2/2)" )
1257   PORT_DIPSETTING(    0x00, "+0" )
1258   PORT_DIPSETTING(    0x04, "+2" )
1268   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x002)
12591269   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL)
12601270   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
12611271   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
r18104r18105
12641274   PORT_START("IN2")
12651275   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
12661276   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1267   PORT_DIPNAME( 0x04, 0x00, "Deep Scan Lives (1/2)" )
1268   PORT_DIPSETTING(    0x00, "+0" )
1269   PORT_DIPSETTING(    0x04, "+1" )
1277   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x101)
12701278   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL)
12711279   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
12721280   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
r18104r18105
12751283   PORT_START("IN3")
12761284   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
12771285   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1278   /* +1 and +2 gives 2 lives instead of 6 */
1279   PORT_DIPNAME( 0x04, 0x00, "Deep Scan Lives (2/2)" )
1280   PORT_DIPSETTING(    0x04, "+0" )
1281   PORT_DIPSETTING(    0x00, "+2" )
1286   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x102)
12821287   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL)
1283   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Game Select") PORT_TOGGLE
1288   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Game Select") PORT_TOGGLE
12841289   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
12851290   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
12861291
12871292   PORT_COIN
1293
1294   PORT_START("FAKE_LIVES1")
1295   PORT_DIPNAME( 0x03, 0x03, "Invinco Lives" )      PORT_DIPLOCATION("SW1:1,2")
1296   PORT_DIPSETTING(    0x03, "3" )
1297   PORT_DIPSETTING(    0x02, "4" )
1298   PORT_DIPSETTING(    0x01, "5" )
1299   PORT_DIPSETTING(    0x00, "6" )
1300
1301   PORT_START("FAKE_LIVES2")
1302   PORT_DIPNAME( 0x03, 0x01, "Deep Scan Lives" )   PORT_DIPLOCATION("SW1:3,4")
1303   PORT_DIPSETTING(    0x02, "2" )
1304   PORT_DIPSETTING(    0x01, "3" )
1305   PORT_DIPSETTING(    0x00, "4" )
1306   PORT_DIPSETTING(    0x03, "5" )
12881307INPUT_PORTS_END
12891308
12901309
r18104r18105
12921311   PORT_START("IN0")
12931312   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
12941313   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
1295   PORT_DIPNAME( 0x04, 0x04, "S.A. Lives (1/2)" )
1296   PORT_DIPSETTING(    0x00, "+0" )
1297   PORT_DIPSETTING(    0x04, "+1" )
1298   PORT_DIPNAME( 0x08, 0x00, "H.O. Lives" )
1314   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x001)
1315   PORT_DIPNAME( 0x08, 0x00, "Head On Lives" )
12991316   PORT_DIPSETTING(    0x00, "3" )
13001317   PORT_DIPSETTING(    0x08, "4" )
13011318   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
r18104r18105
13051322   PORT_START("IN1")
13061323   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
13071324   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1308   PORT_DIPNAME( 0x04, 0x00, "S.A. Lives (2/2)" )
1309   PORT_DIPSETTING(    0x00, "+0" )
1310   PORT_DIPSETTING(    0x04, "+2" )
1325   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x002)
13111326   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL)
13121327   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
13131328   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
r18104r18105
13161331   PORT_START("IN2")
13171332   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
13181333   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1319   PORT_DIPNAME( 0x04, 0x00, "S.A. Bonus Life" )
1334   PORT_DIPNAME( 0x04, 0x00, "Space Attack Bonus Life" )
13201335   PORT_DIPSETTING(    0x00, "10000" )
13211336   PORT_DIPSETTING(    0x04, "15000" )
13221337   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_timer_value, NULL)
r18104r18105
13271342   PORT_START("IN3")
13281343   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
13291344   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1330   PORT_DIPNAME( 0x04, 0x00, "S.A. Bonus Life For Final UFO" )
1345   PORT_DIPNAME( 0x04, 0x00, "Space Attack Final UFO Bonus" )
13311346   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
13321347   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
13331348   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_read_coin_status, NULL)
r18104r18105
13361351   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
13371352
13381353   PORT_COIN
1354
1355   PORT_START("FAKE_LIVES1")
1356   PORT_DIPNAME( 0x03, 0x03, "Space Attack Lives" )
1357   PORT_DIPSETTING(    0x03, "3" )
1358   PORT_DIPSETTING(    0x02, "4" )
1359   PORT_DIPSETTING(    0x01, "5" )
1360   PORT_DIPSETTING(    0x00, "6" )
13391361INPUT_PORTS_END
13401362
13411363
r18104r18105
14071429   PORT_START("IN1")
14081430   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
14091431   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1410   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* unknown, but used */
1432   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )   /* unknown, but used */
14111433   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
14121434   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
14131435   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL)
r18104r18105
16241646   PORT_COIN
16251647INPUT_PORTS_END
16261648
1627/* brdrline lives DIPs are spread across two input ports */
1628CUSTOM_INPUT_MEMBER(vicdual_state::brdrline_lives)
1629{
1630   int bit_mask = (FPTR)param;
1631   return (ioport("FAKE_LIVES")->read() & bit_mask) ? 0x00 : 0x01;
1632}
16331649
16341650static INPUT_PORTS_START( brdrline )
16351651   PORT_START("IN0")
r18104r18105
16531669   PORT_START("IN1")
16541670   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
16551671   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
1656   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x01)
1672   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x001)
16571673   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_vblank_comp, NULL)
16581674   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
16591675   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
r18104r18105
16621678   PORT_START("IN2")
16631679   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
16641680   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1665   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x02)
1681   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x002)
16661682   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL)   /* yes, this is different */
16671683   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
16681684   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
r18104r18105
16811697
16821698   PORT_COIN
16831699
1684   PORT_START("FAKE_LIVES")
1700   PORT_START("FAKE_LIVES1")
16851701   PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
1702   PORT_DIPSETTING(    0x00, "3" )
1703   PORT_DIPSETTING(    0x01, "4" )
16861704   PORT_DIPSETTING(    0x02, "5" )
1687   PORT_DIPSETTING(    0x01, "4" )
1688   PORT_DIPSETTING(    0x00, "3" )
1705//   PORT_DIPSETTING(    0x03, "5" ) // dupe
16891706INPUT_PORTS_END
16901707
1708
16911709static INPUT_PORTS_START( starrkr )
16921710   PORT_START("IN0")
16931711   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
r18104r18105
17101728   PORT_START("IN1")
17111729   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
17121730   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* probably unused */
1713   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x01)
1731   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x001)
17141732   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_vblank_comp, NULL)
17151733   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
17161734   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
r18104r18105
17191737   PORT_START("IN2")
17201738   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
17211739   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1722   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,brdrline_lives, (void *)0x02)
1740   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x002)
17231741   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_64v, NULL)   /* yes, this is different */
17241742   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
17251743   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
r18104r18105
17381756
17391757   PORT_COIN
17401758
1741   PORT_START("FAKE_LIVES")
1759   PORT_START("FAKE_LIVES1")
17421760   PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
1761   PORT_DIPSETTING(    0x00, "3" )
1762   PORT_DIPSETTING(    0x01, "4" )
17431763   PORT_DIPSETTING(    0x02, "5" )
1744   PORT_DIPSETTING(    0x01, "4" )
1745   PORT_DIPSETTING(    0x00, "3" )
1764//   PORT_DIPSETTING(    0x03, "5" ) // dupe
17461765INPUT_PORTS_END
17471766
1767
17481768static INPUT_PORTS_START( pulsar )
17491769   PORT_START("IN0")
17501770   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
17511771   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1752   PORT_DIPNAME( 0x04, 0x04, "Lives (1/2)" )
1753   PORT_DIPSETTING(    0x04, "+0" )
1754   PORT_DIPSETTING(    0x00, "+2" )
1772   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x001)
17551773   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unused ) )
17561774   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
17571775   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r18104r18105
17621780   PORT_START("IN1")
17631781   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
17641782   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1765   PORT_DIPNAME( 0x04, 0x04, "Lives (2/2)" )
1766   PORT_DIPSETTING(    0x04, "+0" )
1767   PORT_DIPSETTING(    0x00, "+1" )
1783   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x002)
17681784   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL)
17691785   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
17701786   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
r18104r18105
17931809   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
17941810
17951811   PORT_COIN
1812
1813   PORT_START("FAKE_LIVES1")
1814   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
1815   PORT_DIPSETTING(    0x00, "2" )
1816   PORT_DIPSETTING(    0x02, "3" )
1817   PORT_DIPSETTING(    0x01, "4" )
1818   PORT_DIPSETTING(    0x03, "5" )
17961819INPUT_PORTS_END
17971820
17981821
r18104r18105
18511874   PORT_START("IN0")
18521875   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
18531876   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
1854   PORT_DIPNAME( 0x04, 0x00, "Alpha Fighter Lives (1/2)" )
1855   PORT_DIPSETTING(    0x00, "+0" )
1856   PORT_DIPSETTING(    0x04, "+1" )
1877   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x001)
18571878   PORT_DIPNAME( 0x08, 0x00, "Head On Lives" )
18581879   PORT_DIPSETTING(    0x00, "3" )
18591880   PORT_DIPSETTING(    0x08, "4" )
r18104r18105
18641885   PORT_START("IN1")
18651886   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
18661887   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
1867   PORT_DIPNAME( 0x04, 0x00, "Alpha Fighter Lives (2/2)" )
1868   PORT_DIPSETTING(    0x00, "+0" )
1869   PORT_DIPSETTING(    0x04, "+2" )
1888   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_fake_lives_r, (void *)0x002)
18701889   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, vicdual_state,vicdual_get_composite_blank_comp, NULL)
18711890   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
18721891   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
r18104r18105
18931912   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* probably unused */
18941913
18951914   PORT_COIN
1915
1916   PORT_START("FAKE_LIVES1")
1917   PORT_DIPNAME( 0x03, 0x03, "Alpha Fighter Lives" )
1918   PORT_DIPSETTING(    0x03, "3" )
1919   PORT_DIPSETTING(    0x02, "4" )
1920   PORT_DIPSETTING(    0x01, "5" )
1921   PORT_DIPSETTING(    0x00, "6" )
18961922INPUT_PORTS_END
18971923
18981924
r18104r18105
19051931   /* video hardware */
19061932   MCFG_SCREEN_MODIFY("screen")
19071933   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
1908
19091934MACHINE_CONFIG_END
19101935
19111936
r18104r18105
19191944   MCFG_SPEAKER_STANDARD_MONO("mono")
19201945   MCFG_FRAGMENT_ADD(invinco_audio)
19211946   MCFG_FRAGMENT_ADD(headon_audio)
1922
19231947MACHINE_CONFIG_END
19241948
19251949
r18104r18105
19321956   /* audio hardware */
19331957   MCFG_SPEAKER_STANDARD_MONO("mono")
19341958   MCFG_FRAGMENT_ADD(invinco_audio)
1935
19361959MACHINE_CONFIG_END
19371960
19381961
r18104r18105
19531976   /* basic machine hardware */
19541977   MCFG_CPU_MODIFY("maincpu")
19551978   MCFG_CPU_IO_MAP(spacetrk_io_map)
1956
19571979MACHINE_CONFIG_END
19581980
19591981
r18104r18105
19661988   /* audio hardware */
19671989   MCFG_SPEAKER_STANDARD_MONO("mono")
19681990   MCFG_FRAGMENT_ADD(carnival_audio)
1969
19701991MACHINE_CONFIG_END
19711992
19721993static MACHINE_CONFIG_DERIVED( carnivalh, vicdual_dualgame_root )
r18104r18105
19781999   /* audio hardware */
19792000   MCFG_SPEAKER_STANDARD_MONO("mono")
19802001   MCFG_FRAGMENT_ADD(carnival_audio)
1981
19822002MACHINE_CONFIG_END
19832003
19842004
r18104r18105
19882008   /* basic machine hardware */
19892009   MCFG_CPU_MODIFY("maincpu")
19902010   MCFG_CPU_IO_MAP(tranqgun_io_map)
1991
19922011MACHINE_CONFIG_END
19932012
19942013
r18104r18105
19972016   /* basic machine hardware */
19982017   MCFG_CPU_MODIFY("maincpu")
19992018   MCFG_CPU_IO_MAP(brdrline_io_map)
2000
20012019MACHINE_CONFIG_END
20022020
20032021
r18104r18105
20102028   /* audio hardware */
20112029   MCFG_SPEAKER_STANDARD_MONO("mono")
20122030   MCFG_FRAGMENT_ADD(pulsar_audio)
2013
20142031MACHINE_CONFIG_END
20152032
20162033
r18104r18105
20192036   /* basic machine hardware */
20202037   MCFG_CPU_MODIFY("maincpu")
20212038   MCFG_CPU_IO_MAP(heiankyo_io_map)
2022
20232039MACHINE_CONFIG_END
20242040
20252041
r18104r18105
20282044   /* basic machine hardware */
20292045   MCFG_CPU_MODIFY("maincpu")
20302046   MCFG_CPU_IO_MAP(alphaho_io_map)
2031
20322047MACHINE_CONFIG_END
20332048
20342049
r18104r18105
21522167   /* video hardware */
21532168   MCFG_SCREEN_MODIFY("screen")
21542169   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
2155
21562170MACHINE_CONFIG_END
21572171
21582172
r18104r18105
22472261   /* video hardware */
22482262   MCFG_SCREEN_MODIFY("screen")
22492263   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
2250
22512264MACHINE_CONFIG_END
22522265
22532266
r18104r18105
23502363   /* audio hardware */
23512364   MCFG_SPEAKER_STANDARD_MONO("mono")
23522365   MCFG_FRAGMENT_ADD(invinco_audio)
2353
23542366MACHINE_CONFIG_END
23552367
23562368

Previous 199869 Revisions Next


© 1997-2024 The MAME Team