Phantasy star online – GameCube Server on Raspberry pi

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!

5 thoughts on “Phantasy star online – GameCube Server on Raspberry pi”

  1. 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

    1. Thanks for your comment, great to hear that it’s working on Buster 32-bit, I’ll update the tutorial with your instructions.

  2. 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 🙂

  3. i did everything as described above but when I type in

    sudo ./newserv

    I get an error ->

    terminate called after throwing an instance of 'std::runtime_error'
      what():  size of system/blueburst/keys/mocb1.nsk is incorrect
    Aborted

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.