I’m thinking of ways to make a Fightstick compatible with project boxes, but without adding any cables/outputs.
Microcontroller that accepts a xbox360/ps3 controller -> pinouts. Concerns here are the added lag by using the fightsticks pcb first as welll as getting xinput to work on a µc. I think the usb protocol for the xb360/ps3 operates at 1000hz, so that shouldn’t be to bad. The best thing about this solution is that you don’t have to modify the fightstick at all.
Dual-Modding with a i2c interface. There are i2c IO expander chips that allow for 16 buttons to be send/received over the 4 usb wires. Would have to think about how to autodetect. I think the current dualmod projects connect as usb controllers, and switch depending on what usb host is connected? So no usb host -> switch to i2c (or even integrate ps3 functionality for xbox360/ps3/i2c)
The cable length might be a problem with i2c, but i’ve heard positive reports for ~5m.
Maybe the DualStrike could be used as a base for option 2. (Maybe without any modifiations, and directly using the i2c stuff as the pass-through device? Probably an option for ps3 fightsticks)
As long as you only care about digital, SPI / shift register set up is a very simple and practical choice. (For an example look at what the SNES uses.)
It has the nice properties of being simple and easily accommodating more buttons if you change your mind later. (The NES->SNES transition is an example.) Though, if you want to start dealing with analog, it’s less than ideal, and if you start running a large number of different types of input, you start slowing down.
Supporting a variety of different USB devices on a microcontroller can be a challenge since the uc environment is pretty constrained. There’s off-the-shelf stuff for using the Sixaxis and the Arduino.