emulator: shadps4 type: standalone source: "https://github.com/shadps4-emu/shadPS4" upstream: "https://github.com/shadps4-emu/shadPS4" profiled_date: "2026-03-26" source_commit: "f73709cada28e77523e37806fee5c454711d24ba" core_version: "pre-release 2026-08-08" display_name: "shadPS4 (PlayStation 4)" cores: - shadps4 - "shadps4-gui" systems: - ps4 mode: standalone analysis_date: "2026-08-10" analysis_commit: "891612c8" notes: | shadPS4 is a standalone PlayStation 4 emulator. Most PS4 system libraries are reimplemented in HLE. For better game compatibility, real firmware modules (.sprx) can be loaded in LLE mode from the sys_modules/ directory. Modules are loaded by sysmodule_internal.cpp via loadModuleInternal(). If a module exists in sys_modules/, it is loaded as LLE. If absent and an HLE implementation exists, the emulator falls back to HLE. If neither, the module is stubbed and games needing it may fail. Game-specific overrides are supported: sys_modules/{CUSA_ID}/ takes priority over the global sys_modules/ directory. System fonts are mounted from fonts/font/ (/preinst/common/font on real PS4) and fonts/font2/ (/system/common/font2 on real PS4). These are SST (Sony Standard Text) typeface files in OTF format. The emulator mounts the directories wholesale; games load individual fonts by name. Without fonts, the emulator warns "No dumped system fonts, expect missing text or instability." All firmware files are extracted from a real PS4 via FTP: - .sprx modules from /system/common/lib/ - font/ from /preinst/common/font/ - font2/ from /system/common/font2/ Batocera configgen (shadps4Generator.py) configures display, input, and saves but does not map BIOS/firmware paths. The emulator uses its own user directory for sys_modules/ and fonts/. files: - name: "libSceLibcInternal.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceLibcInternal.sprx" description: "PS4 C standard library" source_ref: "src/core/linker.cpp:80-91" - name: "libSceNgs2.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceNgs2.sprx" description: "PS4 next-generation audio system" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:217" - name: "libSceUlt.sprx" required: false path: "shadps4/sys_modules/libSceUlt.sprx" description: "PS4 user-level threading library" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:218" - name: "libSceRtc.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceRtc.sprx" description: "PS4 real-time clock library" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:221" - name: "libSceJpegDec.sprx" required: false path: "shadps4/sys_modules/libSceJpegDec.sprx" description: "PS4 JPEG decoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:222" - name: "libSceJpegEnc.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceJpegEnc.sprx" description: "PS4 JPEG encoder" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:223" - name: "libScePngEnc.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libScePngEnc.sprx" description: "PS4 PNG encoder" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:225" - name: "libSceJson.sprx" required: false path: "shadps4/sys_modules/libSceJson.sprx" description: "PS4 JSON parser" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:226" - name: "libSceJson2.sprx" required: false path: "shadps4/sys_modules/libSceJson2.sprx" description: "PS4 JSON v2 parser" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:227" - name: "libSceCesCs.sprx" required: false path: "shadps4/sys_modules/libSceCesCs.sprx" description: "PS4 character encoding conversion" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:228" - name: "libSceAt9Enc.sprx" required: false path: "shadps4/sys_modules/libSceAt9Enc.sprx" description: "PS4 ATRAC9 encoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:229" - name: "libSceAudiodec.sprx" required: false path: "shadps4/sys_modules/libSceAudiodec.sprx" description: "PS4 audio decoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:230" - name: "libSceAudiodecCpu.sprx" required: false path: "shadps4/sys_modules/libSceAudiodecCpu.sprx" description: "PS4 CPU audio decoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:231" - name: "libSceAudiodecCpuDdp.sprx" required: false path: "shadps4/sys_modules/libSceAudiodecCpuDdp.sprx" description: "PS4 CPU Dolby Digital Plus decoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:232" - name: "libSceAudiodecCpuM4aac.sprx" required: false path: "shadps4/sys_modules/libSceAudiodecCpuM4aac.sprx" description: "PS4 CPU AAC decoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:233" - name: "libSceAudiodecCpuDtsHdLbr.sprx" required: false path: "shadps4/sys_modules/libSceAudiodecCpuDtsHdLbr.sprx" description: "PS4 CPU DTS-HD LBR decoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:234" - name: "libSceAudiodecCpuHevag.sprx" required: false path: "shadps4/sys_modules/libSceAudiodecCpuHevag.sprx" description: "PS4 CPU HEVAG decoder" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:235" - name: "libSceFont.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceFont.sprx" description: "PS4 font rendering library" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:236" - name: "libSceFontFt.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceFontFt.sprx" description: "PS4 FreeType font library" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:237" - name: "libSceFreeTypeOt.sprx" required: false path: "shadps4/sys_modules/libSceFreeTypeOt.sprx" description: "PS4 FreeType OpenType library" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:238" - name: "libSceFreeTypeOl.sprx" required: false path: "shadps4/sys_modules/libSceFreeTypeOl.sprx" description: "PS4 FreeType outline library" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:239" - name: "libSceFreeTypeOptOl.sprx" required: false path: "shadps4/sys_modules/libSceFreeTypeOptOl.sprx" description: "PS4 FreeType optimised outline library" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:240" - name: "libSceRudp.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceRudp.sprx" description: "PS4 reliable UDP library" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:243" - name: "libSceWkFontConfig.sprx" required: false path: "shadps4/sys_modules/libSceWkFontConfig.sprx" description: "PS4 WebKit font configuration" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:244" - name: "libSceSystemGesture.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/libSceSystemGesture.sprx" description: "PS4 system gesture recognition" source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:249" - name: "libSceXml.sprx" required: false path: "shadps4/sys_modules/libSceXml.sprx" description: "PS4 XML parser" note: "No HLE implementation; the module is stubbed when absent." source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:250"