So would it be nice for my shifter project to have a button that swaps the switches?
With proper configuration, a button like that is
probably not needed.
The loss-of-sync situation where you might need that button wouldn't happen in Pole Position or Buggy Boy with a one-switch shifter and properly configured MAME.
Seems like loss-of-sync could only happen if you were trying to adapt a sequential shifter (i.e. no dedicated first-gear or second-gear microswitch on the shifter) to support those one-switch shifter games.
- AFAIK that would involve using some sort of AHK/LUA/Arduino script/code.
- The script/code could monitor and re-sync the game and shifter as described
here in the other thread.
I'm going to support all the shifters man. I'm not talking about for my personal use, I mean in general for others as I'll be adding hi/low support for my shifter spoofing project.
There's a lot of info to juggle so I'd recommend:
1. Make a list of all of the shifters you plan to eventually support, what output they produce, and how they behave.
(just spitballing with some of these examples)
- 2 speed, one microswitch (closed=high, position held by detent)
- 2 speed, one microswitch (closed=low, position held by detent)
- 2 speed, two microswitches (constant output, position held by detent)
- 2 speed, two microswitches (momentary output, lever returns to center)
- 4 speed, three microswitches
- 6 speed, two microswitches, two optical switches
- Sequential (momentary)
- Sequential (constant output)
2. Make a list of games that typify the specific shifter behaviors in MAME/console games/PC games.
- 2 speed, one microswitch, switch held closed = high gear ==> Pole Position (polepos)
- 2 speed, one microswitch, switch held closed = low gear ==> Buggy Boy (buggyboy)
3. Turn those lists into a table with shifters on the X-axis and games on the Y-axis, with each cell describing how to use that shifter with that game.
- For example, Buggy Boy only needs a bit of configuration (toggle="no" and NOT the shifter input) to work with a Pole Position shifter, but can't work with a sequential shifter unless you use something like my script idea
here.
If the table has too much info, group it by shifter type like this:
Shifter type: 2 speed, one microswitch (closed=high, position held by detent)
polepos: toggle="no"
buggyboy: toggle="no", NOT the shifter input
daytona: Not supported
Shifter type: Sequential (momentary)
polepos: Script needed to convert momentary shifter output to constant MAME input
buggyboy: NOT the shifter input, script needed to convert momentary shifter output to constant MAME input
daytona: . . .
Scott