pcsx_rearmed.git
21 months agoUpdate lightrec 20220910 (#686)
Paul Cercueil [Sun, 11 Sep 2022 09:12:45 +0000 (11:12 +0200)]
Update lightrec 20220910 (#686)

* git subrepo pull --force deps/lightning

subrepo:
  subdir:   "deps/lightning"
  merged:   "b1dfc564e2"
upstream:
  origin:   "https://github.com/pcercuei/gnu_lightning.git"
  branch:   "pcsx_rearmed"
  commit:   "b1dfc564e2"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* include: update lightning.h

Update lightning.h with a copy generated from the latest master.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
* git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "e122276183"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "e122276183"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* lightrec: Update to latest Lightrec API

Remove the debug features since they aren't really useful in the
libretro core.

Update the glue code to use the updated API functions; and implement
lightrec_can_hw_direct() for a slight performance increase.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
21 months agosome big endian fixes
notaz [Sat, 10 Sep 2022 14:53:54 +0000 (17:53 +0300)]
some big endian fixes

"kinda sucks but it works" kind of thing

21 months agospu: fix wrong volume shift
notaz [Sat, 10 Sep 2022 13:46:05 +0000 (16:46 +0300)]
spu: fix wrong volume shift

libretro/pcsx_rearmed#685

21 months agofix build
notaz [Fri, 9 Sep 2022 23:37:50 +0000 (02:37 +0300)]
fix build

forgot to add 'extern'

21 months agostandalone: allow lighrec for testing
notaz [Fri, 9 Sep 2022 23:26:04 +0000 (02:26 +0300)]
standalone: allow lighrec for testing

./configure
make DYNAREC=lightrec

21 months agopsxinterpreter: reduce the use of globals
notaz [Fri, 9 Sep 2022 19:11:30 +0000 (22:11 +0300)]
psxinterpreter: reduce the use of globals

they induce penalties with -fPIC

21 months agopsxinterpreter: sync with upstream
notaz [Fri, 9 Sep 2022 22:58:53 +0000 (01:58 +0300)]
psxinterpreter: sync with upstream

for easier merging

21 months agoeasier logging of unhandled stuff
notaz [Thu, 8 Sep 2022 17:09:04 +0000 (20:09 +0300)]
easier logging of unhandled stuff

21 months agocdrom: partially emulate the fifo
notaz [Thu, 8 Sep 2022 18:13:25 +0000 (21:13 +0300)]
cdrom: partially emulate the fifo

21 months agodma: try more accurate timings
notaz [Thu, 8 Sep 2022 15:17:06 +0000 (18:17 +0300)]
dma: try more accurate timings

seems to help Legend of Mana

21 months agocdrom: get rid of pTransfer
notaz [Thu, 8 Sep 2022 15:01:34 +0000 (18:01 +0300)]
cdrom: get rid of pTransfer

it could easily crash the emu (misbehaving game or even malicious ISO)

21 months agocdrom: don't reschedule irqs
notaz [Tue, 6 Sep 2022 21:47:55 +0000 (00:47 +0300)]
cdrom: don't reschedule irqs

trigger shortly after ack instead, like nocash describes

21 months agocdrom: clean up command handling
notaz [Mon, 5 Sep 2022 20:47:10 +0000 (23:47 +0300)]
cdrom: clean up command handling

21 months agocdrom: try to eliminate playback timing drifting
notaz [Mon, 5 Sep 2022 16:41:52 +0000 (19:41 +0300)]
cdrom: try to eliminate playback timing drifting

21 months agopsxcounters: try to eliminate another source of audio drift
notaz [Tue, 6 Sep 2022 23:09:08 +0000 (02:09 +0300)]
psxcounters: try to eliminate another source of audio drift

21 months agospu: cleanup some irq hacks
notaz [Wed, 7 Sep 2022 23:50:36 +0000 (02:50 +0300)]
spu: cleanup some irq hacks

Note that bIgnoreLoop is still needed or
"Misadventures Of Tron Bonne" may hang after cutscenes.
Before this commit the game will sometimes cut off dialogues.

21 months agospu: sync on xa playback start
notaz [Tue, 6 Sep 2022 15:25:42 +0000 (18:25 +0300)]
spu: sync on xa playback start

this avoids nasty underflows at the start of the stream

21 months agospu: support master volume
notaz [Sun, 4 Sep 2022 23:03:24 +0000 (02:03 +0300)]
spu: support master volume

21 months agospu: rename dwChannelOn to something more suitable
notaz [Sun, 4 Sep 2022 21:40:58 +0000 (00:40 +0300)]
spu: rename dwChannelOn to something more suitable

21 months agospu: remove some strange rounding
notaz [Sun, 4 Sep 2022 21:02:28 +0000 (00:02 +0300)]
spu: remove some strange rounding

Seems wrong.
Also deal with now possible div by 0 in scan_for_irq().

21 months agocdrom: remove confusing comment
notaz [Sat, 3 Sep 2022 15:37:53 +0000 (18:37 +0300)]
cdrom: remove confusing comment

No need for a wall-of-text comment for something as basic as seeking.
It also said "disabling it with `&& false` for now" when there is no
such code here.

21 months agocdrom: remove another hack
notaz [Sat, 3 Sep 2022 15:33:09 +0000 (18:33 +0300)]
cdrom: remove another hack

The hack just makes Worms Pinball unstable, and Crusaders of Might
and Magic no longer seems to need it.

21 months agocdrom: get rid of cdrPlayInterrupt
notaz [Fri, 2 Sep 2022 20:13:44 +0000 (23:13 +0300)]
cdrom: get rid of cdrPlayInterrupt

unify with cdrReadInterrupt and name it cdrPlaySeekReadInterrupt

... althoug these are not actually interrupts, more like events,
but keep this weird PCSX's naming convention

21 months agocdrom: try to clean up the seeking mess
notaz [Thu, 1 Sep 2022 21:47:56 +0000 (00:47 +0300)]
cdrom: try to clean up the seeking mess

regressions are likely (this is cdrom code - pcsx's weak spot),
so feel free to revert if I'm not responsive

21 months agocdrom: should use the last Setloc loc and SeekL
notaz [Wed, 31 Aug 2022 23:09:49 +0000 (02:09 +0300)]
cdrom: should use the last Setloc loc and SeekL

notaz/pcsx_rearmed#253

21 months agocdrom: some debugging aid
notaz [Wed, 31 Aug 2022 23:02:21 +0000 (02:02 +0300)]
cdrom: some debugging aid

21 months agocdrom: sync with upstream
notaz [Fri, 2 Sep 2022 23:09:14 +0000 (02:09 +0300)]
cdrom: sync with upstream

Without this can't cherry-pick stuff from there.

21 months agoRevert "Revert "misc: get rid of an unaligned read""
notaz [Tue, 30 Aug 2022 21:02:47 +0000 (00:02 +0300)]
Revert "Revert "misc: get rid of an unaligned read""

This reverts commit af0df01112a234b848be5fe87a2066bb938d356c.

21 months agoplugins: try to untangle the CALLBACK mess
notaz [Mon, 29 Aug 2022 23:58:32 +0000 (02:58 +0300)]
plugins: try to untangle the CALLBACK mess

on ARM it doesn't matter so calling conventions were never maintained,
so just get rid of __stdcall

21 months agospu: get rid of iXAPitch
notaz [Tue, 30 Aug 2022 00:00:51 +0000 (03:00 +0300)]
spu: get rid of iXAPitch

it makes no sense after SPU was fully synced to the core, and now it
just pulls unwanted windows.h dependency on win32.

21 months agoRevert "misc: get rid of an unaligned read"
LibretroAdmin [Mon, 29 Aug 2022 23:26:03 +0000 (01:26 +0200)]
Revert "misc: get rid of an unaligned read"

This reverts commit 5bb56b1a0ec9c4875a4b9f532d79ee477a5a6e8e.

21 months agomisc: get rid of an unaligned read
notaz [Sun, 28 Aug 2022 20:51:40 +0000 (23:51 +0300)]
misc: get rid of an unaligned read

96c6ec7055ecef55b3dd221c86b796512bf52107 introduced an unaligned read
which is undefined behavior in C, even if most hardware allows it
(but some very old ARMs don't). Perf. doesn't matter here so read
byte-by-byte.

notaz/pcsx_rearmed#261

22 months agogpu_neon: fix another abi violation
notaz [Sat, 13 Aug 2022 21:07:11 +0000 (00:07 +0300)]
gpu_neon: fix another abi violation

before the flush_render_block_buffer call the stack is misaligned,
so push an odd num of regs to realign

22 months agogpu_neon: fix wrong block counting
notaz [Sat, 13 Aug 2022 21:05:07 +0000 (00:05 +0300)]
gpu_neon: fix wrong block counting

22 months agodrc: fix a silly mistake of overwriting a reg
notaz [Thu, 11 Aug 2022 19:52:54 +0000 (22:52 +0300)]
drc: fix a silly mistake of overwriting a reg

22 months agodrc: rework smc checks again
notaz [Wed, 10 Aug 2022 19:39:41 +0000 (22:39 +0300)]
drc: rework smc checks again

the way it was done before wasn't good enough for
Mega Man Legends 2 at least

22 months agodrc: fix wrong masking in set_jump_target
notaz [Wed, 10 Aug 2022 19:32:11 +0000 (22:32 +0300)]
drc: fix wrong masking in set_jump_target

22 months agocspace: add forgotten length decrement
notaz [Tue, 9 Aug 2022 17:42:39 +0000 (20:42 +0300)]
cspace: add forgotten length decrement

22 months agomake: switch apple platforms to neon gpu too
notaz [Mon, 8 Aug 2022 23:56:05 +0000 (02:56 +0300)]
make: switch apple platforms to neon gpu too

let's see it it builds

22 months agoAndroid.mk: try enable neon gpu for arm64 Android too
notaz [Mon, 8 Aug 2022 23:44:32 +0000 (02:44 +0300)]
Android.mk: try enable neon gpu for arm64 Android too

22 months agomake: switch most arm64 platforms to neon gpu
notaz [Mon, 8 Aug 2022 23:38:59 +0000 (02:38 +0300)]
make: switch most arm64 platforms to neon gpu

22 months agomake: adjust in preparation to enable neon on arm64
notaz [Mon, 8 Aug 2022 23:05:19 +0000 (02:05 +0300)]
make: adjust in preparation to enable neon on arm64

22 months agocspace: generic implementation with vector extensions
notaz [Mon, 8 Aug 2022 21:07:27 +0000 (00:07 +0300)]
cspace: generic implementation with vector extensions

22 months agogpu_neon: integration for arm64
notaz [Mon, 8 Aug 2022 18:16:59 +0000 (21:16 +0300)]
gpu_neon: integration for arm64

22 months agogpu_neon: new intrinsics-only implementation
notaz [Sun, 17 Jul 2022 22:26:25 +0000 (01:26 +0300)]
gpu_neon: new intrinsics-only implementation

~80-95% performance of the asm version on cortex-a72,
but maybe less of a portability nightmare (+arm64 support)

22 months agogpu_neon: place asm func prototypes into a separate header
notaz [Sat, 23 Jul 2022 15:22:33 +0000 (18:22 +0300)]
gpu_neon: place asm func prototypes into a separate header

for the upcoming intrinsics implementation

22 months agogpu_neon: don't include vector_ops.h in the main header
notaz [Sun, 17 Jul 2022 22:18:52 +0000 (01:18 +0300)]
gpu_neon: don't include vector_ops.h in the main header

that stuff is only used in the C-only prototype

22 months agogpu_neon: fix some more abi violations
notaz [Mon, 1 Aug 2022 21:08:49 +0000 (00:08 +0300)]
gpu_neon: fix some more abi violations

22 months agodrc: patch up some potential issues on the switch
notaz [Tue, 2 Aug 2022 21:51:35 +0000 (00:51 +0300)]
drc: patch up some potential issues on the switch

22 months agogpu_neon: try to make the compiler save some callee-save regs
notaz [Sat, 23 Jul 2022 22:31:08 +0000 (01:31 +0300)]
gpu_neon: try to make the compiler save some callee-save regs

... which the asm isn't doing properly

22 months agodfxvideo: patch up some unsafe macros
notaz [Fri, 29 Jul 2022 22:07:21 +0000 (01:07 +0300)]
dfxvideo: patch up some unsafe macros

(old?)-ARM version of GETLE32() was causing wrong shifting due to
implicit signed int promotion.

libretro/pcsx_rearmed#676

22 months agoUpdate .gitlab-ci.yml
LibretroAdmin [Tue, 26 Jul 2022 13:10:51 +0000 (15:10 +0200)]
Update .gitlab-ci.yml

22 months agomman: align and clear for 3ds also
notaz [Mon, 18 Jul 2022 22:30:14 +0000 (01:30 +0300)]
mman: align and clear for 3ds also

callers expect cleared mem

22 months agodrc: some more libnx support
notaz [Mon, 18 Jul 2022 21:21:44 +0000 (00:21 +0300)]
drc: some more libnx support

22 months agolibnx: make mmap act more like on Linux
notaz [Mon, 18 Jul 2022 21:03:44 +0000 (00:03 +0300)]
libnx: make mmap act more like on Linux

22 months agoUpdate lightrec 20220716 (#672)
Paul Cercueil [Sat, 16 Jul 2022 20:05:41 +0000 (22:05 +0200)]
Update lightrec 20220716 (#672)

* lightrec: Simply invalidate code and reset registers for plugin reset

Instead of destroying the Lightrec instance and creating a new one,
simply invalidate the code and reset all registers to their default
values.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
* git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "7545b5a7"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "7545b5a7"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

22 months agoswitch: define HAVE_LIBNX
notaz [Fri, 15 Jul 2022 23:53:27 +0000 (02:53 +0300)]
switch: define HAVE_LIBNX

somehow assumed it was done already

23 months agolibnx: try to enable the ari64 dynarec
notaz [Thu, 14 Jul 2022 22:35:48 +0000 (01:35 +0300)]
libnx: try to enable the ari64 dynarec

If it crashes please report (logs required).

23 months agomake: make the assignment work
notaz [Thu, 14 Jul 2022 22:33:46 +0000 (01:33 +0300)]
make: make the assignment work

'?=' keeps the previous assignment, which is probably not what was
intended.

23 months agodrc: simplify cache flush for some platforms
notaz [Thu, 14 Jul 2022 21:41:58 +0000 (00:41 +0300)]
drc: simplify cache flush for some platforms

untested, may break 3DS, if it happens please report

23 months agodrc: some libnx support
notaz [Thu, 14 Jul 2022 21:24:34 +0000 (00:24 +0300)]
drc: some libnx support

2 years agocompile the core with the PEOpS plugin for x86 and arm64 platforms (#670)
CometHunter92 [Tue, 14 Jun 2022 16:39:19 +0000 (18:39 +0200)]
compile the core with the PEOpS plugin for x86 and arm64 platforms (#670)

2 years agoMerge pull request #669 from pcercuei/lightrec-fix-bios-munmap
LibretroAdmin [Sun, 12 Jun 2022 16:59:57 +0000 (17:59 +0100)]
Merge pull request #669 from pcercuei/lightrec-fix-bios-munmap

lightrec: Fix unmap size of BIOS

2 years agopsxmem: Use Lightrec memory map even for interpreter
Paul Cercueil [Sun, 12 Jun 2022 15:59:14 +0000 (16:59 +0100)]
psxmem: Use Lightrec memory map even for interpreter

The CPU emulation method (interpreter or dynarec) can be switched at
runtime. Therefore we must use Lightrec's memory map even when the
interpreter is used.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agolightrec: Fix unmap size of BIOS
Paul Cercueil [Sun, 12 Jun 2022 15:05:02 +0000 (16:05 +0100)]
lightrec: Fix unmap size of BIOS

The BIOS was mapped as 2 MiB, since we want to use a huge page if
possible. Therefore it should also be unmapped as 2 MiB, otherwise the
upper 1.5 MiB will still be mapped after de-init, which will make it
impossible to map the BIOS once again.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoMerge pull request #668 from pcercuei/update-lightrec-20220607
LibretroAdmin [Sat, 11 Jun 2022 09:46:40 +0000 (10:46 +0100)]
Merge pull request #668 from pcercuei/update-lightrec-20220607

Update lightrec 20220607

2 years agogit subrepo pull --force deps/lightrec
Paul Cercueil [Fri, 10 Jun 2022 23:17:16 +0000 (00:17 +0100)]
git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "30bad28d"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "30bad28d"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

2 years agofrontend: Remove duplicated code
Paul Cercueil [Mon, 30 May 2022 17:08:10 +0000 (18:08 +0100)]
frontend: Remove duplicated code

The same function bgr888_to_rgb565() was present twice, protected by
different macros.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoplugins: Fix build of unai/neon
Paul Cercueil [Sat, 11 Jun 2022 08:40:13 +0000 (09:40 +0100)]
plugins: Fix build of unai/neon

The gpu.status does not use bit-fields anymore following
61124a6d ("Get rid of bit fields in union") because it was not
endian-safe.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoMerge pull request #665 from QuarkTheAwesome/libretro-merge-be
LibretroAdmin [Sat, 11 Jun 2022 01:08:36 +0000 (02:08 +0100)]
Merge pull request #665 from QuarkTheAwesome/libretro-merge-be

Fix PCSX core and dfxvideo for big-endian systems

2 years agoMerge pull request #663 from bslenul/rumble-fix
LibretroAdmin [Sat, 11 Jun 2022 01:08:15 +0000 (02:08 +0100)]
Merge pull request #663 from bslenul/rumble-fix

Rumble should only work with 'dualshock' device type

2 years agocdriso: hack .chd track handling to match .cue
notaz [Mon, 6 Jun 2022 22:59:51 +0000 (01:59 +0300)]
cdriso: hack .chd track handling to match .cue

libretro/pcsx_rearmed#648

2 years agocdrom: don't read and play simultaneously
notaz [Mon, 6 Jun 2022 21:45:57 +0000 (00:45 +0300)]
cdrom: don't read and play simultaneously

notaz/pcsx_rearmed#250

2 years agolightrec: try to clean up intergarion, fix -O0
notaz [Mon, 6 Jun 2022 20:53:38 +0000 (23:53 +0300)]
lightrec: try to clean up intergarion, fix -O0

notaz/pcsx_rearmed#251

2 years agocdrom: Fix PBP support on big-endian platforms
Paul Cercueil [Tue, 24 May 2022 21:22:48 +0000 (22:22 +0100)]
cdrom: Fix PBP support on big-endian platforms

The data contained in the PBP is in little-endian format. Therefore,
everything in the PBP's header must be read with the byte-swap macros,
for PBP support to work on big-endian systems.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agodfxvideo: Restore support for big-endian arch
Paul Cercueil [Sat, 21 May 2022 16:52:47 +0000 (17:52 +0100)]
dfxvideo: Restore support for big-endian arch

The hardware registers, emulated RAM or emulated VRAM are all in
little-endian format. Therefore, each access must be done with one of
the byte-swap macros, for the plugin to work on big-endian systems.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agofrontend: Fix colorspace conversion routines on big-endian
Paul Cercueil [Sat, 21 May 2022 17:58:14 +0000 (18:58 +0100)]
frontend: Fix colorspace conversion routines on big-endian

The bgr555_to_rgb565() and bgr888_to_rgb565() functions were only
working correctly on little-endian systems.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agomisc: Use GCC builtins for byte-swap operations
Paul Cercueil [Thu, 26 May 2022 13:07:41 +0000 (14:07 +0100)]
misc: Use GCC builtins for byte-swap operations

Instead of using custom code to byte-swap values, use the built-in
function provided by GCC.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agogpulib: Add proper support for big-endian
Paul Cercueil [Fri, 13 Sep 2019 21:13:43 +0000 (23:13 +0200)]
gpulib: Add proper support for big-endian

Update the gpulib code to work properly on big-endian architectures.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoGet rid of bit fields in union
Paul Cercueil [Fri, 13 Sep 2019 21:09:11 +0000 (23:09 +0200)]
Get rid of bit fields in union

Long story short, bit fields aren't endian-safe.
More info: http://mjfrazer.org/mjfrazer/bitfields/

Simplify that by just using a few macros to access the needed bits.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoMake sure hardware registers are manipulated as little-endian
Paul Cercueil [Fri, 13 Sep 2019 21:01:57 +0000 (23:01 +0200)]
Make sure hardware registers are manipulated as little-endian

The hardware registers should be represented in little-endian format.
Therefore, on big-endian systems the values need to be byte-swapped.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoFix PCSX on big-endian systems
Paul Cercueil [Wed, 11 Sep 2019 15:33:14 +0000 (17:33 +0200)]
Fix PCSX on big-endian systems

The __BIGENDIAN__ macro was never defined anywhere, and the
__BIG_ENDIAN__ macro isn't set anymore by recent versions of GCC.

Replace them by checking __BYTE_ORDER__ against __ORDER_BIG_ENDIAN__.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoRumble should only work with 'dualshock' device type
bslenul [Sun, 5 Jun 2022 09:41:55 +0000 (11:41 +0200)]
Rumble should only work with 'dualshock' device type

2 years agoMerge pull request #662 from pcercuei/update-lightrec-20220604
LibretroAdmin [Sat, 4 Jun 2022 23:54:41 +0000 (00:54 +0100)]
Merge pull request #662 from pcercuei/update-lightrec-20220604

Update GNU Lightning

2 years agogit subrepo pull --force deps/lightning
Paul Cercueil [Sat, 4 Jun 2022 23:30:15 +0000 (00:30 +0100)]
git subrepo pull --force deps/lightning

subrepo:
  subdir:   "deps/lightning"
  merged:   "7fce9abb"
upstream:
  origin:   "https://github.com/pcercuei/gnu_lightning.git"
  branch:   "pcsx_rearmed"
  commit:   "7fce9abb"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

2 years ago(Windows) Not building, include tlsf.c by default
libretroadmin [Sat, 4 Jun 2022 21:56:57 +0000 (23:56 +0200)]
(Windows) Not building, include tlsf.c by default

2 years ago(Android) Fix includes
libretroadmin [Sat, 4 Jun 2022 21:51:59 +0000 (23:51 +0200)]
(Android) Fix includes

2 years ago(Android) include tlsf.c
libretroadmin [Sat, 4 Jun 2022 21:50:10 +0000 (23:50 +0200)]
(Android) include tlsf.c

2 years agoMerge pull request #661 from pcercuei/update-lightrec-20220604
LibretroAdmin [Sat, 4 Jun 2022 21:48:57 +0000 (22:48 +0100)]
Merge pull request #661 from pcercuei/update-lightrec-20220604

Update lightrec 20220604

2 years agolightrec: Enable code buffer support
Paul Cercueil [Sat, 4 Jun 2022 20:12:14 +0000 (21:12 +0100)]
lightrec: Enable code buffer support

Map a 8 MiB code buffer at (base + 0x80.0000), right after the emulated
RAM. In this code buffer, Lightrec will write the recompiled code for
the host machine.

In general, the code buffer support is very useful when the host
platform has only a small RW+X memory area available for JIT purposes,
like it's the case on the WiiU.

On Linux, this isn't a concern, but having a code buffer does still
bring a benefit: if both the start address and the end address of the
code buffer's address fit in 32 bits, then Lightrec's code LUT can be
shrunk in half (2.5 MiB instead of 5 MiB), as it only needs to store
32-bit pointers.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agogit subrepo pull --force deps/lightrec
Paul Cercueil [Sat, 4 Jun 2022 20:02:05 +0000 (21:02 +0100)]
git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "a8fe7568"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "a8fe7568"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

2 years agopsxcounters: try to support a dynarec with a very long timeslice
notaz [Thu, 2 Jun 2022 20:22:19 +0000 (23:22 +0300)]
psxcounters: try to support a dynarec with a very long timeslice

The dynarec instead should probably not run for thousands of cycles
doing no interrupt checks, but maybe this hack will be enough.
libretro/pcsx_rearmed#658

2 years agodrc: update some logging and patches
notaz [Wed, 1 Jun 2022 21:25:32 +0000 (00:25 +0300)]
drc: update some logging and patches

2 years agoMake this backwards compatible with older Linux kernels
libretroadmin [Tue, 31 May 2022 18:35:06 +0000 (20:35 +0200)]
Make this backwards compatible with older Linux kernels

2 years ago(Android) Only build in libpcsxcore/lightrec/mem.c when
libretroadmin [Mon, 30 May 2022 19:23:48 +0000 (21:23 +0200)]
(Android) Only build in libpcsxcore/lightrec/mem.c when
LIGHTREC_CUSTOM_MAP is set to 1

2 years agoDisable LIGHTREC_CUSTOM_MAP on all Android versions
libretroadmin [Mon, 30 May 2022 19:20:25 +0000 (21:20 +0200)]
Disable LIGHTREC_CUSTOM_MAP on all Android versions

2 years ago(Android)
libretroadmin [Mon, 30 May 2022 19:14:50 +0000 (21:14 +0200)]
(Android)
- Always set LIGHTREC_CUSTOM_MAP
- Compile in libpcsxcore/lightrec/mem.c

2 years ago(Android) Define LIGHTREC_CUSTOM_MAP
libretroadmin [Mon, 30 May 2022 19:10:48 +0000 (21:10 +0200)]
(Android) Define LIGHTREC_CUSTOM_MAP

2 years agoMerge pull request #659 from pcercuei/update-lightrec-20220530
LibretroAdmin [Mon, 30 May 2022 18:34:58 +0000 (19:34 +0100)]
Merge pull request #659 from pcercuei/update-lightrec-20220530

Fix Lightrec build on Windows and Linux

2 years agoFix Lightrec build on Windows and Linux
Paul Cercueil [Mon, 30 May 2022 18:22:17 +0000 (19:22 +0100)]
Fix Lightrec build on Windows and Linux

Some distributions of Linux don't have the MFD_HUGETLB flag in
<linux/memfd.h>, probably because their kernel headers installed are too
old. In that case, we locally define MFD_HUGETLB to the value it should
have.

On Windows, the HAVE_MMAP macro set for GNU Lightning was also used in
libretro-common/vfs/vfs_implementation.c, causing build issues. Address
this problem by only defining HAVE_MMAP for Lightning source files.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>