diff options
author | Robbbert <Robbbert@users.noreply.github.com> | 2021-11-28 14:55:55 +1100 |
---|---|---|
committer | Robbbert <Robbbert@users.noreply.github.com> | 2021-11-28 14:55:55 +1100 |
commit | c04720297c6aa3e6164336b251ec1df2736985b0 (patch) | |
tree | f804fff9abe61bb94a17a9e5494a3684fe99253f | |
parent | 509c570f41593019c4f804ef72fb12538f7ea81f (diff) |
hercules: fixed inputs
-rw-r--r-- | src/mame/drivers/atari_s2.cpp | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/src/mame/drivers/atari_s2.cpp b/src/mame/drivers/atari_s2.cpp index 32c4d66449e..f59218e8ad7 100644 --- a/src/mame/drivers/atari_s2.cpp +++ b/src/mame/drivers/atari_s2.cpp @@ -12,7 +12,6 @@ The only difference seems to be an extra bank of inputs (or something) at 2008-2 Status: - Superman, Hercules, Roadrunner are playable. -- Hercules: unassigned inputs, if pressed, will cause the machine to reboot ToDo: - 4x4 not emulated yet, it's totally different hardware. @@ -259,10 +258,10 @@ static INPUT_PORTS_START( atari_s2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("X1") // 1001 - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP09") // Hercules: reboots machine - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP10") // Hercules: reboots machine - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP11") // Hercules: reboots machine + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP09") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP10") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP11") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP12") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP13") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -280,7 +279,7 @@ static INPUT_PORTS_START( atari_s2 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP24") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP25") PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP26") - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("INP27") // Hercules: reboots machine + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("INP27") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP28") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP29") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -296,9 +295,9 @@ static INPUT_PORTS_START( atari_s2 ) PORT_START("X5") // 1005 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP40") - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP41") // Hercules: reboots machine - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP42") // Hercules: reboots machine - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP43") // Hercules: reboots machine + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP41") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP42") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP43") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -315,13 +314,28 @@ static INPUT_PORTS_START( atari_s2 ) PORT_START("X7") // 1007 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP56") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP57") - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP58") // Hercules: reboots machine - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP59") // Hercules: reboots machine - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP60") // Hercules: reboots machine - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP61") // Hercules: reboots machine + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP58") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP59") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP60") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP61") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END +// remove unassigned inputs that cause machine to reboot +static INPUT_PORTS_START( hercules ) + PORT_INCLUDE(atari_s2) + PORT_MODIFY("X1") + PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_MODIFY("X3") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_MODIFY("X5") + PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + + PORT_MODIFY("X7") + PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) +INPUT_PORTS_END /* solenoids hercules 4,5 = bumpers 8,9 = slings @@ -617,6 +631,6 @@ ROM_END GAME( 1979, supermap, 0, atari_s2, atari_s2, atari_s2_state, empty_init, ROT0, "Atari", "Superman (Pinball)", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1979, hercules, 0, atari_s2, atari_s2, atari_s2_state, empty_init, ROT0, "Atari", "Hercules", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1979, hercules, 0, atari_s2, hercules, atari_s2_state, empty_init, ROT0, "Atari", "Hercules", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1979, roadrunr, 0, atari_s3, atari_s2, atari_s2_state, empty_init, ROT0, "Atari", "Road Runner", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1982, fourx4, 0, fourx4, atari_s2, atari_s2_state, empty_init, ROT0, "Atari", "4x4", MACHINE_IS_SKELETON_MECHANICAL ) |