pcsx_rearmed.git
2 years agomake: print what's going on
notaz [Fri, 16 Sep 2022 20:40:23 +0000 (23:40 +0300)]
make: print what's going on

2 years agotry to fix build
notaz [Fri, 16 Sep 2022 20:30:05 +0000 (23:30 +0300)]
try to fix build

2 years agotry to enable gpu_neon on 32bit x86
notaz [Fri, 16 Sep 2022 20:19:39 +0000 (23:19 +0300)]
try to enable gpu_neon on 32bit x86

2 years agomain: log missing CPU features
notaz [Fri, 16 Sep 2022 19:59:25 +0000 (22:59 +0300)]
main: log missing CPU features

will probably be too late but ohwell

2 years agogpu_neon: rm wrong cost qualifier
notaz [Thu, 15 Sep 2022 23:34:58 +0000 (02:34 +0300)]
gpu_neon: rm wrong cost qualifier

2 years agocdrom: adjust timing
notaz [Thu, 15 Sep 2022 23:31:37 +0000 (02:31 +0300)]
cdrom: adjust timing

2 years agodon't cast between long and pointers for win64
notaz [Thu, 15 Sep 2022 21:03:40 +0000 (00:03 +0300)]
don't cast between long and pointers for win64

long is 32 bit there

2 years agoenable gpu_neon on win64 too
notaz [Thu, 15 Sep 2022 20:38:40 +0000 (23:38 +0300)]
enable gpu_neon on win64 too

hope it works there

2 years agotry to enable gpu_neon on x86
notaz [Thu, 15 Sep 2022 18:48:14 +0000 (21:48 +0300)]
try to enable gpu_neon on x86

2 years agomisc: patch some issues indicated by clang
notaz [Thu, 15 Sep 2022 18:12:10 +0000 (21:12 +0300)]
misc: patch some issues indicated by clang

2 years agofrontend: handle double res rendering, enable on x86_64
notaz [Thu, 15 Sep 2022 16:11:11 +0000 (19:11 +0300)]
frontend: handle double res rendering, enable on x86_64

2 years agogpu_neon: brand new x86 SSE2+ implementation
notaz [Sun, 11 Sep 2022 22:40:24 +0000 (01:40 +0300)]
gpu_neon: brand new x86 SSE2+ implementation

2 years agogpu_neon: adjust some comments and things
notaz [Tue, 16 Aug 2022 21:11:39 +0000 (00:11 +0300)]
gpu_neon: adjust some comments and things

2 years agocdrom: delay the missed irq more
notaz [Thu, 15 Sep 2022 16:25:01 +0000 (19:25 +0300)]
cdrom: delay the missed irq more

2 years agoUpdate lightrec 20220912 (#688)
Paul Cercueil [Mon, 12 Sep 2022 20:26:25 +0000 (22:26 +0200)]
Update lightrec 20220912 (#688)

* lightrec: Remove leftover debug stuff

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
* lightrec: Fix lightrec_can_hw_direct() table

It was slightly wrong, which caused crashes in the intro FMV of
Sled Storm (and maybe other games).

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

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

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoUpdate lightrec 20220911 (#687)
Paul Cercueil [Sun, 11 Sep 2022 16:33:38 +0000 (18:33 +0200)]
Update lightrec 20220911 (#687)

* Fix <sys/mman.h> symlink

Using a symlink made it impossible to compile on Windows with MinGW.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
* lightrec: Fix crash on Windows and WiiU

Fix crash on platforms that don't use Lightrec's custom map.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
* lightrec: Fix has_interrupt() using PCSX' registers

It should use Lightrec's internal CP0 registers instead.

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

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

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years 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>
2 years 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

2 years 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

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

forgot to add 'extern'

2 years 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

2 years 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

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

for easier merging

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

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

2 years 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

2 years 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)

2 years 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

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

2 years 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

2 years 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

2 years 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.

2 years 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

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

2 years 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

2 years 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().

2 years 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.

2 years 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.

2 years 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

2 years 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

2 years 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

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

2 years 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.

2 years 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.

2 years 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

2 years 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.

2 years 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.

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

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

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

2 years 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)

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

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

2 years 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

2 years 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"

2 years 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

2 years 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).

2 years 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.

2 years 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

2 years 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