新闻详情

新闻详情

首页 / 资讯中心 / 详情

shadPS4 如何把游戏着色器从 SPIR-V 反编译为 GLSL 并替换修改后的版本?

发布时间:2026/9/12 6:11:16来源:尧图网络
shadPS4 如何把游戏着色器从 SPIR-V 反编译为 GLSL 并替换修改后的版本?
shadPS4 如何把游戏着色器从 SPIR-V 反编译为 GLSL 并替换修改后的版本【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4shadPS4 运行时加载的游戏着色器以 SPIR-V 二进制.spv形式存在直接查看或修改并不方便。documents/patching-shader.md 给出了一条完整的修改路径先让模拟器把着色器转储到本地用spirv-cross把 SPIR-V 反编译为可读的 GLSL 文本改完再用glslc编译回 SPIR-V把同名的.spv文件放进shader/patch目录最后开启patchShaders选项让模拟器加载修改后的版本。本文按这条路径逐步说明操作。前置条件安装 Vulkan SDK 并确保工具在 PATH 中反编译和重新编译两步都依赖外部工具这是文档明确要求的唯一前置条件安装 Vulkan SDK并确保spirv-cross和glslc都在 PATH 中。spirv-cross负责 SPIR-V → GLSL 的反编译glslc负责 GLSL → SPIR-V 的编译。安装完成后在终端直接输入这两个命令应能调用工具若提示找不到命令说明 PATH 未配置好后续步骤无法继续。第一步开启转储让模拟器导出着色器在config.toml中启用dumpShaders选项。启动模拟器并运行游戏模拟器会把加载到的着色器写到转储目录。根据 documents/Debugging/Debugging.md 的配置说明dump_shaders对应 GPU 配置项转储路径为../user/shader/dumps即user目录下的shader/dumps子目录。文档中着色器文件的示例命名为fs_0x000000.spv其中前缀标识着色器阶段例如fs_对应 fragment片段着色器。转储完成后在该目录下找到你要修改的那个.spv文件。第二步用 spirv-cross 反编译为 GLSL对目标.spv文件执行文档给出的反编译命令spirv-cross -V fs_0x000000.spv --output fs_0x000000.glsl-V指定输出为 Vulkan 风格的 GLSL输入为你在shader/dumps中找到的.spv文件名--output指定生成的 GLSL 文件名。命令执行后会得到一份可读的 GLSL 源码文件其中的变量和数值都可以正常编辑。第三步编辑 GLSL 并重新编译回 SPIR-V按需要在文本编辑器中修改 GLSL 文件然后把改动编译回 SPIR-Vglslc --target-envvulkan1.3 --target-spvspv1.6 -fshader-stagefrag fs_0x000000.glsl -o fs_0x000000.spv这里需要特别注意-fshader-stage参数文档明确要求把它改为着色器对应的阶段例如片段着色器用frag。示例中的frag与文件名前缀fs_对应编译顶点等其他阶段的着色器时该参数要与着色器实际阶段一致否则产物无法被正确识别。-o之后是输出的.spv文件名文档要求它与原始着色器同名。第四步放入 patch 目录并启用 patchShaders把重新编译出的.spv文件放到shader/patch目录中文件名与原始着色器完全一致例如仍是fs_0x000000.spv。模拟器正是按阶段与哈希生成的同名规则去shader/patch目录查找补丁文件参见 vk_pipeline_cache.cpp 中PipelineCache::GetShaderPatch的实现补丁目录为GetUserPath(PathType::ShaderDir) / patch。在config.toml中启用patchShaders选项。重新启动模拟器运行游戏修改后的着色器即会替代原版被加载。验证与结果判断反编译是否成功spirv-cross命令执行后生成了非空的.glsl文本文件内容是可读的 GLSL 代码。编译是否成功glslc命令执行后生成了新的.spv文件。补丁是否会被采用确认.spv文件已存在于shader/patch目录且与转储目录中的原始文件同名并且config.toml中patchShaders已启用。文档给出的流程到此即告完成游戏画面中的实际效果需要自行对照修改内容判断。限制与注意整条流程依赖spirv-cross和glslc两个外部工具缺少其中任一步都无法完成。-fshader-stage必须与着色器阶段匹配这是文档特别强调的一点。补丁文件命名规则是阶段前缀加哈希值重命名或漏掉哈希位都会导致模拟器查不到对应补丁请严格沿用转储出来的原文件名。修改 GLSL 后的行为完全取决于你写入的代码文档没有对修改内容做任何限制说明若编译后的着色器无法工作先检查glslc命令的阶段参数是否选对。相关文档documents/patching-shader.md、documents/Debugging/Debugging.md。【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ToF相机完整技术链路:从VCSEL硬件到深度算法与工程落地 2026/9/12 11:08:55

ToF相机完整技术链路:从VCSEL硬件到深度算法与工程落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SEO优化公司选择标准与收费模式详解 2026/9/12 11:08:55

SEO优化公司选择标准与收费模式详解

1. SEO网站关键词优化公司选择标准解析当企业需要选择SEO服务提供商时,最常问的两个问题就是"哪家最好"和"收费标准"。作为从业十余年的SEO顾问,我建议从以下六个维度评估服务商:1.1 技术团队专业度优质SEO公司通常具备&…

阅读更多 →
three.js模型加载与资源管理最佳实践 2026/9/12 11:08:55

three.js模型加载与资源管理最佳实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Transformer输出层设计:线性变换与Softmax原理详解 2026/9/12 11:08:55

Transformer输出层设计:线性变换与Softmax原理详解

1. Transformer输出层设计原理Transformer模型的输出部分由线性层(Linear)和Softmax层组成,这是整个模型生成预测结果的关键环节。在GPT-2等自回归模型中,输出层负责将经过多层Transformer block处理后的高维特征表示转换为词汇表空间中的概率分布。1.1 …

阅读更多 →
猫抓网页视频下载指南:3 步把页面视频存进本地 2026/9/12 11:08:55

猫抓网页视频下载指南:3 步把页面视频存进本地

猫抓网页视频下载指南:3 步把页面视频存进本地 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 想保存网页视频却找不到下载按钮&#x…

阅读更多 →
自建物联网平台架构设计与实战指南 2026/9/12 11:05:55

自建物联网平台架构设计与实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞