部分可用固件与 HLE
内核异步文件读取
内核 AIO API 接受一批读取并返回一个标识符。PS5PCEM 在提交时执行这批读取,接口允许这样做,游戏随后取回一个已经完成的结果。
仓库笔记截至 2026年10月10日
接口
流式加载资源的引擎会提交一份读取列表,稍后再问这批是否完成。按这种方式构建的游戏没有该 API 就无法加载文件。PS5PCEM 接受这批读取,在提交时执行,并把结果存在该标识符下。稍后的轮询会观察到一批已经完成的读取。
立即完成是接口的合法结果。调用者必须处理在轮询之前就已经完成的请求。模拟器不会为了模仿设备延迟而去睡眠,也不会为了看起来更异步就把这批读取报告为失败。
它和 APR 有何不同
内核 AIO 是针对游戏已经打开的文件描述符的 POSIX 风格批处理。APR 是加速器路径:路径变成标识符,命令住在带有计数器和完成事件的 AMPR 命令缓冲区里。游戏可以只用其中一种,也可以两种都用。
两条路径读取的都是模拟器并未产生的游戏安装数据。边界会检查。过短的缓冲区或错误的描述符是错误返回,而不是一次被当成成功的部分写入。
已经实现的部分
- 批提交、一个标识符,以及游戏可以取回的完成结果。
- 针对游戏所打开文件执行的读取。
- 立即完成,客户机 API 允许这样做。
尚未实现的部分
- 没有单独的 I/O 线程去模仿磁盘延迟。
- 游戏机的优先级与带宽调度器没有被建模。
- APR 命令缓冲区是另一套 API,不会被改写成内核 AIO。
相关机制
这些页面说明什么
文字依据 PS5PCEM 仓库中的架构说明和 2026 年 10 月的报告。单项测试通过并不等于新的帧率,也不等于新的通关。