Today, we are going to learn how to build our own Phantasy Star Online private server for GameCube using code found on GitHub and a Raspberry Pi.
There are lots of great options out there already for playing PSO on PC, GC, DC (Schthack) and PSO BlueBurst on PC (Ephinea, Ultima, Destiny & Schthack) with very active communities around these servers and numerous updates to enhance the gameplay of the original PSO. Most of these servers are free to use and the work the folks are doing to keep these servers running is remarkable, check them out.
You may think that building a Gamecube PSO private server in 2020 is rather pointless given that there are ready to use servers out there and that not many people own a broadband adapter for the Gamecube? You’re probably right, however I wanted to see if I could run a game server other than Minecraft on the awesome Raspberry Pi and I also wanted to try my hand at writing a Raspberry Pi tutorial, having benefited from many useful tutorials myself in the past.
The server we are going to use today was written by Martin Michelsen aka fuzziqersoftware, Martin has actually written a number of these servers for PSO, the version we will use in this tutorial is called (new) newserv. I encourage you to visit Martin’s website and his GitHub page, pretty impressive stuff 🙂
What you need for this project:
- A Raspberry Pi 3b or above
- An SD card 8gb or above
- Ethernet Cables
- A Gamecube (obviously)
- A Gamecube Broadband Adapter
- A copy of Phantasy Star Online Ep. 1&2 on Gamecube
- Raspberry Pi OS (Buster)
I’ve built and tested this server successfully on Ubuntu 18.04 on a traditional x86 virtual machine and on a Raspberry Pi (3b+ in my case) running Raspberry Pi OS (Buster).
Instructions on how to install Raspberry Pi OS can be found here. I typically run my Raspberry Pis headless and SSH into them using tools such as PuTTY. Instructions on how to build and run Raspbery Pi headless can be found here.
In this tutorial we will do a number of tasks in the following order:
- Update our Raspberry Pi to ensure we’re running the latest version fo the OS
- Install some dependencies to build the server (yes, you will be compiling software!)
- Clone the repos for phosg and newserv onto our Raspberry Pi
- Build and install phosg which is a C++ wrapper library that’s required by newserv
- Build and run newserv
Update your Raspberry Pi
Run the following command to update your Raspberry Pi:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install libevent-dev
sudo apt-get install make
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install Python2.7
sudo apt-get install Python3
Clone the phosg and newserv repos
You need to build a utility called phosg in order to be able to build newserv, it’s important to follow steps in order newserv won’t build without phosg:
git clone https://github.com/fuzziqersoftware/phosg.git
git clone https://github.com/fuzziqersoftware/newserv.git
Build & install phosg
cd phosg make sudo make install cd
Build & run newserv
cd newserv make ./newserv
If everything went according to plan you should see the following after the initial run, you are now ready to connect your Gamecube to your very own PSO private server:
There are bunch of commands available for this server, just type help to get a list of this. To stop the server simply type exit.
Finally, there is a configuration file that you can tweak to your needs called config.json in the system folder, see here for the list of things you can change. In my case I only modified the server name and the IP address of the server. I’d also recommend fixing the IP Address of your Raspberry Pi for ease of use (Instructions here) but that’s entirely at your discretion.
Hopefully you found this tutorial useful and you’ve been able to build and run the server. Any questions, feedback please leave a comment, enjoy!