diff --git a/src/mame/drivers/st_mp100.c b/src/mame/drivers/st_mp100.c index 8f9a83773d5..c8da5684435 100644 --- a/src/mame/drivers/st_mp100.c +++ b/src/mame/drivers/st_mp100.c @@ -9,6 +9,7 @@ ToDo: - Display to fix - Dips, Inputs, Solenoids vary per game - Mechanical +- Sound board - an enormous mass of discrete circuitry *********************************************************************************************/ @@ -89,11 +90,13 @@ static ADDRESS_MAP_START( st_mp100_map, AS_PROGRAM, 8, st_mp100_state ) AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("pia_u10", pia6821_device, read, write) AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("pia_u11", pia6821_device, read, write) + AM_RANGE(0x00a0, 0x00bf) // to sound board + AM_RANGE(0x00c0, 0x00df) // to sound board AM_RANGE(0x0200, 0x02ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x1000, 0x1fff) AM_ROM AM_REGION("roms", 0 ) ADDRESS_MAP_END -static INPUT_PORTS_START( st_mp100 ) +static INPUT_PORTS_START( mp100 ) PORT_START("TEST") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, st_mp100_state, self_test, 0) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, st_mp100_state, activity_test, 0) @@ -131,56 +134,73 @@ static INPUT_PORTS_START( st_mp100 ) PORT_DIPSETTING( 0x1d, "2 coins 14 credits") PORT_DIPSETTING( 0x1e, "1 coin 15 credits") PORT_DIPSETTING( 0x1f, "2 coins 15 credits") - PORT_DIPNAME( 0x20, 0x20, "S06") - PORT_DIPSETTING( 0x00, DEF_STR( No )) - PORT_DIPSETTING( 0x20, DEF_STR( Yes )) - PORT_DIPNAME( 0x40, 0x40, "S07") - PORT_DIPSETTING( 0x00, DEF_STR( No )) - PORT_DIPSETTING( 0x40, DEF_STR( Yes )) - PORT_DIPNAME( 0x80, 0x80, "S08") - PORT_DIPSETTING( 0x00, DEF_STR( No )) - PORT_DIPSETTING( 0x80, DEF_STR( Yes )) + PORT_DIPNAME( 0x20, 0x20, "Award") + PORT_DIPSETTING( 0x00, "Extra Ball") + PORT_DIPSETTING( 0x20, "Free Game") + PORT_DIPNAME( 0x40, 0x00, "Balls") + PORT_DIPSETTING( 0x00, "3") + PORT_DIPSETTING( 0x40, "5") + PORT_DIPNAME( 0x80, 0x00, "Play melody always") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x80, DEF_STR( On )) PORT_START("DSW1") - PORT_DIPNAME( 0x01, 0x00, "S09") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x01, DEF_STR( On )) - PORT_DIPNAME( 0x02, 0x00, "S10") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x02, DEF_STR( On )) - PORT_DIPNAME( 0x04, 0x00, "S11") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x04, DEF_STR( On )) - PORT_DIPNAME( 0x08, 0x00, "S12") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x08, DEF_STR( On )) - PORT_DIPNAME( 0x10, 0x00, "S13") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x10, DEF_STR( On )) + PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3") + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C )) // same as 01 + PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C )) + PORT_DIPSETTING( 0x05, DEF_STR( 2C_2C )) + PORT_DIPSETTING( 0x06, DEF_STR( 1C_3C )) + PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C )) + PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C )) + PORT_DIPSETTING( 0x09, DEF_STR( 2C_4C )) + PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C )) + PORT_DIPSETTING( 0x0b, DEF_STR( 2C_5C )) + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C )) + PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C )) + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_7C )) + PORT_DIPSETTING( 0x0f, DEF_STR( 2C_7C )) + PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C )) + PORT_DIPSETTING( 0x11, DEF_STR( 2C_8C )) + PORT_DIPSETTING( 0x12, DEF_STR( 1C_9C )) + PORT_DIPSETTING( 0x13, "2 coins 9 credits") + PORT_DIPSETTING( 0x14, "1 coin 10 credits") + PORT_DIPSETTING( 0x15, "2 coins 10 credits") + PORT_DIPSETTING( 0x16, "1 coin 11 credits") + PORT_DIPSETTING( 0x17, "2 coins 11 credits") + PORT_DIPSETTING( 0x18, "1 coin 12 credits") + PORT_DIPSETTING( 0x19, "2 coins 12 credits") + PORT_DIPSETTING( 0x1a, "1 coin 13 credits") + PORT_DIPSETTING( 0x1b, "2 coins 13 credits") + PORT_DIPSETTING( 0x1c, "1 coin 14 credits") + PORT_DIPSETTING( 0x1d, "2 coins 14 credits") + PORT_DIPSETTING( 0x1e, "1 coin 15 credits") + PORT_DIPSETTING( 0x1f, "2 coins 15 credits") PORT_DIPNAME( 0x20, 0x00, "S14") - PORT_DIPSETTING( 0x00, DEF_STR( Yes )) - PORT_DIPSETTING( 0x20, DEF_STR( No )) - PORT_DIPNAME( 0x40, 0x40, "S15") - PORT_DIPSETTING( 0x00, DEF_STR( No )) - PORT_DIPSETTING( 0x40, DEF_STR( Yes )) - PORT_DIPNAME( 0x80, 0x00, "S16") - PORT_DIPSETTING( 0x00, DEF_STR( No )) - PORT_DIPSETTING( 0x80, DEF_STR( Yes )) + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x20, DEF_STR( On )) + PORT_DIPNAME( 0x40, 0x00, "Award for beating high score") + PORT_DIPSETTING( 0x00, "Novelty") + PORT_DIPSETTING( 0x40, "3 Free Games") + PORT_DIPNAME( 0x80, 0x00, "Rollover lights") + PORT_DIPSETTING( 0x00, "Always on") + PORT_DIPSETTING( 0x80, "Alternate") PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x00, "S17") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x01, DEF_STR( On )) - PORT_DIPNAME( 0x02, 0x00, "S18") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x02, DEF_STR( On )) - PORT_DIPNAME( 0x04, 0x00, "S19") - PORT_DIPSETTING( 0x00, DEF_STR( Off )) - PORT_DIPSETTING( 0x04, DEF_STR( On )) - PORT_DIPNAME( 0x08, 0x00, "S20") + PORT_DIPNAME( 0x07, 0x02, "Maximum Credits") + PORT_DIPSETTING( 0x00, "5") + PORT_DIPSETTING( 0x01, "10") + PORT_DIPSETTING( 0x02, "15") + PORT_DIPSETTING( 0x00, "20") + PORT_DIPSETTING( 0x00, "25") + PORT_DIPSETTING( 0x00, "30") + PORT_DIPSETTING( 0x00, "35") + PORT_DIPSETTING( 0x00, "40") + PORT_DIPNAME( 0x08, 0x08, "Credits displayed") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x08, DEF_STR( On )) - PORT_DIPNAME( 0x10, 0x00, "S21") + PORT_DIPNAME( 0x10, 0x10, "Match") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x10, DEF_STR( On )) PORT_DIPNAME( 0x20, 0x00, "S22") @@ -189,52 +209,55 @@ static INPUT_PORTS_START( st_mp100 ) PORT_DIPNAME( 0x40, 0x00, "S23") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x40, DEF_STR( On )) - PORT_DIPNAME( 0x80, 0x00, "S24") + PORT_DIPNAME( 0x80, 0x00, "Award a free game for hitting all targets 2nd time") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x80, DEF_STR( On )) PORT_START("DSW3") - PORT_DIPNAME( 0x03, 0x03, "Maximum Credits") - PORT_DIPSETTING( 0x00, "10") - PORT_DIPSETTING( 0x01, "15") - PORT_DIPSETTING( 0x02, "25") - PORT_DIPSETTING( 0x03, "40") - PORT_DIPNAME( 0x04, 0x04, "Credits displayed") + PORT_DIPNAME( 0x01, 0x00, "S25") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x01, DEF_STR( On )) + PORT_DIPNAME( 0x02, 0x00, "S26") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x02, DEF_STR( On )) + PORT_DIPNAME( 0x04, 0x04, "S27") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x04, DEF_STR( On )) - PORT_DIPNAME( 0x08, 0x08, "Match") + PORT_DIPNAME( 0x08, 0x00, "S28") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x08, DEF_STR( On )) - PORT_DIPNAME( 0x10, 0x00, "Keep all replays") + PORT_DIPNAME( 0x10, 0x00, "S29") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x10, DEF_STR( On )) - PORT_DIPNAME( 0x20, 0x00, "Voice" ) + PORT_DIPNAME( 0x20, 0x00, "S30") PORT_DIPSETTING( 0x00, DEF_STR( Off )) PORT_DIPSETTING( 0x20, DEF_STR( On )) - PORT_DIPNAME( 0xC0, 0x40, "Balls") - PORT_DIPSETTING( 0xC0, "2") - PORT_DIPSETTING( 0x00, "3") - PORT_DIPSETTING( 0x80, "4") - PORT_DIPSETTING( 0x40, "5") + PORT_DIPNAME( 0xc0, 0x80, "Award for Special") + PORT_DIPSETTING( 0x00, "100000 points") + PORT_DIPSETTING( 0x40, "Extra Ball") + PORT_DIPSETTING( 0x80, "Free Game") + PORT_DIPSETTING( 0xc0, "Extra Ball and Free Game") PORT_START("X0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) - PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) PORT_START("X1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) - PORT_BIT( 0x38, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt") - // from here, vary per game PORT_START("X2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S) @@ -266,6 +289,199 @@ static INPUT_PORTS_START( st_mp100 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) INPUT_PORTS_END +static INPUT_PORTS_START( mp200 ) + PORT_START("TEST") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, st_mp100_state, self_test, 0) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, st_mp100_state, activity_test, 0) + + PORT_START("DSW0") + PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 2") + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C )) // same as 01 + PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C )) + PORT_DIPSETTING( 0x05, DEF_STR( 2C_2C )) + PORT_DIPSETTING( 0x06, DEF_STR( 1C_3C )) + PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C )) + PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C )) + PORT_DIPSETTING( 0x09, DEF_STR( 2C_4C )) + PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C )) + PORT_DIPSETTING( 0x0b, DEF_STR( 2C_5C )) + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C )) + PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C )) + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_7C )) + PORT_DIPSETTING( 0x0f, DEF_STR( 2C_7C )) + PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C )) + PORT_DIPSETTING( 0x11, DEF_STR( 2C_8C )) + PORT_DIPSETTING( 0x12, DEF_STR( 1C_9C )) + PORT_DIPSETTING( 0x13, "2 coins 9 credits") + PORT_DIPSETTING( 0x14, "1 coin 10 credits") + PORT_DIPSETTING( 0x15, "2 coins 10 credits") + PORT_DIPSETTING( 0x16, "1 coin 11 credits") + PORT_DIPSETTING( 0x17, "2 coins 11 credits") + PORT_DIPSETTING( 0x18, "1 coin 12 credits") + PORT_DIPSETTING( 0x19, "2 coins 12 credits") + PORT_DIPSETTING( 0x1a, "1 coin 13 credits") + PORT_DIPSETTING( 0x1b, "2 coins 13 credits") + PORT_DIPSETTING( 0x1c, "1 coin 14 credits") + PORT_DIPSETTING( 0x1d, "2 coins 14 credits") + PORT_DIPSETTING( 0x1e, "1 coin 15 credits") + PORT_DIPSETTING( 0x1f, "2 coins 15 credits") + PORT_DIPNAME( 0x20, 0x20, "Award") + PORT_DIPSETTING( 0x00, "Extra Ball") + PORT_DIPSETTING( 0x20, "Free Game") + PORT_DIPNAME( 0x40, 0x00, "Balls") + PORT_DIPSETTING( 0x00, "3") + PORT_DIPSETTING( 0x40, "5") + PORT_DIPNAME( 0x80, 0x00, "Play melody always") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x80, DEF_STR( On )) + + PORT_START("DSW1") + PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3") + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C )) // same as 01 + PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C )) + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C )) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C )) + PORT_DIPSETTING( 0x05, DEF_STR( 2C_2C )) + PORT_DIPSETTING( 0x06, DEF_STR( 1C_3C )) + PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C )) + PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C )) + PORT_DIPSETTING( 0x09, DEF_STR( 2C_4C )) + PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C )) + PORT_DIPSETTING( 0x0b, DEF_STR( 2C_5C )) + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_6C )) + PORT_DIPSETTING( 0x0d, DEF_STR( 2C_6C )) + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_7C )) + PORT_DIPSETTING( 0x0f, DEF_STR( 2C_7C )) + PORT_DIPSETTING( 0x10, DEF_STR( 1C_8C )) + PORT_DIPSETTING( 0x11, DEF_STR( 2C_8C )) + PORT_DIPSETTING( 0x12, DEF_STR( 1C_9C )) + PORT_DIPSETTING( 0x13, "2 coins 9 credits") + PORT_DIPSETTING( 0x14, "1 coin 10 credits") + PORT_DIPSETTING( 0x15, "2 coins 10 credits") + PORT_DIPSETTING( 0x16, "1 coin 11 credits") + PORT_DIPSETTING( 0x17, "2 coins 11 credits") + PORT_DIPSETTING( 0x18, "1 coin 12 credits") + PORT_DIPSETTING( 0x19, "2 coins 12 credits") + PORT_DIPSETTING( 0x1a, "1 coin 13 credits") + PORT_DIPSETTING( 0x1b, "2 coins 13 credits") + PORT_DIPSETTING( 0x1c, "1 coin 14 credits") + PORT_DIPSETTING( 0x1d, "2 coins 14 credits") + PORT_DIPSETTING( 0x1e, "1 coin 15 credits") + PORT_DIPSETTING( 0x1f, "2 coins 15 credits") + PORT_DIPNAME( 0x20, 0x00, "S14") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x20, DEF_STR( On )) + PORT_DIPNAME( 0x40, 0x00, "Award for beating high score") + PORT_DIPSETTING( 0x00, "Novelty") + PORT_DIPSETTING( 0x40, "3 Free Games") + PORT_DIPNAME( 0x80, 0x00, "Rollover lights") + PORT_DIPSETTING( 0x00, "Always on") + PORT_DIPSETTING( 0x80, "Alternate") + + PORT_START("DSW2") + PORT_DIPNAME( 0x07, 0x02, "Maximum Credits") + PORT_DIPSETTING( 0x00, "5") + PORT_DIPSETTING( 0x01, "10") + PORT_DIPSETTING( 0x02, "15") + PORT_DIPSETTING( 0x00, "20") + PORT_DIPSETTING( 0x00, "25") + PORT_DIPSETTING( 0x00, "30") + PORT_DIPSETTING( 0x00, "35") + PORT_DIPSETTING( 0x00, "40") + PORT_DIPNAME( 0x08, 0x08, "Credits displayed") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x08, DEF_STR( On )) + PORT_DIPNAME( 0x10, 0x10, "Match") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x10, DEF_STR( On )) + PORT_DIPNAME( 0x20, 0x00, "S22") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x20, DEF_STR( On )) + PORT_DIPNAME( 0x40, 0x00, "S23") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x40, DEF_STR( On )) + PORT_DIPNAME( 0x80, 0x00, "Award a free game for hitting all targets 2nd time") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x80, DEF_STR( On )) + + PORT_START("DSW3") + PORT_DIPNAME( 0x01, 0x00, "S25") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x01, DEF_STR( On )) + PORT_DIPNAME( 0x02, 0x00, "S26") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x02, DEF_STR( On )) + PORT_DIPNAME( 0x04, 0x04, "S27") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x04, DEF_STR( On )) + PORT_DIPNAME( 0x08, 0x00, "S28") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x08, DEF_STR( On )) + PORT_DIPNAME( 0x10, 0x00, "S29") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x10, DEF_STR( On )) + PORT_DIPNAME( 0x20, 0x00, "S30") + PORT_DIPSETTING( 0x00, DEF_STR( Off )) + PORT_DIPSETTING( 0x20, DEF_STR( On )) + PORT_DIPNAME( 0xc0, 0x80, "Award for Special") + PORT_DIPSETTING( 0x00, "100000 points") + PORT_DIPSETTING( 0x40, "Extra Ball") + PORT_DIPSETTING( 0x80, "Free Game") + PORT_DIPSETTING( 0xc0, "Extra Ball and Free Game") + + PORT_START("X0") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt") + + PORT_START("X1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z) + + PORT_START("X2") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K) + + PORT_START("X3") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O) + + PORT_START("X4") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) +INPUT_PORTS_END + INPUT_CHANGED_MEMBER( st_mp100_state::activity_test ) { if(newval) @@ -405,18 +621,18 @@ WRITE8_MEMBER( st_mp100_state::u11_b_w ) m_u11_b = data; switch (data & 15) { - case 0x0: // - //m_samples->start(0, 3); - break; - case 0x1: // chime 10 + case 0x0: // chime 10 m_samples->start(1, 1); break; - case 0x2: // chime 100 + case 0x1: // chime 100 m_samples->start(2, 2); break; - case 0x3: // chime 1000 + case 0x2: // chime 1000 m_samples->start(3, 3); break; + case 0x3: // chime 10000 + m_samples->start(0, 4); + break; case 0x4: // chime 10000 m_samples->start(0, 4); break; @@ -433,13 +649,13 @@ WRITE8_MEMBER( st_mp100_state::u11_b_w ) //m_samples->start(0, 5); break; case 0xa: - //m_samples->start(0, 5); + m_samples->start(0, 0); break; case 0xb: - //m_samples->start(0, 0); + m_samples->start(0, 0); break; case 0xc: - //m_samples->start(0, 5); + m_samples->start(0, 0); break; case 0xd: //m_samples->start(0, 0); @@ -516,69 +732,6 @@ static MACHINE_CONFIG_START( st_mp100, st_mp100_state ) MACHINE_CONFIG_END -/*------------------------------------- -/ Cosmic Princess - same ROMs as Magic -/-------------------------------------*/ -ROM_START(princess) - ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(8838091f) SHA1(d2702b5e15076793b4560c77b78eed6c1da571b6)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(fb955a6f) SHA1(387080d5af318463475797fecff026d6db776a0c)) -ROM_END - -/*-------------------------------- -/ Dracula #109 -/-------------------------------*/ -ROM_START(dracula) - ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(063f8b5e) SHA1(80434de549102bff829b474603d6736b839b8999)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(00336fbc) SHA1(d2c360b8a80b209ecf4ec02ee19a5234c0364504)) -ROM_END - -/*-------------------------------- -/ Hot Hand - uses MPU-200 inports #112 -/-------------------------------*/ -ROM_START(hothand) - ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(5e79ea2e) SHA1(9b45c59b2076fcb3a35de1dd3ba2444ea852f149)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(fb955a6f) SHA1(387080d5af318463475797fecff026d6db776a0c)) -ROM_END - -/*-------------------------------- -/ Lectronamo #105 -/-------------------------------*/ -ROM_START(lectrono) - ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(79e918ff) SHA1(a728eb26d941a9c7484be593a216905237d32551)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(7c6e5fb5) SHA1(3aa4e0c1f377ba024e6b34bd431a188ff02d4eaa)) -ROM_END - -/*-------------------------------- -/ Magic - uses MPU-200 inports #115 -/-------------------------------*/ -ROM_START(magic) - ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(8838091f) SHA1(d2702b5e15076793b4560c77b78eed6c1da571b6)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(fb955a6f) SHA1(387080d5af318463475797fecff026d6db776a0c)) -ROM_END - -/*-------------------------------- -/ Memory Lane #104 -/-------------------------------*/ -ROM_START(memlane) - ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(aff1859d) SHA1(5a9801d139bf2477b6d351a2654ae07516be144a)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(3e236e3c) SHA1(7f631a5fac8a1b1af3b5332ba38d52553f13531a)) -ROM_END - -/*-------------------------------- -/ Nugent #108 -/-------------------------------*/ -ROM_START(nugent) - ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(79e918ff) SHA1(a728eb26d941a9c7484be593a216905237d32551)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(7c6e5fb5) SHA1(3aa4e0c1f377ba024e6b34bd431a188ff02d4eaa)) -ROM_END - /*-------------------------------- / Pinball #101 /-------------------------------*/ @@ -588,6 +741,15 @@ ROM_START(pinball) ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(432e9b9e) SHA1(292e509f50bc841f6e469c198fc82c2a9095f008)) ROM_END +/*------------------------------------ +/ Stingray #102 - same roms as Pinball +/-------------------------------------*/ +ROM_START(stingray) + ROM_REGION(0x1000, "roms", 0) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(1db32a33) SHA1(2f0a3ca36968b81f29373e4f2cf7ee28a4071882)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(432e9b9e) SHA1(292e509f50bc841f6e469c198fc82c2a9095f008)) +ROM_END + /*-------------------------------- / Stars #103 /-------------------------------*/ @@ -598,21 +760,21 @@ ROM_START(stars) ROM_END /*-------------------------------- -/ Stingray #102 +/ Memory Lane #104 /-------------------------------*/ -ROM_START(stingray) +ROM_START(memlane) ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(1db32a33) SHA1(2f0a3ca36968b81f29373e4f2cf7ee28a4071882)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(432e9b9e) SHA1(292e509f50bc841f6e469c198fc82c2a9095f008)) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(aff1859d) SHA1(5a9801d139bf2477b6d351a2654ae07516be144a)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(3e236e3c) SHA1(7f631a5fac8a1b1af3b5332ba38d52553f13531a)) ROM_END /*-------------------------------- -/ Trident - uses MPU-200 inports #110 +/ Lectronamo #105 /-------------------------------*/ -ROM_START(trident) +ROM_START(lectrono) ROM_REGION(0x1000, "roms", 0) - ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(934e49dd) SHA1(cbf6ca2759166f522f651825da0c75cf7248d3da)) - ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(540bce56) SHA1(0b21385501b83e448403e0216371487ed54026b7)) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(79e918ff) SHA1(a728eb26d941a9c7484be593a216905237d32551)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(7c6e5fb5) SHA1(3aa4e0c1f377ba024e6b34bd431a188ff02d4eaa)) ROM_END /*-------------------------------- @@ -624,15 +786,74 @@ ROM_START(wildfyre) ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(00336fbc) SHA1(d2c360b8a80b209ecf4ec02ee19a5234c0364504)) ROM_END -GAME(1977, pinball, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Pinball", GAME_IS_SKELETON_MECHANICAL) -GAME(1977, stingray, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Stingray", GAME_IS_SKELETON_MECHANICAL) -GAME(1978, stars, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Stars", GAME_IS_SKELETON_MECHANICAL) -GAME(1978, memlane, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Memory Lane", GAME_IS_SKELETON_MECHANICAL) -GAME(1978, lectrono, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Lectronamo", GAME_IS_SKELETON_MECHANICAL) -GAME(1978, wildfyre, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Wildfyre", GAME_IS_SKELETON_MECHANICAL) -GAME(1978, nugent, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Nugent", GAME_IS_SKELETON_MECHANICAL) -GAME(1979, dracula, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Dracula", GAME_IS_SKELETON_MECHANICAL) -GAME(1979, trident, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Trident", GAME_IS_SKELETON_MECHANICAL) -GAME(1979, hothand, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Hot Hand", GAME_IS_SKELETON_MECHANICAL) -GAME(1979, magic, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Magic", GAME_IS_SKELETON_MECHANICAL) -GAME(1979, princess, 0, st_mp100, st_mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Cosmic Princess", GAME_IS_SKELETON_MECHANICAL) +/*----------------------------------- +/ Nugent #108 - same roms as lectrono +/------------------------------------*/ +ROM_START(nugent) + ROM_REGION(0x1000, "roms", 0) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(79e918ff) SHA1(a728eb26d941a9c7484be593a216905237d32551)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(7c6e5fb5) SHA1(3aa4e0c1f377ba024e6b34bd431a188ff02d4eaa)) +ROM_END + +/*------------------------------------ +/ Dracula #109 - same roms as wildfyre +/-------------------------------------*/ +ROM_START(dracula) + ROM_REGION(0x1000, "roms", 0) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(063f8b5e) SHA1(80434de549102bff829b474603d6736b839b8999)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(00336fbc) SHA1(d2c360b8a80b209ecf4ec02ee19a5234c0364504)) +ROM_END + +/*-------------------------------- +/ Trident #110 +/-------------------------------*/ +ROM_START(trident) + ROM_REGION(0x1000, "roms", 0) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(934e49dd) SHA1(cbf6ca2759166f522f651825da0c75cf7248d3da)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(540bce56) SHA1(0b21385501b83e448403e0216371487ed54026b7)) +ROM_END + +/*-------------------------------- +/ Hot Hand #112 +/-------------------------------*/ +ROM_START(hothand) + ROM_REGION(0x1000, "roms", 0) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(5e79ea2e) SHA1(9b45c59b2076fcb3a35de1dd3ba2444ea852f149)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(fb955a6f) SHA1(387080d5af318463475797fecff026d6db776a0c)) +ROM_END + +/*------------------------------------ +/ Magic #115 - 2nd rom same as hothand +/-------------------------------------*/ +ROM_START(magic) + ROM_REGION(0x1000, "roms", 0) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(8838091f) SHA1(d2702b5e15076793b4560c77b78eed6c1da571b6)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(fb955a6f) SHA1(387080d5af318463475797fecff026d6db776a0c)) +ROM_END + +/*------------------------------------- +/ Cosmic Princess - same ROMs as Magic +/-------------------------------------*/ +ROM_START(princess) + ROM_REGION(0x1000, "roms", 0) + ROM_LOAD( "cpu_u2.716", 0x0000, 0x0800, CRC(8838091f) SHA1(d2702b5e15076793b4560c77b78eed6c1da571b6)) + ROM_LOAD( "cpu_u6.716", 0x0800, 0x0800, CRC(fb955a6f) SHA1(387080d5af318463475797fecff026d6db776a0c)) +ROM_END + +// chimes +GAME(1977, pinball, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Pinball", GAME_IS_SKELETON_MECHANICAL) +GAME(1977, stingray, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Stingray", GAME_IS_SKELETON_MECHANICAL) +GAME(1978, stars, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Stars", GAME_IS_SKELETON_MECHANICAL) +GAME(1978, memlane, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Memory Lane", GAME_IS_SKELETON_MECHANICAL) + +// sound unit B-521 +GAME(1978, lectrono, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Lectronamo", GAME_IS_SKELETON_MECHANICAL) +GAME(1978, wildfyre, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Wildfyre", GAME_IS_SKELETON_MECHANICAL) +GAME(1978, nugent, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Nugent", GAME_IS_SKELETON_MECHANICAL) +GAME(1979, dracula, 0, st_mp100, mp100, st_mp100_state, st_mp100, ROT0, "Stern", "Dracula", GAME_IS_SKELETON_MECHANICAL) + +// different inputs +GAME(1979, trident, 0, st_mp100, mp200, st_mp100_state, st_mp100, ROT0, "Stern", "Trident", GAME_IS_SKELETON_MECHANICAL) +GAME(1979, hothand, 0, st_mp100, mp200, st_mp100_state, st_mp100, ROT0, "Stern", "Hot Hand", GAME_IS_SKELETON_MECHANICAL) +GAME(1979, magic, 0, st_mp100, mp200, st_mp100_state, st_mp100, ROT0, "Stern", "Magic", GAME_IS_SKELETON_MECHANICAL) +GAME(1979, princess, 0, st_mp100, mp200, st_mp100_state, st_mp100, ROT0, "Stern", "Cosmic Princess", GAME_IS_SKELETON_MECHANICAL)