mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 15:03:28 +00:00
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:
parent
9e94196358
commit
ae7c68f0fc
@ -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
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
@ -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);
|
@ -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
|
||||
|
@ -2669,8 +2669,6 @@ with pkgs;
|
||||
|
||||
pcem = callPackage ../applications/emulators/pcem { };
|
||||
|
||||
pcsxr = callPackage ../applications/emulators/pcsxr { };
|
||||
|
||||
ppsspp-sdl = let
|
||||
argset = {
|
||||
ffmpeg = ffmpeg_4;
|
||||
|
Loading…
Reference in New Issue
Block a user