GModPatchTool:修复Garry's Mod启动问题与CEF功能增强,支持多平台与媒体编解码

🇬🩹🛠 Patches for Garry's Mod. Updates/Improves CEF and Fixes common launch/performance issues (esp. on Linux/Proton/macOS). Formerly GModCEFCodecFix.

Branch3Tags36
FilesLast commitLast update
1 year ago
1 month ago
1 year ago
6 months ago
1 month ago
9 months ago
1 year ago
1 year ago
1 month ago
1 month ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 month ago
1 month ago
4 months ago
2 months ago
2 months ago

GModPatchTool 原 GModCEFCodecFix

GModPatchTool

GModPatchTool 做了 Facepunch 不愿做的事

由 Solstice Game Studios 开发(solsticegamestudios.com

🛠️ 我们应用的补丁

全平台

  • 修复 macOS 和 Linux 上的各种启动问题/主菜单缺失问题
  • 为 GMod 添加 -chromium_fps_max 启动选项
    • 允许为所有 CEF 网页面板设置最大内部 FPS 限制
    • 可能会以降低网页内容帧率为代价提升游戏帧率
    • 默认值为 60
  • 为 GMod 添加 -chromium_remote_debugging_port 启动选项
    • 可选功能:在指定端口启动 CEF 的远程调试服务器(Chrome DevTools),以便你可以检查游戏内的 HTML 面板
    • 默认关闭;设置 1024 到 65535 之间的端口即可启用,例如 -chromium_remote_debugging_port 9222
  • 通过我们自定义的 SourceScheme.res 改进传统 VGUI 主题
  • 使用 PT Mono 替换调试/控制台字体,以提高跨平台的一致性和可读性
    • 这对于 Proton 尤为重要,在默认情况下,使用这些字体的文本会显示异常/过小(因为没有 Lucida Console)
    • 如果你不喜欢主题更改或字体替换,可以在运行工具时使用 --no-sourcescheme 参数禁用这些补丁

游戏内网页浏览器(Chromium Embedded Framework,简称 CEF

  • 将 CEF 更新至 137.0.19(基于 Chromium 137.0.7151.121)
  • 启用 专有视频/音频编解码器 支持,如 H.264(MP4)和 AAC
  • 启用 Widevine 支持(但不支持 VMP,因此 Netflix 等服务目前无法正常工作……)
  • 启用软件 WebGL
  • 启用部分 GPU 加速
  • 改进纹理更新性能
  • 禁用硬件媒体键对媒体的控制
  • 重新启用网站隔离(安全功能;部分网站需要此功能才能正常运行)

Linux

  • 可修复 Steam 覆盖层/MangoHud 等无法正常工作的问题
    • 在 GMod 的启动选项中输入 GMOD_ENABLE_LD_PRELOAD=1 %command% 进行尝试!
    • 此功能默认禁用,因为它可能会导致 GMod 崩溃
  • 设置 mesa_glthread=true,以提升 Mesa 驱动下的 OpenGL 性能
  • 设置 ulimit -n $(ulimit -Hn),解决打开/挂载大量文件时出现的问题(如大量插件、Lua 自动刷新等)
  • hl2.sh 中添加了多种已注释的导出配置,帮助多 GPU 用户快速指定 GMod 使用正确的 GPU(通常适用于笔记本电脑)
    • 有关默认不启用这些配置的原因,请参见 #188

macOS

  • 在 Apple Silicon 上预加载已修补库的 Rosetta 翻译,避免 GMod 首次启动时出现延迟
    • 运行工具时使用 --skip-rosetta-prewarm 参数可跳过此步骤

❓ 玩家:如何安装/使用

下载 最新版本 并运行应用程序。

需要更详细的指南?请查看 https://solsticegamestudios.com/fixmedia/

⚙️ 命令行选项

正常修补时无需使用这些选项,直接运行工具即可。但如果您需要更多控制:

选项 功能说明
-l, --launch-gmod 成功修补后启动 Garry's Mod
-s, --skip-exit-prompt 工具退出时跳过“按 Enter 键退出...”提示
--steam-path <PATH> 强制指定特定的 Steam 安装路径(非 Steam 库路径)
--no-sourcescheme 不应用 SourceScheme(VGUI 主题)更改
--skip-clear-chromiumcache 跳过删除 GarrysMod 目录下的 ChromiumCache/ChromiumCacheMultirun/chromium.log
--skip-rosetta-prewarm 在 Apple Silicon 上跳过预加载已修补库的 Rosetta 翻译(仅适用于 macOS)
--disable-cache 强制重新下载所有补丁文件,并在退出时清除 GModPatchTool 缓存目录
--no-system-proxy 不使用操作系统代理配置进行 HTTP 请求 - 如果工具在代理/VPN 环境下无法下载文件,可尝试此选项
--ignore-gmod-running 即使 Garry's Mod 当前正在运行也应用补丁(可能会导致问题!)

如果修补失败,工具将以非零状态退出,方便您进行脚本处理。

👩‍💻 开发者:使用与检测方法

请引导玩家按照上方的玩家说明进行操作。此补丁仅适用于客户端!

检测已修补的 CEF: 可参考我们的 Lua 检测示例

Warning

我们的 CEF 构建已启用网站隔离功能,这意味着您必须注意调用与 JavaScript 相关的 DHTML 函数的时机!

如果在页面开始加载前调用 DHTML.AddFunctionDHTML.QueueJavascriptDHTML.RunJavascript,这些函数将无法正常工作!请确保在 HTML.OnBeginLoadingDocument 事件触发时或之后调用它们。

网站隔离功能会在导航时销毁 JavaScript 状态,其行为与真实网页浏览器一致。

本工具包含一个针对 mainmenu.lua 的补丁,用于解决 GMod 自身未采用正确方法的问题,但对于任何未正确处理 HTML 面板 JS 状态的插件而言,这是一项不兼容的变更

如需深入了解: 可查看 我们的 gmod-html 分支CEF 构建脚本

📢 需要帮助 / 联系我们

💖 支持我们

本项目是开源的,为 Garry's Mod 社区免费提供。

如果您喜欢我们的工作,不妨向我们捐赠一些资金 我们的开发工作 100% 由本工具的用户资助!

Introduction

🇬🩹🛠 Patches for Garry's Mod. Updates/Improves CEF and Fixes common launch/performance issues (esp. on Linux/Proton/macOS). Formerly GModCEFCodecFix.

Customize your domain