Retro Pico Switch

From GameBrew
Revision as of 07:18, 24 April 2023 by HydeWing (talk | contribs) (Created page with "{{Infobox Switch Homebrews |title=Retro Pico Switch |image=retropicoswitch.png |description=Play Nintendo Switch Online N64 games using an Original N64 controller via a Raspberry Pi Pico! |author=DavidPagels |lastupdated=2033/04/05 |type=PC Utilities |version=3.0.0 |license=MIT |download=https://dlhb.gamebrew.org/switchhomebrews/retropicoswitch.7z |website=https://github.com/DavidPagels/retro-pico-switch |source=https://github.com/DavidPagels/retro-pico-switch |donation=...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Retro Pico Switch
File:Retropicoswitch.png
General
AuthorDavidPagels
TypePC Utilities
Version3.0.0
LicenseMIT License
Last Updated2033/04/05
Links
Download
Website
Source

The Retro Pico Switch code enables a Nintendo Switch to be controlled using button and joystick inputs from an original N64 or Gamecube controller, by utilizing a Raspberry Pi Pico. David Pagels, the developer of this code, considers it a spiritual successor to his previous project, the N64-Arduino-Switch.

Note:

  • The Switch home button is mapped to L + R + Start on both the N64 and Gamecube versions. Additionally, there is dynamic scaling on each axis of the analog joystick to accommodate the reduced joystick range on older controllers for both versions.
  • This release/.uf2 assumes the data pin for the N64 or Gamecube controller is being wired to GP18 on the Raspberry Pi Pico.

Instructions

If you want to program the Raspberry Pi Pico, follow these steps:

  1. Press and hold the boot sel button on the Pico.
  2. While holding the button, connect the Pico to your PC using a Micro USB cable.
  3. Open the Pico in your File Explorer.
  4. Go to the most recent release of this repository and download the .uf2 file.
  5. Drag and drop the .uf2 file into the Pico folder you opened in step 3.
  6. You're done!

After completing these steps, connect your N64 or Gamecube controller. Note that the pre-built .uf2 file assumes the data pin is on GP18 pin of the Pico. To ensure proper functionality, wire a 1k pullup resistor between the 3.3v and the data pin.

Changelog

v3.0.0

  • This release adds support for connecting to a Nintendo Switch over Bluetooth!
  • It also fixes an occasional issue with the PIO program readings being off by 1 bit (#5), which also ended up messing up the logic for scaling analog joystick inputs.

v2.0.0 This release adds support for Gamecube controllers with 2 different mapping options.

  • gc.uf2 maps the Gamecube controller buttons to the Switch's 1-to-1
  • gc_sms.uf2 maps the Gamecube controller buttons so that the Super Mario 3D All-Stars: Super Mario Sunshine port will control as close as possible on the Switch as it does on the Gamecube.

The n64.uf2 should control the same as it did in v1.0.0

v1.0.0

  • This initial release includes a PIO interface to the N64 controller data pin, tinyusb descriptors and callbacks to handle communicating with a Nintendo Switch via USB cable, and the glue code needed to translate and interface the two.

External links

Advertising: