Sorry if this wasn't clear, but you need a Dial Up Modem to follow this guide.
EDIT: I don't think the "voice modem" requirement is completely necessary. I have used a data/fax modem with this and it connected to DC just fine.
Technically all voice modems which are compatible with Windows will work for this guide. However, it has come to my attention recently that VMware does not officially support PCI devices. While it can use them through a virtual COM port, it is not able to actually virtualize the PCI device itself. Using a PCI modem in VMware has some negative effects. Firstly the bandwidth being sent to and from your dreamcast will be limited to about 5Kbps. This sounds really bad, but normally the most that can be achieved is in the range of 15-18Kbps. That said, it causes some undesirable effects in certain games. Nothing too drastic though. For example, in PSO quests will take about 50-60 seconds to download opposed to like 5 seconds with a normal PC-DC server. The other, more significant issue is that your Dreamcast's latency will be in the range of 1000-2000ms. This causes StarLancer and Quake III to be unplayable. And in addition you will see some lag in 4x4 Evo. PSO seems to not be effected by this for the most part and the browser of course functions either way. I have not tested Max Pool.
Now, what if you have a Serial or USB modem? Well, those will function properly in VMware and give you the full 15-18Kbps bandwidth along with around a 200-300ms latency, which is how it should be. All serial modems should work, however if you wish to use a USB modem it MUST be linux- compatible. Most Conexant modems should be linux-compatible. Here is a reference to determine that: viewtopic.php?f=3&t=2478
**This type of USB Modem (pictured below) which is powered by the USB port does not work with a Dreamcast "Model B" Modem. And if you are using a Model A Modem you will need to use a Line Voltage Inducer. I'm not sure why atm. If anyone knows feel free to post a response.
NOTE: V.92 modems should theoretically offer the best performance.
-->If you are using a PCI or Integrated Modem, start at STEP 1.
-->If you are using a Serial Modem, start at STEP 1.
-->If you are using a USB Modem, VMware will detect it as a USB device and it will be usable in VMware. Start at STEP 2 and skip STEP 5.
STEP 1: Make sure your modem driver is installed properly on windows (If you are using a Serial Modem you will not need a driver installed on windows, however this step will let you know which COM port the modem is using.). To do this right-click on My computer/Computer and go to manage. Then click Device Manager. Expand the "Modems" section and make sure your modem is listed. If not you must find the driver for it and install it. Now that you have your modem in view on device manager right click on it and go to properties. Then click the "Modem" tab. Make note here of which COM port your modem is using. You will need to know this.
STEP 2: Install VMware player. You can get that for free here: https://www.vmware.com/tryvmware/?p=player&lp=1
or here: http://download.cnet.com/VMware-Player/ ... entBody;1d
**Make sure you don't have any firewall blocking VMware in Windows, otherwise it will be unable to access the internet, thus neither will Dreamcast once this is all set up.
STEP 3: Download Ubuntu ( I used ubuntu 8.10, but i'm using 10.04 on my laptop so I'm sure that works as well) The newest version can be found here: http://www.ubuntu.com/desktop/get-ubuntu/download
If your PC has low-end specs, you could alternatively use Xubuntu: http://www.xubuntu.org/getubuntu
Of course both ubuntu, and xubuntu are just examples of distros to use for this. If you have a different one which you prefer, then by all means use that.
STEP 4: Add a virtual machine to VMware. You can simply select the disc image that was downloaded. Before installing the virtual machine be sure to click the "Customize Hardware" button when it comes up.
STEP 5: "In Customize Hardware" you will need to click "Add" and then add a Serial Port. Then click the radio button "Use physical serial port on the host". Then hit next. In the drop-down menu select the port that your modem uses (You found this out in STEP 1). And make sure "Connect at power on" is enabled.
STEP 6: While in Customize Hardware you must also change the Network Adapter type. So click on Network Adapter and change it to a "Bridged Connection". Make sure that "Replicate physical network connection state" is disabled. Also while you're customizing the hardware you may also want to shrink your virtual machine size. I'm using 10GB, but you probably don't even need that if all you are doing is setting up a PC-DC server.
If your firewall is disabled and you are having trouble getting the bridged connection to connect to the internet after the OS is installed follow this guide: http://www.eightforums.com/virtualizati ... layer.html
STEP 7: Install the OS. This is pretty much automated.
STEP 8: IF you are using a USB Modem, you will now need to install your modem's linux driver in VMware.
Now that Ubuntu is installed, you will want to install gnome-ppp to verify that your modem is detected. To do this open a terminal window and type,
Code: Select all
sudo apt-get install gnome-ppp
After it installs type,
Code: Select all
Then go to "Setup" and hit "Detect". Your modem device name should now be displayed. (My device name is /dev/ttyS1)
STEP 9: A whole lot of other steps. Follow Ryochan's guide here:
NEW Link: ryochan.php
First, get a PC that can run a Linux distribution. I mainly use Ubuntu as my distribution of choice but you can probably choose whichever flavor of Linux you like; I remember that at some point I was unsuccessful in making a PC-DC server on Fedora 8. The next important item that you will need is some sort of voice modem. I use a TRENDnet TFM-560X external serial modem. Even though I use a serial modem, a USB modem should work fine. If you can, find a modem that runs power through the phone line. That way you can avoid having to make a line voltage inducer. Most external modems should run power through the phone line. Of course, have a good length telephone line to run between your Dreamcast modem and your PC modem.
Once you get a Linux distribution installed on your PC, we can start with the real details. First off, you might need to check if the kernel that came bundled with your distribution includes PPP support; most desktop Linux distributions bundle a kernel with PPP modules included. Next, install the programs mgetty and pppd if they are not already installed.
Sample apt-get line:
sudo apt-get install mgetty ppp
Now, on to configuring the main software.
On Ubuntu, there are three configuration files bundled with mgetty that are installed under /etc/mgetty/.
I didn't have to worry about editing the default config files for my setup. The main file that you will have to be concerned with is the login.config file. You will need to check whether there are lines for launching ppp and /bin/login. Check the files linked above to look over my config files. You might need to tweak your mgetty.config depending on your setup.
Now that mgetty is configured, it is time to configure the ppp daemon. There are a lot of configuration files for PPP but there are only a few that you have to be concerned with. The following are typically installed at /etc/ppp/.
NOTE: The last config file listed will vary depending on what the device interface is for your modem. The interface for my modem is ttyUSB0 so the last file in my case is options.ttyUSB0. Also, there might not be a second options file pre-installed so don't worry if one is not in the directory. Make sure you have write access to the /etc/ppp/ directory and make the config file.
Example options file:
The most important file in the list of ppp configuration files is the options file. It will likely cause you the most trouble if you don't know what you are doing; it took me several months to get Quake 3 working thanks to this config file. I won't explain the whole configuration file but I will mention a couple of specific things about the file. The ms-dns line of the options file must be filled in with the IP address of your primary DNS server that is also used for your PC connection. My router runs a DNS server so I fill in 192.168.1.1 (IP address of my router). You will likely put in the primary DNS address from your ISP here.
The next specific topic is the default-asyncmap option. For the most part, you want the option included. However, for Quake 3 and StarLancer, you will want to disable the option. To do this, you will put in the # symbol before the option to comment the option out.
Lastly, ktune is an option that will automatically enable IP forwarding. This is necessary so that your Dreamcast can access any outside IP address. For more information on various ppp options, read the pppd man page.
Thankfully, very little has to be brought up about this file. The IP address that you give the Dreamcast and your ppp proxy should be within the same subnet as your PC; for my network, it is 192.168.1.*. The first address in the first line will be the IP address that you give your proxy and the second address will be the IP address that you will give your Dreamcast. I set my proxy address to 192.168.1.150 and I give my Dreamcast an IP address of 192.168.1.151. The netmask option should match the subnet mask of your network connection; 255.255.255.0 is what most people will use.
Example options.(INTERFACE) file:
To let your Dreamcast user log in to the PC-DC server, you will need to alter this file. You will need to specify the user name and the user password in this file in a specific format. Where it is placed in the file doesn't matter; I just place it at the end of the file. The format of the line is as follows:
user * password *
This is an example of the line that would be used for the user that we will make in the guide.
dream * dreamcast *
Making Dreamcast user
We are finally past configuring ppp; that was long. Now, you will make the user that the Dreamcast will use to login to the PC-DC server. I usually use the users-admin application that is bundled with Gnome to make the Dreamcast user but I will show how to do it with the useradd and passwd commands.
sudo useradd -G dialout,dip,users -c "Dreamcast user" -d /home/dream -g users -s /usr/sbin/pppd dream
sudo passwd dream
These command will make a user "dream" on the server. When running passwd, enter dreamcast for the user password when prompted. Here is a quick breakdown of the specific user properties; useful if you are going to use something else to make the user.
User name: dream
Main group: users
Home directory: /home/dream
Under Ubuntu, the dialout group has access to the modem and users in the dip group are allowed to execute the ppp daemon directly; the Dreamcast user has to belong to both groups under Ubuntu Jaunty. You might have to change the group(s) depending on your choice of distribution; check user permissions to find out which groups have access to your modem device and to the pppd executable. Also, check where the pppd program is and use that location for the user's shell; /usr/sbin/pppd is where it will usually be. You can check where the application is with the whereis command.
End of Part 1
That is it for this part of the guide. Check back in for part 2 which will cover configuring the Dreamcast to login to the PC-DC server.
Now that the PC side of the system is configured, it is time to configure the Dreamcast to connect to the PC.
This portion of the guide will focus on configuring the Dreamcast to connect to the PC-DC server using Planetweb 2.62. You can use a different version but I would suggest that you use version 2.0 or greater. Also to note, I occasionally use Dream Passport but I can't use it to configure my Internet connection without issues.
Another really important note is regarding the modem bundled with the Dreamcast. You should probably check the model number of the Dreamcast modem. For North American Dreamcast units, revision 670-14140A does not require the use of a line voltage inducer but revision 670-14140B does require the use of some line voltage inducer or a modem that runs power through the phone line. To check the revision number of the modem, look on the CAUTION sticker located on the silver inner side of the modem. My Dreamcast modem is a 670-14140A.
Dreamcast modem revision pic
Now, time to configure the Dreamcast. Press the pause button to bring up the control panel and go to options (lower right-hand button). Next, go to Internet Connection. From there, here is a list of the options under the Basic Infomation page and how to configure them.
Your Real Name: (Anything will work here)
User Login: dream (Put in the user name that you gave the UNIX user in part 1)
Password: dreamcast (Put in the password that you gave the UNIX user in part 1)
Dial Up Number: 555 (Put in at least a one digit number. Leave area code field blank)
Backup number: (Leave blank)
NOTE: The DNS portion will be taken care of by the ppp daemon on the Linux box so you don't have to specify DNS servers in your Dreamcast configuration; they will be ignored if you do change the default numbers.
Next, click OK to go to the Dial Options page. Here is a list of the options to configure for the Dial Options portion.
Area code you are dialing from: (Leave blank)
Long distance call prefix: (Leave blank)
Call waiting prefix: (Leave blank)
Outside dialing prefix: (Leave blank)
Modem Init: AT&F0 (usually the default. Last character is the number zero)
Dial area code: Off
Blind Dial: On
The "Blind Dial" option is the most important option on the page. You must have the option turned on. That way, the Dreamcast will not need to detect a dial tone on the line in order to dial out. Just to mention it, there are some games, like Quake 3, that ignore the blind dial option and will try to detect a dial tone on the line. Part 4 will cover how to get around this problem.
Click OK to go on to the Proxy Settings page. There is only one option that you have to check on the Proxy Settings page.
Use Proxy: No
Click OK to return to the main options menu and then save the configuration to your Dreamcast.
End of Part 2
That is all for part 2; this part was a lot shorter than the last part. In part 3, we will cover launching the mgetty process, connecting the Dreamcast to the Linux server, and getting on the Internet.
Now, we can finally get to the good part. Getting the Dreamcast online will be covered in this part.
First off, you will want to connect the Dreamcast modem to your PC modem. Connect one end of a phone line to the port on the Dreamcast modem and the other end to the LINE phone port on your PC modem. The physical connection has been made. YAY! Progress! Launch Planetweb on the Dreamcast if not loaded already, get your PC ready and fire up your modem.
There are many methods to running the mgetty process. On a desktop, you will likely just want to launch mgetty directly from a terminal. Other methods are using inittab or upstart. On Ubuntu, the old inittab method no longer works due to the incorporation of upstart.
I just launch mgetty from a terminal and that is what I will cover. First off, you must have root access in order for mgetty to work. The only arguments that I give to the program are the device path and a different initialization command. Here is what I use.
sudo mgetty -D /dev/ttyUSB0 -m '"" ATM0'
Here is a quick breakdown of the arguments of the command. The "-D" flag sets the modem to data mode. The device path is specified after that; it is /dev/ttyUSB0 in my case. The "-m" flag is optional and what you can pass will vary depending on what AT commands your modem accepts; read the manual for your PC modem to see which AT commands can be used. With my modem, the speaker is horribly loud so I have to disable it or go deaf. The "M0" portion of the line disables my modem's speaker. The "AT" portion of the line is necessary to make sure the modem goes to AT mode. There is an expect portion at the beginning with the double quotes but I use empty double quotes as I don't have a use for it.
For those who want an upstart example, here is an example script that you can install in the /etc/event.d/ directory and be able to start the script with the start command.
#start on runlevel 3
exec mgetty -D /dev/ttyUSB0 -m '"" ATM0'
That is enough of that.
Monitor Log Files
I would suggest that you monitor the mgetty process by using "tail -f" on some log files. There are three log files in particular that are helpful. These are the locations of the files under Ubuntu.
tail -f /var/log/mgetty/mg_ttyUSB0.log
Please read all of this section first before trying it. Mgetty is launched. The Dreamcast is ready. Planetweb is loaded. Now, it is time to start the connection. First off, get a spare terminal ready; I generally have gnome-terminal launched with 4 tabs open. Start the dial up process on Planetweb. Wait about 3 seconds once the output on the Dreamcast stops and then you will issue the following command on your PC to make mgetty answer the line; you must have root access to issue the following command.
sudo killall -USR1 mgetty
The process is very lenient so you don't have to worry about getting your timing exactly right. You should now notice changes to the mgetty log. If all goes well, you will notice changes to the messages log file and the Dreamcast will connect to the PC.
Log Files Examples
This section is just to show what the output of the log files will look like when your Dreamcast is successful in connecting to your Linux box.
07/12 15:36:32 SB0 mgetty: interim release 1.1.36-Jun15
07/12 15:36:32 SB0 WARNING: parent process not init(pid=1), but pid=8494 (bash)
07/12 15:36:32 SB0 check for lockfiles
07/12 15:36:32 SB0 locking the line
07/12 15:36:33 SB0 WARNING: DCD line still active, check modem settings (AT&Dx)
07/12 15:36:33 SB0 lowering DTR to reset Modem
07/12 15:36:33 SB0 send: ATM0[0d]
07/12 15:36:34 SB0 waiting...
07/12 15:36:53 SB0 wfr: waiting for ``RING''
07/12 15:36:53 SB0 cannot set controlling tty (ioctl): Operation not permitted
07/12 15:36:53 SB0 >>> this might be caused because you have run mgetty/vgetty
07/12 15:36:53 SB0 >>> from the command line. Don't do that, use /etc/inittab!
07/12 15:36:53 SB0 send: ATA[0d]
07/12 15:36:53 SB0 waiting for ``CONNECT'' ** found **
07/12 15:37:07 SB0 send:
07/12 15:37:07 SB0 waiting for ``_'' ** found **
07/12 15:37:10 ##### data dev=ttyUSB0, pid=8599, caller='none', conn='33600 V42bis', name='', cmd='/usr/sbin/pppd', user='/AutoPPP/'
Jul 12 15:53:51 navi pppd: pppd 2.4.5 started by , uid 0
Jul 12 15:53:51 navi pppd: Using interface ppp0
Jul 12 15:53:51 navi pppd: Connect: ppp0 <--> /dev/ttyUSB0
Jul 12 15:53:51 navi pppd: Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Jul 12 15:53:54 navi pppd: Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Jul 12 15:53:55 navi pppd: user dream logged in on tty ttyUSB0 intf ppp0
Jul 12 15:53:55 navi pppd: PAP peer authentication succeeded for dream
Jul 12 15:53:55 navi pppd: found interface wlan0 for proxy arp
Jul 12 15:53:55 navi pppd: local IP address 192.168.1.150
Jul 12 15:53:55 navi pppd: remote IP address 192.168.1.151
The /var/log/syslog file usually just has a more verbose output of what is contained in the messages log file; at least, it does in regards to the pppd messages. Monitoring the syslog file is a good idea for troubleshooting.
End of Part 3
That is it. If nothing went wrong, you should be able to browse the web with your Dreamcast. Part 4 will cover some issues with the PC-DC server and various games.
[OPTIONAL] STEP 10: IF you want your PC-DC server to be a dedicated dial-in server (PC automatically answers Dreamcast with no user-input) you will need to purchase a phone line simulator. You can find one of these on EBay with prices ranging from $45+. Connect the Dreamcast to one line of your phone line simulator and the PC Modem to the other. Turn blind-dial OFF on your Dreamcast. Then refer to the documentation for your phone line simulator to determine the phone number you will have Dreamcast dial in order to ring the line which your PC modem is connected to. Instead of the two commands that are used to connect with Ryochan's guide (mgetty, killall) you will type only this command into a terminal window:
Code: Select all
sudo mgetty -D /dev/ttyS1 -m '"" AT&S0=1'
Substitute "/dev/ttyS1" for your device name if it is different. The "S0=1" portion of the command is telling your PC Modem to automatically answer the phone call after the first ring from Dreamcast. Without the phone line simulator it cannot detect that the phone call is being made and will not automatically answer it. If you wish to go one step further and have this command running at all times in linux you can make an upstart/startup script using that command. In which case it will be running from startup and should re-execute after the connection is terminated.
**One important thing to note which is not mentioned in Ryochan's guide is that in order to get 4x4 Evo working you must also comment out the default-async option for this game as well. As he has listed for StarLancer and Quake3.
And thats it! Your modem should now work as a PC-DC server on linux in a virtual machine on Windows. This is my first guide, so if something is confusing or if you have any questions let me know.
If you happen to upgrade or reinstall the VMware software sometime after going through this guide you may notice your virtual network adapter has stopped working. Try to reconnect to autoeth and restart the virtual machine. If you are still unable to establish a connection within VMware you will probably need to reinstall the virtual machine from scratch. I can't really explain this, but it happened to me recently, preventing me from being able to use my PC-DC server and I couldn't determine any cause for it.
Bottom Line: I would recommend not changing your VMware version after your PC-DC server is set up.
Here is a badly edited walk-through of how to set this up on the PC without any narration. It sucks, so deal with it. Also, I can't show how to configure the DC-side because i have no video camera, and no video capture card. In this video I was setting up a PCI modem.
And here is a video of my VMware PC-DC server in action. This is what is done when you finally connect.
In case anyone using a Model B Dreamcast modem was wondering, here is a photo of my line voltage inducer. It uses a 9V power adapter for its power supply. Its a bit of mess, but I added some text to help clarify things.
A few things to note:
-You must use an electrolytic capacitor with capacitance anywhere from 0.47 µFD to 1 µFD
-The resistor's resistance can be anywhere from 330Ω to 390Ω.
-The polarity of the capacitor in the circuit does not matter.
-The only wire you are working with inside the telephone cord is the red one. The other 3 wires can be left alone.
-If you plan on using an 9V AC adapter opposed to a 9V battery, as I did in the picture below, you will need to know the polarity of the terminals. If the power adapter you are using already indicates this, then great. But if not, you will need to determine this. To do so you can use a digital voltmeter or multimeter. Connect one of the wires of the power adapter to the positive lead of your multimeter/voltmeter and the other to the negative. If the voltage display is positive, then the positive wire of the power adapter is connected to your positive lead. If the voltage display is negative, then the positive wire of the power adapter is connected to your negative lead.
Here is my line voltage inducer: