boxtron

Steam Play compatibility tool to run DOS games using native Linux DOSBox

309
2
Python

Boxtron

Build Status
Language grade: Python
Luxtorpeda project Discord

Steam Play compatibility tool to run DOS games using native Linux DOSBox

This is a sister project of
Luxtorpeda,
Roberta, and
DOSBox Staging.

boxtron

Official mirrors:
GitHub,
GitLab.

Game compatibility reports:
Steam,
GOG.

Features

  • Lower input lag (compared to DOSBox inside Proton)
  • Steam features working as expected (e.g. Steam Cloud, Controller settings or recording of time played)
  • Better fullscreen support, especially on multi-monitor setups*
  • Steam Overlay working out of the box*
  • More configuration options and better defaults*
  • Automatic detection of MIDI hardware, with software synthesiser used as fallback
  • Automatic MIDI setup for supported titles (click Play and enjoy pre-configured MIDI music)

* - compared to vanilla DOSBox

Installation (from repositories)

Flathub

If you use Steam flatpak,
you can add Boxtron using:

$ flatpak install flathub Boxtron
Arch, Manjaro

You can use AUR package.

Installation (manual)

You’ll need to install dependencies manually and then proceed to installation steps:

Dependencies

You will need Python (>= 3.5), DOSBox Staging (>= 0.76), inotify-tools,
TiMidity++, and a soundfont. Optionally, you can use FluidSynth as well.
If your distribution does not include dosbox-staging
yet, you can use DOSBox 0.74-3 instead, but you might encounter severe issues.

Fedora
$ sudo dnf install dosbox-staging inotify-tools timidity++ fluid-soundfont-gm
OpenSUSE
$ sudo zypper install dosbox inotify-tools timidity fluid-soundfont
Debian, Ubuntu, Mint, Pop!_OS
$ sudo apt install dosbox inotify-tools timidity fluid-soundfont-gm
Arch, Manjaro
$ sudo pacman -S dosbox inotify-tools timidity++ soundfont-fluid
NixOS
$ nix-env -f '<nixpkgs>' -iA dosbox inotify-tools timidity soundfont-fluid

Installation (using tarball, for a single user)

  1. Download and unpack tarball to compatibilitytools.d directory (create one if it does not exist):

    $ cd ~/.local/share/Steam/compatibilitytools.d/ || cd ~/.steam/root/compatibilitytools.d/
    $ curl -L https://github.com/dreamer/boxtron/releases/download/v0.5.4/boxtron.tar.xz | tar xJf -
    
  2. Start/restart Steam.

  3. In game properties window go to “Compatibility” section, select “Force
    the use of a specific Steam Play compatibility tool” and pick
    “Boxtron (native DOSBox)”.

Installation (from source, system-wide)

This installation method is explained in detail in the packaging guide.

  1. Clone the repository and install the script system-wide:

    $ git clone https://github.com/dreamer/boxtron.git
    $ cd boxtron
    $ sudo make install
    
  2. Start/restart Steam.

  3. In game properties window select “Force the use of a specific Steam Play
    compatibility tool” and select “Boxtron (native DOSBox)”.

Installation (from source, for development)

This method is appropriate for testing and development.
See: contributing guide.

  1. Clone the repository and install the script to user directory:

    $ git clone https://github.com/dreamer/boxtron.git
    $ cd boxtron
    $ make dev-install
    
  2. Start/restart Steam.

  3. In game properties window select “Force the use of a specific Steam Play
    compatibility tool” and select “Boxtron (dev)”.

Configuration

Read Configuration article on project Wiki.

GOG Games

To easily install a DOS game from GOG to your Steam library, use included script:

$ ./install-gog-game ~/Downloads/setup_warcraft_orcs__humans_1.2_\(28330\).exe

It will unpack the game to ~/.local/share/games, prepare a setup that works around all
known Steam bugs and generate .desktop file to be added to your Steam library. After
that, you can play the game using Boxtron or Proton.

Installation script depends only on the Python standard library; you can put it in your
PATH or wherever you like.

MIDI auto-setup

Boxtron preconfigures selected titles to turn MIDI music on/off, depending on user
preferences. Supported games are:

Just click “Play” and enjoy glorious MIDI music, there’s no need to hunt those
pesky SETSOUND.EXE programs.

Other games

Sythesiser running does not automagically turn on MIDI music in every game,
sometimes you need to enable it manually (usually there’s a file called SETUP.EXE,
IMUSE.EXE or similar somewhere in the game directory). Use following settings:

Music/device: Roland MPU401/General MIDI, Music Port: 330

If you’ll find a game, that supports MIDI and you need to enable it manually,
create a bug report, please!

Sierra Launcher

For most Sierra games, you might be interested in using
Roberta instead of Boxtron.

Some game collections on Steam use “Sierra Classics Launcher” graphical frontend.
There’s no support for graphical version of this launcher - the first game in a collection
will be started by default. You can select different game to run with BOXTRON_SIERRA_GAME
environment variable.

For example, to start King’s Quest 6 from
King’s Quest Collection:

BOXTRON_SIERRA_GAME=6 %command%

Check SierraLauncher.ini file in game’s installation dir to learn which number
corresponds to which game.

Known issues

As of March 2021 you might encounter one of the following bugs:

  • Some games experience random KeyUp events in fullscreen.
    It’s a DOSBox bug, use
    DOSBox Staging to avoid it.
  • Alt+Tab does not work in fullscreen. It’s a DOSBox bug, use
    DOSBox Staging to avoid it.
  • Modern game controllers might not work at all. It’s a DOSBox bug, use
    DOSBox Staging to avoid it.
  • Steam Overlay causes visual glitch.
    This was a DOSBox bug - use DOSBox 0.74-3 or
    DOSBox Staging to avoid it.