thcrap

thcrap

东方Project游戏开源翻译与补丁框架

thcrap是为东方Project游戏设计的开源补丁框架,支持实时内存补丁、多语言翻译和自动更新。框架使用JSON配置,实现补丁堆叠和Unicode文件名支持,并集成Steam功能。它包含主补丁引擎、图形配置界面和更新模块等组件,为玩家提供灵活的游戏修改工具。thcrap易于扩展和定制,适用于各类东方Project游戏补丁开发。

Touhou Project补丁框架DLL注入JSON配置游戏翻译Github开源项目

东方Project社区自动补丁系统

加入 http://discord.thpatch.net 的聊天 Open Collective 上的支持者 构建状态 GitHub 发布

描述

简而言之,这是一个几乎通用的、易于扩展和定制的框架,用于在内存中修补Windows应用程序,专门用于翻译日语游戏。

它主要是为了促进东方Project游戏在东方补丁中心上的自动更新和多语言翻译而开发的,但理论上可以用于这些游戏的任何其他补丁,而无需通过该网站。

基础引擎的主要特点

  • 简单地将主引擎和插件DLL注入到目标进程中。

  • 完全传播到子进程。这允许与其他同样使用DLL注入的第三方补丁一起使用thcrap。(是的,这主要是为了vpatch而开发的。)

  • 使用JSON作为所有补丁配置数据,使补丁本身在设计上开源。通过递归合并JSON对象,这给我们带来了...

  • 补丁堆叠 - 同时应用任意数量的补丁,按优先级列表排序。通过运行配置支持基于通配符的某些补丁中文件的黑名单。

  • 自动为使用Win32 ANSI函数的目标进程添加透明的Unicode文件名支持,无需使用AppLocale等程序。

  • 补丁可以支持单个程序的多个构建和版本,通过SHA-256哈希和.EXE文件大小的组合来识别。

  • 二进制修改用于对原始程序进行任意的内存修改(主要用于自定义汇编)。

  • 断点可在原始代码的任何指令处调用自定义DLL函数。这些函数可以读取和修改当前的CPU寄存器状态。

  • 多组顺序应用的二进制修改和断点,用于绕过EXE打包器和DRM方案。

  • 文件断点用于将内存中的数据文件替换为补丁中的替代文件。

  • 基于通配符的文件格式修补钩子在文件替换时调用 - 可以根据(可堆叠的!)JSON描述对数据文件应用补丁。

  • 可选的Steam集成,适用于通过Steam提供但本身没有Steam集成的游戏。可以通过删除steam_api.dll来禁用。

  • ...所有这些都不会对性能产生显著影响。☺

包含的模块

  • win32_utf8:围绕我们需要的Win32 API调用的UTF-8包装库。这是一个独立项目,也可以(而且应该)在其他应用程序中自由使用。
  • thcrap:主要的补丁引擎。
  • thcrap_loader:一个命令行加载器,用于在新创建的进程上调用thcrap的注入函数。
  • thcrap_configure:用于发现补丁、配置补丁堆栈和定位支持的游戏的GUI向导。
  • thcrap_tsa:一个thcrap插件,包含用于上海爱丽丝幻乐团STG引擎游戏的补丁钩子。
  • thcrap_tasofro:一个thcrap插件,包含用于Twilight Frontier的各种游戏的补丁钩子。
  • thcrap_update:包含补丁的更新功能、thcrap本身的数字签名自动更新,以及更新器GUI。可以安全删除thcrap_update.dll以禁用所有在线功能。
  • thcrap_bgmmod:一个辅助库,用于处理原本未压缩的PCM音乐的非游戏特定BGM修改部分,如编解码器支持和循环点处理。目前静态链接到thcrap_tsa中,因为这个模块目前是唯一支持BGM修改的模块,但已经拆分成一个单独的库,以便将来覆盖更多引擎。

构建

本仓库提供了一个现成的Visual Studio构建配置,涵盖了所有模块及其依赖项。要设置构建:

  • 安装Visual Studio Community 2019

    • 构建thcrap_configure_v3需要Visual Studio 2019或更新版本。对于所有其他组件,Visual Studio Community 2017也可以工作
    • 你也可以使用Visual Studio Community 2022。在安装过程中,确保安装v141和v141_xp工具集(v141_xp是带有Windows XP兼容性的Visual Studio 2017编译器,v141是v141_xp所需的)。
  • 确保你已经与此仓库一起拉取了所有Git子模块:

      git clone --recursive https://github.com/thpatch/thcrap.git
    
  • (可选)如果你的thcrap构建应能自动更新自身,你需要创建一个代码签名证书。为此,在此仓库的根目录(包含thcrap.sln的目录)的Visual Studio命令提示符(vcvarsall.bat)上运行以下命令:

      makecert -n "CN=Your Name,E=yourmail@provider.net" -$ individual -a sha256 -len 4096 -r -cy authority -sky signature -pe -sv cert.pvk cert.cer
      pvk2pfx -pvk cert.pvk -spc cert.cer -pfx cert.pfx
    

    cert.pfx用于在构建过程中签名二进制文件,所以不要更改文件名。

然后,打开thcrap.sln,从工具栏的下拉菜单(或配置管理器)中选择Debug或Release,并从主菜单运行生成 → 生成解决方案。 您也可以通过运行Visual Studio工具环境批处理文件(vcvarsall.bat)从命令行进行构建,然后在thcrap目录中运行

msbuild /m /p:Configuration=Debug

msbuild /m /p:Configuration=Release

二进制文件将会生成在bin/子目录中。

为自动更新签署发布存档

首先,使用OpenSSL将cert.pvk转换为.pem文件,然后将此文件与scripts/release_sign.py一起使用:

openssl rsa -inform pvk -in cert.pvk -outform pem -out cert.pem python release_sign.py -k cert.pem thcrap.zip

使用不同的编译器

推荐使用Visual Studio Community 2017进行构建,构建配置默认引用带有Windows XP支持的Visual Studio 2017平台工具集。但是,通过更改Base.props中的<PlatformToolset>值,该项目通常可以在Visual C++ 2010 Express之后的每个版本下构建。要查看系统上可用的所有平台工具集列表,请打开任何包含项目的属性对话框,参考配置属性 → 常规 → 平台工具集下的下拉菜单。

目前不支持使用MinGW编译。在可预见的将来,这种情况不太可能改变,因为我们认为这没有太大价值。

依赖项

C/C++代码所需的所有第三方库都作为Git子模块包含在thcrap_external_dependencies子模块中,该子模块还包含预构建的DLL、.lib文件、导出定义和PDB。这些包括:

  • Jansson,除win32_utf8外的每个模块都需要。

  • libpng (>= 1.6.0),thcrap_tsa需要用于图像修补。

  • zlib,thcrap_update需要用于CRC32验证。不过libpng无论如何都需要它。

  • thcrap_bgmmod目前通过以下第三方库支持这些编解码器:

scripts目录中的脚本是用Python 3编写的。其中一些需要此存储库中未包含的其他第三方库:

  • release_sign.py需要PyCryptodome
  • repo_update.py需要pathspec。可以通过pip轻松安装。

许可证

除非另有说明,否则Touhou Community Reliant Patcher及所有附带模块均发布到公共领域。这意味着您可以对此代码做任何事情,甚至不需要署名。

话虽如此,我们确实很感谢您的署名。☺

支持者

喜欢我们的工作吗?在Open Collective上成为Touhou Patch Center的支持者,帮助我们决定thcrap未来开发的优先事项。

感谢所有支持者!

<a href="https://opencollective.com/thpatch#backers" target="_blank"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/a229b296-0f37-43f2-bf37-72e38c5f6581.svg?width=890&button=true"></a>

团队

<a href="https://github.com/thpatch/thcrap/graphs/contributors"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/a83bc983-b6ba-4f17-96de-ae7bf72fd4ea.svg?width=890&limit=5&button=false" /></a>

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI助手AI工具AI写作工具AI辅助写作蛙蛙写作学术助手办公助手营销助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

聊天机器人AI助手热门AI工具AI对话
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多