Retro-bit SEGA USB and Bluetooth Genesis, Saturn and Dreamcast accessories revealed!

Discussion in 'Sega Dreamcast Development and Research' started by Anthony817, Jan 10, 2018.

  1. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,353
    Likes Received:
    777
    Yeah - but it looks exactly like the SLS USB Saturn pad I have, even down to the mismatched wire color. In fact ,the only thing that (to me) doesn't look original Sega is that pad that's been painted blue - which looks like crap.

    Sure, I would love it if they were actually making new controllers that were of equivalent quality to the originals - but the stuff I've seen so far from RetroBit have been anything but that.
     
  2. Plavix

    Plavix Rapidly Rising Member

    Joined:
    May 17, 2012
    Messages:
    86
    Likes Received:
    18
    Whats going on with the wireless Dreamcast Controllers? Been waiting forever
     
  3. Anthony817

    Anthony817 Familiar Face

    Joined:
    May 12, 2010
    Messages:
    1,114
    Likes Received:
    593
    Well, the Maple bus is notoriously high bandwidth so they have to get it right, and they also won't be releasing the Saturn and Mega Drive wireless pads until Summer. So I reckon they aren't even close to finalizing the DC design yet, and they have to figure out how to transfer game saves through the air without getting corrupted.
     
  4. Plavix

    Plavix Rapidly Rising Member

    Joined:
    May 17, 2012
    Messages:
    86
    Likes Received:
    18

    That's a bummer:(

    I hope the wait isn't too long?
     
  5. megavolt85

    megavolt85 Peppy Member

    Joined:
    Jan 8, 2015
    Messages:
    323
    Likes Received:
    471
    2 Mbps = 256 kilobytes per second
    for current technology is low speed device
     
    LuizNai and americandad like this.
  6. Anthony817

    Anthony817 Familiar Face

    Joined:
    May 12, 2010
    Messages:
    1,114
    Likes Received:
    593
    Yeah not fast by today's standards, but for the time it was pretty decent. I still think that they will eventually come out with a wireless controller, but they have to get it right. And I think saving games wirelessly is going to be at least a stumbling block for them.
     
  7. Greg2600

    Greg2600 Resolute Member

    Joined:
    Jun 23, 2010
    Messages:
    934
    Likes Received:
    112
    My question is whether the DC controllers will correct the infamously bad analog control on racing games like Daytona USA or Midnight Street?
     
  8. Xerxes3rd

    Xerxes3rd Rapidly Rising Member

    Joined:
    Sep 1, 2016
    Messages:
    96
    Likes Received:
    35
    Not super fast, but when the host (Dreamcast) sends a Maple request to the peripheral, the peripheral must begin its response within 1ms. I realize that in “hardware time” 1ms is a long time, but when you add RF and other protocol layers on top of it, you could have issues.

    This is likely why the original DreamConn had “emulated VMUs” inside the dongle- the dongle itself was emulating a full peripheral with attached sub-peripherals, then would proxy the button inputs, jump pack commands, and VMU screen buffer to/from the wireless controller.
     
    Anthony817 likes this.
  9. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,353
    Likes Received:
    777
    That's all pretty tractable though - another thing is that if the timing of the poll requests from the host is predicable then the adapter can just work out when it needs to request the data over the radio link to have it available in time for the next host poll (and if the host polling isn't predictable, then latency is not likely to be much of an issue anyway...)
     
  10. Xerxes3rd

    Xerxes3rd Rapidly Rising Member

    Joined:
    Sep 1, 2016
    Messages:
    96
    Likes Received:
    35
    It’s predictible when the host polls for button/stick inputs (60Hz), but everything else (saving/loading data, VMU screen writes, rumble, microphone) isn’t. If you take longer than 1ms to start your reply, the host resets the bus.
     
  11. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,353
    Likes Received:
    777
    Yeah, I'm thinking more of how to minimize overall latency after you have implemented a local server system like that, since the quick and dirty solution of just running a polling cycle behind is going to be pretty unacceptable for some games. Rumble isn't too much of a problem - you just need to generate the acknowledge locally and then send the request to the controller. Stuff like LCD screen updates can be done on a best effort basis since it just needs to be "fast enough".

    It would be interesting to see if you could handle the Maple protocol entirely in software given a fast MCU like a Cortex-M4, although the easier approach would probably to use something like a CPLD to decode the wire protocol and pack it up into at least bytes.
     
  12. Anthony817

    Anthony817 Familiar Face

    Joined:
    May 12, 2010
    Messages:
    1,114
    Likes Received:
    593
    Honestly, I wonder if they are just going to do similar to the DreamCon anyways? Built in screen and virtual VMU pages? It would solve a lot of the issues and might make the price a little bit more but a small monochromatic screen and some cheap flash memory on board shouldn't drive up the cost too much.
     
  13. Xerxes3rd

    Xerxes3rd Rapidly Rising Member

    Joined:
    Sep 1, 2016
    Messages:
    96
    Likes Received:
    35
    It’d be pretty hard to keep up if you bit-bang it. I wrote some software using a PSoC5 that decoded Maple packets, and the resources of the CPLD-ish part of the PSoC filled up quickly. It worked well, even though it didn’t have DMA so the CPU was reading byte-by-byte.
     
    TerdFerguson likes this.
  14. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,353
    Likes Received:
    777
    Yeah, I was thinking in terms of doing something really dirty like using two cross-connected SPI interfaces running in slave mode with the Maple bus signals going into SCK on one interface and MISO on the other. You would wind up with the data being spread across the two receive buffers, but it should be possible to sort them out in software.
     
    TerdFerguson likes this.
  15. Xerxes3rd

    Xerxes3rd Rapidly Rising Member

    Joined:
    Sep 1, 2016
    Messages:
    96
    Likes Received:
    35
    I wrote the Verilog to match how Sega described it in the Maple patent, which is similar- they feed the lines into two shift registers in the same fashion you’re describing. A lot of CPLD space ended up getting taken up by the code to perform start & end pattern detection (although I’m a novice at Verliog, so it could’ve been my fault).

    My only concern with using SPI peripherals is that there’s always an odd number of bytes, since the final byte is a checksum, and I’m not sure if the SPI peripheral would tolerate receiving only a nibble.
     
    TerdFerguson likes this.
  16. megavolt85

    megavolt85 Peppy Member

    Joined:
    Jan 8, 2015
    Messages:
    323
    Likes Received:
    471
    what model of clpd did you use?
     
  17. Xerxes3rd

    Xerxes3rd Rapidly Rising Member

    Joined:
    Sep 1, 2016
    Messages:
    96
    Likes Received:
    35
    Sorry, I said CPLD, but meant the “UDB section” of the PSoC5, which is basically a very tiny CPLD.
     
    TerdFerguson likes this.
  18. Falco Girgis

    Falco Girgis Member

    Joined:
    Feb 6, 2013
    Messages:
    7
    Likes Received:
    7
    Oh, thank GOD I found this thread!

    I'm Falco Girgis, the lead developer of Elysian Shadows and ElysianVMU. I believe we spoke over email once awhile back. What's going on here is like the single most important feature ever to me. I want like so so so badly to be able to interop with your controller as a first-class citizen and to give you full support for it through ElysianVMU to manage save files. We have a really cool ecosystem going right now with cross-platform Windows/Mac/Linux desktop client, a PSP port, a DC port, and now a guy who has implemented a web version and is working on cloud-based VMU saves/an indie dev portal. Anyway, we have a bunch of people in our niche little community, and we're very very interested in everything VMU... Not only that, but EVMU will be inside of Redream at some point, and if I'm processing Maple packets, maybe they could be forwarded to and from your controller, so it could get seamless emulator support through us? If this is done well and to the Maple spec, then you would get the seaman mic and peripherals like that for free.. I also want to support your controller first-party within Elysian Shadows for our DESKTOP versions, so that you can just use that controller to seamlessly play your DC save file and get the exact DC controls, etc.

    So a couple things:
    1) Is there ANY way you can keep at least some back-door for me to communicate directly with it through the Maple API? This is going to be key to getting seamless emulator support and having games just "magically" work with their peripherals, is if a host application is just blindly forwarding you the respective Maple packets being sent to that controller (and sending them back to the Application). I understand wanting to probably make a much more simplified communications API between the host and the device over bluetooth, but maybe that API could be implemented in software ontop of raw Maple or both could be supported concurrently? Imagine what you would gain in terms of software support *and* in terms of peripheral support operating like that. I have a large fanbase both on Kickstarter and on YouTube who I would absolutely promote you to and who would have a huge interest in this to a) play Elysian Shadows on the PC with a Dreamcast controller b) use it as THE de-facto way of moving VMU files across platforms now without needing a web browser, SD card, coder's cable, BBA, etc.

    2) I'm one of only two people that I know of who has actually disassembled the BIOS and has look into the MAPLE communications mode (for VMU/DC interaction). I've done a lot of research on the topic, because I'm attempting to emulate this pathway in ElysianVMU for allowing other apps/emulators to drive it.. Such as my engine connecting to an iPhone as a virtual VMU device or a Dreamcast Emulator connecting to some locally running EVMU instance or whatever... But anyway, couple things:

    Actually, he's right. This is a pretty common issue and it's why NOBODY has really gotten this right and doing full Maple forwarding/interop, despite us having every piece of hardware documentation detailing it and like a dozen different types of custom controller adapters that have been created. I also wanted to do this kind of interop with the "BlissBox," 4 player multi-controller converter, but it looks like he has the exact same problem, where he cannot reliably do a read/write to the VMU due to data size and the transfer speed/bandwidth of the little Arduino he's using to send this stuff over USB... despite not having issues with a single other controller type from Atari up to original XBox. That's why, pleeeeease, lets do this right, as you're the scene's only hope!

    Hard-coding just a VMU icon buffer and not supporting the entirety of the MAPLE API would SIGNIFICANTLY reduce the amount of things that could be achieved and a lot of the selling points for the controller. Seriously, so many people would buy it just for EVMU-style VMU management, and I am working on a whole infrastructure to allow cross-platform Dreamcast/Steam games to use my API to talk to either 1) real VMUs if on the Dreamcast or 2) emulated "virtual" VMU instances somewhere else over IP if not on Dreamcast. You would add an even better 3) which is talking to a real VMU/controller instance on a non-DC platform.

    Interestingly enough... it is actually already implemented on a small little processor... the VMU. Not even kidding. When the interrupt is detected from the DC pin being connected, the VMU swaps into another region of its built-in BIOS where it basically becomes a 100% software-driven Maple protocol stack, using the contents of "WRAM" as just a giant-ass TX/RX protocol buffer. Everything you send or do with the VMU *is* software-driven. There's no hardware doing anything other than copying single bytes into the serial buffer every X cycles, which the VMU is then assembling and inspecting through a series of interrupts... The only thing is that this is clearly hand-optimized VMU assembly, and funnily enough, the thing jumps from 32Khz (in standalone mode) to 6Mhz to handle the Maple stack... if that gives you any sort of ball-park idea what the general processing requirement is.

    Anyway, I totally get if there are realistic hardware limitations with being able to supply an end-to-end arbitrary Maple communications line to the controller to support everything, but I really, really really think the VMU is absolutely a must-have and a selling point, and I am 100% committed to giving you a bunch of kickass tools built around it and basically advertising for it in EVMU, and it's totally cross-platform too.

    Also... I know you probably hate me now, but have you seen the Kickstarter for that new Dreamcast gamepad or whatever? It got me and a lot of people thinking. The other thing I was always wondering about, I know, it might be a pain in the ass, but please at least consider this thread that has been started on my FB page, and look at how many people are saying that they would be willing to pay substantially more...
    https://www.facebook.com/gyrovorbis/posts/10156871006052464
     
  19. Falco Girgis

    Falco Girgis Member

    Joined:
    Feb 6, 2013
    Messages:
    7
    Likes Received:
    7
    Just to talk a little more about the ecosystem I was hoping this could be a part of (and maybe to try to help persuade you to consider my pain-in-the-ass needs, lol), here are some screenshots:

    Screen Shot 2018-02-01 at 2.09.10 PM (2).png This is our cross-platform SDK that I'm developing in parallel with Elysian Shadows, called ESTk, which will be released publicly after the launch of the game, which already has dozens of people who literally only backed us just to get their hands on it. You'll notice in the bottom right is VMU screen. It's actually an instance of EVMU running, so that during development, you can see what the VMU screen is doing, verify saving/loading, play minigames/whatever. Imagine your controller being fully supported by this ecosystem on a PC automatically just because I'm communicating with Maple packets... I know it's niche as hell, but I've convinced a lot of non-DC people that this might be a cool add-on to their game even if it isn't on the Dreamcast, because EVMU is also a phone app. this would be compelling in such an environment.

    Screen Shot 2018-02-22 at 6.52.12 PM.png
    Just a quick look at the built-in documentation for our SDK, showing how there's a unified "VMU" API that comes with it out of the box. Screenshot was before I added filesystem methods, but you get the point.


    Screen Shot 2018-11-11 at 5.20.51 PM.png Screen Shot 2018-11-13 at 7.09.05 PM.png Screen Shot 2018-10-17 at 7.14.10 PM.png
    Just a quick look at a bunch of the tools we're supporting... File system manager, custom icon creator, real-time memory browser and modifiers, JSR graffiti tools, flash hex editing tools, etc (even a buzzer tool for developers to compose VMU music, which could then be sent to the device over maple to preview! LOL!). I'm trying to come at this from all angles to create like the one-stop VMU combined ecosystem app that handles 1) all of what Dream Explorer did for file management 2) 100% feature complete emulator (including things like emulating vmu-to-vmu serial connectivity over TCP (wip)) 3) Acting as a slave device to be driven by apps/emulators by just sending Maple packets over TCP.

    Then here's the WIP website with the WIP Web Assembly build of the VMU core... which was working fine, but obviously our web guy has just screwed it up... That's where the cloud storage and all of that will be, and it will interop with the standalone apps.
    http://evmu.elysianshadows.com/

    This would be a godsend for the people who are using this to manage their files, while they play in an emulator like Redream. Now they could potentially load their existing save files that they already have from playing on a physical device onto an emulator and move back and forth between DC/PC seamlessly. The dev guys who are even using ElysianVMU as a VMU development tool/IDE would be able to test their code on a real device relatively easily. I guarantee you every DC developer would want one of these, as would anyone who is trying to hex edit/crack their save files! Lol.
     

    Attached Files:

    Last edited: Feb 13, 2019
    americandad and fafadou like this.
  20. Blockhead

    Blockhead Member

    Joined:
    Mar 5, 2018
    Messages:
    21
    Likes Received:
    9
    You probably want to try contacting Retro-bit directly, as from what I can see no one related to the company has posted in this thread.
     
    Anthony817 likes this.

Share This Page