Vincent A Saulys' Blog
How to Install & Run DOSBox-powered games from GOG
Tags: computer-history
August 01, 2021

GOG, formerly known as "Good Old Games", sell old DOS games for Windows, MacOS, and Linux. The issue is that many of these games are not linux compatible, which bugs the hell out of me. Particularly annoying is when the game runs on Dosbox -- there's no excuse for this! [0]

Take Tyrian for instance.

Tyrian in GOG store as
Dosbox-powered

It's just a dosbox wrapper, there's no reason this shouldn't be available on Linux.

To rectify this, I've written a script to process the files and create an executable shell script to launch the game. I figure others may find use for it.

a word of note: if you're trying to install non-Dosbox games, I highly recommend gog user Adamh's (many) wine wrappers. They work wonderfully for the games listed, which even cover CyberPunk 2077(!)

tl;dr -- the script itself

#!/bin/bash

FILE=$1
INSTALLDIR=$(echo $FILE | sed -e "s/^setup_//" -e "s/.exe$//" )

mkdir $INSTALLDIR
mv $FILE $INSTALLDIR/
cd $INSTALLDIR

innoextract $FILE
CONF_FILES=$(ls __support/app/*conf)
VAR="dosbox"
for f in $CONF_FILES; do VAR="${VAR} -conf $f"; done

echo $VAR > play_$INSTALLDIR.sh
chmod +x play_$INSTALLDIR.sh

Run with ./install_gog_dos_game <name-of-game>. You can assign an icon in your GUI of choice if you'd like.

Sometimes there are multiple configuration files for single and multiplayer. This script will not work in such cases but you can easily edit the play_<name-of-game.sh file to the multiplayer conf files.

Step-by-step walkthrough

All games from GOG use Inno Setup, a self-extracting archive file. They then call a powershell script to start the game, passing in several .conf files. These configuration files are standard across all platforms.

To start, install innoextract -- the command for Ubuntu is as follows:

sudo apt-get install innoextract

Then run innoextract -- note this will create files local to the installer and will not put them in a nice folder

mkdir <name-of-game>
innoextract setup_<name-of-game>.exe

The relevant configuration files we want are in __support/app, where we'll find two configuration files to run the game in question. Both are needed.

You'll then need to the run the following from the root of the directory to run the game.

dosbox -conf __support/app/dosbox_<name-of-game>.conf -conf __support/app/dosbox_<name-of-game>_single.conf

Notes & Errata

[0]: Apparently this has something to do with not all developers wanting to support the linux platform as such users can be finicky. The onus of support is on the developer and not on GOG -- this is why some games are Linux compatible but not MacOS compatible. The argument has always struck me as a cop-out when its just a dosbox wrapper.

Share On:
DiasporaTwitterFacebookLinkedInHackerNewsEmailReddit