The MiSTer’s SNAC technology uses the User Port in your I/O board to interface devices directly to the FPGA cores as if the device was connected directly to the original machine the core is recreating, the main advantage to this is that it bypasses all hardware and software layers inherent to modern computers and interfaces like modern USB.
When using USB joysticks or keyboards, for example, the software and hardware have to constantly “ask” the USB controller if there is any change, when a change is detected or a command is received the software has to recognize it and interpret what to do, and sometimes there are more than one software layers passing information between eachother. That is a very rough maner to explain the process, but what matters is that all this process takes time, and making retro devices compatible with cores via USB interface is even worst as it implies some emulation has to be in plce to translate, for example, serial commands to the USB protocol, and the developer has to make the compatibility in a device to device maner.
Thanks to the User Port, a native connection between external devices and the core is possible as if the device was connected directly to the old retro machine, any device that worked on that retro console/computer will work without additional coding as long as the device was designed to work with the interface the User Port outputs from that system in question.
SNAC uses the User port interface for controllers, joysticks, mice, guns, etc. They will work with zero input lag compared with the original system, and maintains the feeling of playing on the original system. It is AWESOME!
There are two main formats of the User Port in the MiSTer’s community, the USB3 shaped user port and the DB9 user port, the USB3 formatted user port is the one the official i/o boards use and in this section I will describe the models I make in that format in various categories by similarities:
Playstation and Nintendo 64:
This SNAC adapters have a vertical format, the USB cable connects from behind and the controllers to the front. This solves many issues other adapters have, for example, when connecting the controllers the conectors can bend upwards or directly snap, other designs imply the need of a case to support the connectors making the device expensive, or have the connectors facing upwards which… well is not very convenient, in my design you can apply as much force as you want when connecting and disconnecting, they feel more natural, and are really affordable as they don’t need a case.
The Playstation SNAC supports 2 players, and has the RCA to connect a GUN, it also supports rumble with 7,6 volts power which is the exact same voltage the original Playstation produce for the rumble motors function, no external power adapters are needed, the true feeling of the original console in your hands.
The Nintendo 64 SNAC supports 4 players, it supports anything that could be connected to the original N64 the core supports, including rumble, transfer pak, etc, etc.
This two adapters can be used with the official, or any other, I/O board for the MiSTer FPGA, you would only need the corresponding USB3 extension cable. No “level shifter board” is needed.
Nintendo NES and Super Nintendo:
This SNAC adapters have the more usual horizontal format, as the connectors are strong enough to support anything you throw at them. Both support 2 players, both can be used in the official MiSTer without the “level shifter board” and both have a special feature; They have a switch where you can select if you are using the “DB9 with ENCC (SNAC8)” forked cores, or the standard SNAC cores. Basically they have everything you would ever need in a SNAC at a very affordable price.
MegaDrive/Genesis and Saturn:
This SNAC adapters are the simplest of all, they only support 1 player because the official cores don’t support more than that, this adapters are so tiny that are perfect for letting them always connected to the lead of your controller.
This two adapters CANNOT be used directly with the official I/O board, they require the “level shifter board” in the middle. This is, of course, not a requirement for the Ironclad boards and you can use them directly.
Neo-Geo/Arcade/DB15:
This SNAC adapter supports 2 players, come in the usual “horizontal” format and has some peculiarities; The official Neo-Geo core does not support SNAC so downloading the DB9 core is needed, it is supported in many official arcade cores, like Jotego’s cores, but the magic begins when you select the option “Download DB9 with ENCC cores” in update all, as this will download the full DB9 forked cores to your system and this SNAC will work in hundreds of more cores, including Neo-Geo, Megadrive, SNES, NES, Turbografx, etc, etc. this forked cores also support controlling the MiSTer’s menus with this SNAC adapter. AWESOME. This adapter can be used in the official MiSTer without the “level shifter board”