===>>> NOTE: This info is outdated <<<===

Now this is the fun part. I will try to describe this as clearly as I can. It’s not all that complicated once you know where to get your stuff (and your info).
At the time of writing this article we are building SDL Hyperion 4.2, assuming you are logged on to a command line terminal, as a sudo enabled user. All directories created and referenced below are based on the path ~/
Here we go.
Pre-requisites
First we need some stuff installed, like cmake and github.
Install cmake
NOTE: CMAKE is used later on in the process to build the external packages. If you need CMAKE, it is a simple APT sequence:
sudo apt-get install cmake
Install Github
Furthermore we ensure that we have access to Github, a ginormous open source source file repository. To get our access to Github we proceed as follows:
sudo apt-get install git
When this is done, we create our own git working directory and we go there:
cd ~ mkdir git cd ~/git
There we are, you now have your own git workshop.
Prepare directories
We will make three directories, starting at our home path ~/
We will make a source directory, a target directory for binaries and a directory for the needed external packages:
cd ~/ mkdir sdl42 herc42 extpkgs
Install sources
Install source for external packages
Let’s get the sources for the external packages first:
cd ~/extpkgs git clone https://github.com/SDL-Hercules-390/gists
Now copy two files from the gists directory to the extpkgs directory (note: we are still in the extpkgs directory). Also, set the permissions so the sh files can be executed.
cp gists/extpkgs.sh . cp gists/extpkgs.sh.ini . sudo chmod 777 ./extpkgs.sh
Only when you are building for a Raspberry Pi:
For all Pi’s, before you build extpkgs edit the extpkgs.sh.ini file and set the target to arm
. There’s a line that by default reads:
cpu = x86
Alter this line so it reads instead:
cpu = arm
Now build the extpkgs
We are now ready to build the external packages. This will run for 3-4 minutes.
./extpkgs.sh c d s t
Done! We have now built the external packages that Hyperion needs.
Install source for Hercules

Next we are going to download (in git terms we ‘clone’) our version of Hercules. We use the one from this Github user: SDL-Hercules-390. Go to his page, then click on the ‘Hyperion’ link. Once there, you will see a green ‘Clone or download’ button. Click on it and you will see this pop-up screen open.
Now you click on the small symbol next to the URL. This will copy the URL into your buffer to be pasted. Now we go to our terminal window we type:
cd ~/sdl42 git clone https://github.com/SDL-Hercules-390/hyperion
Mind you, the URL I got, might be outdated at the time you try this recipe! Paste in your own after the ‘git clone ‘ command. Execute the command and have it install all files you need.
Make sure we have all packages we need
To make sure our tool box is up to date we type:
cd ~/sdl42/hyperion/util ./bldlvlck
This will tell us which tools we need to get or upgrade. It will look something like this:

You carefully check which tools you need to get or upgrade and then you type:
sudo apt-get install ... autotools-dev cmake g++ zlib1g-dev libbz2-dev
This line above is an example! Fill in your packages on the dots! Important to notice is that ‘g++‘, ‘autotools-dev‘, ‘cmake‘, ‘ zlib1g-dev‘ and ‘libbz2-dev‘ are in the list of files to install. the bldlvlck utility will not warn you about g++, but install it, just like the others, the process needs it!
Building & installing Hercules
Now we can go back to our Hyperion directory and build our version. First we do:
cd ~/sdl42/hyperion ./autogen.sh
And now, when the previous command went well, we are ready to configure our build; but watch it, you have to specify your own path name for the external packages:
./configure --prefix=/{your_home_dir}/herc42 --enable-extpkgs=/{your_home_dir}/extpkgs
Building on a Raspberry Pi?
In case you are building on a Raspberry Pi, some extra pramaters are needed, depending on your model (thanks to @Tahoeloj on Discord).
For the Pi 3 add:
–enable-optimization=”-mcpu=cortex-a53 -mtune=arm8 -mfpu=neon-vfpv4 -frenameregisters”
For the Pi 4 add:
–enable-optimization=”-mcpu=cortex-a72 -mtune=arm8 -mfpu=neon-vfpv4 -frenameregisters”
Build the binaries
After this command executed well, you can proceed to actually ‘make‘ the build:
make
This will take a while… It will generate a lot of warnings, that is expected and can be ignored. When this make finished without errors we can do:
sudo make install
And we’re done building our own version. The binaries will install into ~/herc42
Removing previous version
Now we need to take care of the old hercules version you might have installed from the repositories:
sudo apt-get remove hercules
This will (only) remove the hercules files that were installed by apt-get, so no worries, your build is save.
Before you start
Ok that’s it. Before you start Hercules, I’d recommend you shut down and reboot your Linux. This is in case Hercules hangs, you want to make sure that all of the changes from the build have been recorded to the file system. So let it record all of that first and start Hercules after the boot.
How I start it:
My VM system is in a directory called ~/VM6PExt/6PExt, and there’s a hercules.cnf file there. So I wrote a shell script called ~/bin/vm6 to start it up that reads:
!/bin/bash # pre-pend new bin directory to path export PATH=/{your_home_dir}/herc42/bin:$PATH # pre-pend new lib directories to library path # export LD_LIBRARY_PATH=/{your_home_dir}/herc42/lib:/{your_home_dir}/herc42/lib/hercules:$LD_LIBRARY_PATH # #Start hercules /{your_home_dir}/herc42/bin/hercules