跳到正文
PS5PCEM
部分可用固件与 HLE

内核异步文件读取

内核 AIO API 接受一批读取并返回一个标识符。PS5PCEM 在提交时执行这批读取,接口允许这样做,游戏随后取回一个已经完成的结果。

仓库笔记截至 2026年10月10日

接口

流式加载资源的引擎会提交一份读取列表,稍后再问这批是否完成。按这种方式构建的游戏没有该 API 就无法加载文件。PS5PCEM 接受这批读取,在提交时执行,并把结果存在该标识符下。稍后的轮询会观察到一批已经完成的读取。

立即完成是接口的合法结果。调用者必须处理在轮询之前就已经完成的请求。模拟器不会为了模仿设备延迟而去睡眠,也不会为了看起来更异步就把这批读取报告为失败。

它和 APR 有何不同

内核 AIO 是针对游戏已经打开的文件描述符的 POSIX 风格批处理。APR 是加速器路径:路径变成标识符,命令住在带有计数器和完成事件的 AMPR 命令缓冲区里。游戏可以只用其中一种,也可以两种都用。

两条路径读取的都是模拟器并未产生的游戏安装数据。边界会检查。过短的缓冲区或错误的描述符是错误返回,而不是一次被当成成功的部分写入。

已经实现的部分

  • 批提交、一个标识符,以及游戏可以取回的完成结果。
  • 针对游戏所打开文件执行的读取。
  • 立即完成,客户机 API 允许这样做。

尚未实现的部分

  • 没有单独的 I/O 线程去模仿磁盘延迟。
  • 游戏机的优先级与带宽调度器没有被建模。
  • APR 命令缓冲区是另一套 API,不会被改写成内核 AIO。

相关机制

这些页面说明什么

文字依据 PS5PCEM 仓库中的架构说明和 2026 年 10 月的报告。单项测试通过并不等于新的帧率,也不等于新的通关。

全部技术