PicoSNES - RP2350 Retro Gaming Inside a Controller

by DynaMight in Circuits > Raspberry Pi

38 Views, 0 Favorites, 0 Comments

PicoSNES - RP2350 Retro Gaming Inside a Controller

PXL_20260920_131700673.jpg
PXL_20260920_131516398.jpg
PXL_20260920_131738737.jpg

This device uses a RP2350 micro controller and PicoPlus, which is a suite of Retro Emulators and Ports such as NES, SNES, MegaDrive, Master System, PC Engine & more, plus also some classic ports such as Duke Nukem 3D and ofcourse Doom. All the software has been created by the talented Frank Hoedemakers. All I have done is created a PCB that fits inside a SNES controller that works with his amazing software. It would be a paperweight without his software!

PicoPlus nicely integrates into a 'bootloader' or launcher that allows you to choose your system, it will quickly flash the emulator/port and then allow you to play your games on your TV without the need of an actual console. Everything is housed inside the controller!

There is some fairly tough soldering and some modifying to a controller... and you can even power it directly from a HDMI cable so only one cable between you and the TV!

Supplies

Obviously you will need a SNES controller. You can use an aftermarket controller:

Aftermarket SNES Controller: https://www.aliexpress.com/item/1005006420383011.html

Or use an original SNES controller. eBay might be your best bet for an original controller.


RP2350 Plus (4MB or 16MB): https://www.aliexpress.com/item/1005008142968161.html

PSRAM for RP2350: https://www.aliexpress.com/item/1005009178803030.html

CD4021BM IC's: https://www.aliexpress.com/item/1005010099933764.html

0603*4 Resistor Networks (Need 100k, 10k & 270R) https://www.aliexpress.com/item/32372635218.html

USB-C Ports (16 pin): https://www.aliexpress.com/item/1005007079016649.html

HDMI Ports: https://www.aliexpress.com/item/1005001412266648.html

MicroSD Slots: https://www.aliexpress.com/item/1005001331379046.html

0603 5.1k resistors: https://www.aliexpress.com/item/1005001436923851.html

0603 100nF & 10uF Capacitors: https://www.aliexpress.com/item/32966526545.html

M2 & M2.6 Self tapping screws (6mm): https://www.aliexpress.com/item/1005002417296996.html



HDMI 5v injector: https://www.aliexpress.com/item/1005010195119341.html (optional - will power the device via your HDMI port - never plug in both the HDMI injector and USBC it can backfeed voltage)

Eye Loop: https://www.aliexpress.com/item/1005006037886945.html - Great for inspecting soldering without a microscope

Order the PCB's

You will need to order the PCB via your chosen PCB manufacturer. PCBWay or JLCPCB are popular and well priced.

Download the gerber file HERE

Upload to your chosen supplier, stock settings are fine. 1.6mm thick.

Add PSRAM

PXL_20260916_161530581.jpg
PXL_20260916_161751093.jpg
PXL_20260916_162923984.jpg

This is kinda optional but will limit the emulators and ports you can use. I would highly recommend it but if you really dont want to fit PSRAM then you could also look at not buying the RP2350 Plus but using the much cheaper 'Red RP2350'

The RP2350 Plus does not have PSRAM onboard but you can add it by piggy backing on top of the flash chip! Its not the easiest of mods as the legs dont quite reach.

Heres what I do - I get the PSRAM IC, use some strong tweezers to straighten the legs as much as possible (so they dont have the 90degree bend which would usually allow them to sit flat on the PCB) then place it on top of the flash chip, note the little dot and make sure it matches between the two chips, that is pin 1.

The PSRAM does fit on top quite nicely but the legs are not quite not long enough to reach the chips legs below so you need to either use solder to bridge the gap or use some wire. I tend to find, I can use solder on one side but that tends to mean the other side is then a little further away, so I use wires on the other.

NOTE: Pin 1 isnt soldered to the chip below. It goes to GPIO8 on the RP2350. This is the Chip Select pin.

Take your time, you can add solder and this is actually one of those times where flux doesnt help, that tends to make it flow down the legs and probably bridge. You can use solder wick to remove excess if needed.

The eye loop I linked above will help to see any potential bridges. Multimeter is also useful to check for continuity between chips, one probe on the bottom PCB pad and the other on the PSRAM top pin.

Build the PCB

PXL_20260916_155657643.jpg
PXL_20260916_161147709.jpg
PXL_20260916_165224368.MP.jpg
PXL_20260622_154117367.MP.jpg
PXL_20260721_211236462.jpg
PXL_20260916_181002110.jpg

It isnt the most populated PCB but it does have some fairly fine soldering, so not a totally novice job! You will need a good soldering iron with a suitable tip for some fine soldering. The eye loop I linked above is also very handy if you dont have a digital microscope, 9/10 times I will use the eye loop only.

I do recommend doing some bits in an order, mostly for convenience. I would start off with the resistor networks first, for me, these tend to go one of two ways, super easy or a blobby mess! I am still not 100% sure whether its easier to flood with solder or carefully add a small amount to each 'leg' Anyway, they can be tricky to ensure each of the 8 legs are soldered and not bridged, so its worth doing this first as allows easy access to turn the board etc.

After that I would tackle the HDMI port, ensuring its lined up (also personally I push this as far back as I can), I suggest tacking in one leg (from the underside), checking its lined up and also flush to the board, once you're happy with the alignment, flood fill the 4 anchor legs from the underside, you want the solder to flow through the board and through to the top side, this ensures that the port is secure and wont rip off the board. You may need up the temp on the soldering iron as they are ground planes.

Once its secure. Its time for the pins, use flux and I usually load my iron with a little solder and slowly move it upto the pins, do a few at a time until it stops accepting solder and then load some more solder to the iron and repeat. Add more flux as needed. When all pins have been soldered, I would usually add some more flux and retouch each pin with a tiny bit of solder on the tip. Bridges can be dragged along the pins until it evenly distributes. If that still doesnt help, a little solder wick will help.

Honestly, if this gets messy and you make a right mess of the port, dont worry. You probably have 4 spare boards and loads of spare resistor networks, so just start again. Trust me, it will be easier the second time!

Once the HDMI port is done. I would recommend quickly doing the 5.1k resistors since you'll have good access the onto the USBC port, which is essentially the same as the HDMI. Only difference is, I would recommend pulling the port as far to the edge of the PCB as possible, since it will give better access to the USBC cable outside of the controller shell but apart from that the process is pretty much the same as the HDMI. Tack in a leg, ensure its lined up and flush, flood the 4 pins until the solder comes through and then solder the 16 pins ensuring none are shorted.

Do the SD Slot next, followed by the CD4021BM IC's, then the remaining capacitors (remember theres two on the other side too)

Last up is the RP2350. So you do need to be a little careful, it uses the test points to connect the USB Data to the USBC port to allow easy flashing without opening the controller, so these need to be fairly well lined up and not bridged.

I would recommend lining up the RP2350, tacking in one pin close to the Picos USBC port and then checking all the other pins line up as well as the underside. Once you're happy, tack in the opposite side ensuring you are applying downward press so the RP2350 sits very flush to the controller PCB.

Now its time to flood fill the D+ & D- holes, the solder needs to melt through the PCB and connect to the test points on the RP2350. Theres no easy way to know this has happened, just apply some flux, add some solder and heat, the solder will drop and fill, add more solder if it drops too far but ensure the remaining point is flat and level.

I would suggest checking that D+ & D- are not bridged together at this point and also that they are not bridged to ground as well. Chances are it'll be fine! Now you can solder all the remaining RP2350 pads.

You still need to attach the shoulder PCB's, I usually wait until the shell is trimmed first, so you can get the placement right but essentially we're just soldering 2 wires, theres no polarity. If you use an original controller, there stock wires may not reach, so you will likely need to solder two new wires rather than re-use the original wires (which you can do on an aftermarket)

Cutting the Shell

PXL_20260706_132459530.jpg
PXL_20260706_131837407.jpg
PXL_20260706_131902108.jpg
PXL_20260707_150705163.jpg
PXL_20260721_073632965.jpg
PXL_20260721_075241120.MP.jpg
PXL_20260721_080211752.jpg
PXL_20260704_081936390.jpg
PXL_20260707_150918540.jpg
PXL_20260720_185954457.jpg

You can use an original or aftermarket shell. Both shells are actually quite similar and most of the heavy cutting is done up the top around cable area.

I used 4 tools: a hobby knife, a small file, a 1.2mm drill bit (hand drill) and some side cutters. However a multitool with various grinding/sanding attachments will also make light work.

I used the side cutters to remove the bulk of the posts etc. I used the hobby knife to remove most of the material around the HDMI and USB ports, it found it worked very well to slice through the plastic in small layers and it felt left clean cuts. Obviously be careful with the knife, its easy to cut yourself if you slip. If you're unsure, then its safer to use a multitool.

The MicroSD slot was maybe the hardest to look good as it needs a hole to be made in the middle of the case. For this I used a 1.2mm (or similar) hand drill to drill some holes along the line where the SD slot would be, I used the hobby knife to make the 4-5 small holes one slot, then I used the file to extend the slot in whatever direction was needed! There will be a lot of putting the PCB into the shell, checking if the SD slots in and adjusting - remember its easier to take away material than it is to put it back :)

As for the back shell and the DPad and Action button supports, the DPad side can be left as is (but may need a little sand on an aftermarket as the PCB is .6mm thicker) but the Action buttons side will need to either be removed (on an original controller) or cleverly cut on an aftermarket, ideally if you can have some support, its better.

You also need to use additional screws to secure the PCB: the original controller needs a M2 and M2.6, but the aftermarket is just 2x M2.6, checkout the pictures. This is more important now, as the back shell supports are not as solid.

Note the pic showing the 45degree cut on the middle PCB support, this is needed so it clears the SD slot.

This is certainly a job that requires patience and slow work, I highly recommend slowly cutting away material, checking for fitment etc so you dont cut away too much by mistake!

Flashing and Testing

Before you close up the controller, its best to at least flash it first, since you will need access to the 'BOOT' button on its first flash.

This device is setup as a Murmulator 2 (more on that later) with the intention of running PicoPlus.

You can flash the bootloader by downloading the correct uf2 file. Go HERE and download 'pico-bootLoader_MurmulatorM2_arm.uf2'

Hold the BOOT button while plugging in the USBC cable (ideally into the PCB, so we can test that the D+/D- soldering is working)

It should pop up on your PC/Laptop as a flash drive, just drag the uf2 file over to the drive. As soon as it completes the copy, it will close and disconnect, thats normal.

You can now plug in HDMI and test it displays an image, it should give an warning about no SD files found, thats a good thing, likely means everything is fine.

Controller Complete!

PXL_20260920_131516398.jpg
PXL_20260920_131534817.jpg
PXL_20260920_131525170.jpg

When its done, it should look like a fairly convincing SNES controller at first glance.

Using the Device

To setup PicoPlus, theres lots of information on how to set this up in detail on the GitHub page

However the very condensed version is (assuming you have flashed the bootloader already):

Format a MicroSD as FAT32 - Size is upto you. 32-64GB will be plenty.

Download and extract the latest pico-bootLoader_sdcard.zip from HERE to your SD Card.

Download and extract the latest Metadata pack from HERE to your SD Card.

Create a folder called Roms and create a folder for each of your systems such as NES, SNES, SMS, GG etc and then add your roms for each system in there. They need to be unzipped roms.

Thats the very basic guide, but note that some systems may require additional BIOS files or game data to function, so its best to check the readme inside each the GitHub repos to confirm the files required.


As mentioned a few times, this device uses the same pinout as an existing device, as I thought it would be easier to maintain without needing to create a new device. It uses the same pinout as a popular device called a 'Murmulator 2' which also has a large number for packages (emulators, ports, games etc) this device would be compatible with some of those, however note that the Murmulator 2 also supports additional things such as mouse, keyboards etc. This device shares the same pins for display, sd card and a single controller, so I guess I am saying that some may work but if its a emulator of a classic computer then it would likely require a keyboard and mouse so your compatibility milage may vary! Also you would need to access the BOOT button to flash the firmware. Have a play!