案例
MinecraftLCE:处于早期阶段的 Minecraft: Nintendo Switch Edition 反编译
将 Legacy Console Edition 系列中的 Minecraft: Nintendo Switch Edition v1.0.17 反编译为 C++,借助打过补丁的 Clang 4.0.1 和 open-ead 的 Switch 反编译工具,与原可执行文件逐函数比较。README 解释了选用 Switch 版的原因:其 Clang 工具链可以匹配且带有类型信息,函数名则从带符号的 Wii U Edition 移植而来。所审提交时函数列表标记约 11% 的函数已反编译,其中大多已匹配;产物无法运行游戏。
使用条件与局限
- README 称这是 Minecraft: Nintendo Switch Edition v1.0.17 的进行中反编译,无法用来游玩游戏。所审提交时 data/mcswitch_functions.csv 列出 57,972 个函数:6,279 个已匹配,224 个未匹配,51,469 个尚未反编译,即工作流写入 GitHub 简介的 11.217%。已匹配的函数逐个核对,不存在整个可执行文件的重建。
- 需从自己的 Minecraft: Nintendo Switch Edition v1.0.17 更新中自备 main NSO 可执行文件;Wii U Edition 的 Minecraft.Client.rpx(Patch 35,v560)仅推荐用于移植符号。README 称这些可执行文件永远不会放入仓库,也不包含游戏素材。
- 文档以 Linux 或 WSL 为准(也面向 macOS):需要 Python 3.6 及以上、Ninja、CMake 3.13 及以上、ccache、llvm-objdump、libncurses5、Rust 工具链和所列 Python 模块。tools/setup.py 会转换可执行文件,从 LLVM 发布页下载 Clang 4.0.1 并应用仓库中的 libc++ 补丁;子模块提供 open-ead 的 nx-decomp-tools、nnheaders、musl 以及 stb 图像库,lib/ 内置 libpng 和 zlib。
- tools/check 将编译出的函数与原程序比较,tools/common/progress.py 汇总函数列表。CI 进行代码检查、在没有游戏文件的情况下编译项目,并按仓库中的函数列表统计并发布进度,因此匹配状态为项目报告;本合集未构建或运行任何内容。
- 仓库没有许可证文件,GitHub 也未检测到许可证;Minecraft 归 Microsoft 和 Mojang 所有,内置的库各有许可证。README 称不能使用 Microsoft 授权的 Java Edition 官方映射,并提到研究过程不属于净室方式的项目曾被下架。所审来源未确立 AI 或 REA 的使用。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- docs/BUILDING.md GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- docs/CONTRIBUTING.md GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- data/mcswitch_functions.csv GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- tools/setup.py GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- tools/config.toml GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- .gitmodules GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- .github/workflows/test-compile.yml GitHub · GRAnimated/MinecraftLCE · 修订 959e150
- .github/workflows/update-progress.yml GitHub · GRAnimated/MinecraftLCE · 修订 959e150