diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp index 97986287165..7b1c4f4753e 100644 --- a/src/mame/drivers/model2.cpp +++ b/src/mame/drivers/model2.cpp @@ -247,7 +247,7 @@ uint32_t model2_state::copro_fifoout_pop(address_space &space,uint32_t offset, u m_maincpu->spin_until_time(attotime::from_usec(25)); // fix ld rN, (rN) case, ask desert, pltkids, zerogun ... - return 0x00884000; + return 0x00884000+offset*4; } r = m_copro_fifoout_data[m_copro_fifoout_rpos++]; @@ -1851,46 +1851,70 @@ INPUT_PORTS_END static INPUT_PORTS_START( srallyc ) PORT_START("IN0") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2) - PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE1) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_PLAYER(1) PORT_NAME("VR") // VR - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START1) - PORT_BIT(0x90, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW ) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("VR") // VR + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT(0x90, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("IN1") - PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN2") - PORT_BIT(0x70, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,daytona_gearbox_r, nullptr) - PORT_BIT(0x8f, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0x70, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, model2_state,daytona_gearbox_r, nullptr) + PORT_BIT(0x8f, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("GEARS") // fake to handle gear bits - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(1) PORT_NAME("GEAR N") - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(1) PORT_NAME("GEAR 1") - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_PLAYER(1) PORT_NAME("GEAR 2") - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_PLAYER(1) PORT_NAME("GEAR 3") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_PLAYER(1) PORT_NAME("GEAR 4") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("GEAR N") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("GEAR 1") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("GEAR 2") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("GEAR 3") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("GEAR 4") PORT_START("IN3") - //PORT_BIT(0xff, 0x00, IPT_AD_STICK_Y) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) PORT_REVERSE PORT_NAME("Handle (Drive)") - PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN) + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN4") - PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN) - + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("ANA0") // steer - PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) + PORT_BIT(0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) PORT_START("ANA1") // accel - PORT_BIT(0xff, 0x00, IPT_PEDAL) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) + PORT_BIT(0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) PORT_START("ANA2") // brake - PORT_BIT(0xff, 0x00, IPT_PEDAL2) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) + PORT_BIT(0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) PORT_PLAYER(1) INPUT_PORTS_END +static INPUT_PORTS_START( sgt24h ) + PORT_INCLUDE( srallyc ) + + PORT_MODIFY("IN2") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("View Button") + PORT_BIT(0x0e, IP_ACTIVE_LOW, IPT_UNKNOWN ) + // notice that these are exclusive inputs, also if bit 6 or 7 are enabled then shifting doesn't work + // (i.e. they probably took the gearbox device and modded over it) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Shift Up") + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Shift Down") + PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("GEARS") + PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) +INPUT_PORTS_END + +static INPUT_PORTS_START( overrev ) + PORT_INCLUDE( sgt24h ) + + PORT_MODIFY("IN2") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("View 1 Button") + // optional, enableable when hardware type isn't in "normal (2in1)" mode + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("View 2 Button") +INPUT_PORTS_END + + static INPUT_PORTS_START( vcop2 ) PORT_START("IN0") PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1) @@ -6155,10 +6179,10 @@ GAME( 1996, lastbrnx, 0, model2b, model2, model2b_state, 0, GAME( 1996, lastbrnxu, lastbrnx, model2b, model2, model2b_state, 0, ROT0, "Sega", "Last Bronx (USA, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, lastbrnxj, lastbrnx, model2b, model2, model2b_state, 0, ROT0, "Sega", "Last Bronx (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, doa, 0, model2b_0229, model2, model2b_state, doa, ROT0, "Sega", "Dead or Alive (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, sgt24h, 0, indy500, srallyc, model2b_state, sgt24h, ROT0, "Jaleco", "Super GT 24h", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, sgt24h, 0, indy500, sgt24h, model2b_state, sgt24h, ROT0, "Jaleco", "Super GT 24h", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, dynabb, 0, model2b, dynabb, model2b_state, 0, ROT0, "Sega", "Dynamite Baseball", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, dynabb97, 0, model2b, dynabb, model2b_state, 0, ROT0, "Sega", "Dynamite Baseball 97 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, overrevb, overrev, indy500, srallyc, model2b_state, 0, ROT0, "Jaleco", "Over Rev (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, overrevb, overrev, indy500, overrev, model2b_state, 0, ROT0, "Jaleco", "Over Rev (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, zerogun, 0, model2b_5881, model2, model2b_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, zerogunj, zerogun, model2b_5881, model2, model2b_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1998, dynamcopb, dynamcop, model2b_5881, model2, model2b_state, 0, ROT0, "Sega", "Dynamite Cop (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) @@ -6173,7 +6197,7 @@ GAME( 1996, stcca, stcc, stcc, model2, model2c_state, 0, GAME( 1996, waverunr, 0, model2c, model2, model2c_state, 0, ROT0, "Sega", "Wave Runner (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, bel, 0, model2c, bel, model2c_state, 0, ROT0, "Sega / EPL Productions", "Behind Enemy Lines", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, hotd, 0, model2c, vcop2, model2c_state, 0, ROT0, "Sega", "The House of the Dead", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, overrev, 0, overrev2c, srallyc, model2c_state, 0, ROT0, "Jaleco", "Over Rev (Model 2C, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, overrev, 0, overrev2c, overrev, model2c_state, 0, ROT0, "Jaleco", "Over Rev (Model 2C, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, rascot2, 0, model2c, model2, model2c_state, 0, ROT0, "Sega", "Royal Ascot II", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, segawski, 0, model2c, model2, model2c_state, 0, ROT0, "Sega", "Sega Water Ski (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, topskatr, 0, model2c, model2, model2c_state, 0, ROT0, "Sega", "Top Skater (Export, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )