1. Required items
If you are using an internal modem, you may need a line voltage simulator, as most internal modems are unable to supply the necessary voltage required to facilitate communications between the Dreamcast and your computer.
Finally, before we begin, detach your Dreamcast’s modem and look at the serial number located on the sticker affixed to the modem’s interior. Revision 670-14140A modems do not require any additional supplied power, whereas Revision 670-14140B modems require voltage from either a line voltage simulator or a PC modem. If you aren’t technically inclined, Revision A modem are available on eBay for around $10.
2. Installing VirtualBox
If you are opting to install Linux natively on your hard disk, or already have Linux installed, feel free to skip this section and move on to Part 3. For those installing a virtual machine, continue reading.
This portion of the guide will detail how to install, configure and run a Linux distribution using Oracle’s VirtualBox. For the purposes of this guide, we’ll be using Xubuntu. The first thing you need is to download and install both Oracle VirtualBox and the VirtualBox expansion pack for USB 2.0 support. Install VirtualBox first, and then install the expansion pack.
Once completed, hit the ‘New’ icon below File. Type in the name of your distribution in the first textbox. In the drop down menu, select the 32-bit version and click next. The memory size should be left at the recommended setting of 512MB of RAM. After this, click the second radio button ‘Create a virtual hard drive now’. Proceed with the default hard drive file type and in the second window, select ‘Fixed size’. For our purposes, you can set the disk capacity to 6GB without any repercussions. Leave the name as default and hit Create.
Now that you’ve created a virtual hard disk, you should see an entry located to the left. Right click the virtual hard disk and click ‘Settings’. Go to the Network tab and click ‘Enable Network Adapter’. In the ‘Attached to: ‘ drop down box, select Bridged Adapter. Select the name of your active network adapter and click Advanced. Set your Adapter Type to ‘Intel PRO/1000 MT Desktop (82540EM)’ and change Promiscuous Mode to Allow All. If you’re using a serial modem, go back to the left and click Serial Ports. Click ‘Enable Serial Port’ and set the port number to the port your computer assigned to your USB-RS232 converter. If you’re using Windows and aren’t sure, go to Start>Control Panel>Device Manager and expand Ports (COM & LPT). Look for an entry called Prolific USB-to-Serial Adapter (COM#). Finally, click on the USB option to the left and make sure that ‘Enable USB Controller’ and ‘Enable USB 2.0 (EHCI) Controller’ are selected. Click ‘OK’ once you are finished.
Now comes the fun part: Installing Linux! Left-click your virtual hard drive entry and click ‘Start’. Upon loading, VirtualBox will prompt you for a disc image. Point it to the disc image of your Linux distro. Follow all the on-screen prompts until the installation process completes and you’re dropped on the desktop. Success! Now that Linux is installed, roll up your sleeves, because it’s time to get to work.
3. Configuring Linux
With installation complete, we’ll now get down to working with Linux itself. Click the start icon (located in the left-hand corner in Xubuntu) and open up Terminal Emulator. Make sure your modem is turned on and type in:
dmesg | grep tty
The terminal will output several strings, one of which should read ‘ttyS0’ or, if you’re using a USB-RS232 converter, ‘ttyUSB0’. Make note of this information, as we’ll need it later on. Once finished, run:
sudo apt-get install setserial minicom ppp gnome-ppp
Install the package and then run:
sudo setserial –g /dev/tty(S0)/(USB0)
The output will show you the serial port along with a host of other information.
A. Configuring PPP
With Terminal still open, type in:
Once there, type in:
sudo leafpad dreamcast
to open up a text editor.
Enter the following information in the text file; replace /dev/modem with the port your modem is located on (ex. /dev/ttyUSB0).
Two entries below /dev/modem, you’ll notice two IP addresses: The first is assigned to your PC, and the second assigned to your Dreamcast. Change the X in both IP addresses so that it matches up with your router’s subnet address (ex. If your router’s IP address is 192.168.1.1, change the X to a 1). Save this file as dreamcast, then exit.
to move up a level to /etc/ppp. Now type in
sudo leafpad options
to open the options file. Delete all the information in the file and copy and paste the following:
For ms-dns, you’ll need to substitute your own DNS where 192.168.1.1 is. You’ll also need to comment out default-asyncmap depending on what game you’re playing. For now, leave it as is.
B. Configuring minicom
sudo minicom –s
into the terminal to bring up minicom’s setup page. Using the arrow keys, go down to ‘Serial port setup’ and hit Enter. Type in A and hit enter to edit the port information. Fill in the path with the port information you (hopefully) took note of earlier. Once finished, hit ‘Save as dfl’ and ‘Save configuration’. Name the configuration and exit minicom.
C. Configuring your modem
We’re in the home stretch now. Type in:
Click on Setup and hit Detect. You should see activity in the terminal if successful. Before exiting gnome ppp, make sure you click on ‘Wait for dialtone’ and remove the check mark.
Phew! This concludes the Linux configuration portion of the guide.
3. Configuring the Dreamcast
It’s now time to poke around the Dreamcast. This portion is much less strenuous than messing with Linux. We’ll be using the XDP web browser for configuring the Dreamcast. Upon booting up XDP, select the Planetweb portion of the browser. Hit Start and select Options (located in the lower right-hand corner). Click on Internet Connection. The following details exactly what settings to use:
Once finished, click OK to return to the Options menu. Press Save to save your changes.
4. Connecting to your Linux-Dreamcast server
With configuration out of the way, we can now finally test our handiwork. Open up Terminal in Linux and create two tabs. In the second tab, type in
sudo pon dreamcast
but don’t hit Enter yet. Type the following into the first tab:
sudo minicom –c on
You should be greeted by a minicom terminal page. Begin connecting online with your Dreamcast. Type in
on the minicom terminal page and hit Enter after 3-5 seconds.
Once you see ‘CONNECT’ show up in minicom, click the second tab you opened earlier. Hit Enter, shifting your attention toward your Dreamcast. If you get past ‘Sending user name and password’, you’re in! If you encountered an error, don’t sweat it; work backwards in search of the issue.
5. Special note regarding Quake 3
If you're interested in playing Quake 3, you'll need to comment out default-asyncmap in the /etc/ppp/options text file. Simply put a # in front of default-asyncmap so your options file looks like this:
Save the text file and you'll be ready to play Quake 3.
Last edited by TheMytho on Tue Jan 27, 2015 10:05 pm; edited 2 times in total
TheMytho has been working on this guide for quite a while, putting all of the steps through their paces.
If you are looking for a proven way to setup a PCDC server with your Dreamcast, do take this method for a spin. I myself will be doing so as well.
I'm already numero uno on Dark Helmet's hit list...
I recently took TheMytho's minicom guide here for a spin, and sure enough, it worked perfectly. I got Quake 3 and PlanetWeb v2.0 online. It doesn't account for the fact that games require a dialtone though, so you will need a way to feed an audio tone into the DC for games like Quake 3. Basically you need to perform a swap trick to a land line, but with a split audio cable tied to a telephone jack. You can get PlanetWeb online without needing to perform the swap trick, so that should be your first test. Especially since you have the option to show AT commands on connect.
This guide is very well laid out though, and lets you use unix tools to get your Dreamcast Online. I think the biggest side benefit here is for the Sega Saturn. If you have a Netlink and wanted to browse some old web pages with its browser, this lets you do it.
I'm already numero uno on Dark Helmet's hit list...
Thank you for putting the guide through its paces nikon. I vaguely recall a user at another Dreamcast forum used my guide and got it working, but unfortunately it never gained much traction. I feel like minicom is a superior solution to mgetty, but the community has moved on to DreamPi.
I will look into feeding the Dreamcast a dial tone. I do not live in a house that subscribes to landline phone service, so this issue now effects me. If I could feed the dial tone into the modem's phone jack, that might be sufficient for Q3 and other games to successfully connect.
Its true that lots of people are using DreamPi, but with the minicom method, it lets you experiment with various AT commands (plus learn all about them). DreamcastTM was helping me debug the connection, and there are AT commands you can enter to put the modem into voice mode, and have it generate a tone. You and I have the same TRENDNet modem, and after trying a variety of commands, we learned the modem supports the commands but doesn't have voice support, so no tone is generated.
The solution (which I still need more details on from DreamcastTM, or to dig into the sites post archives), is to take a stereo/mono rca cable, and a phone cable, cut and splice the wires, and "play" a tone into the Dreamcast. The other option is to buy a modem that has voice support, so it can run the AT commands needed to generate a tone from the modem itself.
DreamPi is designed to abstract a lot of this stuff away from the end user. It gets people online quickly and easily. The source code for the DreamPi is available, so if someone wanted to expand on it at a technical level they still can, but I feel the minicom has value in that it lets you get down and dirty at a unix tools level with a PCDC server.
I am always in support of having more options and ways of doing things. Win98, dreampi, minicom, mgetty.... it is great to have all of these. Who knows maybe someone will write a full stack in C, or use GO or Node.js to create another PCDC server.
I'm already numero uno on Dark Helmet's hit list...