魔改红魔乡 th06-plus 加判定点和无限命
th06-plus 是《东方红魔乡》的魔改版 fork 自 GensokyoClub 的 th06。原项目把红魔乡 1.02h 一行行逆向重建成能编译的源码 我在这个地基上加了几处自己想要的功能。fork 别人的 先说清楚。
逆向的思路是拿原版 exe 当参照 用 Ghidra 反编译 再用 objdiff 一个函数一个函数对 直到重编译出的机器码跟原版对齐。够考古的 也是我一直对二进制还原上头的原因。
源码在手 加料就方便。修了帧率 bug 加了判定点显示 按住 Shift 自机中心画个旋转指示器 抠身位用。无限命 死了自动补 纯刷弹幕看。中文化走 GB2312 配黑体 汉化的 th06c_*.DAT 来自 thdog.moe 的整数作 不是我翻的。默认窗口化启动。
工具链得穿越回 2002 编译器 VS2002 图形库 DirectX 8.0 都从 Web Archive 捞。Linux/macOS 靠 wine 跑 macOS 更推荐 CrossOver 能躲开 CL.EXE 的堆问题。
跑起来不复杂 原版 exe 复制成 resources/game.exe 当参照 然后
python scripts/create_devenv.py scripts/dls scripts/prefix
python3 ./scripts/build.py
create_devenv.py 自动拉编译器和库 连 torrent 都支持 build.py 生成 ninja 脚本再编。要分发包就 release.py。
想参与逆向就去 objdiff 挑函数啃 config/stubbed.csv 里都是 stub 掉等实现的。我这次没深到重写函数 主要搭环境加功能 但走完这套 decomp 流程 就懂一个二进制怎么被拆开又拼回去了。