pcsxr: drop

Long‐dead upstream (completely vanished, in fact), using a release
from 2013, barely surviving on a huge pile of Debian patches and
drive‐by fixes. Even the Debian patch set in our package here is
out of date. The `meta.homepage` was updated to point to a GitHub
repository with commits from as recently as 5½ years ago, but that
appears to be a separate fork from another developer, and we never
actually shipped it.

The last time this package was substantially touched was by @vs49688,
who heroically took the time to patch it to update it from FFmpeg
2(!) to FFmpeg 4 as part of a tree‐wide sweep almost three years
ago. Now that I’m dealing with FFmpeg 4, it would need patching
again, and I really don’t feel like it.

I considered simply dropping the FFmpeg dependency by disabling
compressed CDDA support, but it’s just not worth it to keep
this package alive. The state of PlayStation emulation has improved
dramatically from when this fork was current. DuckStation and Mednafen
are both better options for the majority of people. The PCSX Reloaded
code lives on as PCSX ReARMed, which we package as a libretro core,
but not as a standalone emulator. I would encourage anyone who has
reason to want a packaged PCSX fork to package the standalone version
of PCSX ReARMed from <https://github.com/notaz/pcsx_rearmed>. You
can tag me for review if you’d like.
This commit is contained in:
Emily 2024-08-20 23:27:16 +01:00
parent 9e94196358
commit ae7c68f0fc
5 changed files with 1 additions and 195 deletions

View File

@ -1,76 +0,0 @@
From 351be6b3f2ad10d86ec4ae711db5a1067acc592a Mon Sep 17 00:00:00 2001
From: Zane van Iperen <zane@zanevaniperen.com>
Date: Sun, 7 Nov 2021 15:17:07 +1000
Subject: [PATCH] libpcsxcore: fix build with ffmpeg 4
---
libpcsxcore/cdriso.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c
index f89678e..6314482 100644
--- a/libpcsxcore/cdriso.c
+++ b/libpcsxcore/cdriso.c
@@ -266,14 +266,14 @@ static int decode_compressed_cdda_track(FILE* outfile, const char* infilepath, s
}
if (!decoded_frame) {
- if (!(decoded_frame = avcodec_alloc_frame())) {
+ if (!(decoded_frame = av_frame_alloc())) {
SysMessage(_(" -> Error allocating audio frame buffer. This track will not be available."));
avformat_close_input(&inAudioFormat);
- avcodec_free_frame(&decoded_frame);
+ av_frame_free(&decoded_frame);
return 1; // error decoding frame
}
} else {
- avcodec_get_frame_defaults(decoded_frame);
+ av_frame_unref(decoded_frame);
}
len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);
if (len > 0 && got_frame) {
@@ -285,7 +285,7 @@ static int decode_compressed_cdda_track(FILE* outfile, const char* infilepath, s
fwrite(decoded_frame->data[0], 1, data_size, outfile);
}
av_free_packet(&avpkt);
- //avcodec_free_frame(&decoded_frame);
+ //av_frame_free(&decoded_frame);
} while (moreFrames >= 0); // TODO: check for possible leaks
// file will be closed later on, now just flush it
@@ -294,7 +294,7 @@ static int decode_compressed_cdda_track(FILE* outfile, const char* infilepath, s
avformat_close_input(&inAudioFormat);
//avcodec_close(c);
//av_free(c);
- avcodec_free_frame(&decoded_frame);
+ av_frame_free(&decoded_frame);
return 0;
}
#endif
@@ -340,12 +340,12 @@ static int decode_compressed_cdda_track(FILE* outfile, FILE* infile, enum AVCode
while (avpkt.size > 0) {
int got_frame = 0;
if (!decoded_frame) {
- if (!(decoded_frame = avcodec_alloc_frame())) {
+ if (!(decoded_frame = av_frame_alloc())) {
SysPrintf(" -> Error allocating audio frame buffer. Track will not be available.");
return 1; // error decoding frame
}
} else {
- avcodec_get_frame_defaults(decoded_frame);
+ av_frame_unref(decoded_frame);
}
len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);
@@ -383,7 +383,7 @@ static int decode_compressed_cdda_track(FILE* outfile, FILE* infile, enum AVCode
avcodec_close(c);
av_free(c);
- avcodec_free_frame(&decoded_frame);
+ av_frame_free(&decoded_frame);
return 0;
}
#endif
--
2.31.1

View File

@ -1,97 +0,0 @@
{ lib, stdenv, fetchurl, autoreconfHook, intltool, pkg-config, gtk3, SDL2, xorg
, wrapGAppsHook3, libcdio, nasm, ffmpeg_4, file
, fetchpatch }:
stdenv.mkDerivation rec {
pname = "pcsxr";
version = "1.9.94";
# codeplex does not support direct downloading
src = fetchurl {
url = "mirror://debian/pool/main/p/pcsxr/pcsxr_${version}.orig.tar.xz";
sha256 = "0q7nj0z687lmss7sgr93ij6my4dmhkm2nhjvlwx48dn2lxl6ndla";
};
patches = [
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/01_fix-i386-exec-stack.patch";
sha256 = "17497wjxd6b92bj458s2769d9bpp68ydbvmfs9gp51yhnq4zl81x";
})
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/02_disable-ppc-auto-dynarec.patch";
sha256 = "0v8n79z034w6cqdrzhgd9fkdpri42mzvkdjm19x4asz94gg2i2kf";
})
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/03_fix-plugin-dir.patch";
sha256 = "0vkl0mv6whqaz79kvvvlmlmjpynyq4lh352j3bbxcr0vjqffxvsy";
})
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/04_update-homedir-symlinks.patch";
sha256 = "18r6n025ybr8fljfsaqm4ap31wp8838j73lrsffi49fkis60dp4j";
})
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/05_format-security.patch";
sha256 = "03m4kfc9bk5669hf7ji1anild08diliapx634f9cigyxh72jcvni";
})
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/06_warnings.patch";
sha256 = "0iz3g9ihnhisfgrzma9l74y4lhh57na9h41bmiam1millb796g71";
})
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/07_non-linux-ip-addr.patch";
sha256 = "14vb9l0l4nzxcymhjjs4q57nmsncmby9qpdr7c19rly5wavm4k77";
})
( fetchpatch {
url = "https://salsa.debian.org/games-team/pcsxr/raw/315e56d16e36ef3011f72d0fe86190728d2ba596/debian/patches/08_reproducible.patch";
sha256 = "1cx9q59drsk9h6l31097lg4aanaj93ysdz5p88pg9c7wvxk1qz06";
})
./uncompress2.patch
./0001-libpcsxcore-fix-build-with-ffmpeg-4.patch
];
nativeBuildInputs = [ autoreconfHook intltool pkg-config wrapGAppsHook3 ];
buildInputs = [
gtk3 SDL2 xorg.libXv xorg.libXtst libcdio nasm ffmpeg_4 file
xorg.libXxf86vm
];
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: AboutDlg.o:/build/pcsxr/gui/Linux.h:42: multiple definition of `cfgfile';
# LnxMain.o:/build/pcsxr/gui/Linux.h:42: first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
dynarecTarget =
if stdenv.isx86_64 then "x86_64"
else if stdenv.isi686 then "x86"
else "no"; #debian patch 2 says ppc doesn't work
configureFlags = [
"--enable-opengl"
"--enable-ccdda"
"--enable-libcdio"
"--enable-dynarec=${dynarecTarget}"
];
postInstall = ''
mkdir -p "$out/share/doc/${pname}-${version}"
cp README \
AUTHORS \
doc/keys.txt \
doc/tweaks.txt \
ChangeLog.df \
ChangeLog \
"$out/share/doc/${pname}-${version}"
'';
meta = with lib; {
broken = stdenv.isDarwin;
description = "Playstation 1 emulator";
homepage = "https://github.com/iCatButler/pcsxr";
maintainers = with maintainers; [ rardiol ];
license = licenses.gpl2Plus;
platforms = platforms.all;
mainProgram = "pcsxr";
};
}

View File

@ -1,20 +0,0 @@
--- a/libpcsxcore/cdriso.c
+++ b/libpcsxcore/cdriso.c
@@ -1219,7 +1219,7 @@
return ret;
}
-static int uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size)
+static int uncompress3(void *out, unsigned long *out_size, void *in, unsigned long in_size)
{
static z_stream z;
int ret = 0;
@@ -1298,7 +1298,7 @@
if (is_compressed) {
cdbuffer_size_expect = sizeof(compr_img->buff_raw[0]) << compr_img->block_shift;
cdbuffer_size = cdbuffer_size_expect;
- ret = uncompress2(compr_img->buff_raw[0], &cdbuffer_size, compr_img->buff_compressed, size);
+ ret = uncompress3(compr_img->buff_raw[0], &cdbuffer_size, compr_img->buff_compressed, size);
if (ret != 0) {
SysPrintf("uncompress failed with %d for block %d, sector %d\n",
ret, block, sector);

View File

@ -1133,6 +1133,7 @@ mapAliases ({
pash = throw "'pash' has been removed: abandoned by upstream. Use 'powershell' instead"; # Added 2023-09-16
patchelfStable = patchelf; # Added 2024-01-25
pcsctools = pcsc-tools; # Added 2023-12-07
pcsxr = throw "pcsxr was removed as it has been abandoned for over a decade; please use DuckStation, Mednafen, or the RetroArch PCSX ReARMed core"; # Added 2024-08-20
pdf2xml = throw "'pdf2xml' was removed: abandoned for years."; # Added 2023-10-22
peach = asouldocs; # Added 2022-08-28
pentablet-driver = xp-pen-g430-driver; # Added 2022-06-23

View File

@ -2669,8 +2669,6 @@ with pkgs;
pcem = callPackage ../applications/emulators/pcem { };
pcsxr = callPackage ../applications/emulators/pcsxr { };
ppsspp-sdl = let
argset = {
ffmpeg = ffmpeg_4;