fix: profile ppsspp from hrydgard/ppsspp

libretro/ppsspp answers as libretro-mirrors/ppsspp-old, a 2020 tree
frozen in 2022. The buildbot builds ppsspp from hrydgard/ppsspp master,
whose libretro/ directory holds the wrapper, so the profile is read
again at 58935bbf and pinned there.

The asset directory, PPGe atlas and font lookup are cited where they
sit now. The notes record the NAND under the save directory that a
disc's firmware updater fills, and the modules it replaces.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 09:58:33 +02:00
1 parent c3fdfba412
commit 56eebb849d
1 file changed
+29 -20
+29 -20
View File
@@ -1,10 +1,9 @@
emulator: PPSSPP
type: standalone + libretro
core_classification: official_port
source: "https://github.com/libretro/ppsspp"
upstream: "https://github.com/hrydgard/ppsspp"
profiled_date: "2026-03-24"
source_commit: "7b4ddb426bbe9e287bb7f19b0cfaebb4ea0d41d8"
source: "https://github.com/hrydgard/ppsspp"
profiled_date: "2026-10-21"
source_commit: "58935bbf282ddd446cc490574c2c09b9c8f8b470"
core_version: "Git"
display_name: "Sony - PlayStation Portable (PPSSPP)"
cores:
@@ -19,22 +18,32 @@ data_directories:
installed_on: [batocera, emudeck, lakka, recalbox, retrobat, retrodeck, retropie]
mode: libretro
destination: ""
source_ref: "libretro/libretro.cpp:537, 546, 549"
source_ref: "libretro/libretro.cpp:1216-1225, libretro/libretro.cpp:1271"
notes: |
Full HLE emulator. No Sony firmware or BIOS required.
All PSP kernel modules (flash0:/kd/*.prx) are reimplemented in C++.
Libretro core loads assets from system/PPSSPP/ via VFS.
Assets include replacement PGF fonts (18 files in flash0/font/),
The libretro core is built from hrydgard/ppsspp, the tree of the
standalone emulator, with its wrapper in libretro/.
Libretro core loads assets from system/PPSSPP/ via VFS
(libretro/libretro.cpp:1216-1225, 1271) and warns that core system files
are missing when compat.ini is absent (libretro/libretro.cpp:1229-1261).
Assets include replacement PGF fonts (flash0/font/),
game compatibility database (compat.ini), language mapping (langregion.ini),
and post-processing shaders (shaders/).
flash0/ is read from system/PPSSPP/flash0/ (libretro/libretro.cpp:546).
Without its fonts the font library holds no internal font and
sceFontOpen returns ERROR_FONT_INVALID_PARAMETER to the game
(Core/HLE/sceFont.cpp:805-864, 984-986), so text a game draws with the
PSP system fonts is lost. Without ppge_atlas.zim the system dialogs are
not drawn (Core/Util/PPGeDraw.cpp:227-230).
Libretro fork (2020-03-18) behind upstream.
Fonts are read from the game disc, then from flash0:/font of the NAND,
then from flash0/font/ in system/PPSSPP/ (Core/HLE/sceFont.cpp:1026-1048).
Without any of them the font library holds no internal font and
sceFontOpen returns SCE_FONT_ERROR_INVALID_PARAMETER to the game
(Core/HLE/sceFont.cpp:1197-1199), so text a game draws with the PSP system
fonts is lost. Without ppge_atlas.zim the system dialogs are not drawn
(Core/Util/PPGeDraw.cpp:252-255).
A real firmware is optional. The NAND is <memstick>/PSP/NAND
(Core/Util/PathUtil.cpp:144-145), which the libretro core places under
the save directory (libretro/libretro.cpp:1265, 1269). On boot, a game
disc carrying a newer firmware updater than the installed one is
unpacked into it (Core/System.cpp:575-578). Its flash0:/font,
kd/libmp4.prx, kd/mp4msv.prx and kd/mpeg.prx replace the HLE modules
when present (Core/HLE/HLE.cpp:408-446).
PSP_DEFAULT_FIRMWARE = 660 (Core/ConfigValues.h:40).
files:
@@ -44,8 +53,8 @@ files:
path: "PPSSPP/ppge_atlas.zim"
description: "PPGe dialog texture atlas for save/load dialogs, on-screen keyboard, system UI"
required: false
source_ref: "source Core/Util/PPGeDraw.cpp:227-228"
note: "PanicAlert if missing. System dialogs render without graphics but core continues running. Batocera, Recalbox, Lakka, RetroPie, RetroBat, EmuDeck and RetroDECK install the assets folder where their core reads it."
source_ref: "Core/Util/PPGeDraw.cpp:252-255"
note: "Logged as an error if missing. System dialogs render without graphics but core continues running. Batocera, Recalbox, Lakka, RetroPie, RetroBat, EmuDeck and RetroDECK install the assets folder where their core reads it."
- name: "ppge_atlas.meta"
installed_on: [batocera, emudeck, lakka, recalbox, retrobat, retrodeck, retropie]
@@ -53,7 +62,7 @@ files:
path: "PPSSPP/ppge_atlas.meta"
description: "PPGe atlas metadata (glyph positions, UV coords)"
required: false
source_ref: "source Core/Util/PPGeDraw.cpp:235-237"
source_ref: "Core/Util/PPGeDraw.cpp:257-263"
note: "Loaded after ppge_atlas.zim. Without it, dialog UI has no glyph layout. Batocera, Recalbox, Lakka, RetroPie, RetroBat, EmuDeck and RetroDECK install the assets folder where their core reads it."
- name: "ppge_atlas.zim"
@@ -64,7 +73,7 @@ files:
size: 666530
sha1: "30a33f3651f8e1b0967a5dfe6ff714baebcce41a"
bundled: true
source_ref: "source Core/Util/PPGeDraw.cpp:227-228"
source_ref: "Core/Util/PPGeDraw.cpp:252-255"
note: "Shipped in assets/ of the PPSSPP 1.20.4 Windows zip, which the standalone reads it from."
- name: "ppge_atlas.meta"
@@ -75,5 +84,5 @@ files:
size: 50242
sha1: "ab398f667d6fd778859307c105fe16388b8fdf63"
bundled: true
source_ref: "source Core/Util/PPGeDraw.cpp:235-237"
source_ref: "Core/Util/PPGeDraw.cpp:257-263"
note: "Shipped in assets/ of the PPSSPP 1.20.4 Windows zip, beside ppge_atlas.zim."