[HN Gopher] MaplePad - RP2040 Dreamcast controller, VMU, and Pur...
___________________________________________________________________
MaplePad - RP2040 Dreamcast controller, VMU, and Purupuru (rumble
pack) emulator
Author : cedel2k1
Score : 107 points
Date : 2023-09-15 08:00 UTC (15 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| JohnBooty wrote:
| 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 wrote:
| 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 wrote:
| 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.
| AdmiralAsshat wrote:
| 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.
| eggsome wrote:
| 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).
| tecleandor wrote:
| That's quite a cool gift given current prices <3
| l-albertovich wrote:
| You're a cool cat, respect.
| Cannabat wrote:
| 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 wrote:
| 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 wrote:
| 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.
| okkdev wrote:
| 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
| kilpikaarna wrote:
| 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.
| CarVac wrote:
| 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)
| gtrevorjay wrote:
| 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.
| westurner wrote:
| 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 wrote:
| 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!
| devwastaken wrote:
| 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.
| aidenn0 wrote:
| 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.
| gorkish wrote:
| 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.
| gadgetoid wrote:
| A PIO LUT instruction with a 256 entry deep, 32bits wide lookup
| table would absolutely make my day.
| aidenn0 wrote:
| Of course this gets posted to HN right after the optical drive in
| my Dreamcast stops working...
| GloriousKoji wrote:
| You should look into the mods for replacing the GDROM drive
| with a SDCard reader.
| aidenn0 wrote:
| Oh, that's neat! I don't think it leaves me with a way to
| play my existing games though.
| nvy wrote:
| Just pirate them. You've already paid for them, what's the
| harm?
___________________________________________________________________
(page generated 2023-09-15 23:01 UTC)