Skip to content
A project to statically recompile following games to create Windows or Linux (x86 or arm) versions of the games - Albion, X-Com: UFO Defense (UFO: Enemy Unknown), X-Com: Terror from the Deep, Warcraft: Orcs & Humans
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A project to statically recompile DOS game executables to create Windows or Linux (x86 or arm) versions of the games.

Following games are supported:

The source code is released with MIT license (except libraries, etc. by other people, which have their own license). For the purpose of using the code in GPL projects, the source code is also released with GPLv2 or later and LGPLv2.1 or later.

The projects consists of following subprojects (read the readmes in subproject directories for more information):

  • SR
    • The static recompiler itself.
    • It takes the original executable as an input together with information about the original executable and produces x86 or arm assembler version of the executable.
    • The generated x86/arm assembler version of the executable is not part of the project.
  • SR-games
    • The information about the original executables.
  • games
    • Game specific source code.
    • Together with the generated assembler versions of the executables, these files can be used to build Windows or Linux (x86 or arm) versions of the games.
    • Uses plugins to play (or play better) music.
  • midi-libs
    • Libraries that are used by plugins in midi-plugins subproject to play MIDI music.
  • midi-plugins
    • Plugins used by the games to play MIDI (and other types) music.
  • pycfg
    • A configuration utility that can be used on Linux (sorry Windows users) to change settings in the configuration files (without editing the files).

Some notes:

  • The project supports creating 32-bit, not 64-bit, Windows or Linux versions of the games.
  • The generated arm version is little-endian, not big-endian.
  • The generated arm version supports softfp and hardfp calling conventions.
You can’t perform that action at this time.