fix: read shadps4 sys_modules from its user folder

sys_modules/ is below shadPS4's user folder: user/ in the working
directory, else the XDG data folder (path_util.cpp:88-124). Batocera
and KNULLI start it from /userdata/system/configs/shadps4, so their
packs no longer carry bios/shadps4/sys_modules, which nothing read, and
name the modules instead. EmuDeck keeps its link at
bios/shadps4/sys_modules, and RetroBat places them in
emulators/shadps4/user/sys_modules.
This commit is contained in:
Abdessamad Derraz committed 2026-11-09 19:29:18 +01:00
1 parent d2546e557f
commit 5c5c7cd79c
1 file changed
+37 -29
+37 -29
View File
@@ -17,6 +17,11 @@ cores:
systems:
- ps4
mode: standalone
standalone_directories:
- "getcwd/user"
- "PORTABLE_DIR"
- "$XDG_DATA_HOME/shadPS4"
- "$HOME/.local/share/shadPS4"
analysis_date: "2026-08-10"
analysis_commit: "891612c8"
@@ -45,28 +50,31 @@ notes: |
- 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/.
The paths below are relative to the user folder: user/ in the working
directory when it exists, else $XDG_DATA_HOME/shadPS4 or
~/.local/share/shadPS4 on Linux and %APPDATA%/shadPS4 on Windows
(src/common/path_util.cpp:88-110). sys_modules/ is below it
(path_util.cpp:124) unless sysModulesPath in the config names another
folder (src/core/emulator_settings.cpp:190-195, 535).
files:
- name: "libSceLibcInternal.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/libSceLibcInternal.sprx"
path: "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"
path: "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"
path: "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"
@@ -74,13 +82,13 @@ files:
- name: "libSceRtc.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/libSceRtc.sprx"
path: "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"
path: "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"
@@ -88,83 +96,83 @@ files:
- name: "libSceJpegEnc.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/libSceJpegEnc.sprx"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
@@ -172,34 +180,34 @@ files:
- name: "libSceFont.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/libSceFont.sprx"
path: "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"
path: "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"
path: "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"
path: "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"
path: "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"
@@ -207,13 +215,13 @@ files:
- name: "libSceRudp.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/libSceRudp.sprx"
path: "sys_modules/libSceRudp.sprx"
description: "PS4 reliable UDP library"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:244"
- name: "libSceWkFontConfig.sprx"
required: false
path: "shadps4/sys_modules/libSceWkFontConfig.sprx"
path: "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:245"
@@ -221,13 +229,13 @@ files:
- name: "libSceSystemGesture.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/libSceSystemGesture.sprx"
path: "sys_modules/libSceSystemGesture.sprx"
description: "PS4 system gesture recognition"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:250"
- name: "libSceXml.sprx"
required: false
path: "shadps4/sys_modules/libSceXml.sprx"
path: "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:251"