A guide and utility to set up a custom Devolution PPP server using newserv or slirp and socat.
Devolution is a useful tool for Wii consoles, even with the rise of Nintendont, especially for testing modem connections in Phantasy Star Online for the GameCube. For instance, the Phantasy Star Online Episode I&II Trial Edition requires the modem for online play and doesn’t allow for the Broadband Adapter (BBA) to be used at all.
In order to test the Trial Edition and modem connections on a public or private server, you can use either newserv or slirp and socat.
If you’re hosting a newserv instance, you can easily enable a built-in PPP emulator Devolution can connect to. Once setup is complete, you can even use newserv as a proxy to connect to another server.
newserv
if not already present by following instructions in the Setup section.config.json
file in the system
folder.
config.sample.json
to config.json
. Be sure to update the configuration as needed.PPPRawListen
and adjust this field to match either your internal or external IP address and a port of your choice (for example, “192.168.1.100:63335”)
"PPPRawListen": ["192.168.1.100:63335"],
Note: The Devolution phone number for T-PPPSR-63335 is 211827810432871
Using this option, you’ll be installing socat
and slirp
. socat will handle the incoming connections and passing them to slirp, and slirp will handle the PPP emulation.
If you follow this example exactly, you’ll be using port 63335
for these connections. Make sure your firewall, if any is installed, allows connections to this port. Everything below is executed in the home folder, but you can set this up anywhere that’s appropriate for you - just make sure you update your paths to adjust.
I would highly recommend using a wired connection for both the Raspberry Pi and Wii to improve the speed of the emulated dial up modem.
The instructions below were run locally on a Raspberry Pi (no desktop environment), but should be similar for any other distro or OS, except Windows.
sudo apt install slirp socat -y
.ifconfig
and copy/take note of your private IP on the network interface you’ll be using (or public IP if you’re using a VPS/port forwarding).sudo nano /etc/hosts
.
[hostname] 127.0.1.1
to [hostname] [ip]
, where [hostname]
is your server’s hostname, and [ip]
is your private or public IP, depending on how you’ll be connecting to your slirp
instance.CTRL + X
, then type y
and hit enter.sudo socat -d -d tcp-l:63335,reuseaddr,fork,keepalive,nodelay,keepcnt=5,keepidle=300,keepintvl=60 exec:'slirp -P -dppp nozeros \"dns [DNS SERVER]\"',pty,ctty,su-d=[USER] &
[DNS Server]
should be set to your private server’s IP address, e.g. 192.168.1.100
.[USER]
should have root permissions, e.g. your current user if they have root, or by creating a new super user.tcp-l:63335
.If you plan to leave your slirp instance publicly accessible, I’d highly recommend using authentication. This is not much of an issue if you are not exposing your slirp instance to the world, but if you do expose it publicly, by default, anyone can connect using any combination of username and password.
To add authentication:
.chap-secrets
.
nano .chap-secrets
.[username] [hostname] [password] 10.0.2.15
slirp
is running on.DEVO slirp gc 10.0.2.15
socat
command above still running, kill it using sudo killall socat
.sudo socat -d -d tcp-l:63335,reuseaddr,fork,keepalive,nodelay,keepcnt=5,keepidle=300,keepintvl=60 exec:'slirp -P -dppp +chap nozeros \"dns [DNS SERVER]\"',pty,ctty,su-d=[USER] &
If you’re having trouble connecting at all, make sure you’re allowing access to the port that socat
is running on. Using the defaults above, that port is 63335. You can check that this port using a tool like nc -vnzu [ip address] 63335
or Test-NetConnection [ip address] -Port 63335
.
If your connection loads to the ‘Connecting to DNS’ screen but does not progress, make sure your /etc/hosts
file is properly updated as outlined in step 3 of the ‘How To’ section.
If the network connection is slow, remember that the Wii/Devolution is simulating a dial-up connection, and the Wii’s WiFi is pretty weak. You can improve these by adding a wired connection to the Wii, and making sure that your server is wired as well.
If you get a ‘username or password is incorrect’ message and you’re using .chap-secrets
, double check that you entered in the correct username and password in the network settings menu in PSO, and check that your .chap-secrets
file is using the correct username, password, and hostname.
If you’re having other issues and not sure where to start, check your slirp log in your home directory. This file is called slirp_pppdebug
and can be opened using tail (run tail -200 slirp_pppdebug
) or by opening it in nano (run nano slirp_pppdebug
).