I have two versions done - First with Arduino Mega, second one with Teensy2++ - both work the same
Well most information I got has been flowing into my tools - ( https://github.com/SailorSat/daytona-utils
- focus on the "DaytonaArduino" ), however I have never done a specific "how to".
"Daytona USB"s (pun intended) first idea was to be a "drop-in" plug and play solution (and to some degree it is) to hook up any model1/2/3 cabinet by simply plugin the original wiring into it ( this works fine ).
It also supports the Lamps and Driveboard Interface (output only) - however my plans to make it a generic force feedback device had to be canned, as the sega drive board does not support multiple effects at once, but nearly every single windows game uses multiple effects.
From a technical point of view - the interface is a 8 bit wide output with an (optional) 8 bit wide input. ( = 8/16 wires )
Its the same for model 1/2/3 - although I'm curious how SWT adds the 2nd drive board into the wiring.
Most of the protocols are actually known as most of the racers share the same "core". Only exception would be the two Sega Rally games which use a unique protocol.
The differences per game being "special effects" or advanced stuff for the deluxe cabinets (airbags on Virtua Racing, pneumatic valves on Daytona, etc.).
I also did some "translation" between them (it works fair enough).
As for the "how to get the data", well I recently added the raw drive and lamps data to the supermodel outputs, however I don't know if there is a "working" output path for non-windows systems.
Need to fool around a little with SWT I guess.
(a more or less hacked scud race - proof of concept