Primordia runs under the Adventure Game Studio engine, which is an open source and cross-platform game engine. But the latest game release only supports Windows. Thanks to the power of open source, I can build the AGS engine or ScummVM from source then play the game anywhere I want.

Extract game files

GOG uses Inno Setup to pack their Windows installers, which is also open sourced. There are some nice people build a tool called innoextract to unpack them. You can install it via package manager on Ubuntu and Mac.

Build ScummVM

On Feb 7, 2021, ScummVM merged AGS engine. You might wonder: wait a second, AGS was open sourced in 2010, why did they add the engine a decade later? The truth is, they tried to add it back then but the game authors were against the idea, the PC Gamer article linked below has more detail. I built it a few days ago(Mar 14, 2020) and surprisingly it supports the game even better than AGS. It doesn’t have the bug I mentioned below, maybe AGS already fixed this but I don’t bothered to check. AGS is not enabled by default since it’s still in development, it can be enabled by adjusting the option of configure script.

Build AGS

Rename file Primordia.exe to game.ags. Clone the AGS project and follow the steps in README of folder OSX. You don’t need Xcode, try cmake and make commands. After make is done, the folder should have the following files:

$ du -h ./
 12K    ./ENGV.tmp
660K    ./French.tra
696K    ./German.tra
664K    ./Spanish.tra
4.0K    ./acsetup.cfg
188K    ./ags.icns
2.7M    ./audio.vox
942M    ./game.ags
492M    ./speech.vox

ENGV.tmp and .tra files need to be copied manually. I didn’t play the game to the end so I can’t assure you it doesn’t have any fatal bugs but looks fine. The only bug I encountered is the opening scene will hang at the second sentence, solution is hitting ESC to skip.

Port to Linux is easier. Using the pre-build engine from GitHub release or build it by yourself and give it Primordia.exe.

Laggy terminal

An interesting phenomenon I noticed is that the terminal feels laggy when I enter commands in the AGS repo and Emacs is laggy too. In fact, neither zsh nor Emacs is slow, it’s git! Try git status and you will know. Those huge game files should be ignored. The solution is to disable some git features of oh-my-zsh and Emacs.

Free software alone can’t guarantee a game can be played decades later, the game has to be DRM-free. I reckon most people would heard about GOG through the controversial news of Cyberpunk 2077 or Devotion but I still think it’s a nice place for people who loathe DRM. If you are curious about why GOG sells DRM-free games and how they bring good old games like Blade Runner and Diablo back to life, check out Noclip’s documentary on YouTube.

Okay move along, move along people, there’s nothing to see here!