Settings

Theme

MaplePad – RP2040 Dreamcast controller, VMU, and Purupuru (rumble pack) emulator

github.com

115 points by cedel2k1 2 years ago · 27 comments

Reader

westurner 2 years ago

Hoping to get controller support for MicroPython w/ LEGO Boost, RP2040js etc, I researched a bunch of Bluetooth BLE + C/Python links here: https://github.com/pybricks/support/issues/262#issuecomment-... :

> https://github.com/DJm00n/ControllersInfo: HID profiles for Xbox 360, Xbox One, PS4, PS5, Stadia, and Switch

> "HID over GATT Profile (HOGP) 1.0" https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?d...

- [ ] MicroPython: wrap the Bluetooth HID over GATT Profile events and buttons

Perhaps your Dreamcast controller could do BLE and VMU wireless.

  • gadgetoid 2 years ago

    Really interested in putting together some kind of USB host to HID over GATT profile or Bluetooth HID to i2c/UART bridge.

    We’re (Pimoroni) closing on shipping a dual RP2040 HDMI board (PicoVision) that’s great for bedroom coder style games, but lack of full fat Bluetooth support or USB HID host in MicroPython - and the relative pain of making and supporting a build that includes these features - make adding controllers… tricky.

    Now I wish I’d kept the Dreamcast controller I modded with a custom cable to poke Maple bus. Hindsight!

okkdev 2 years ago

Talking about RP2040 powered controller firmware. GP2040 is an amazing project, which is used a lot in the Fighting Game Community where custom controllers are common. https://github.com/OpenStickCommunity/GP2040-CE

  • CarVac 2 years ago

    There's also PhobGCC, an rp2040 motherboard replacement offering Hall effect sticks for Gamecube controllers.

    https://github.com/PhobGCC

    (I'm lead software dev on it)

    • bapo 2 years ago

      Thanks for the work btw!

      I’m kinda burned out from always having to replace and hunt for parts for my gc controller because of my almost 22years addiction for SSBM.

      Considering getting a phob soon :)

  • kilpikaarna 2 years ago

    Oh wow, thank you for this!

    I once tried putting an Arduino in an arcade stick, for reading controller inputs and sending keyboard presses via USB, but the lag was horrible. It's been on my to-do list to eventually dive enough into AVR-C to try to improve on it.

    There is/was a premade board for this (don't remember what it was called), but it was quite expensive, and I didn't want to keep moving it between controllers.

devwastaken 2 years ago

Looks like it was made possible by the Pico's PIO assembly/chip https://github.com/mackieks/MaplePad/blob/main/src/maple.pio

The cycle accurate assembly language has enabled a number of timing sensitive FIFO data processes. What had to be done with FPGA's before has some limited support with PIO. I hope RPI increases the number of instructions and simultaneous running PIO machines in the future.

  • gorkish 2 years ago

    It's great to have the PIO in a smaller/cheaper device, but if that is the kind of thing that you really like, I do want to mention the BeagleBone SPUs and the Parallax Propeller / Propeller2 are similar/more powerful implementations of this concept.

    • 15155 2 years ago

      RE: Propeller2- at $10+/chip, I'm just going with an XC7A35T or the TI AM243X (actually less $ and substantially more RAM) or AM62X series CPUs.

      33000 LUTs and 90 DSP48s are more than enough to do 10+ RISC-V cores, I don't understand the niche this product fills.

  • aidenn0 2 years ago

    I've done similar things (for a Playstation 1/2 controller) bit-banging with 8-bit microcontrollers. They often include instruction timing information in the datasheets.

  • gadgetoid 2 years ago

    A PIO LUT instruction with a 256 entry deep, 32bits wide lookup table would absolutely make my day.

JohnBooty 2 years ago

That's REALLY cool.

I remember reading that the Maple bus used by Dreamcast's peripherals was pretty similar to USB in a lot of ways, and wondering why they didn't just use USB?

I definitely would not say this about all of Sega's hardware engineering efforts (I'm staring at you, Saturn) but the Dreamcast seemed like such a nicely engineered piece of equipment that I have always given Sega the benefit of the doubt. I assume there was an adequate reason: lower latency, cost, profits, quality control, licensing, etc. Or perhaps USB just wasn't mature enough - it was released in 1996 and Dreamcast design was probably already underway.

But, I've never seen an official explanation.

  • nvy 2 years ago

    Not sure about the Dreamcast but with the GameCube I noticed the latency between plugging in a new controller and having the system respond to it is practically instantaneous.

    Much, much faster than USB.

    • JohnBooty 2 years ago

      I strongly suspect, but do not know, that the slowness in USB enumeration is a software stack issue on the host side of things.

      If you think about plugging a USB device into a desktop OS, the OS has to check security settings, find and load a driver for the device, etc.

      But as far as the protocol itself is concerned but I don't see any intrinsic reason why enumeration can't be nearly instant, for something like a console that only needs to recognize a few possible devices, each with minimal drivers that can be preloaded.

eggsome 2 years ago

I have a modded Dreamcast free to a good home if anyone wants it and lives in Melbourne or Sydney. (I've found emulation easier for me these days, as I try to simplify my physical setup).

  • Cannabat 2 years ago

    Very nice of you to offer, and rather tempting - though I have no time to play.

    How is it modded? I recall that certain models, identified by some number on the bottom of the console, allowed burned discs to be played. What extra can you do with a modded system?

    • luma 2 years ago

      Near as I know, all DCs can boot suitably-prepared burned discs without modding. The only hardware mod I’m aware of would be to defeat region lock on original discs.

  • idonotknowwhy 2 years ago

    I'd be happy to have it, customs siezed my 3 attempts to get a gdemu here.

    That said, look them up on ebay, you'd be able to sell it for a few hundred within a week early.

    Also, if you every want to use light gun games on a CRT, they don't work easily with emulation.

    • eggsome 2 years ago

      It's yours.

      Send me an email with your details (check my profile for my email address)

  • tecleandor 2 years ago

    That's quite a cool gift given current prices <3

  • l-albertovich 2 years ago

    You're a cool cat, respect.

gtrevorjay 2 years ago

Must be something in the air. I just started working on a DC VMU project this weekend (warning 8-bit mature): https://www.newgrounds.com/art/view/kittyhawkmontrose/boobca...

The DC's VMU is a fascinating evolutionary dead end.

AdmiralAsshat 2 years ago

I like playing on real hardware whenever possible, but I dunno what it was about the Dreamcast. I've had three units die on me so far. Emulation is pretty much my only route left at this point, unless Sega ever gets around to releasing a Dreamcast Classic.

aidenn0 2 years ago

Of course this gets posted to HN right after the optical drive in my Dreamcast stops working...

  • GloriousKoji 2 years ago

    You should look into the mods for replacing the GDROM drive with a SDCard reader.

    • aidenn0 2 years ago

      Oh, that's neat! I don't think it leaves me with a way to play my existing games though.

      • nvy 2 years ago

        Just pirate them. You've already paid for them, what's the harm?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection