X-Arcade Tank-stick Max spinner.
I'm not sure which spinner that is.

Is yours like this one where there's no shaft sticking out the bottom, just wiring connectors. . .

. . . or this one with an encoder wheel (or shaft) on the bottom?

If your spinner is like the first one, you won't be able to add an encoder wheel to signal when the spinner is at the 12 o'clock position.
It
might theoretically be possible to mod the second one, but it would be
a lot easier to mod a TT2 or SpinTrak.
A 1/4" flange shaft coupler like
this one should be a good way to attach a 3d printed encoder wheel to the shaft of a TT2. IIRC, the SpinTrak would need a 6mm I.D. version of this part.

I want to create a "button click" when the spinner is in the 12 o'clock position. You mentioned an optical gate. Can you point me in the direction of what this is, or where to get it, or how it would emulate a button click when the plastic passes through the optical gate.
A basic optical gate/optical circuit a.k.a. an "opto" has an LED and a photo transistor.
A spinner or trackball will have two optos per axis.
- The good spacing image shows the encoder wheel at the left edge of Phase 1.
- Data line A is transitioning from HIGH (not blocked) to LOW (blocked) and data line B is in the middle of being blocked.
- As you rotate the encoder wheel clockwise, the blocking and un-blocking of the optos will produce the quadrature waveforms shown.

For the centering "button press" on 720, you should only need one opto/data line since you don't need to determine the direction of rotation, but rather when the spinner is at the 12 o'clock position.
- The encoder wheel would only need one tab for blocking the opto.
- This design can jam/break if the encoder wheel tab and opto get out of mechanical alignment.
- To avoid this problem, you must design the sensor holder so it is adjustable and partly overlaps the body of the encoder wheel.
If I wanted to build an updated 720 controller, I would probably use the Adafruit 2167 beam break sensor mentioned in my previous post along with a custom 3d printed mount for the LED and sensor modules. If you don't go that route, you could use a Happ "Red Board" with a custom mount.
To translate the data line signal from the opto into a button press, here are some options you could try:
- Use an "active low" gamepad encoder -- data line is HIGH until the tab blocks the LED so the phototransistor can't see it which sends the data line LOW which triggers the input to output a button press.
- Use an "active high" gamepad encoder and add a 74LS04 Hex Inverter or similar circuit to invert the logic level between the opto and the encoder.
- Make an Arduino "active low" gamepad encoder firmware and connect the data line to an interrupt pin for the fastest response.
Figuring out the correct combination of sensor/LED spacing, 3d printed mount design, encoder wheel diameter, tab width, encoder, and MAME settings is more work than I'm willing to invest.
Scott