Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/emulators/libretro-pcsx-rearmed libretro-pcsx-rearmed:...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/7fc4c5da78c7
branches:  trunk
changeset: 433054:7fc4c5da78c7
user:      nia <nia%pkgsrc.org@localhost>
date:      Sat May 30 14:49:00 2020 +0000

description:
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:

 emulators/libretro-pcsx-rearmed/DESCR                                                 |   2 +-
 emulators/libretro-pcsx-rearmed/Makefile                                              |  42 ++++-----
 emulators/libretro-pcsx-rearmed/distinfo                                              |  13 +-
 emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_cdriso.c                    |  22 -----
 emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_new__dynarec_new__dynarec.c |  15 ---
 emulators/libretro-pcsx-rearmed/patches/patch-plugins_cdrcimg_cdrcimg.c               |  22 -----
 6 files changed, 23 insertions(+), 93 deletions(-)

diffs (164 lines):

diff -r 8859342e1e03 -r 7fc4c5da78c7 emulators/libretro-pcsx-rearmed/DESCR
--- a/emulators/libretro-pcsx-rearmed/DESCR     Sat May 30 14:45:47 2020 +0000
+++ b/emulators/libretro-pcsx-rearmed/DESCR     Sat May 30 14:49:00 2020 +0000
@@ -4,4 +4,4 @@
 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 -r 8859342e1e03 -r 7fc4c5da78c7 emulators/libretro-pcsx-rearmed/Makefile
--- a/emulators/libretro-pcsx-rearmed/Makefile  Sat May 30 14:45:47 2020 +0000
+++ b/emulators/libretro-pcsx-rearmed/Makefile  Sat May 30 14:49:00 2020 +0000
@@ -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@localhost
-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 -r 8859342e1e03 -r 7fc4c5da78c7 emulators/libretro-pcsx-rearmed/distinfo
--- a/emulators/libretro-pcsx-rearmed/distinfo  Sat May 30 14:45:47 2020 +0000
+++ b/emulators/libretro-pcsx-rearmed/distinfo  Sat May 30 14:49:00 2020 +0000
@@ -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 -r 8859342e1e03 -r 7fc4c5da78c7 emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_cdriso.c
--- a/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_cdriso.c        Sat May 30 14:45:47 2020 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -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 -r 8859342e1e03 -r 7fc4c5da78c7 emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_new__dynarec_new__dynarec.c
--- a/emulators/libretro-pcsx-rearmed/patches/patch-libpcsxcore_new__dynarec_new__dynarec.c     Sat May 30 14:45:47 2020 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -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 -r 8859342e1e03 -r 7fc4c5da78c7 emulators/libretro-pcsx-rearmed/patches/patch-plugins_cdrcimg_cdrcimg.c
--- a/emulators/libretro-pcsx-rearmed/patches/patch-plugins_cdrcimg_cdrcimg.c   Sat May 30 14:45:47 2020 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -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,



Home | Main Index | Thread Index | Old Index