SNAC adapters, what are they?

What is SNAC?

I wanted to take a moment and make this post about SNAC adapters to try and explain what they are, at least to the point that I understand them.


TL;DR:

SNAC lets you use original console controllers with FPGA devices like the MiSTer or MiSTer Pi.


SNAC stands for Serial Native Accessory Converter—we’ll get back to this in a moment.

Let’s think about something like the MiSTer or MiSTer Pi for a moment. Both of these have the same FPGA board for doing all the hardware emulation, and they both have different CPUs for running the normal operating system.

When you turn them on and you’re selecting the games you want to play, you’re using the CPU to run the menu—the operating system.


Loading a Core

When you load a core, you’re loading it into the FPGA chip, which then behaves exactly like the original hardware.
You then use the OS to pick a game (basically like inserting a cartridge), and off you go. The FPGA takes over and starts running the system.


The Problem with USB Controllers

If you’re using a USB or Bluetooth controller, all your inputs go through the CPU first.
The CPU gathers button presses and sends them to the FPGA chip. This can introduce lag because the CPU only checks for input at intervals.

Basically, when you press buttons, they go into a queue. The CPU picks up that info now and then, and then forwards it to the FPGA.

This all happens really fast, many times per second, but if you press a button just after the CPU checks for input, it won’t get sent until the next time around. That tiny delay could mean missing a crucial jump or punch.


Enter SNAC

An FPGA core emulates the entire system, including the controller ports. This is where SNAC adapters come into play.

On the MiSTer or MiSTer Pi, the SNAC port looks like a USB port, but it’s not a real USB port.
You connect SNAC adapters to it, which then let you plug in original controllers.

Once that’s set up:

  • You’re not using the CPU anymore.
  • You’re talking directly to the FPGA.
  • Your button presses go straight to the system—just like real hardware.

Benefits of SNAC

  • You’re using the original controller → more authentic feel
  • No CPU involvement → zero input lag

Drawbacks of SNAC

  1. Since the controller bypasses the CPU, the CPU doesn’t know it exists.
    When you’re done playing and want to select a new game or core, you’ll need a USB or Bluetooth controller to navigate the menu.
  2. SNAC connections are system-specific.
    For example, plugging a SNES controller into a NES core might do something, but it’s not guaranteed to work properly.
    Use the correct controller for the system you’re emulating.

Final Tip

In pretty much every core, you need to:

  • Go into the core’s menu
  • Tell it you’ll be using a SNAC adapter for a specific controller port
    By default, cores expect a USB or Bluetooth controller to be used.