gnu: pcsxr: Update to 1.9.94-1.6666043.

* gnu/packages/emulators.scm (pcsxr): Update to 1.9.94-1.6666043.
[configure-flags]: Prevent compile errors.
[phases]: Remove 'ch-subdir.
[source]<origin>: Change upstream and commit.
<patches>: Add patches.
[home-page]: Change from dead link to active GitHub page.
* gnu/packages/patches/pcsxr-find-harfbuzz.patch: Add it.
* gnu/packages/patches/pcsxr-fix-definitions.patch: Add it.
* gnu/local.mk: Register them.

Change-Id: I5ebc91b3fa44152057cf197c0ab018fa064241a4
This commit is contained in:
Ada Stevenson 2025-08-05 14:52:15 +08:00 committed by Andreas Enge
parent a93f37fbf3
commit 8b1b192359
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3
4 changed files with 172 additions and 11 deletions

View file

@ -2036,6 +2036,8 @@ dist_patch_DATA = \
%D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/pango-skip-libthai-test.patch \
%D%/packages/patches/password-store-tree-compat.patch \ %D%/packages/patches/password-store-tree-compat.patch \
%D%/packages/patches/pciutils-hurd64.patch \ %D%/packages/patches/pciutils-hurd64.patch \
%D%/packages/patches/pcsxr-find-harfbuzz.patch \
%D%/packages/patches/pcsxr-fix-definitions.patch \
%D%/packages/patches/pdl-2.019-glut-bitmap-fonts.patch \ %D%/packages/patches/pdl-2.019-glut-bitmap-fonts.patch \
%D%/packages/patches/pdl-2.100-reproducibility.patch \ %D%/packages/patches/pdl-2.100-reproducibility.patch \
%D%/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch \ %D%/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch \

View file

@ -3571,20 +3571,22 @@ assembler, and debugger for the Intel 8085 microprocessor.
(define-public pcsxr (define-public pcsxr
;; No release since 2017. ;; No release since 2017.
(let ((commit "6484236cb0281e8040ff6c8078c87899a3407534")) (let ((commit "666604321bf2d3dd5e5f58b534cfce41e72ad7d1")
(revision "1"))
(package (package
(name "pcsxr") (name "pcsxr")
;; Version is tagged here: https://github.com/frealgagu/PCSX-Reloaded ;; From CMakeLists.txt.
(version "1.9.95") (version (git-version "1.9.94" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/pcsxr/PCSX-Reloaded") (url "https://github.com/MaddTheSane/PCSX-Reloaded")
(commit commit))) (commit commit)))
(patches (search-patches "pcsxr-find-harfbuzz.patch"
"pcsxr-fix-definitions.patch"))
(sha256 (sha256
(base32 (base32 "0lcypcawnipm02m3wnjsrm9r10llabncx78ramk7iw03a646dngj"))
"138mayp7zi9v4l3lm5f6xxkds619w1fgg769zm8s45c84jbz7dza"))
(file-name (git-file-name name commit)))) (file-name (git-file-name name commit))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -3593,11 +3595,10 @@ assembler, and debugger for the Intel 8085 microprocessor.
(list "-DSND_BACKEND=pulse" (list "-DSND_BACKEND=pulse"
"-DENABLE_CCDDA='ON'" "-DENABLE_CCDDA='ON'"
"-DUSE_LIBARCHIVE='ON'" "-DUSE_LIBARCHIVE='ON'"
"-DUSE_LIBCDIO='ON'") "-DUSE_LIBCDIO='ON'"
"-DCMAKE_C_FLAGS=-Wno-incompatible-pointer-types")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'cd-subdir
(lambda _ (chdir "pcsxr") #t))
(add-before 'configure 'fix-cdio-lookup (add-before 'configure 'fix-cdio-lookup
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "cmake/FindCdio.cmake" (substitute* "cmake/FindCdio.cmake"
@ -3623,7 +3624,7 @@ assembler, and debugger for the Intel 8085 microprocessor.
libxv libxv
libarchive libarchive
pulseaudio)) pulseaudio))
(home-page "https://archive.codeplex.com/?p=pcsxr") (home-page "https://github.com/MaddTheSane/PCSX-Reloaded")
(synopsis "PlayStation emulator") (synopsis "PlayStation emulator")
(description (description
"A PlayStation emulator based on PCSX-df Project with bugfixes and "A PlayStation emulator based on PCSX-df Project with bugfixes and

View file

@ -0,0 +1,21 @@
The .cmake files this project includes don't play well with harfbuzz's internal .cmake file.
This patch works around the issues present in the project's CMake configuration.
diff --git a/cmake/FindPango.cmake b/cmake/FindPango.cmake
index 2a7da99d..c08fbaab 100644
--- a/cmake/FindPango.cmake
+++ b/cmake/FindPango.cmake
@@ -74,6 +74,13 @@ foreach(pango_dep ${Pango_DEPS})
set_property (TARGET "${Pango}" APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${${pango_dep}}")
endforeach(pango_dep)
+if(NOT HARFBUZZ_INCLUDE_DIR)
+find_package(harfbuzz)
+endif()
+
+list(APPEND Pango_INCLUDE_DIRS ${HARFBUZZ_INCLUDE_DIR})
+set_property (TARGET "${Pango}" APPEND PROPERTY INTERFACE_LINK_LIBRARIES "harfbuzz::harfbuzz")
+
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Pango
REQUIRED_VARS

View file

@ -0,0 +1,137 @@
There are a lot of global variable definitions that aren't valid on modern compilers. According to upstream's Dockerfile,
this project is meant to compile with GCC 6! So there are some declarations that need to be changed.
diff --git a/gui/Linux.h b/gui/Linux.h
index 2a939050..99404d93 100644
--- a/gui/Linux.h
+++ b/gui/Linux.h
@@ -44,8 +44,8 @@
extern gboolean UseGui;
extern int StatesC;
-char cfgfile[MAXPATHLEN]; /* ADB Comment this out - make a local var, or at least use gchar funcs */
-char cfgfile_basename[MAXPATHLEN]; /* ADB Comment this out - make a local var, or at least use gchar funcs */
+extern char cfgfile[MAXPATHLEN]; /* ADB Comment this out - make a local var, or at least use gchar funcs */
+extern char cfgfile_basename[MAXPATHLEN]; /* ADB Comment this out - make a local var, or at least use gchar funcs */
int LoadConfig();
void SaveConfig();
diff --git a/gui/LnxMain.c b/gui/LnxMain.c
index d6dd9316..02002bc1 100644
--- a/gui/LnxMain.c
+++ b/gui/LnxMain.c
@@ -49,6 +49,9 @@ enum {
gboolean UseGui = TRUE;
+char cfgfile[MAXPATHLEN] = {0};
+char cfgfile_basename[MAXPATHLEN] = {0};
+
static void CreateMemcard(char *filename, char *conf_mcd) {
gchar *mcd;
struct stat buf;
diff --git a/plugins/bladesio1/sio1.c b/plugins/bladesio1/sio1.c
index 17ac4b65..c6fd585a 100644
--- a/plugins/bladesio1/sio1.c
+++ b/plugins/bladesio1/sio1.c
@@ -55,8 +55,6 @@ static const unsigned char build = 1;
static void (CALLBACK *irqCallback)(void) = 0;
-Settings settings;
-
/* sio status flags.
*/
enum {
diff --git a/plugins/dfinput/pad.h b/plugins/dfinput/pad.h
index 8337fe7e..6d44851d 100644
--- a/plugins/dfinput/pad.h
+++ b/plugins/dfinput/pad.h
@@ -151,7 +151,7 @@ typedef struct tagKeyDef {
enum { ANALOG_XP = 0, ANALOG_XM, ANALOG_YP, ANALOG_YM };
#if SDL_VERSION_ATLEAST(2,0,0)
-SDL_GameControllerButton controllerMap[DKEY_TOTAL];
+extern SDL_GameControllerButton controllerMap[DKEY_TOTAL];
#endif
typedef struct tagPadDef {
diff --git a/plugins/dfnet/cfg.c b/plugins/dfnet/cfg.c
index 921efbe3..1057426a 100644
--- a/plugins/dfnet/cfg.c
+++ b/plugins/dfnet/cfg.c
@@ -11,6 +11,8 @@
#include "dfnet.h"
+Config conf;
+
#define CFG_FILENAME "dfnet.cfg"
void SaveConf() {
diff --git a/plugins/dfnet/dfnet.c b/plugins/dfnet/dfnet.c
index 6c6ec5f9..ddc92169 100644
--- a/plugins/dfnet/dfnet.c
+++ b/plugins/dfnet/dfnet.c
@@ -24,6 +24,9 @@ const unsigned char build = 3; // increase that with each version
static char *libraryName = N_("Socket Driver");
+fd_set rset;
+fd_set wset;
+
unsigned long CALLBACK PSEgetLibType(void) {
return PSE_LT_NET;
}
diff --git a/plugins/dfnet/dfnet.h b/plugins/dfnet/dfnet.h
index 937814f5..e2699ad3 100644
--- a/plugins/dfnet/dfnet.h
+++ b/plugins/dfnet/dfnet.h
@@ -56,7 +56,7 @@ __private_extern char* PLUGLOC(char* toloc);
typedef void* HWND;
-struct timeval tm;
+extern struct timeval tm;
#define CALLBACK
@@ -70,24 +70,24 @@ typedef struct {
char ipAddress[32];
} Config;
-Config conf;
+extern Config conf;
void LoadConf(void);
void SaveConf(void);
-int sock;
-char *PadSendData;
-char *PadRecvData;
-char PadSendSize;
-char PadRecvSize;
-char PadSize[2];
-int PadCount;
-int PadCountMax;
-int PadInit;
-int Ping;
-volatile int WaitCancel;
-fd_set rset;
-fd_set wset;
+extern int sock;
+extern char *PadSendData;
+extern char *PadRecvData;
+extern char PadSendSize;
+extern char PadRecvSize;
+extern char PadSize[2];
+extern int PadCount;
+extern int PadCountMax;
+extern int PadInit;
+extern int Ping;
+extern volatile int WaitCancel;
+extern fd_set rset;
+extern fd_set wset;
long sockInit(void);
long sockShutdown(void);