/SR

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, Battle Isle 3: Shadow of the Emperor

Primary LanguageC

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 readme files 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 native 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.
  • midi-plugins
    • Plugins used by the games to play MIDI (and other types) music.
  • scaler-plugins
    • Plugins used by the DOS games to enlarge/enhance the displayed image.
  • pycfg
    • A configuration utility that can be used on Linux (sorry Windows users) to change settings in the configuration files (without editing the files).
  • SR64-loader
    • Loader for 64-bit versions.

Some notes:

  • The project supports creating 32-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.
  • Creating 64-bit versions is experimental.
    • Only Linux (x64, arm64) versions of Albion, Septerra Core, X-COM 1,2 and Warcraft are working at the moment.
    • 64-bit versions require a loader.