[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)