diff options
author | nia <nia@pkgsrc.org> | 2020-05-30 14:49:00 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2020-05-30 14:49:00 +0000 |
commit | f8e87ce5ff7c35398701ffbfb2974979f929060b (patch) | |
tree | d387602f349633cd7b7a3914ca45a62d6e244f42 /emulators | |
parent | b2954a39731d85067892db867f0db660f370c011 (diff) | |
download | pkgsrc-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')
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, |