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>

编辑推荐精选

商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

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自动配图热门
下拉加载更多