ePSXe 插件架构到底是什么 · 为什么有那么多 Config 选项
核心 vs 插件:两层分离
ePSXe 的设计理念是"核心只管翻译硬件指令,插件只管跟操作系统打交道"。整个模拟器可以拆成两层:
核心层(内置、不可替换):负责把 PS1 的 CPU、GPU、SPU 指令翻译成 x86/ARM 指令,维护模拟硬件状态。这是兼容性的基石,也是 20 年打磨出来的重编译器。
插件层(DLL / SO / DYLIB 文件,可替换):负责每个功能模块与操作系统通信:
| 插件类型 | 文件名关键词 | 负责什么 |
|---|---|---|
| 视频插件 | gpu*.dll | 把 PS1 图形输出渲染到 PC 屏幕 |
| 音效插件 | spu*.dll | 把 PS1 音频输出送到 PC 声卡 |
| 光驱插件 | cdr*.dll | 读取物理光盘(非必需,可直接加载镜像) |
| 手柄插件 | pad*.dll | 把键盘 / 手柄输入映射到 PS1 手柄信号 |
| 并行口插件 | net*.dll | 本地联机对战 |
为什么要设计成这样
2000 年前后,PC 硬件碎片化严重:显卡有 NVIDIA、ATI、Voodoo,各自支持的 API 不一样(OpenGL / DirectX / Glide)。插件架构让每类硬件都能有专门的优化插件——Voodoo 用户装 Lewpy Glide 插件,NVIDIA 用户装 Pete OpenGL,ATI 用户装 Pete D3D。
这个设计也让第三方开发者可以独立更新各自的插件,不用等模拟器核心大版本发布。
内置插件 vs 第三方插件
ePSXe 2.0.x 自带一套内置插件(GPUCORE、SPUCORE、INPUTCORE、NETCORE),都写进了 exe 里,解压后不用装额外东西就能跑。但社区仍然推荐部分功能用第三方插件替代:
- 视频:推荐 Pete OpenGL2(画面最好、可定制性最高)
- 音效:内置 SPUCORE 已足够好,Eternal SPU 是备选
- 光驱:绝大多数玩家直接 Run ISO,光驱插件可以忽略
- 手柄:内置 INPUTCORE 支持 Xbox 手柄直认,够用
插件怎么装
下载插件 DLL 文件后,直接丢进 ePSXe 目录下的 plugins/ 文件夹即可。然后启动模拟器 → Config → 对应菜单 → 在下拉框里选中新插件 → 点 Configure 调细节。
插件版本兼容性
一个常见坑:Pete 系列视频插件 v2.9 才能在 ePSXe 2.0.x 上正常工作。老版本(v2.8 及更早)的 OpenGL2 插件可能导致画面偏色或窗口无法聚焦。如果遇到奇怪的画面问题,先检查插件版本。