Tool

GM8Decompiler

Command-line tool that turns games built with GameMaker 8.0 or 8.1 back into editable .gmk or .gm81 project files. It reads the gamedata section that a built executable carries next to the runner and writes its settings, sprites, sounds, backgrounds, paths, scripts, fonts, timelines, objects, rooms, extensions, included files and GML code in the project format matching the game's version. A Rust rewrite on the OpenGMK project's gm8exe library that replaced the team's fork of WastedMeerkat's gm81decompiler, it is now developed in the OpenGMK repository alongside the GM8Emulator runner reimplementation.

Targets
Game
Category
Game analysis tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • Latest release at review: v2.2.0, published 2024-02-12 with i686 and x86_64 Windows MSVC builds. Its tag points at the January 2022 commit that leaves only the README and licence in this repository, because development moved to OpenGMK while releases are still published here. The release notes list a Rust update from 1.59 to 1.76, a fix for executables written by gm82, and support for the 810 and 811 room formats; the OpenGMK gm8decompiler crate is also at 2.2.0, and its later commits only raise the Rust version and update dependencies.
  • Source builds use the OpenGMK Cargo workspace, cloned with submodules and built with cargo build --release, which also builds GM8Emulator. rust-toolchain.toml pins Rust 1.77 to keep Windows 7 support, and the OpenGMK README says only MSVC targets are supported on Windows and, because releases are rarely updated, recommends building it yourself. The decompiler crate has no tests, and neither repository has CI workflows at the reviewed commits.
  • Input is a GameMaker 8.0 or 8.1 game executable the user supplies; neither repository includes games. Usage is gm8decompiler FILENAME: -o names the output, which otherwise is the input path with the .gmk or .gm81 extension for the detected version; -l disables data-integrity checks; -s decompiles on one thread to lower memory use; -p keeps broken custom Execute Code actions instead of converting them to standard ones; and -d sets deobfuscation of GML code processed by Schreib's GM Obfuscator, which the default auto mode enables when assets have empty names.
  • The README reports the Rust loader as over ten times faster than the old gm81decompiler fork, safer, more thorough and able to read more games; these are project claims, and no per-game compatibility list or output check is published. GPL-2.0-only per Cargo.toml, with the GPL v2 text in LICENCE.md. Recovered projects contain the game's own assets and code, which remain subject to the rights of the game's owner. Nothing was built or run and no games were decompiled; the reviewed sources establish no REA connection.

About this entry

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.org GitHub · OpenGMK/GM8Decompiler · Revision 4cf5281
  2. gm8decompiler/README.md GitHub · OpenGMK/OpenGMK · Revision 9e4282e
  3. gm8decompiler/src/main.rs GitHub · OpenGMK/OpenGMK · Revision 9e4282e
  4. gm8decompiler/src/deobfuscate.rs GitHub · OpenGMK/OpenGMK · Revision 9e4282e
  5. gm8decompiler/Cargo.toml GitHub · OpenGMK/OpenGMK · Revision 9e4282e
  6. README.md GitHub · OpenGMK/OpenGMK · Revision 9e4282e
  7. rust-toolchain.toml GitHub · OpenGMK/OpenGMK · Revision 9e4282e
  8. LICENCE.md GitHub · OpenGMK/GM8Decompiler · Revision 4cf5281
  9. https://github.com/OpenGMK/GM8Decompiler/releases/tag/v2.2.0

More in Games

All 252 entries in Games