Project Icon

thcrap

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

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

东方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未来开发的优先事项。

感谢所有支持者!

团队

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号