I recently published an article about using a Nintendo Switch Online SNES controller to play Pokémon Red using the Gambatte emulator. While I opined that this official replica of a Super Nintendo controller is a great choice for playing classic Game Boy Pokémon on a computer, I noted that it may not be the best choice:

In truth, the Nintendo Switch Online NES controllers may be best of all for Pokémon. They are less ergonomic than the dogbone-shaped SNES controller, but they also lack extra buttons that go unused on the Game Boy. However, those are only sold in packs of two for $60, so I went with the better and more broadly-useful SNES controller. I have a rarer dogbone-shaped NES controller for the top-loader NES, but since that is an actual NES controller, I would need an adapter to use it with my computer. (Perhaps that will be a future project.)

(Did someone say future project? How about near future project?)

I present my top-loader NES controller.

Dogbone-shaped NES 2 controller sitting on a petrified wood coaster.
Meet my controller. Long-time readers with a love of obscure New Leaf Journal articles may remember my petrified wood coaster from a very old photo post.

I received a top-loader NES from a used video game store in or around 2000. I probably only ran it a couple of times and do not even have all the cords for it at the moment. But running the original top-loader NES itself is not our goal. I want to use the NES controller to play Pokémon Red on my Linux computer. Of course, I alluded to the challenge in my previous article. The Nintendo Switch Online SNES controller has a USB-C port. The NES 2 controller has a cable with an NES controller port.

NES controller port for an NES 2 (dogbone-shaped) controller against a petrified wood backdrop.
Maybe computers should have NES ports.

You will not be surprised to learn that neither my workstation nor the mini PC I am using to play Pokémon Red have an NES controller port.

The Nintendo Switch Online article inspired me to look into adapters. My first choice was to check a site called Raphnet which produces and sells open source USB adapters for many classic controllers. Unfortunately, it did not have any NES-USB adapters in stock. I then turned to Amazon – where I previously purchased a USB adapter for my Wii Classic controllers (perhaps that will be another article topic). I looked through the NES options and purchased a Mayflash adapter that is supposed to handle both NES and SNES controllers.

Front of unopened Mayflash SNES/SFC/NES/FC adapter.
The NES connection in the image is a little misleading but we will get to that shortly.

See the back.

Back of unopened Mayflash SNES/SFC/NES/FC adapter.
You can tell this adapter is not a new product from the fact it touts compatibility with PlayStation 3, Windows XP, Windows Vista, Windows 8, and 32-bit editions of the foregoing now-obsolete Windows versions.

The Mayflash adapter has an SNES port and what appears to be a Sega Genesis-style port. However, many disappointed reviewers on Amazon have noted that it does not work with Genesis controllers (to be fair, it is not advertised as such – at least when I looked). However, it comes with an additional which plugs into the Genesis-style port and has an NES port at the end.

A Mayflash SNES/SFC/NES/FC adapter sitting on a petrified wood coaster. There is a separate extension cable to connect NES and FC controllers.
SNES controllers plug straight into the adapter block. NES controllers use the separate extension cable that I placed under the main adapter.

I decided to test this on my workstation before trying it on the mini PC. It is not a compatibility question – both my workstation and mini PC run the Arch-based EndeavourOS Linux distribution – but merely for convenience; I already had my workstation on. See everything plugged in.

My hand holding an NES 2 controller which is plugged into the Mayflash adapter which in turn is plugged into the USB port of my pink destop workstation.
My shockingly pink (find the Pokémon reference in my article on town slogans) desktop workstation is still going strong. Also seen in the background are one of my SoloKeys and my TV soundbar (my hacky fix for its optical audio port still works).

My next step was to start up RetroArch, a terrific free and open source hub for managing retro game emulators and controllers. I know that RetroArch will note on start up whether a controller is plugged in. Let us see if it finds mine.

(Tip: When using the adapter with an NES controller, you need to make sure to really push the NES port into the NES adapter. From the perspective of the computer, the adapter itself is the controller, so the computer (at least RetroArch) will recognize that a “controller” is plugged in even if the adapter is not connected to anything. Thus, this can create a confusing issue/misunderstanding if the controller you are using, whether it is NES or SNES, is not properly attached to the adapter block.)

RetroArch homepage. There is a banner at the bottom of the page which reads :"HuiJia NES/FC/SFC Joypad To USB Box (121/6148) not configured)"
Key point is the banner at the bottom of the screen.

Very nice. That “HuiJia” is part of what I see with my Wii Classic controller adapter. NES/FC/SFC Joypad to USB BOX does seem to correspond to my adapter (FC stands for Famicom and SFC for Super Famicom – which are the Japanese versions of the NES and SNES respectively). Of course, just because the controller is recognized does not mean that it is configured, much less that it can be configured. I recalled when I had to re-map the buttons on my Wii Classic controllers with the adapter for those because they were wonky by default. The same appeared to be the case with my NES adapter – the directional pad and A/B buttons did not seem to work. Start made me jump in the RetroArch menu, so that was something I suppose.

Time to map the buttons.

Mapping buttons for NES2 controller attached to Mayflash NES adapter in RetroArch.
The only buttons that need to be mapped for an NES controller are the four D-Pad directions, B, A, Start, and Select.

Mapping the buttons worked without any problems. The NES controller has very few buttons – just the four directional pad inputs, A, B, Start, and Select. You can see how those buttons look when mapped in the above screenshot. (NOTE: You can copy my config for the adapter with an NES controller from my Gitea repository. Note that this is only a configuration for NES, you will likely need to add extra button mappings to make full use of an SNES controller. Unfortunately, I do not have an original SNES controller on hand at the moment.) After mapping the buttons, I could use my NES 2 controller to navigate the RetroArch menu, all but confirming that the set-up was successful. Next step was to try a game. I decided to go with Kirby’s Dreamland (ROM taken from my original 1995 copy):

My thumb is pressing up on an authentic NES 2 controller connected to my PC with a NES 2 to PC adapter -- in the background on my monitor you can see Kirby flying in Kirby's Dreamland as a result of my input.
Kirby is flying because I am pressing D-Pad Up.

The controller worked exactly as expected. You will have to take my word for it, however.

But while this controller will be great for all Game Boy games, I touted it specifically as a great fit for Pokémon Red. I went through the same steps to configure it with my mini PC and it again worked exactly as expected in RetroArch. (One interesting difference in setting it up on my mini PC instead of my workstation – the D-pad worked without any configuration when I first launched RetroArch but the buttons did not.) Of course, I was using Lutris with the Libretro core to play Pokémon Red instead of RetroArch proper, so I had to undertake a couple of additional steps to have my properly configured controller recognized when launching Pokémon Red from Lutris. See my companion article for information.

My hand holds an authentic NES 2 controller connected to my computer with an NES-to-USB adapter in front of my TV, on which I am playing Pokemon Red with the Gambatte emulator. In Pokemon Red, I am standing in front of an in-game SNES in the Celadon City Department Store. The on-screen dialogue reads "It's an SNES!" but I am holding the controller to block the n and S so it looks like it reads It's a NES!"
The actual dialogue in the Celadon City Department Store reads: “It’s an SNES!” Because I am using an NES controller, I tried to block the n and S so it looks like it is saying “It’s an NES!” I set up the controller when I had just reached Lavender Town and held off on the photo op until I reached the Celadon City Department Store.

I have used it for a few Pokémon Red sessions and have not experienced any problems thus far. As I expected – I prefer the NES controller to the SNES controller for Game Boy and Game Boy Color games because it has the exact same buttons as a classic Game Boy, without the extra shoulder and X/Y buttons on the SNES controller. The one caveat to my preference is that the boxy NES controller is less ergonomic than the dogbone-shaped SNES controller, but my rarer model 2 NES controller solves the ergonomics issue. It is also a little bit smaller than the SNES controller (for better or worse), as you can see below:

A Nintendo Switch Online SNES controller placed above an wishbone shaped NES 2 controller on a petrified wood coaster.

There are many imitation NES controllers out there, but if you have the real deal laying around and are somewhat less than inclined to spend $60 on the official Nintendo Switch Online replicas, adapters are a little bit cheaper (I spent about $18 on mine). I will venture that the Nintendo Switch Online replicas are the best options for Linux users who are using Linux 6.8 or higher (6.8 and up as kernel support for Switch controllers), but there is a charm (or in my case, cost savings) to using the real originals.

(Notes: The Mayflash adapter also has Turbo functionality but I have not tested that – so to the extent you may be interested in trying it based on my very early positive impressions, I submit for the record that I have no insight on that particular feature. All of my computers run Linux, so I have not tried the adapter with Windows or MacOS – I suspect the vast majority of positive and mixed Amazon reviews were from Windows-users. Moreover, I have not yet tested it with an SNES controller but the Amazon reviewers seem to suggest that it works as advertised for that purpose.)