Moband Adapter (Dreamcast Modem To Broadband Replacement)

Discussion in 'Sega Dreamcast Development and Research' started by Dreamcast, May 22, 2014.

  1. Dreamcast

    Dreamcast Intrepid Member

    Joined:
    Jul 17, 2007
    Messages:
    652
    Likes Received:
    116
    With the collaboration / interest in the GD-ROM emulation project generating a lot of successful hardware, I figured now would be a good time to introduce a project I've been working on / off again over the past ten years and hopefully help it reach its full potential.

    It started with wanting to create a better version of the Dreamcast dial-in server that uses the Windows 98 dial-up networking / telephony services and a NAT application. Failing to meet the ease-of-use requirements I placed on the project, I went to the next step and programmed my own dial-in server from the ground up with built in PPP protocol, NAT, and DNS services. This allowed one single application, independent of the operating system, to answer the Dreamcast modem's call and successfully reroute it through the computer's network interface device.

    While the goal of ease-of-use was met, reliability was still questionable at best. Problems with PC modems still caused system instability and the Dreamcast was limited by the speed of the modem's A/D D/A conversions.

    Enter the (Mo)dem / Broad(band) Adapter (Moband):

    [​IMG]

    Moband solves both of those problems by eliminating the modem entirely. It appears as a Conexant-based 56K modem adapter to the Dreamcast, but is instead directly connected to a computer via USB while simulating the basic functionality of the original modem adapter. This means that NO hardware or software modifications are necessary to use the adapter with retail games.

    Speed-wise, wait times for the Dreamcast to call the PC are eliminated meaning practically instant access to the network. As someone whose work with the Dreamcast is primarily with brining its offline games online again, it makes things much faster.

    Homebrew developers can put the device in a direct communication mode that bypasses the dial-up stack retail games use to either use the adapter to debug their software or create their own online games.

    Currently, the adapter requires an application PC-side to offload the PPP and network stacks. Ideally, I would like to replace the USB connection with an Ethernet connection and move all of the processing onboard to make the adapter truly self-contained, but I am primarily a software developer, so my knowledge of the hardware needed to accomplish that is limited.

    Currently, the prototype is using a Parallax Propeller 8-core 32-bit microcontroller with specific stages of the communication offloaded to each core (ex: one core is dedicated to receiving over USB while another sends, one core is dedicated to register emulation, etc).

    This is where I turn to the community for input / advice on how to implement the features mentioned above. Any recommended Ethernet controllers? JJ1odm's LAN to serial adapter is something I've been looking into. Please remember, the goal of this project is transparency to the Dreamcast, so everything has to be processed on the adapter.
     
    Last edited: May 22, 2014
  2. petterk

    petterk Spirited Member

    Joined:
    Dec 30, 2011
    Messages:
    137
    Likes Received:
    11
    Sorry I cant be of much help, but this is a MUCH NEEDED device, and looks AWESOME!! :) Keep up the great work!
     
  3. FuzzyFish

    FuzzyFish Rising Member

    Joined:
    May 14, 2014
    Messages:
    59
    Likes Received:
    58
    There is something I always wondered ever since I looked up the pinouts of the conexant chip on the standard modem. There are pins for serial transmit and recieve listed on the datasheet, was wondering if those were were active and could just be tied into a standard rs-232 connection. Never bothered to hook a scope up to find out though.
     
  4. spinksy

    spinksy Peppy Member

    Joined:
    Oct 1, 2010
    Messages:
    351
    Likes Received:
    7
    wow, great stuff!

    Count me in for one if you put it into production please ;-)
     
  5. -=FamilyGuy=-

    -=FamilyGuy=- Site Supporter 2049

    Joined:
    Mar 3, 2007
    Messages:
    3,097
    Likes Received:
    1,046
    Nice project!

    I got a backup of jj1odm's website if you want to check out his BBA clone project page.

    Good luck!
     
  6. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,895
    Likes Received:
    252
    There's no need for NAT software if you use a NT based OS, install RAS and telephony services and configure the IP on the Dreamcast and the PC for the same network IP range.

    You can even make it automatic if you use a PABX box as line simulator. I was using that on Windows XP a few years ago to play PSO.

    Edit: Why you don't make it show up to the PC on the other side as a MODEM + RS232C port too ? You can just use a beefier ARM core (Some of these OLIMEX boards with USB port and NXP ARM chip in it ?) and emulate two modems talking to each other... Since you're spoofing, you can just take a lot of shortcuts on the modem to modem thing.

    And the Windows OS is rugged enough to deal with the PPP stuff by it's own in a efficient manner as long you expose the right device to it.
     
    Last edited: May 23, 2014
  7. wombat

    wombat SEGA!

    Joined:
    Mar 14, 2004
    Messages:
    2,676
    Likes Received:
    323
    I salute you for your great efforts on keeping the dream alive! Looking forward to seeing this project getting of the ground and into production.
     
  8. darcagn

    darcagn Site Supporter 2013, Site Supporter 2014

    Joined:
    May 13, 2007
    Messages:
    560
    Likes Received:
    296
    This is great! I've been envisioning a product for a while now that would connect to the phone line port on the modem on one end and to an ethernet jack on the other, basically a phone line simulator and dialup server all in one. This goes beyond that, though, which is pretty awesome!
     
  9. Mario

    Mario Active Member

    Joined:
    Feb 8, 2014
    Messages:
    34
    Likes Received:
    1
    Awesome, sounds cool! I wish you the best of luck. I love Dreamcast hardware modding.
     
  10. PrOfUnD Darkness

    PrOfUnD Darkness Familiar Face

    Joined:
    Mar 13, 2004
    Messages:
    1,122
    Likes Received:
    48
    Now that's something amazing!
     
  11. APE

    APE Site Supporter 2015

    Joined:
    Dec 5, 2005
    Messages:
    6,417
    Likes Received:
    141
    I want 5.

    And I'm happy to help out with any prototyping needs and/or testing.
     
  12. anti

    anti Member

    Joined:
    Jul 17, 2012
    Messages:
    8
    Likes Received:
    0
    i wish i could help with this task but i applaud you for all of your work over the years. i've read many of your posts on onlineconsoles years ago!
     
  13. zouzzz

    zouzzz Site Supporter 2013

    Joined:
    Mar 24, 2008
    Messages:
    362
    Likes Received:
    56
  14. BlueCrab

    BlueCrab Member

    Joined:
    Feb 6, 2007
    Messages:
    16
    Likes Received:
    11
    I'd love to see something like this happen, and I'd be willing to help out in getting support added to KallistiOS for it (I do maintain the canonical KOS repository, after all).

    I only have two concerns with such a project, both of which are probably not all that relevant right now... First, would there be enough of a market to warrant actually manufacturing something like this once it is done, and if not would the schematics, instructions, and any firmware needed be released at the end so enterprising individuals could build one themselves? Second, if it were feasible to manufacture such a thing, could the parts be sourced and assembled at a reasonable price so that it wouldn't cost more than a BBA or Lan Adapter?
     
  15. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,373
    Likes Received:
    785
    My first suggestion is don't use that chip - it's ancient, only supports 10mbit/s and requires a lot of management. It's primary advantage is that you can connect it to anything that has an SPI port, which is presumably why he used it - but since the Propeller (IIRC) doesn't have any standard MCU peripherals you are going to end up having to dedicate a cog just to servicing the SPI - and I think that writing a TCP/IP stack in Spin or PASM would probably end up driving you into a homicidal rage.

    There are lots of MCUs that have built-in Ethernet support, and have enough power to run the networking stack - the most obvious ones are the wide (and constantly expanding) range of ARM Cortex-M3 or M4 devices, but there are also things like the 32-bit PICs. In most cases the silicon vendors have ported IP stacks to them already, and all you need to do is specify which ports you want to talk on.

    It seems you are currently using the propeller as the interface to the G2 bus, so either keep that or replace it with some glue logic in a CPLD.
     
  16. BlueCrab

    BlueCrab Member

    Joined:
    Feb 6, 2007
    Messages:
    16
    Likes Received:
    11
    In theory though, I don't see why he'd need to write any sort of TCP/IP stack in the firmware. Basically, the way I'd see it (now I might be totally off-base, but still) it would be as simple as unwrapping the PPP packets from their framing and simply pushing the underlying IP datagrams out over the wire just like any other ethernet frame. In fact, I'd see it more of a problem of dealing with the PPP side of things than the IP side.

    Sure, you'd have to potentially deal with getting an IP address on whatever network you are using, but that could easily be solved by statically configuring it somehow. DHCP would, of course, be nice -- but perhaps a needless complication of things.

    That all said, IPv4 isn't terribly complicated itself, and DHCP can be done with just IPv4 and UDP (which isn't complicated at all). It's entirely possible to implement a VERY tiny IP stack that's enough for at least that, even on much more limited microcontrollers (a friend of mine has done so on an ATMEGA 328, for instance), using one of those SPI-based ethernet controllers.
     
  17. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    2,373
    Likes Received:
    785
    Yeah, I'm sure that would work - that was how the old PPP stacks used with the packet driver interface worked, after all. My biggest issue with it is that it makes it very hard to test, because you end up with a lot of (unavoidable) dependencies on the network environment you are running your tests in. The same sort of caveats apply to stripped down TCP stacks - there are a lot of edge cases that can bite you when you least expect it.

    Even if you used static IPs, you are still going to need to implement the PPP LCP and NCP (I.E. IPCP), but I guess they aren't especially complicated. From the point of view of encapsulating the IP datagrams onto the Ethernet, you will also need to either implement ARP/RARP or have some way of specifying the MAC of the gateway machine if all you want is network access and you don't care about talking to devices on the local network.

    None of this is especially complicated, but the thought of testing it in any coherent manner makes me twitch a little :)
     
  18. Dreamcast

    Dreamcast Intrepid Member

    Joined:
    Jul 17, 2007
    Messages:
    652
    Likes Received:
    116
    FuzzyFish: I've also wanted to look into the serial connection. It would be interesting to see what it's capabilities are if accessible.

    FamilyGuy: jj1odm's site is still active here: link

    l_oliveira: It currently shows up on the PC as a COM port since I'm using the board's onboard USB to serial programmer for the communications.

    BlueCrab: KallistiOS support is definitely something I hope is implemented in the future. Regarding your concerns - no worries. I'm on the side of software available in its full source. Several Dreamcast and PS2 related projects I've completed have already been released this way and the next few Dreamcast games that have been brought back online and will be announced soon will follow suit.

    Regarding manufacturing, it shouldn't cost a lot considering it requires no external storage or anything beyond a microcontroller to emulate the modem and a means of connecting it to a PC or network (the former being very economical to implement). The G2 connector will have to be used from actual modems, but the goal is to make the PCB the same form factor as the original modem so the modem case can be reused.

    Technically, anyone can start this project themselves for under $50. All of the parts I've used so far can be purchased at your local RadioShack (the Propeller is $40). I have a prototype I'll post of the Propeller Quickstart attached to the G2 adapter with a couple of standoffs to show how it looks. I understand that going the DIY route makes this project much less accessible, so actually building an actual PCB is definitely the end goal, but I first wanted to show that you don't have to be good at designing circuits or have access to advanced manufacturing processes to build something like this.

    TriMesh: Yes, that chipset was just a starting point. Looking at the chips used on the GDROM-EMU board, I like the Atmel SAM chipset as it supports Ethernet. Would you recommend that line? Parallax actually makes an ethernet board for the Propeller Quickstart utilizing the WIZnet chipset: http://www.parallax.com/product/40002

    Regarding the stacks, this is where it gets complicated and why I started with keeping everything PC-side. As Bluecrab mentioned, DHCP is ideal, but not necessary. What would be necessary is a feature I've wanted to add that will translate hard-coded IP addresses as they're being sent from the DC.

    The entirety of the PPP protocol will need to be handled on the adapter. Fortunately, a lot of resource intensive features can be omitted since latency is a non-issue between the DC and the adapter (authentication, error correction, Van Jacobson compression, etc).

    Everyone else: Thank you for your interest / support. Hopefully this will be available to all soon and we can easily play our favorite online Dreamcast games again :).

    Edit: RadioShack (mine, at least) recently discontinued the Propeller Quickstart and clearance priced them at $10! Check your local RadioShack for availability and get one while you can.
     
    Last edited: May 25, 2014
  19. wombat

    wombat SEGA!

    Joined:
    Mar 14, 2004
    Messages:
    2,676
    Likes Received:
    323
    O-M-G ... did I read this correct..... the next FEW(!!!!!!) Dreamcast games brought back online!.. I was already excited to see this project reaching completion, but now I'm ultra inpatient as well haha. Hoping AFO will be among those few _O_
     
  20. Treamcaster

    Treamcaster Intrepid Member

    Joined:
    Sep 8, 2007
    Messages:
    696
    Likes Received:
    5
    Man, I'm really excited with this project! I'm looking forward to this, keep up the good work!! You rock!
     

Share This Page