I didn’t figure out how to run the Primordia game when I first played it, a GOG support staff told me to load the game with Wineskin and that was before the game language update and one week before macOS dropped support of 32-bit apps. Now I can neither play the updated game nor the old one because only Windows installer get updated and the latest Wineskin was released in 2012, err.

Luckily, I found that I can build the game and run it without Wine. Primordia is based on Adventure Game Studio(AGS), which is an open source cross-platform game engine. Maybe the publisher doesn’t care, port to Linux and macOS is trivial. What we need to do is extracting game files from the Windows installer and building a 64-bit ags engine, kind like a ScummVM game.

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 with Homebrew.

Build engine

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 AGS.app/Contents/Resources 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 replay 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 tracked by git-lfs. The solution is to disable some git features of oh-my-zsh and Emacs.

Thanks to all these amazing people for their open source projects, I can still play this game and didn’t get robbed. I have always believed that any software is deemed to be broken sooner or later if it doesn’t receive any update. In my case, one week. No commercial company can survive forever but the community can. Therefore I regard selling executable files without an update guarantee longer than three years as robbery. I’m talking about you, Android! And DRM is just rape.

It’s hard to imagine a developer can’t control his game. The struggle of Wormwood Studios to upload their game reminds me an ironic story in Cryptonomicon(at the end of chapter Forays). Real life is much worse than the novel. Someone owns the code, someone owns the binary file and another one holds the title. After years of firm mergers even the owner doesn’t realize they have the right. Part of the job of GOG is to deal with them, you can watch a GOG documentary filmed by Noclip on YouTube which shades some light on this mess.