- C++ 93.3%
- CMake 1.9%
- Lua 1.9%
- C 1.6%
- Python 0.6%
- Other 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The trace test doesn't guard #1447 for Fireball, for the same reason Issue1447a didn't. With the bug back the fireball leaves no trail in turn based mode, but the trace also plays the impact, which emits particles the stopped game timer doesn't gate. So the check on the highest particle count over the whole trace still passes. The new test enters turn based mode from a new game, casts Fireball, and checks for particles while it's still in the air, with no impact on the tapes. The trace and its save are gone. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
| .claude | ||
| .devcontainer | ||
| .github | ||
| android | ||
| CMakeModules | ||
| distribution | ||
| resources | ||
| scripts | ||
| src | ||
| test | ||
| thirdparty | ||
| .clang-tidy | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .luarc.json | ||
| CMakeLists.txt | ||
| CMakeSettings.json | ||
| CPPLINT.cfg | ||
| Doxyfile | ||
| HACKING.md | ||
| LICENSE | ||
| README.md | ||
OpenEnroth
OpenEnroth is an open-source reimplementation of the Might & Magic VI-VIII game engine, allowing you to play the original games on modern platforms. It uses the original game data, so you will need a copy of the game to play.
Currently only MM7 is playable. MM6 and MM8 support is planned — check the milestones to see where we're at.
Supported platforms: Windows, Linux, macOS, and Android (experimental).
Download
Prebuilt binaries are available from our releases page.
Currently only nightly builds are available, which may have bugs. A stable release is in progress — see the v0.1 milestone.
Discord
Join our Discord to discuss, track progress, or get involved in development.
Getting Started
You will need two things: the OpenEnroth binary and the original Might and Magic VII game data.
Getting the game data
You can buy Might and Magic VII from GOG.com. Copies from other sources (e.g. an original retail disc) should also work.
At the very least, OpenEnroth requires the ANIMS, DATA, MUSIC and SOUNDS directories from the game data.
Non-GOG versions
Install or extract your copy of the game as normal.
GOG Version
Windows
On Windows, run the GOG installer to extract the game data to your computer.
Linux and macOS
The installer cannot be run directly on Linux and macOS, but you can use innoextract to extract its contents.
- On macOS, install Homebrew if you don't have it already and run
brew install innoextract - On Linux, the exact command depends on your distribution:
- Ubuntu or Debian-based (including Linux Mint, Pop!OS, etc):
sudo apt install -y innoextract - Fedora or other RedHat-based (except "immutable" distributions like Bazzite):
sudo dnf install -y innoextract - For other systems, Repology lists the package name for most distributions.
- Ubuntu or Debian-based (including Linux Mint, Pop!OS, etc):
Once you have innoextract, run:
innoextract -e -d <new game data directory> <path to GOG installer .exe>
Game Assets Path Override
You can set an environment variable called OPENENROTH_MM7_PATH to point to the location of the game data.
If set, OpenEnroth will look for game assets only in that location. You may want to add this to your shell
profile (e.g. ~/.profile on Linux or ~/.zshrc on Mac):
export OPENENROTH_MM7_PATH="<path-to-mm7-game-assets>"
Installing OpenEnroth
Windows
- Download
OpenEnroth_nightly_Windows_x86_64_RelWithDebInfo.zip(x86for 32-bit Windows) from the releases page. - Unzip
OpenEnroth.exeandOpenEnroth.pdbinto the directory containing the game data. - Run
OpenEnroth.exe.
macOS
- Move the game data to
~/Library/Application Support/OpenEnroth, creating this directory if needed. - Download
OpenEnroth_nightly_macOS_arm64_RelWithDebInfo.dmg(x86_64for Intel Macs) from the releases page, open it and dragOpenEnroth.appintoApplications. - Run
xattr -rc /Applications/OpenEnroth.app. This clears the quarantine flag — macOS will refuse to launch unsigned binaries without this step. - Run
OpenEnroth.app.
Linux
OpenEnroth ships for Linux as a Flatpak package.
- Check for Flatpak support:
- Run
flatpak --version. If you get a version number, you're ready; otherwise visit https://flatpak.org/setup/ for setup instructions.
- Run
- Install OpenEnroth:
- Download the
OpenEnroth_nightly_Linux_x86_64_RelWithDebInfo.flatpakpackage from the releases page. - Run
flatpak install --user /path/to/OpenEnroth_nightly_Linux_x86_64_RelWithDebInfo.flatpak. - Create
~/.var/app/io.github.openenroth.openenroth/data/mm7/data/ - Move the game data (at least
ANIMS,DATA,MUSICandSOUNDS) into this new directory.
- Download the
- Run OpenEnroth from your application menu or using
flatpak run io.github.openenroth.openenroth.
Android (Experimental)
Android is not actively tested by the dev team — expect issues and be prepared to troubleshoot.
- Download
OpenEnroth_nightly_Android_universal_RelWithDebInfo.apkfrom the releases page. - Install the APK on your device (you will need to allow installation from unknown sources in your device settings).
- Copy the game data (
ANIMS,DATA,MUSICandSOUNDS) to/sdcard/Android/data/io.github.openenroth.openenroth/files/on your device.
Development
See HACKING.md for build instructions, code style guidelines, and contribution guidelines.




