Skip to the content
2 layers65 × 63.2 mmNessieSoup, the printed circuit board in 3D

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.md

NessieSoup

NessieSoup is a simple adapter that allows connecting Super Nintendo controllers to a Commodore 64, 128 or Plus/4.

Board

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:

SignalUserport Pin +4Userport Pin C64/128Userport Pin VIC-20Userport Pin PET
LatchJ/D6J/PB5J/PB5J/PA5
ClockF/D7F/PB3F/PB3F/PA3
D0 (Port 1)K/D1K/PB6K/PB6K/PA6
D0 (Port 2)B/D0C/PB0C/PB0C/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:

PCB from PCBWay

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:

Buy Me a Coffee at ko-fi.com

Thanks

  • The 8-Bit Guy for designing the original adapter.
  • wepfont for the M Malaming font used in the logo.

Parts

8
QtyValueFootprintReferences
147uCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC1
1CONN_SNES_1NessieSoup:CONN_SNESCN2
1CONN_SNES_2NessieSoup:CONN_SNESCN3
1JMP_16_64Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1
1LICENSENessieSoup:cc_by_nc_sa_smallV0
1LOGO1NessieSoup:Logo1V1
1LOGO2NessieSoup:Logo2V2
1PLUS4_USERPORTNessieSoup:UserPortFemaleCN1

Similar boards

  • 2 layers20.5 × 24.8 mmPi interface, the printed circuit board in 3D

    Pi interface

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    8 parts3.7k
  • 2 layers59.9 × 25.7 mmBuffer, the printed circuit board in 3D

    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 mmUSB, the printed circuit board in 3D

    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 mm7 input macropad, the printed circuit board in 3D

    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 mmPicoMemcard pico, the printed circuit board in 3D

    PicoMemcard pico

    dangiu/PicoMemcard

    Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

    8 parts694GPL-3.0
  • 2 layers36 × 10 mmPCB4-PWR BTN Rev.A, the printed circuit board in 3D

    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.