

NessieSoup
Connect a Super Nintendo controller to your Commodore 64/128/+4/VIC-20/PET
- Size
- 65 × 63.2 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 8
- Nets
- 24
- Pads
- 43
- Tracks, vias
- 47, 6
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 8 Jul 2024
- Updated
- 13 Feb 2026
Overview
NessieSoup is an open-source printed circuit board by SukkoPera, from the SukkoPera/NessieSoup repository on GitHub. It is a 2-layer board of 65 × 63.2 mm with 8 parts on 24 nets, routed with 47 tracks and 6 vias.
Its parts include 3 connectors and 1 capacitor. It belongs with the retro computing and games boards of this library.
README
README.mdNessieSoup
NessieSoup is a simple adapter that allows connecting Super Nintendo controllers to a Commodore 64, 128 or Plus/4.

Summary
The game Attack of the PETSCII Robots by The 8-Bit Guy supports SNES controllers when running on the C64, VIC-20, Plus/4, and PET with a custom adapter. While I didn't have the game (nor the adapter), I was able to figure out how it works and I noticed that it could easily be expanded to support more than one controller and advanced peripherals, such as the SNES MultiTap and (possibly) the Super Scope.
So I designed a new PCB with 2 controllers ports: the first port is designed to be fully compatible with the original adapter (which means it should work with PETSCII Robots, but I was unable to test it), while the second one supports either a second controller or the more advanced peripherals.
The project also has the purpose of openly documenting this adapter, so that more games can be developed with support for SNES controllers (and all their buttons!).
The board plugs in the User Port, which means that it can also be used on a C16 or C116 through a User Port card.
Assembly
Get the SNES and userport connectors on AliExpress & similar sites.
The capacitor is optional.
Programming
The board is completely passive, so it's all down to the software. This means you should first of all get familiar with the SNES controller protocol, then the following will start to make sense:
| Signal | Userport Pin +4 | Userport Pin C64/128 | Userport Pin VIC-20 | Userport Pin PET |
|---|---|---|---|---|
| Latch | J/D6 | J/PB5 | J/PB5 | J/PA5 |
| Clock | F/D7 | F/PB3 | F/PB3 | F/PA3 |
| D0 (Port 1) | K/D1 | K/PB6 | K/PB6 | K/PA6 |
| D0 (Port 2) | B/D0 | C/PB0 | C/PB0 | C/PB0 |
| D1 (Port 2) | 4/D2 | |||
| PP (Port 2) | 5/D3 |
NOTE: The adapter has only been tested on the +4 and C64, pinouts for other computers is only provided as a reference, use at your own risk.
Note that JP1 must be set to +4 only when the board is connected to a +4, C16 or C116 computer, use the C64 position in all other cases.
Some example code for controller detection and polling is provided on the Wiki.
Code for reading the SNES MultiTap and the Super Scope has not been developed yet. The D1 and PP signals are only needed for these purposes and the way they are connected might only work on the +4. More work is needed in this regard, feel free to contribute ;).
Releases
If you want to get this board produced, you are recommended to get the latest release rather than the current git version, as the latter might be under development and is not guaranteed to be working.
Every release is accompanied by its Bill Of Materials (BOM) file and any relevant notes about it, which you are recommended to read carefully.
License
The NessieSoup documentation, including the design itself, is copyright © SukkoPera 2024 and is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
This documentation is distributed as is and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES whatsoever with respect to its functionality, operability or use, including, without limitation, any implied warranties OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE or infringement. We expressly disclaim any liability whatsoever for any direct, indirect, consequential, incidental or special damages, including, without limitation, lost revenues, lost profits, losses resulting from business interruption or loss of data, regardless of the form of action or legal theory under which the liability may be asserted, even if advised of the possibility or likelihood of such damages.
Support the Project
If you want to get some boards manufactured, you can get them from PCBWay through this link:
You get my gratitude and cheap, professionally-made and good quality PCBs, I get some credit that will help with this and other projects. You won't even have to worry about the various PCB options, it's all pre-configured for you!
Also, if you still have to register, you can use this link to get some bonus initial credit (and yield me some more).
You can also buy me a coffee if you want:
Thanks
- The 8-Bit Guy for designing the original adapter.
- wepfont for the M Malaming font used in the logo.
Parts
8| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 47u | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C1 |
| 1 | CONN_SNES_1 | NessieSoup:CONN_SNES | CN2 |
| 1 | CONN_SNES_2 | NessieSoup:CONN_SNES | CN3 |
| 1 | JMP_16_64 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | JP1 |
| 1 | LICENSE | NessieSoup:cc_by_nc_sa_small | V0 |
| 1 | LOGO1 | NessieSoup:Logo1 | V1 |
| 1 | LOGO2 | NessieSoup:Logo2 | V2 |
| 1 | PLUS4_USERPORT | NessieSoup:UserPortFemale | CN1 |
Similar boards
- 2 layers20.5 × 24.8 mm

- 2 layers14.4 × 10.5 mm

OSO SWAB B1-00 Sensor Watch Accelerometer
joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch
8 parts2.1k - 2 layers7.9 × 39.1 mm

Brain board STM32F407 SD wing it
rusefi/rusefi
rusefi - GPL internal combustion engine control unit
8 parts1.2k - 2 layers59.9 × 25.7 mm

Buffer
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
8 parts1kGPL-3.0 - 2 layers52 × 12.6 mm

USB
shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.
8 parts960Apache-2.0 - 2 layers87.5 × 48.5 mm

7 input macropad
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
8 parts915 - 2 layers36.2 × 63.1 mm

PicoMemcard pico
dangiu/PicoMemcard
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico
8 parts694GPL-3.0 - 2 layers36 × 10 mm

PCB4-PWR BTN Rev.A
OLIMEX/DIY-LAPTOP
Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop
8 parts578Apache-2.0
Questions
How big is the NessieSoup PCB?
It measures 65 × 63.2 mm and has 2 copper layers, 1.6 mm thick.
What parts does the NessieSoup use?
8 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the NessieSoup KiCad files?
From the SukkoPera/NessieSoup repository on GitHub, at the commit this page was made from: the board is NessieSoup.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the NessieSoup design in my own project?
Its repository states no licence, so its author keeps all rights: ask SukkoPera before reusing the design.

