thtk:fork 一套东方游戏数据逆向工具
Touhou Toolkit
thtk(Touhou Toolkit)是 thpatch 那帮做东方汉化的人写的一套 C 命令行工具,专门拆东方系列游戏的私有数据格式。这里是我 fork 过来的实验副本,用来学他们怎么写逆向工具,不跟上游同步,别当上游用。
东方每一作的档案、动画、剧本、关卡都塞在自家的二进制格式里,thtk 硬是逆出来做成工具,从早期一路支持到 20 代。它不是一把大而全的瑞士刀,而是几个各管一摊的小工具:
thdat管档案 DAT,x解包c打包,支持的作数最全thanm管动画和精灵图 ANM,x解l列内容thecl管 ECL 脚本,d反编译c编回去,弹幕逻辑都在这thmsg管对话文本 MSG,ddumpccompile,汉化最先动它thstd管关卡布局 STD,dump/compile 一对
思路很统一:每种私有格式配一个工具,先解成人能读能改的东西,改完再编回游戏认的二进制。上手从 thdat x 拆某一作的 DAT 开始,往里一层层剥就行。
真正有意思的在源码。thecl、thmsg、thstd 用 Yacc/Lex 写了词法和语法,dump 出来那份文本其实是一门小 DSL,compile 就是把它解析回字节。这套二进制和可读脚本的双向管线很干净,格式版本怎么表驱动区分、跨版本兼容怎么留口子、CMake 怎么把一堆 extlib 串起来,照着读能搞懂不少以前糊弄过去的地方。
提醒一句:这仓库只在本地折腾,游戏的私有二进制、带路径凭据的东西都不往里 commit。工具本身是公开的,但拆出来的游戏数据是人家版权物,边界自己守好。授权看 thpatch/thtk 上游,我没动那块。