跳转到内容

thcrap基本补丁制作教程,从新建文件夹到验收成果全流程教学

发布于: 2026/02/25 19:38:41

内容概要

制作一个thcrap补丁,首先需要建立一个补丁仓库,设置仓库信息,再在仓库中建立一个或数个补丁包,为每个补丁包添加描述,添加资源文件。使用补丁时,需要先使用thcrap创建快捷方式,再通过快捷方式启动游戏并应用补丁。

本文介绍了如何制作一个简单的thcrap补丁。

参见thpatch上的官方教程

使用thcrap补丁的前提...当然是安装thcrap啦...

创建仓库

适用于thcrap的补丁必须包含在一个补丁仓库中,所以创建补丁之前必须首先创建仓库。

在thcrap根目录下的repos文件夹内新建一个my-repo文件夹,它就是你的补丁仓库了。有条件的话可以把它上传到GitHub上。

注意要把my-repo替换为你给你的仓库取的名字(同时也是仓库的id),选定之后轻易不能更改。

VSCode配置

由于thcrap补丁内的所有*.js文件实际上都是json文件而不是JavaScript,编辑它们时绝大多数编辑器都会报错。

如果你和我一样使用VSCode的话,可以在项目根目录下新建.vscode文件夹,向其中添加settings.json文件并写入以下内容:

json
{
    "files.associations": {
        "*.js": "json"
    }
}

这会使VSCode在项目级将所有*.js文件视为json文件,并使用json语法进行解析。

仓库配置

补丁仓库配置

在仓库根目录内创建repo.js文件,描述仓库的基本信息。

json
{
    "contact": "email: xxx@xxx.com, GitHub: xxx, weibo: xxx", // 联系方式:随便写,邮箱、社交账号啥的都可以
    "id": "my-repo", // 仓库ID:就是你的仓库名称,与仓库目录名相同
    "title": "USERNAME's Touhou Patch Repository", // 仓库描述
    "patches": { // 仓库内的补丁列表
        "ex-mod": "EX means Example." // 一个补丁:键值对,左侧的键为补丁id,右侧的值为补丁描述
    },
    "servers": [ // 仓库服务器列表:如果你把仓库上传到了GitHub,就填GitHub仓库地址,没有的话也可以不填
        "https://raw.githubusercontent.com/USERNAME/my-repo/main/" // 没有服务器的话请删除此行
    ]
}

Git配置

根目录内添加.gitattributes.gitignore文件。(不使用Git的话可以跳过)

可以参考我的配置:.gitattributes.gitignore

官方也提供了.gitattributes文件,但其并不包含*.jpg的配置,导致上传jpg图像时可能会产生文件损坏。Git把jpg当成了文本文件,进行了行尾转换...

忽略补丁内文件

根目录内创建thcrap_ignore.txt文件,写入以下内容:

text
*.psd
*.xcf
*.kra
*.afphoto
*.aseprite

参考相关代码,这应该是让thcrap在更新补丁文件时忽略这些文件。

创建补丁

假如你给补丁命名为ex-mod(同样地,它也会同时作为补丁的id),那就在仓库根目录内新建一个ex-mod文件夹,作为这个补丁的目录。

注册补丁

在仓库的配置文件内添加相应的键值对记录,注册补丁的id和描述文本。

json
{
    ...
    "patches": {
        "ex-mod": "EX means Example."
    },
    ...
}

补丁配置

在补丁目录内新建patch.js文件,写入以下内容:

json
{
    "id": "ex-mod", // 补丁ID:同时也是补丁名称,与补丁目录名相同
    "title": "Example Mod", // 补丁描述:与仓库配置文件内注册的描述不同,这个描述并不会显示在补丁列表中
    "servers": [ // 补丁服务器列表:同仓库服务器列表,有的话就填,没有的话也可以不填
        "https://raw.githubusercontent.com/USERNAME/my-repo/main/ex-mod/" // 没有服务器的话请删除此行
    ],
    "dependencies": [ // 依赖列表:运行你的补丁所需要的依赖项
        "nmlgc/base_tsa", // 东方官作基础支持包:必要依赖项
        "nmlgc/base_tasofro" // 黄昏边境基础支持包:对于黄昏作,必要依赖项
    ]
}

一些thpatch官方提供的基础包:thcrap-tsa

编辑补丁文件

至此仓库和补丁的基本配置已经完成,接下来只要直接往补丁目录里扔文件就行了。

游戏版本目录

现在要明确的一点就是,一个补丁是可以适用于多部作品的。比如你要修改红魔乡的游戏文件,那就在补丁目录内新建th06文件夹,然后把修改后的文件扔进去。如果还要修改妖妖梦的文件,那就再新建一个th07文件夹,再把文件扔进去。当thcrap将这个补丁应用于红魔乡时,会自动选择th06目录内的文件,应用于妖妖梦时则会自动选择th07目录内的文件。

具体可用的游戏版本文件夹可参考基础支持包的文件列表

修改游戏文件

把修改后的游戏资源文件扔到游戏版本目录后,运行游戏时thcrap会自动使用它们替换游戏原本的文件。

各部作品的可用资源文件以它们各自解包后得到的文件为准。然而,thcrap也额外定义了一些其独有的资源文件,这些资源文件是原版游戏所没有的,但是却可以方便补丁的开发。

基本上可能出现的文件类型有这些:

文件类型说明
ANM PNG JPG图像及动画
WAV MID音频
MSG对话文本
END结局文本
ECL弹幕控制代码
SHT自机数据
FMT POSBGM元数据
STD3D背景
RPY演示回放

相关资料:
THBWiki
Touhou Wiki
pytouhou

二进制修改

我对这一部分目前并没有任何了解,但是在浏览文件时,看到基础支持包内根目录下有很多以游戏版本命名的json文件(比如这个),其中出现了大量的binhacks字段,那么很明显thcrap应该是支持二进制修改的。如果有兴趣,有时间的话,可能会研究一下。

完成示例补丁

是时候实践一下了。就以修改红魔乡的图像资源为例,从解包后的文件中随便挑两个,随便改改,再扔到my-repo/ex-mod/th06文件夹里,这个示例补丁就算完成了。

title00

title03

使用补丁

使用thcrap的补丁也很简单。

正确放置补丁

首先要保证补丁的仓库文件夹(一定要注意是整个仓库的文件夹而不是单独的补丁文件夹)在thcrap根目录下的repos目录内。不管是你自己制作的补丁仓库,还是下载的别人的补丁仓库,只有这样,补丁才能被thcrap正确识别。

配置thcrap

  1. 启动thcrap,点击Next。 thcrap-ex-mod-1
  2. ①选择Simplified Chinese。
    ②点击All patches。 thcrap-ex-mod-2
  3. 在Available Patches列表中找到你的仓库和补丁。 thcrap-ex-mod-3
  4. 将鼠标移动到你的补丁的id上,显示出一个向右的小箭头,点击这个箭头。 thcrap-ex-mod-4
  5. 点击Next。 thcrap-ex-mod-5
  6. ①选择你要使用补丁的游戏版本。
    ②点击Next。 thcrap-ex-mod-6
  7. ①选择你要在哪些地方创建快捷方式。
    ②点击Next。 thcrap-ex-mod-7
  8. Congratulations! You did it! thcrap-ex-mod-8

验收成果

启动你刚刚创建的快捷方式,查看补丁效果。

红魔乡示例补丁