Hey Folks,
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
Install dependencies:
cmake + libevent-dev
sudo apt-get install cmake libevent-dev
make
sudo apt-get install make
g++
sudo apt-get install g++
gcc
sudo apt-get install gcc
Python 2.7
sudo apt-get install Python2.7
Python 3
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
cmake .
make
make test
sudo make install
Build & run newserv
cd newserv
cmake .
make
sudo ./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!
Hi! Thanks a lot. Newserv works on my Raspberry Pi 3B on Buster(64bit(arm64-2021-05-28)), which incluses make, g++, gcc, Python2.7 and Python3.7, then I had installed only libevent-dev.
When I tried compile phosg on Buster(32bit), compiler reported some warnings & errors and stopped. After I commented out some lines related to TB_SIZE, PB_SIZE and EB_SIZE in Strings.cc, phosg was complied without erros, but tests were not passed for Strings and Units. Maybe these tests includes too large data for 32bits. Ignoring tests’ result, I have done making install phosg and making newserv, which works on Buster(32bit) . And samethings goes on Raspberry pi 1B. Yes, 1B !. 😉
sawakan from Japan 2021-07-11
Thanks for your comment, great to hear that it’s working on Buster 32-bit, I’ll update the tutorial with your instructions.
I had to rebuild my server from scratch this evening and I ran into the same error as you. What I did was reverting back to the phosg commit from November 2020 (around the time I wrote this tutorial) using the following command in the phsog folder “git checkout 720e21fda5c49de2a7018e66d35f178a05e2042c” and it compiled everything without blocking errors. Not great but working for now 🙂
i did everything as described above but when I type in
I get an error ->
Thanks for sharing, I have not come across this issues yet, you might want to open an issue on the developer’s GitHub, he’s very responsive and fixed an issues for me in the past: https://github.com/fuzziqersoftware/newserv/issues I’m due to re-build my server soon, I’ll keep my tutorial up to date if I run into similar issues.