Skip to content
Steam Play compatibility tool to run DOS games using native Linux DOSBox
Python Makefile Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Create issue template for compatibility reports May 27, 2019
contrib Update version string Jan 17, 2020
preconfig Add MIDI setup for King's Table Aug 30, 2019
scripts Update copyright year Jan 14, 2020
tests Update copyright year Jan 14, 2020
.gitignore Simplify version string Oct 18, 2019
.gitlab-ci.yml Update tarball names in GitLab CI Jul 29, 2019
.pylint Handle imgmount commands with multiple paths Jan 14, 2020
.style.yapf Update yapf style to be compatible with 0.28 and 0.27 Jul 12, 2019
.travis.yml Log pylint version Sep 25, 2019
CODE_OF_CONDUCT.md Add COC Aug 23, 2019
CONTRIBUTING.md Update relative links in markdown files Oct 18, 2019
LICENSE Change license to GPL Jun 7, 2019
Makefile Re-create .vdf file during every make Oct 20, 2019
PACKAGING.md Update version string Oct 20, 2019
README.md Update tarball URL Jan 17, 2020
compatibilitytool.template Update install/uninstall targets in Makefile Sep 25, 2019
confgen.py Remove hashbang line from non-executable modules Jan 14, 2020
cuescanner.py Remove hashbang line from non-executable modules Jan 14, 2020
fakescripteval.py Remove hashbang line from non-executable modules Jan 14, 2020
fakesierralauncher.py Remove hashbang line from non-executable modules Jan 14, 2020
install-gog-game Update copyright year Jan 14, 2020
log.py Remove hashbang line from non-executable modules Jan 14, 2020
midi.py Remove hashbang line from non-executable modules Jan 14, 2020
preconfig.py Remove hashbang line from non-executable modules Jan 14, 2020
requirements.txt Update code style to match yapf Jun 7, 2019
run-dosbox Update copyright year Jan 14, 2020
settings.py Log paths searched for sf2 Jan 17, 2020
toolbox.py Remove hashbang line from non-executable modules Jan 14, 2020
toolmanifest.vdf run-dosbox: Finalize rename Jun 7, 2019
tweaks.py Remove hashbang line from non-executable modules Jan 14, 2020
version.py Update version string Jan 17, 2020
winpathlib.py Remove hashbang line from non-executable modules Jan 14, 2020
xdg.py Remove hashbang line from non-executable modules Jan 14, 2020
xlib.py Remove hashbang line from non-executable modules Jan 14, 2020

README.md

Boxtron

Build Status Luxtorpeda project Discord Say Thanks!

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

This is a sister project of Luxtorpeda and Roberta.

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)

Fedora

You can use Copr repo:

$ sudo dnf copr enable pbo/boxtron 
$ sudo dnf install boxtron
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 (>= 0.74), inotify-tools, TiMidity++, and a soundfont. Optionally, you can use FluidSynth as well.

Fedora
$ sudo dnf install dosbox 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 select "Force the use of a specific Steam Play compatibility tool" and select "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 January 2020 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.
  • Mouse cursor issues in Gnome 3.30. This was a Gnome issue, fixed in 3.32.
You can’t perform that action at this time.