{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/OpenGMK/OpenGMK/blob/9e4282e6d19f4dd00961811840ddc3e11da6dd5a/gm8decompiler/README.md",
    "https://github.com/OpenGMK/OpenGMK/blob/9e4282e6d19f4dd00961811840ddc3e11da6dd5a/gm8decompiler/src/main.rs",
    "https://github.com/OpenGMK/OpenGMK/blob/9e4282e6d19f4dd00961811840ddc3e11da6dd5a/gm8decompiler/src/deobfuscate.rs",
    "https://github.com/OpenGMK/OpenGMK/blob/9e4282e6d19f4dd00961811840ddc3e11da6dd5a/gm8decompiler/Cargo.toml",
    "https://github.com/OpenGMK/OpenGMK/blob/9e4282e6d19f4dd00961811840ddc3e11da6dd5a/README.md",
    "https://github.com/OpenGMK/OpenGMK/blob/9e4282e6d19f4dd00961811840ddc3e11da6dd5a/rust-toolchain.toml",
    "https://github.com/OpenGMK/GM8Decompiler/blob/4cf52818a303e51154e7dc0ec473a22d8c24f21e/LICENCE.md",
    "https://github.com/OpenGMK/GM8Decompiler/releases/tag/v2.2.0"
  ],
  "category": "game-analysis",
  "description_en": "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.",
  "description_zh": "命令行工具，可把用 GameMaker 8.0 或 8.1 构建的游戏还原为可编辑的 .gmk 或 .gm81 项目文件。它读取已构建可执行文件中与运行器（runner）并存的 gamedata 部分，按游戏版本对应的项目格式写出其中的设置、精灵、声音、背景、路径、脚本、字体、时间线、对象、房间、扩展、附带文件以及 GML 代码。该工具基于 OpenGMK 项目的 gm8exe 库用 Rust 重写，取代了团队此前对 WastedMeerkat 的 gm81decompiler 的分支，现与重新实现 GameMaker 运行器的 GM8Emulator 一同在 OpenGMK 仓库中开发。",
  "entry_url": "https://awesomerea.org/resources/gm8decompiler/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/gm8decompiler/",
  "evidence_url": "https://github.com/OpenGMK/GM8Decompiler/blob/4cf52818a303e51154e7dc0ec473a22d8c24f21e/README.org",
  "group": "tools",
  "id": "gm8decompiler",
  "json_url": "https://awesomerea.org/resources/gm8decompiler/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/gm8decompiler/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/gm8decompiler/index.md",
  "name": "GM8Decompiler",
  "name_zh": "GM8Decompiler GameMaker 8 游戏反编译器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "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."
  ],
  "requirements_zh": [
    "审阅时最新版本为 v2.2.0，于 2024-02-12 发布，提供 i686 和 x86_64 的 Windows MSVC 构建。其标签指向 2022 年 1 月的一个提交，该提交使本仓库只剩 README 和许可证，因为开发已迁至 OpenGMK，而发布版本仍在本仓库提供。发布说明列出：Rust 从 1.59 升级到 1.76、修复由 gm82 写出的可执行文件的问题，以及支持 810 和 811 房间格式；OpenGMK 中的 gm8decompiler crate 同为 2.2.0 版，之后的提交只提高了 Rust 版本并更新依赖。",
    "从源码构建使用 OpenGMK 的 Cargo 工作区：连同子模块克隆后执行 cargo build --release，会同时构建 GM8Emulator。rust-toolchain.toml 将 Rust 固定为 1.77 以保留对 Windows 7 的支持；OpenGMK README 称 Windows 上只支持 MSVC 目标，并因发布版本很少更新而建议自行构建。反编译器 crate 没有测试，两个仓库在所审阅的提交中也都没有 CI 工作流。",
    "输入为使用者自行提供的 GameMaker 8.0 或 8.1 游戏可执行文件；两个仓库都不含任何游戏。用法为 gm8decompiler FILENAME：-o 指定输出文件，否则沿用输入路径并按检测到的版本使用 .gmk 或 .gm81 扩展名；-l 关闭数据完整性检查；-s 以单线程反编译以降低内存占用；-p 保留损坏的自定义 Execute Code 动作，而不将其转换为标准动作；-d 设置对经 Schreib's GM Obfuscator 处理的 GML 代码的去混淆，默认的 auto 模式会在资源名称为空时启用去混淆。",
    "README 称 Rust 版加载器比旧的 gm81decompiler 分支快十倍以上，也更安全、更全面，能读取更多游戏；这些是项目自述，项目未公布逐个游戏的兼容性列表或输出校验。依据 Cargo.toml 采用 GPL-2.0-only 许可，LICENCE.md 收录 GPL v2 全文。还原出的项目包含游戏自身的资源和代码，仍受游戏权利人的权利约束。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/OpenGMK/GM8Decompiler",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
