summaryrefslogtreecommitdiff
path: root/emulators/libretro-pcsx-rearmed
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2020-05-30 14:49:00 +0000
committernia <nia@pkgsrc.org>2020-05-30 14:49:00 +0000
commitf8e87ce5ff7c35398701ffbfb2974979f929060b (patch)
treed387602f349633cd7b7a3914ca45a62d6e244f42 /emulators/libretro-pcsx-rearmed
parentb2954a39731d85067892db867f0db660f370c011 (diff)
downloadpkgsrc-f8e87ce5ff7c35398701ffbfb2974979f929060b.tar.gz
libretro-pcsx-rearmed: Update to 20200526
Changes: * Update lightrec to latest upstream * Minimize logs when loading a cheevos-compatible content * Cleanup retro_run() - - move input query into separate functions - move internal fps display to separate function * Hide other inputs from core options - - This adds a core option to hide some input options like multitaps, player ports 3-8 and analog-related fine-tuning options. - also combine dynarec-only options in one #define directive * More core option fixes - - This PR fixes core options and moves them to the related dynarec modes where they are implemented. LIGHTREC = relates to platforms that supports the new Lightrec mode NEW_DYNAREC = relates to previous dynarec implementation that is still used for some 32bit devices - Dynarec Recompiler core option, both dynarec implementation can be enabled or disabled * Move guncon options to update_variables - - This should stop unnecessary RETRO_ENVIRONMENT_GET_VARIABLE callback and log spamming * Fix some edge case where core can freeze upon loading content * Automatically disable Lightrec when no BIOS is present, take 2 * cdriso: fix a disk switching deadlock when closing a CD image * ARM NEON: Fixed bug where MSB of a 15-bit BGR color could corrupt green value. * cdriso: fix a disk switching deadlock * unai: Add ARM-optimized lighting / blending functions Addendum on UNAI ARM-optimized lighting/blending improvements - "Looking at the generated ASM on 3DS, I thought I could squeeze out some extra performance by moving the inner lighting and blending functions to handwritten A32 assembly. This gives a medium improvement generally (3-5fps faster on the beach in Crash 1) and a large improvement when doing lots of blending (46-48fps before, 57-60fps after, behind the waterfall in Water Dragon Isle in Chrono Cross). Some other notes: * I used the ARM11 MPCore (3DS CPU) timings for pipelining. * I had a few stall cycles during lighting, so I used them to preserve the MSB for lighting and blending, which saved a store, load, and orr later on. ~3-6 cycles saved overall by doing that. * I switched from u16 to uint_fast16_t, which is 32-bit on this platform. This saved a few useless uxth instructions for another few cycles. This shouldn't affect other platforms, but I don't know for sure. Could typedef if necessary. * A lot of the speed improvement in blending comes from not using two instructions per and. For example, & 0x8000 -- the compiler preferred to mask out bytes using bic 0x7F00 and bic 0x00FF. Both slower and seemed less correct for what we're trying to do."
Diffstat (limited to 'emulators/libretro-pcsx-rearmed')
-rw-r--r--emulators/libretro-pcsx-rearmed/DESCR2
-rw-r--r--emulators/libretro-pcsx-rearmed/Makefile42
-rw-r--r--emulators/libretro-pcsx-rearmed/distinfo13
-rw-r--r--emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_cdriso.c22
-rw-r--r--emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_new__dynarec_new__dynarec.c15
-rw-r--r--emulators/libretro-pcsx-rearmed/patches/patch-plugins_cdrcimg_cdrcimg.c22
6 files changed, 23 insertions, 93 deletions
diff --git a/emulators/libretro-pcsx-rearmed/DESCR b/emulators/libretro-pcsx-rearmed/DESCR
index 85116938c6f..b4b0c622ed5 100644
--- a/emulators/libretro-pcsx-rearmed/DESCR
+++ b/emulators/libretro-pcsx-rearmed/DESCR
@@ -4,4 +4,4 @@ straight into any libretro-compatible frontend. This development interface is
open to others so that they can run these pluggable emulator and game cores
also in their own programs or devices.
-PCSX ReARMed is a Sony PlayStation1 video game system emulator.
+PCSX ReARMed is a Sony PlayStation 1 video game system emulator.
diff --git a/emulators/libretro-pcsx-rearmed/Makefile b/emulators/libretro-pcsx-rearmed/Makefile
index 276579e5b94..55ce024be6f 100644
--- a/emulators/libretro-pcsx-rearmed/Makefile
+++ b/emulators/libretro-pcsx-rearmed/Makefile
@@ -1,45 +1,37 @@
-# $NetBSD: Makefile,v 1.10 2020/05/26 09:45:15 nia Exp $
+# $NetBSD: Makefile,v 1.11 2020/05/30 14:49:00 nia Exp $
-DISTNAME= libretro-pcsx-rearmed-0.22
+DISTNAME= libretro-pcsx-rearmed-20200526
CATEGORIES= emulators
-MASTER_SITES= ${MASTER_SITE_GITHUB:=notaz/}
GITHUB_PROJECT= pcsx_rearmed
-GITHUB_TAG= r22
+GITHUB_TAG= 7973b25fe929f92e146a854ecaf4f3cea5b4ffb8
MAINTAINER= pkgsrc-users@NetBSD.org
-HOMEPAGE= https://notaz.gp2x.de/pcsx_rearmed.php
+HOMEPAGE= https://docs.libretro.com/library/pcsx_rearmed/
COMMENT= Libretro core based on the PCSX ReARMed emulator
LICENSE= gnu-gpl-v2
USE_LANGUAGES= c c++
-USE_TOOLS+= gmake
MAKE_FILE= Makefile.libretro
-OPSYSVARS+= SOEXT
-SOEXT.Darwin= dylib
-SOEXT.*= so
-PLIST_SUBST+= SOEXT=${SOEXT}
-
-INSTALLATION_DIRS+= ${PREFIX}/lib/libretro
-
-BUILDLINK_TRANSFORM+= rm:-ldl
+MAKE_FLAGS+= WANT_ZLIB=0 # disable vendored zlib
.include "../../mk/bsd.prefs.mk"
-.if !empty(MACHINE_ARCH:M*arm*hf)
-PCSX_REARMED_PLATFORM= ${MACHINE_ARCH}-hardfloat
-.else
-PCSX_REARMED_PLATFORM= unix
+.if ${MACHINE_ARCH} == "earmv7hf"
+MAKE_FLAGS+= ARCH=arm
+MAKE_FLAGS+= DYNAREC=ari64
+MAKE_FLAGS+= HAVE_NEON=1
+MAKE_FLAGS+= BUILTIN_GPU=neon
+.elif !empty(MACHINE_ARCH:M*arm*)
+MAKE_FLAGS+= ARCH=arm
+MAKE_FLAGS+= DYNAREC=ari64
+MAKE_FLAGS+= HAVE_NEON=0
+MAKE_FLAGS+= BUILTIN_GPU=peops
.endif
-MAKE_ENV+= platform="${PCSX_REARMED_PLATFORM}"
+LIBRETRO_CORE= pcsx_rearmed
-do-install:
- ${INSTALL_LIB} ${WRKSRC}/pcsx_rearmed_libretro.so \
- ${DESTDIR}${PREFIX}/lib/libretro/pcsx_rearmed_libretro.so
+.include "../../emulators/retroarch/core.mk"
.include "../../devel/zlib/buildlink3.mk"
-.include "../../graphics/png/buildlink3.mk"
-.include "../../mk/dlopen.buildlink3.mk"
-BUILDLINK_TRANSFORM+= opt:-ldl:${BUILDLINK_LDADD.dl:Q}
.include "../../mk/bsd.pkg.mk"
diff --git a/emulators/libretro-pcsx-rearmed/distinfo b/emulators/libretro-pcsx-rearmed/distinfo
index 2f4b43a512a..605afe4a619 100644
--- a/emulators/libretro-pcsx-rearmed/distinfo
+++ b/emulators/libretro-pcsx-rearmed/distinfo
@@ -1,9 +1,6 @@
-$NetBSD: distinfo,v 1.5 2017/02/17 17:02:01 joerg Exp $
+$NetBSD: distinfo,v 1.6 2020/05/30 14:49:00 nia Exp $
-SHA1 (libretro-pcsx-rearmed-0.22.tar.gz) = bdd2e38aa53c13e557ddc0ccac2bdcea909f9f9d
-RMD160 (libretro-pcsx-rearmed-0.22.tar.gz) = ea7328498d32d12ee3e4b3504ed1685effecb9a1
-SHA512 (libretro-pcsx-rearmed-0.22.tar.gz) = e193e3a8061595a0ffe13d2755b446560687f776e72ffd51db9ba982267353ecf5a4ce82a060806da2d3389e4c6adaa99cddd3b58d29d30f196d9a828bb72d29
-Size (libretro-pcsx-rearmed-0.22.tar.gz) = 1153355 bytes
-SHA1 (patch-libpcsxcore_cdriso.c) = 31339ba2ea5a812c1172630bfb7ea64bd20ec9ec
-SHA1 (patch-libpcsxcore_new__dynarec_new__dynarec.c) = 82ec36e064ae4f725379ca889eefe1f60038adc0
-SHA1 (patch-plugins_cdrcimg_cdrcimg.c) = ecaca7dc5dd4ee8ecc19085947795be2112ed8d0
+SHA1 (libretro-pcsx-rearmed-20200526-7973b25fe929f92e146a854ecaf4f3cea5b4ffb8.tar.gz) = dd07cdb90a432d3626147ae8901fdfd8489f883a
+RMD160 (libretro-pcsx-rearmed-20200526-7973b25fe929f92e146a854ecaf4f3cea5b4ffb8.tar.gz) = dace80b932044463eb0cf6fc0c9eb5917f5c030b
+SHA512 (libretro-pcsx-rearmed-20200526-7973b25fe929f92e146a854ecaf4f3cea5b4ffb8.tar.gz) = bd8c2e5ca9d434005790767d3a4a2d7bc86deb1ca272ef73676c99a0cacb1dd92e843732d4f3455f77d0bce4666953befef7a108a616e8a4b2ff752deeef4e69
+Size (libretro-pcsx-rearmed-20200526-7973b25fe929f92e146a854ecaf4f3cea5b4ffb8.tar.gz) = 2278331 bytes
diff --git a/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_cdriso.c b/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_cdriso.c
deleted file mode 100644
index d458a88e3e1..00000000000
--- a/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_cdriso.c
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-libpcsxcore_cdriso.c,v 1.1 2017/02/17 17:02:01 joerg Exp $
-
---- libpcsxcore/cdriso.c.orig 2017-02-17 14:01:16.071768567 +0000
-+++ libpcsxcore/cdriso.c
-@@ -1082,7 +1082,7 @@ static int cdread_sub_mixed(FILE *f, uns
- return ret;
- }
-
--static int uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size)
-+static int my_uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size)
- {
- static z_stream z;
- int ret = 0;
-@@ -1161,7 +1161,7 @@ static int cdread_compressed(FILE *f, un
- 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 = my_uncompress2(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);
diff --git a/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_new__dynarec_new__dynarec.c b/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_new__dynarec_new__dynarec.c
deleted file mode 100644
index ed5be202a35..00000000000
--- a/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_new__dynarec_new__dynarec.c
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-libpcsxcore_new__dynarec_new__dynarec.c,v 1.1 2015/02/10 17:51:37 jmcneill Exp $
-
-"link_addr" is a symbol in NetBSD libc.
-
---- libpcsxcore/new_dynarec/new_dynarec.c.orig 2015-02-05 00:56:05.000000000 +0000
-+++ libpcsxcore/new_dynarec/new_dynarec.c
-@@ -131,7 +131,7 @@ struct ll_entry
- int ccadj[MAXBLOCK];
- int slen;
- u_int instr_addr[MAXBLOCK];
-- u_int link_addr[MAXBLOCK][3];
-+static u_int link_addr[MAXBLOCK][3];
- int linkcount;
- u_int stubs[MAXBLOCK*3][8];
- int stubcount;
diff --git a/emulators/libretro-pcsx-rearmed/patches/patch-plugins_cdrcimg_cdrcimg.c b/emulators/libretro-pcsx-rearmed/patches/patch-plugins_cdrcimg_cdrcimg.c
deleted file mode 100644
index 69067492b9b..00000000000
--- a/emulators/libretro-pcsx-rearmed/patches/patch-plugins_cdrcimg_cdrcimg.c
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-plugins_cdrcimg_cdrcimg.c,v 1.1 2017/02/17 17:02:01 joerg Exp $
-
---- plugins/cdrcimg/cdrcimg.c.orig 2017-02-17 14:01:41.343339778 +0000
-+++ plugins/cdrcimg/cdrcimg.c
-@@ -98,7 +98,7 @@ static long CDRgetTD(unsigned char track
- return 0;
- }
-
--int uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size)
-+static int my_uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size)
- {
- static z_stream z;
- int ret = 0;
-@@ -199,7 +199,7 @@ static long CDRreadTrack(unsigned char *
- ret = uncompress(cdbuffer->raw[0], &cdbuffer_size, cdbuffer->compressed, size);
- break;
- case CDRC_ZLIB2:
-- ret = uncompress2(cdbuffer->raw[0], &cdbuffer_size, cdbuffer->compressed, size);
-+ ret = my_uncompress2(cdbuffer->raw[0], &cdbuffer_size, cdbuffer->compressed, size);
- break;
- case CDRC_BZ:
- ret = pBZ2_bzBuffToBuffDecompress((char *)cdbuffer->raw, (unsigned int *)&cdbuffer_size,