shadps4 - RetroBIOS¶
Technical 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/.
14 files | 0 required, 14 optional | 14 in repo, 0 missing | 7 with HLE fallback
libSceLibcInternal.sprx optional in repo HLE fallback
PS4 C standard library
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:221
libSceNgs2.sprx optional in repo HLE fallback
PS4 next-generation audio system
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:213
libSceRtc.sprx optional in repo HLE fallback
PS4 real-time clock library
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:215
libSceJpegEnc.sprx optional in repo HLE fallback
PS4 JPEG encoder
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:217
libScePngEnc.sprx optional in repo HLE fallback
PS4 PNG encoder
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:218
libSceFont.sprx optional in repo HLE fallback
PS4 font rendering library
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:224
libSceFontFt.sprx optional in repo HLE fallback
PS4 FreeType font library
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:225
libSceUlt.sprx optional in repo
PS4 user-level threading library
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:214
libSceJpegDec.sprx optional in repo
PS4 JPEG decoder
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:216
libSceJson.sprx optional in repo
PS4 JSON parser
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:219
libSceJson2.sprx optional in repo
PS4 JSON v2 parser
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:220
libSceCesCs.sprx optional in repo
PS4 character encoding conversion
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:222
libSceAudiodec.sprx optional in repo
PS4 audio decoder
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:223
libSceFreeTypeOt.sprx optional in repo
PS4 FreeType OpenType library
- Path:
shadps4/sys_modules/ - Source:
src/core/libraries/sysmodule/sysmodule_internal.cpp:226
Generated on 2026-04-03T20:37:39Z