From 91512742a28fb5dd4389795f4af6931e4691b21c Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Tue, 10 Nov 2026 14:09:54 +0100 Subject: [PATCH] fix: give FPse plugin libraries NEEDED entries The readelf parts of the FPse 12.1 and FPseNG 1.13 plugin refs now carry the DT_NEEDED entry address in each build's libfpse.so. --- emulators/fpse-ng.yml | 17 +++++++++-------- emulators/fpse.yml | 6 +++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/emulators/fpse-ng.yml b/emulators/fpse-ng.yml index 9897c8943..83fb2c582 100644 --- a/emulators/fpse-ng.yml +++ b/emulators/fpse-ng.yml @@ -106,7 +106,8 @@ notes: | Android runtime and are not files anyone supplies. ref: Main.java:25134-25137, Main.java:27300-27312, Main.java:9985, Main.java:1116-1133, Main.java:8496, Main.java:13854, - Main.java:23615-23621, libfpse.so readelf -d + Main.java:23615-23621, + FPseNG 1.13 libfpse.so .dynamic DT_NEEDED 0x220ae0-0x220baf Resources unpack through helpers that differ in one respect. The guarded one writes only when the target is absent, so bios/kanji.rom, fpse.ini and the @@ -171,7 +172,7 @@ files: category: game_data description: "software renderer plugin" note: "Named by System.loadLibrary(\"soft1\") outside any catch and listed in DT_NEEDED by the core. Also holds the VR background loader." - source_ref: "Main.java:27302, libfpse.so readelf -d" + source_ref: "Main.java:27302, FPseNG 1.13 libfpse.so DT_NEEDED libsoft1.so at 0x220af0 (loader-resolved)" - name: libspuplugin.so size: 51120 @@ -181,7 +182,7 @@ files: category: game_data description: "sound plugin" note: "Named by System.loadLibrary(\"spuplugin\") outside any catch and listed in DT_NEEDED." - source_ref: "Main.java:27301, libfpse.so readelf -d" + source_ref: "Main.java:27301, FPseNG 1.13 libfpse.so DT_NEEDED libspuplugin.so at 0x220b00 (loader-resolved)" - name: libopengl.so size: 688072 @@ -192,7 +193,7 @@ files: aliases: ["libopengl1.so"] description: "OpenGL renderer plugin" note: "Named by System.loadLibrary(\"opengl\") outside any catch and listed in DT_NEEDED. A plugin chosen from the .so browser is copied over libopengl1.so under the root." - source_ref: "Main.java:27304, Main.java:9985, libfpse.so readelf -d" + source_ref: "Main.java:27304, Main.java:9985, FPseNG 1.13 libfpse.so DT_NEEDED libopengl.so at 0x220ae0 (loader-resolved)" - name: libnfsplugin.so size: 300944 @@ -202,7 +203,7 @@ files: category: game_data description: "NFS client plugin, for discs read from a network share" note: "Named by System.loadLibrary(\"nfsplugin\") outside any catch and listed in DT_NEEDED. Backs the isnfsbios and copyfromnfs entry points." - source_ref: "Main.java:27303, Main.java:25670, libfpse.so readelf -d" + source_ref: "Main.java:27303, Main.java:25670, FPseNG 1.13 libfpse.so DT_NEEDED libnfsplugin.so at 0x220b30 (loader-resolved)" - name: libsdl.so size: 67536 @@ -212,7 +213,7 @@ files: category: game_data description: "SDL audio backend" note: "Named by System.loadLibrary(\"sdl\") from a static block that catches UnsatisfiedLinkError, and listed in DT_NEEDED, so the core will not link without it." - source_ref: "Main.java:25134, libfpse.so readelf -d" + source_ref: "Main.java:25134, FPseNG 1.13 libfpse.so DT_NEEDED libsdl.so at 0x220b20 (loader-resolved)" - name: libneon.so size: 5688 @@ -222,7 +223,7 @@ files: category: game_data description: "NEON colour conversion routines" note: "Named by System.loadLibrary(\"neon\") from the same static block and listed in DT_NEEDED." - source_ref: "Main.java:25135, libfpse.so readelf -d" + source_ref: "Main.java:25135, FPseNG 1.13 libfpse.so DT_NEEDED libneon.so at 0x220b10 (loader-resolved)" - name: libuncompress.so size: 1512392 @@ -232,7 +233,7 @@ files: category: game_data description: "archive extractor for .zip, .rar, .7z, .ape and .ecm images" note: "Named by System.loadLibrary(\"uncompress\") outside any catch, and the only one of the plugins the core does not list in DT_NEEDED." - source_ref: "Main.java:27300, Main.java:25408, libfpse.so readelf -d" + source_ref: "Main.java:27300, Main.java:25408, FPseNG 1.13 libfpse.so .dynamic DT_NEEDED 0x220ae0-0x220baf (no libuncompress.so)" # The Shaders setting walks FPse64/shaders and reads the selected pair, # passing the bytes to setVSH and setFSH. The packaged set below is copied diff --git a/emulators/fpse.yml b/emulators/fpse.yml index 6386b8238..d8538e43e 100644 --- a/emulators/fpse.yml +++ b/emulators/fpse.yml @@ -95,7 +95,7 @@ notes: | ref: Main.java:29686-29698, Main.java:20405-20406, Main.java:11010, Main.java:3417-3423, Main.java:1120-1137, FPse 0.11.190 Main.java:24126-24207, FPse 0.11.190 Main.java:860-871, - FPse 12.1 libfpse.so readelf -d, + FPse 12.1 libfpse.so .dynamic DT_NEEDED 0x37652c-0x376593, fpse.net/plugins605v7.zip md5 ae5dbdc27452092af3e712448f427fd3 Resources unpack through two helpers that differ in one respect. b2 writes only @@ -181,7 +181,7 @@ files: category: game_data description: "SDL 1.2 audio backend" note: "Named by System.loadLibrary(\"sdl\") and listed in DT_NEEDED." - source_ref: "Main.java:20405, FPse 12.1 libfpse.so readelf -d" + source_ref: "Main.java:20405, FPse 12.1 libfpse.so DT_NEEDED libsdl.so at 0x37654c (loader-resolved)" - name: libneon.so size: 5308 @@ -191,7 +191,7 @@ files: category: game_data description: "NEON colour conversion routines" note: "Named by System.loadLibrary(\"neon\") and listed in DT_NEEDED, which resolves bgr555rgb565neon for the core." - source_ref: "Main.java:20406, FPse 12.1 libfpse.so readelf -d" + source_ref: "Main.java:20406, FPse 12.1 libfpse.so DT_NEEDED libneon.so at 0x376544 (loader-resolved)" - name: libuncompress.so size: 1138680