Static Recompile - Le Bottin des Jeux Linux

Static Recompile

🗃️ Specifications

📰 Title: Static Recompile 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Emulation 🚦 Status: 04. Released (status)
🏷️ Category: Emulation ➤ Engine ➤ MICROSOFT 🌍️ Browser version:
🔖 Tags: Emulator; Binary translation; MICROSOFT; Multi-platform 📦️ Package Name:
🐣️ Approx. start: 2016-10-09 📦️ Arch package:
🐓️ Latest: 2023-03-26 📦️ RPM package:
📍️ Version: Latest: Battle Isle 3 v1.0.1 / Dev: 3767c52 📦️ Deb package:
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: MIT | GPL-2+ | LGPL-2.1+ 📦️ AppImage package:
🏝️ Perspective: Third & First person 📦️ Snap package:
👁️ Visual: 2D & 3D ⚙️ Generic binary: ✓
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 👫️ Contrib.: goupildb
🎰️ ID: 16311 🐛️ Created: 2023-04-02
🐜️ Updated: 2023-04-02

📖️ Summary

[en]: A libre and multi-platform tool for binary translation of DOS and Windows executables to various platforms (Windows, Linux x86, Linux x64, arm64). For the supported platforms and games, it produces native code and eventually allows to improve the MIDI music soundtrack (MIDI plugin). The tool is composed of several modules starting from the initial executable to produce the assembler code (or llasm) used to build the final executable for the target platform. For the moment (April-2023) 4 DOS games and 2 Windows games are supported including 1 (Septerra Core) on Linux x64. [fr]: Un outil libre et multi-plateforme de recompilation statique d'exécutables DOS et Windows vers divers plateformes (Windows, Linux x86, Linux x64, arm64). Pour les plateformes et jeux supportés, il produit du code natif et permet éventuellement d'améliorer la bande son musicale MIDI (plugin MIDI). L'outil est composé de plusieurs modules partant de l'exécutable initial pour produire du code assembleur (ou llasm) utilisé pour construire l'exécutable final pour la plateforme cible. Pour l'instant (Avril-2023) 4 jeux DOS et 2 jeux Windows sont supportés dont 1 (Septerra Core) sur Linux x64.

🚦 Entry status

💡 Lights on: 🦺️ Work in progress:
📰 What's new?: 💥️ New 💥️ New version published (to be updated):
🎨️ Significant improvement: 🚧️ Some work remains to be done:
🕳️ Not used2: 👔️ Already shown:

🎥️ Videos

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t(202xxx) ts(202xxx) gd(202xxx) gu(202xxx) id(202xxx) r(202xxx) lp(202xxx) ht(202xxx) g(202xxx) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

💰 Commercial: (empty)

🍩️ Resources
(empty):

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

🐘 Social
Devs (Static Recompile Team 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (M-HT 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Chat] [Forums] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikipedia (Binary translation) [fr] [en] [de]]
[HOLaRSE [de]]

📦️ Misc. repositories
[Repology] [pkgs.org] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage (author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

🕊️ Source of this Entry: [HOLaRSE [de](202304)]

🐘 Social Networking Update (on Mastodon)

🛠️ Title: Static Recompile
🦊️ What's: A libre tool for binary translation of DOS and Windows executables to various platforms
🏡️ -
🐣️ https://github.com/M-HT/SR
🔖 #LinuxEmulation #BinaryTranslation
📦️ #Libre
📖 Our entry: http://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: Battle Isle 3 v1.0.1
⚗️ New features 💎
📌️ Changes: https://github.com/M-HT/SR/releases
🐘 From: https://mastodon.social/@holarse/110124074335991283

🕶️ No engine logo for now, I just took a screenshot of the title to display something :)

Static Recompile is libre and multi-platform tool for binary translation of DOS and Windows executables to various platforms (Windows, Linux x86, Linux x64, arm64). For the supported platforms and games, it produces native code and eventually allows to improve the MIDI music soundtrack (MIDI plugin). The tool is composed of several modules starting from the initial executable to produce the assembler code (or llasm) used to build the final executable for the target platform. For the moment (April-2023) 4 DOS games and 2 Windows games are supported including 1 (Septerra Core) on Linux x64.

📕 Description [en]

📕🐧"A libre tool for binary translation of DOS and Windows executables to various platforms"🐧📕

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:

☑ Albion
☑ X-Com: UFO Defense (UFO: Enemy Unknown)
☑ X-Com: Terror from the Deep
☑ Warcraft: Orcs & Humans

Following Windows games are supported:

☑ Septerra Core: Legacy of the Creator
☑ Battle Isle 3: Shadow of the Emperor (Battle Isle 2220: Shadow of the Emperor)

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.

● 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.

● 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) version of Septerra Core is working at the moment.
⚬ 64-bit versions require a loader.

📕 Description [fr]

Un outil libre de recompilation statique d'exécutables DOS et Windows vers divers plateformes, par la Static Recompile Team, initié par M-HT.
En C/Assembleur/C++.

Static Recompile est un outil libre et multi-plateforme de recompilation statique d'exécutables DOS et Windows vers divers plateformes (Windows, Linux x86, Linux x64, arm64). Pour les plateformes et jeux supportés, il produit du code natif et permet éventuellement d'améliorer la bande son musicale MIDI (plugin MIDI). L'outil est composé de plusieurs modules partant de l'exécutable initial pour produire du code assembleur (ou llasm) utilisé pour construire l'exécutable final pour la plateforme cible. Pour l'instant (Avril-2023) 4 jeux DOS et 2 jeux Windows sont supportés dont 1 (Septerra Core) sur Linux x64.


Un projet de recompilation statique des exécutables de jeux DOS et Windows pour créer des versions Windows ou Linux (x86 ou arm) des jeux.

Les jeux DOS suivants sont supportés :

☑ Albion
☑ X-Com : UFO Defense (UFO : Enemy Unknown)
☑ X-Com : Terror from the Deep (Terreur des profondeurs)
☑ Warcraft : Orcs & Humans

Les jeux Windows suivants sont pris en charge :

☑ Septerra Core : Legacy of the Creator
☑ Battle Isle 3 : Shadow of the Emperor (Battle Isle 2220 : Shadow of the Emperor)

Le code source est publié sous licence MIT (à l'exception des bibliothèques, etc. créées par d'autres personnes, qui ont leur propre licence). Dans le but d'utiliser le code dans des projets GPL, le code source est également publié sous GPLv2 ou plus récent et LGPLv2.1 ou plus récent.

Le projet se compose des sous-projets suivants (lire les readmes dans les répertoires des sous-projets pour plus d'informations) :

● SR
• Le recompilateur statique (pour les exécutables DOS) lui-même.
• Il prend l'exécutable original en entrée ainsi que des informations sur l'exécutable original et produit une version assembleur x86 / arm / llasm de l'exécutable.
• La version assembleur x86 / arm / llasm générée de l'exécutable ne fait pas partie du projet.

● SRW
• Le recompilateur statique (pour les exécutables Windows) lui-même.
• Il prend l'exécutable original comme entrée ainsi que des informations sur l'exécutable original et produit la version assembleur x86 / llasm de l'exécutable.
• La version assembleur x86/llasm générée de l'exécutable ne fait pas partie du projet.

● llasm
• Programme qui convertit le fichier .llasm en représentation intermédiaire indépendante du langage LLVM, qui peut être compilée en code x86 / arm.

● SR-games
• Les informations sur les exécutables DOS originaux.

● SRW-games
• Les informations sur les exécutables Windows originaux.

● jeux
• Code source spécifique au jeu.
• Avec les versions assembleur générées des exécutables, ces fichiers peuvent être utilisés pour construire des versions Windows ou Linux (x86 ou arm) des jeux.
• Utilise des plugins pour jouer (ou mieux jouer) de la musique.

● midi-libs
• Bibliothèques utilisées par les plugins du sous-projet midi-plugins pour jouer de la musique MIDI.

● midi-plugins
• Plugins utilisés par les jeux pour jouer de la musique MIDI (et d'autres types).

● scaler-plugins
• Plugins utilisés par les jeux DOS pour agrandir/améliorer l'image affichée.

● pycfg
• Utilitaire de configuration utilisable sous Linux (désolé pour les utilisateurs de Windows) pour modifier les paramètres des fichiers de configuration (sans éditer les fichiers).

● SR64-loader
• Chargeur pour les versions 64 bits.

Quelques remarques :

• Le projet permet de créer des versions 32 bits, Windows ou Linux des jeux.
• La version arm générée est little-endian, et non big-endian (NdT: ordre de lecture des octets).
• La version générée supporte les conventions d'appel softfp et hardfp.
• La création de versions 64 bits est expérimentale.
⚬ Seule la version Linux (x64, arm64) de Septerra Core fonctionne pour le moment.
⚬ Les versions 64 bits nécessitent un chargeur.