Skip to content

cluoma/Pico2Maple-fw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pico2Maple

Example Projects Connected to Dreamcast
Pico2Maple three dongles Powered on

Pico2Maple is a Dreamcast Maple bus emulator for the RP2350. The goal of this project of to provide a way to for people to use a variety of non-Dreamcast controllers and accessories on the Sega Dreamcast.

Currently, it is possible to use several USB controllers, dongles, mice, and keyboards. Pico2Maple also integrates VMU support and saving to a microSD card.

Feel free to hop into the Discord server to discuss the project, ask questions, or share your own projects using Pico2Maple.

Download

Download the latest firmware:

To install the firmware on the Pico 2:

  • Hold down the BOOTSEL button while connecting the Pico to a PC. This should make it appear as a USB storage device.
  • Copy the pico2maple uf2 file to the Pico. It should reboot itself with the new firmware.

Supported Controllers

For a more detailed breakdown of supported devices, please check out the full device compatibility list.

USB

  • Steam Controller (wireless with dongle only)
  • Sony PlayStation DS 3/4/5 Controllers
  • XInput Controllers (Xbox 360, One, Series, etc.)
  • 8BitDo Wireless Dongle (great for connecting a huge variety of other controllers)
  • 8BitDo SN30 Pro Xbox Edition
  • USB Keyboards
  • USB Mice

BT

Pico2Maple uses Bluepad32 to handle BT connectivity. Check out Bluepad32 supported controller list for a summary of supported devices.

The following controllers have been tested and confirmed working:

  • Sony PlayStation DS 4/5 Controllers
  • Xbox Series Wireless Controller (3-button version)
  • Nintendo WiiU Pro Controller
  • 8BitDo SN30 Pro
  • 8BitDo SN30 Pro Xbox Edition

Controls

Controls are mapped as you would expect with a few extra features:

  • Select + Right Bumper/Left Bumper switch currently-active VMU bank (cycles through 10 different VMU banks).
  • Select + A enable standard Dreamcast controller layout.
  • Select + B enable all controller inputs which activates the second joystick and the C,Z buttons. Z is mapped to left bumper and C to right bumper. Not all games will accept this layout.
  • Select + X enable Twin Stick layout. Uses both controller joysticks, bumpers and triggers.
  • Select + Y enable Fight Stick layout. This layout remaps RB and RT inputs to the Z and C buttons respectively. LB maps to RT.
  • Select + Dpad Right enable a custom layout if one has been configured.
  • Select + Dpad Left enable Racing Wheel layout. This layout will appear as an official Dreamcast Racing Wheel to games that support it.

Custom Controller Layouts

Pico2Maple has a fairly flexible controller remapping implementation which allows the entire controller to be reconfigured. Custom controller layouts are currently a work-in-progress and feedback is greatly appreciated.

The easiest method to create a layout is to use the Pico2Maple Mapper tool. Custom layouts can then be uploaded to the device using Raspberry Pi's picotool. Pre-compiled picotool binaries are also available.

Optionally, for instructions on how to load a custom layout from an SD card, please check out the Controller Layouts docs. Layouts loaded from an SD card will be stored internally so only need to be loaded once.

Required Hardware

Hardware needed

  • Raspberry Pi Pico 2
  • Dreamcast controller cable or plug
  • Micro-USB to female USB-A adapter
  • Optional:
    • SPI microSD breakout board and FAT32-formatted microSD card for saving VMU data (example)
    • SSD1306 128x64 OLED display for displaying VMU images and selected VMU bank (example)

Construction

Use a multi-meter to check which wires on the controller cable correspond to the following pins on the controller plug.

Dreamcast controller plug

Connect the controller wires to the labelled pins on the Pico below by soldering or otherwise.

Pinout on the Pico 2

Optionally connect the SPI micro-SD board and the SSD1306 OLED screen to the labelled pins on the Pico 2.

With everything wired up, it's simply a matter of plugging in a USB device to the Pico 2 using the USB-A to Mini-USB adapter and plugging the Dreamcast controller cable into the console.

Changlog

2025-09-07

  • Added a new layout which will appear as an official Dreamcast Racing Wheel to games that support it. Press Select + Dpad Left to enable.
  • Added support for Logitech G29 Racing Wheel via USB with PS4 mode. Have a racing wheel you want supported? Make a GitHub issue or join the Discord server to discuss!

2025-08-01

  • Fully tested USB and BT support for PlayStation 4 controller. Many third-party PS4 compatible controllers will be detected but are untested.
  • Move to pico-sdk 2.2.0

2025-07-17

  • Fully tested USB support for PlayStation 3 controller. Many third-party PS3 compatible controllers will be detected but are untested. GP-2040CE now works with either PS3 or XInput modes.
  • Improved Twin Stick controller mapping to accommodate Hori 360 Twin Sticks.
  • BT support for Dreamwave controller.

2025-06-14

  • Experimental support for custom controller layouts/remapping, an SD card is required to load the layout. More info at CONTROLLER_LAYOUTS.md.

2025-05-18

  • Added a Fight Stick layout to accomodate typical stick layouts where the fifth and sixth buttons are RB and RT. Press Select + Y to enable. This layout remaps RB and RT inputs to the Z and C buttons on the Dreamcast respectively.

2025-05-13

  • Implemented HID report parsing for handling a wider range of USB devices. PS3/4 controllers may work, give it a try
  • Much improved USB mouse compatibility with proper HID parsing
  • Small improvements to controller input handling

2025-04-09

  • Wireless support for Pico2 W boards. A USB device will be used if detected, otherwise will search for a bt device.
  • Refactoring of USB code

2025-03-03

  • Add support for Twin Stick layout, press Select+X to enable
  • OLED improvements
  • Change VMU data location on flash storage, backup your internal VMU data before updating
  • Automatically backup internal VMU data to microSD card on boot
  • Additional stability improvements in preparation for bluetooth support

2025-02-09

  • Improved stability of the Maple bus
  • Additional OLED display features showing what type of device is active (controller, keyboard, or mouse)

2024-12-15

  • Initial release

Future Work

Feedback on this project is very welcome!

  • Rumble support for Xbox/PS controllers
  • Support a wider range of USB controllers (ongoing).

Use of Open Source Libraries

About

A Dreamcast Maple bus emulator for the RP2350

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published