PC游戏分屏工具快速指南:用 Universal Split Screen 实现本地多人同屏 🎮
【免费下载链接】UniversalSplitScreenSplit screen multiplayer for any game with multiple keyboards, mice and controllers.项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen
朋友来家里想一起玩,但PC游戏只支持单人,两个人只能轮流来。Universal Split Screen 是一款开源的 PC 游戏分屏工具,把一个游戏窗口切成两到四份,并把第二套键盘、鼠标、手柄的输入分别路由到对应的分区。
它解决什么问题
这是一个 Windows 桌面程序,不修改任何游戏文件:你开两到四个游戏副本,它负责分屏摆放窗口和分发输入,游戏自身完全无感知。x86 与 x64 位的游戏进程都能处理。
5 分钟跑通分屏
- 克隆源码:
git clone https://gitcode.com/gh_mirrors/un/UniversalSplitScreen- 用 Visual Studio 打开
UniversalSplitScreen.sln,选 x86 平台,用 Batch build 一次性编译全部 5 个项目(主程序、HooksCPP、InjectorLoader、StartupHook、SourceEngineUnlocker),各项目的 post-build 会自动改名并复制到指定位置。 - 运行主程序,从下拉列表选一套预置配置,给每个游戏窗口绑定对应的键盘、鼠标或手柄,点 Start;用设定好的结束键退出分屏。
能力全景
| 使用场景 | 实际效果 |
|---|---|
| 双人左右或上下分屏 | 自动缩放定位窗口,两人各占半个屏幕 |
| 四人同屏 | 窗口切分为四份,每人绑定独立设备 |
| 双手柄对战 | XInput 钩子按索引把手柄分配给对应窗口,上限 4 个 |
| 超过 4 个手柄 | DInput 转 XInput 翻译钩子,把超出的手柄映射进 XInput 槽位 |
| 需多开副本的游戏 | Source/GoldSrc 引擎单实例互斥锁解锁后,可从 exe 再启动一份 |
仓库预置 13 套游戏配置,覆盖 Source 引擎、GoldSrc 引擎、Minecraft、Terraria、无主之地 2、异星工厂等。
原理一分钟速览
打个比方:它像酒店前台,游戏只认"自己那间房"的输入,工具站在系统和游戏之间,把每个设备的操作交给正确的房间。
- Raw Input API:系统级输入流,比游戏更早拿到键盘鼠标数据。
- 进程注入:把钩子 DLL 拷进游戏进程,游戏调用"读输入"的系统函数时被重定向。
- API 钩子:如拦截
GetCursorPos,让游戏看不到其他玩家的鼠标位置。
动手配置 🛠
- 配置目录UniversalSplitScreen/Config/:每个 JSON 是一组选项,程序启动时从主程序目录下的
config子文件夹加载。给新游戏做配置时,复制一份现有 JSON,改OptionsName,再按游戏需要调整各项钩子开关。 - Hook_XInput:用手柄时必须为
true,否则启动分屏时程序会警告且手柄不响应。 - LeftOffset / TopOffset / ExtraHeight:控制分屏窗口的左距、顶距与高度补偿,窗口被任务栏挤下时可用
ExtraHeight补高。 - EndVKey:结束分屏的虚拟键码,预置配置里为 35,对应 Insert 键。
避坑清单
- 注入报错 0xC0009898→ 游戏位数与注入的钩子 DLL 不匹配 → 确认游戏是 32 位还是 64 位,程序会按进程自动选对应版本的 DLL,报错时先看它提示的位数。
- 手柄绑定后没反应→ 没启用 XInput 钩子 → 勾选
Hook_XInput再重新开始分屏。 - 第 5 个手柄连不上→ Windows XInput 槽位只有 4 个 → 同时启用
Hook_XInput和Hook_DInput走翻译钩子。 - Source 引擎游戏开不了第二份→ 引擎互斥锁禁止重复启动 → 用主程序里的解锁功能释放单实例互斥(预置配置已填好如
hl2_singleton_mutex),再从 exe 启动第二个实例。
生态与参与
- MIT 许可,见 LICENSE.md。
- 门槛最低的贡献是给新游戏写配置:在 UniversalSplitScreen/Config/ 放一份 JSON,字段含义可对照
OptionsStructure.cs。 - 值得细看的模块:
UniversalSplitScreen/RawInput/(输入捕获与路由)、StartupHook/(游戏启动阶段的钩子)、easyhook/(钩子库)。 - 排查问题先看主程序的日志,每次注入的结果码和窗口映射都会打在里面。
写在最后
对没有原生分屏的 PC 游戏来说,本地多人同屏这一步由它补上。编译一次、选一套预置配置,就能和朋友试一把。
【免费下载链接】UniversalSplitScreenSplit screen multiplayer for any game with multiple keyboards, mice and controllers.项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考