跳到正文
PS5PCEM
部分可用音频与视频

AJM 编解码器

AJM 解码 ATRAC9、MP3、MPEG-4 AAC 和 Opus。每个编解码器实例保持自己的状态,未知编解码器会被拒绝,而不是被报告为静默的成功。

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

编解码器与采样格式

编解码器 0 是 MP3,经由 minimp3。编解码器 1 是 ATRAC9。编解码器 2 是 MPEG-4 AAC,经由 FAAD2,用于 ADTS、原始和 SAF 作业。编解码器 24 是 Opus,经由 libopus。ATRAC9 输出可以是有符号 16 位、有符号 32 位、浮点或平面。初始化、编解码器信息、无缝元数据、流字节数、已解码帧数和总采样边带都予以保留。

作业可以使用连续缓冲区或分裂缓冲区。实例状态按解码器分开,因此两条流不共享比特水库。旧式 libSceAudiodec 路径在自己的初始化、创建、重置和删除调用之后,对 ATRAC9、MP3 和 AAC 使用同一个后端。

影片音频与预览

观察到的 PlayStation 5 多声道 ATRAC9 布局被解码为交错的单声道流。Ghost of Yōtei 的影片音频因此从正确的位置开始。影片所携带的触觉音轨用静音来计时。不会从它合成控制器振动。

由 FSB 支撑的回退预览会被重采样到 48 kHz 混音,加上一段短淡变,并排空一次。除非 PS5_AUDIO_FALLBACK_MIX=1,它们不会混进活动的 AudioOut 图,因为同一片段的第二份拷贝就是回声。

许可证

ATRAC9、FAAD2、minimp3 和 Opus 是第三方解码器。它们的许可证放在仓库的 docs/licenses 目录里,并随便携构建一起提供。模拟器自己的代码保持 GPL-3.0-or-later。

四个已实现数值之外的编解码器编号是错误。返回一块全零缓冲区再加一个成功码,会让游戏以为这条流已经被解码。

已经实现的部分

  • ATRAC9、MP3、MPEG-4 AAC 和 Opus,每个实例有自己的解码器状态。
  • ATRAC9 输出为有符号 16 位、有符号 32 位、浮点或平面 PCM。
  • 无缝和边带元数据,以及连续和分裂的输入缓冲区。
  • libSceAudiodec 背后的共享后端。

尚未实现的部分

  • 未知的 AJM 编解码器编号会被拒绝。
  • 触觉音轨保持静音。不会从它们模拟振动。
  • 除非 PS5_AUDIO_FALLBACK_MIX=1,否则回退预览混音是关闭的。

相关机制

这些页面说明什么

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

全部技术