Hasty Briefsbeta

双语

Making a speedrun timer in D

10 months ago
  • #linux
  • #game-hacking
  • #speedrunning
  • 作者为《杀出重围》开发了一个自定义速通计时器,实现了自动分段和加载时间剔除等功能。
  • 该计时器采用D语言开发,因其兼具系统级操作能力与高级语言特性。
  • 初期尝试在内存中寻找加载标志位失败,最终通过更复杂的代码注入方案实现。
  • 利用`ptrace`和`process_vm_readv`等Linux系统调用与游戏内存交互。
  • 定位并修改了《杀出重围》中的`LoadMap`函数来设置自定义加载标志。
  • 在游戏进程内存中找到安全区域用于存储加载标志和地图名称。
  • 计时器内置逻辑可检测加载画面并自动暂停计时。
  • 通过追踪`LoadMap`返回的当前地图名实现自动分段功能。
  • 技术难点包括处理加载期间的异常情况,以及优化内存访问减少游戏卡顿。
  • 未来可改进方向包括更高效的信号机制和支持存档时间剔除功能。