重制 PC-98 东方项目 ReC98 宣布退休:最后一个特性把人和项目一起压垮
来源:rec98.nmlgc.net — 2026-10-26
📋 概述
长期逆向重写 PC-98 时代东方 Project 游戏引擎的 ReC98 项目发布结项长文,作者宣布退休。这一篇记录的是压垮他的那个特性:把《东方绀珠传》的引擎与后端代码抽成共享移植库、拆分游戏逻辑库、并做出可验证 replay 的 CLI。过程中他意外发现道具有负分——角色掉命后 Y 坐标被设为 659,存在 127 帧的窗口让得分公式算出负数,而游戏并没有把它夹到 0。文章其余部分是 MSVC 的 sprintf 本地化膨胀、绕过 C++ 异常处理、以及共享库在 Tup 构建下的链接性能取舍。
🔑 核心要点
- 负分道具是清理历史代码警告时偶然发现的,原代码用 %u 打印实际可能为负的值。
- 线性实现的道具拾取公式在角色死亡后的 127 帧内会输出负值,道具也在这段窗口内仍可被收集。
- 为提升构建性能,作者不得不在 Linux 上模拟 Windows 的 import .lib 机制,避免每次改动都重链接所有依赖。
- 文章标题即是结论:这个特性没能完成,作者与项目一起退休。
💡 金句
Welcome to the one feature that broke me, and the whole project along with it…
👍 0
👎 0
← 返回 Hacker News 首页