实时倍率
拖动即生效,无需重启游戏。变速步长与档位可分别配置,也可按住快捷键临时加速。
SP_SetSpeedRing-3 · Windows 10+
开源游戏变速控制器
纯 Ring-3 层 API Hook,不加载内核驱动。为任意 Windows 进程实时调整时间流速,x86 与 x64 通吃。
能力
一个进程列表,一个倍率滑块,就这些。剩下的交给 17 个被 Hook 的 Windows 时间 API。
拖动即生效,无需重启游戏。变速步长与档位可分别配置,也可按住快捷键临时加速。
SP_SetSpeed升速、降速、重置各绑定一个全局快捷键,加速档位可预设,冲突会被立即报出。
RegisterHotKey按进程名分组,或按 PID 逐条展开。搜索同时匹配进程名、PID 与窗口标题。
Enumerate同一份界面同时驱动 32 位与 64 位目标进程,桥接在线状态在标题栏实时可见。
Bridge全部 Hook 停留在 Ring-3,不加载内核驱动、不改动系统内核,卸载即完全还原。
MinHook · Ring 3界面与文档覆盖 12 种语言,含简体与繁体中文。深色、浅色主题随你切换。
i18n × 12原理
OpenSpeedy 不修改游戏逻辑,只接管游戏读取时间的入口。所有 Hook 在目标进程内完成,向下调用原始实现。
01
由桥接进程把 speedpatch 注入目标进程,失败会在界面上直接报出原因。
02
MinHook 在 17 个时间 API 上挂载 detour,读到的时刻按倍率缩放后返回。
03
关闭加速或卸载 DLL 时移除全部 Hook,游戏恢复真实时间。
| 函数 | 所属库 | 作用 |
|---|---|---|
| Sleep | kernel32.dll | 线程休眠 |
| SleepEx | kernel32.dll | 可中断的线程休眠 |
| WaitForSingleObject | kernel32.dll | 等待单个对象就绪或超时 |
| WaitForSingleObjectEx | kernel32.dll | 可警报的单项等待 |
| WaitForMultipleObjects | kernel32.dll | 等待多个对象中的任意一个或全部 |
| WaitForMultipleObjectsEx | kernel32.dll | 可警报的多项等待 |
| SetWaitableTimer | kernel32.dll | 设置可等待定时器 |
| SetWaitableTimerEx | kernel32.dll | 设置可等待定时器(扩展) |
| GetTickCount | kernel32.dll | 系统启动至今的毫秒数 |
| GetTickCount64 | kernel32.dll | 系统启动至今的毫秒数(64 位) |
| QueryPerformanceCounter | kernel32.dll | 高精度性能计数器 |
| GetSystemTimeAsFileTime | kernel32.dll | 系统时间(FILETIME) |
| GetSystemTimePreciseAsFileTime | kernel32.dll | 高精度系统时间(FILETIME) |
| SetTimer | user32.dll | 创建基于消息的计时器 |
| GetMessageTime | user32.dll | 消息队列中的时间戳 |
| timeGetTime | winmm.dll | 系统启动至今的毫秒数 |
| timeSetEvent | winmm.dll | 多媒体定时器事件 |
界面
深色与浅色、中文与 English——四种组合都是真实截图,不是效果图。
获取
一条命令,或者从 Releases 直接拿安装包。
装完新开一个终端,直接输入 openspeedy 启动。
winget install openspeedy