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, Septerra Core: Legacy of the Creator
C Assembly Python D C++ Shell
Branch: master
Clone or download

README.md

SR

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

Following DOS games are supported:

Following Windows 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 (for DOS executables) itself.
    • It takes the original executable as an input together with information about the original executable and produces x86 / arm / llasm assembler version of the executable.
    • The generated x86/arm/llasm assembler version of the executable is not part of the project.
  • SRW
    • The static recompiler (for Windows executables) itself.
    • It takes the original executable as an input together with information about the original executable and produces x86 / llasm assembler version of the executable.
    • The generated x86/llasm assembler version of the executable is not part of the project.
  • llasm
    • Program which converts .llasm file to LLVM language-independent intermediate representation, which can be compiled to x86 / arm code.
  • SR-games
    • The information about the original DOS executables.
  • SRW-games
    • The information about the original Windows 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 (in DOS games).
  • midi-libs
    • Libraries that are used by plugins in midi-plugins subproject to play MIDI music.
  • midi-plugins
    • Plugins used by the DOS 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.