notaz [Thu, 6 Jul 2023 15:04:55 +0000 (18:04 +0300)]
spu: fix some threading issues
but others remain, so disabling in next commit
notaz [Tue, 4 Jul 2023 21:23:18 +0000 (00:23 +0300)]
spu: fix typo
notaz [Tue, 4 Jul 2023 21:12:44 +0000 (00:12 +0300)]
spu: irq adjustments according to MiSTer
libretro/pcsx_rearmed#725
notaz [Wed, 14 Dec 2022 00:01:41 +0000 (02:01 +0200)]
Merge pull request #277 from joolswills/armv6_unai_fix
Fix building gpu_unai on armv6
Jools Wills [Mon, 12 Dec 2022 15:29:05 +0000 (15:29 +0000)]
Fix building gpu_unai on armv6
f23b103c8248c10855949bfb2185b6b10d4f0457 was missing changes to gpu_unai/gpulib_if.cpp
notaz [Sun, 11 Dec 2022 20:28:42 +0000 (22:28 +0200)]
cdrom: adjust a timing hack
notaz/pcsx_rearmed#276
notaz [Mon, 14 Nov 2022 22:57:47 +0000 (00:57 +0200)]
gpulib: allow commands to span list entries
libretro/pcsx_rearmed#271
notaz [Sun, 13 Nov 2022 23:17:58 +0000 (01:17 +0200)]
cdrom: forget old sector on cd change
libretro/pcsx_rearmed#689
notaz [Sun, 13 Nov 2022 21:33:49 +0000 (23:33 +0200)]
dma: add optional slow linked list walking
libretro/pcsx_rearmed#478
libretro/pcsx_rearmed#264
libretro/pcsx_rearmed#132
notaz/pcsx_rearmed#95
notaz [Sat, 12 Nov 2022 21:05:52 +0000 (23:05 +0200)]
cdrom: make the timing hack conditional
libretro/pcsx_rearmed#707
notaz [Sat, 12 Nov 2022 15:57:31 +0000 (17:57 +0200)]
cdriso: unbreak cdda for chd
notaz/pcsx_rearmed#272
notaz [Sat, 5 Nov 2022 20:51:37 +0000 (22:51 +0200)]
cdrom: don't report read too early
libretro/pcsx_rearmed#706
notaz [Thu, 3 Nov 2022 20:49:08 +0000 (22:49 +0200)]
spu: fix a wrong assumption
from
5aa94fa080e1b0a661b23aa912022dd464d41110
libretro/pcsx_rearmed#704
notaz [Thu, 3 Nov 2022 00:13:39 +0000 (02:13 +0200)]
cdriso: fix up chd for separated subq reads
notaz [Wed, 2 Nov 2022 20:24:20 +0000 (22:24 +0200)]
cdrom: change GetlocP handling
maybe better?
notaz/pcsx_rearmed#268
notaz [Tue, 1 Nov 2022 23:20:50 +0000 (01:20 +0200)]
cdrom: handle fifo overreads
based on nocash doc
notaz/pcsx_rearmed#269
notaz [Tue, 25 Oct 2022 19:08:12 +0000 (22:08 +0300)]
cdrom: add a timing hack
notaz/pcsx_rearmed#267
notaz [Sat, 22 Oct 2022 16:20:26 +0000 (19:20 +0300)]
cdrom: report read errors correctly
notaz [Sat, 22 Oct 2022 16:16:46 +0000 (19:16 +0300)]
psxbios: use noninvasive print for -psxout
notaz [Fri, 14 Oct 2022 21:37:43 +0000 (00:37 +0300)]
gpulib: update gpuinfo
according to nocash
notaz [Thu, 13 Oct 2022 20:55:21 +0000 (23:55 +0300)]
merge from libretro fork
+ minor modifications
Reducing the diff as it's too hard to track down breakage
when one works but not the other.
Sakitoshi [Thu, 24 Jan 2019 01:19:49 +0000 (22:19 -0300)]
updated gaussian interpolation filter
the previous gaussian filter was pretty old and inaccurate, the new filter was taken from the updated peops sound plugin 1.10b.
notaz [Sat, 1 Oct 2022 20:43:39 +0000 (23:43 +0300)]
psxinterpreter: use cycle_multiplier also
not just ari64
notaz [Sat, 1 Oct 2022 19:32:01 +0000 (22:32 +0300)]
remove all the hack options
They just confuse users, like:
libretro/pcsx_rearmed#693
For Parasite Eve 2 and others, adjust "PSX CPU clock" instead if needed.
notaz [Thu, 29 Sep 2022 19:45:23 +0000 (22:45 +0300)]
cdrom: update status immediately after seek
Philosoma wants it
notaz [Thu, 29 Sep 2022 18:36:54 +0000 (21:36 +0300)]
cdrom: ignore repeated read cmds
libretro/pcsx_rearmed#691
notaz [Wed, 21 Sep 2022 21:35:28 +0000 (00:35 +0300)]
cdrom: change GetlocL behavior
notaz/pcsx_rearmed#263
notaz [Sat, 17 Sep 2022 20:28:46 +0000 (23:28 +0300)]
cdrom: treat seek the same as other commands
much simpler this way
notaz [Sat, 17 Sep 2022 20:18:47 +0000 (23:18 +0300)]
cdrom: allow to interrupt initial scan sequence
probably wrong but ohwell...
notaz [Sat, 17 Sep 2022 19:46:03 +0000 (22:46 +0300)]
cdrom: actually reject commands when not ready
before it would still execute them and just do an error response
notaz [Fri, 16 Sep 2022 19:59:25 +0000 (22:59 +0300)]
main: log missing CPU features
will probably be too late but ohwell
notaz [Thu, 15 Sep 2022 23:34:58 +0000 (02:34 +0300)]
gpu_neon: rm wrong cost qualifier
notaz [Thu, 15 Sep 2022 23:31:37 +0000 (02:31 +0300)]
cdrom: adjust timing
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
notaz [Thu, 15 Sep 2022 18:12:10 +0000 (21:12 +0300)]
misc: patch some issues indicated by clang
notaz [Thu, 15 Sep 2022 16:11:11 +0000 (19:11 +0300)]
frontend: handle double res rendering, enable on x86_64
notaz [Sun, 11 Sep 2022 22:40:24 +0000 (01:40 +0300)]
gpu_neon: brand new x86 SSE2+ implementation
notaz [Tue, 16 Aug 2022 21:11:39 +0000 (00:11 +0300)]
gpu_neon: adjust some comments and things
notaz [Thu, 15 Sep 2022 16:25:01 +0000 (19:25 +0300)]
cdrom: delay the missed irq more
notaz [Sat, 10 Sep 2022 14:53:54 +0000 (17:53 +0300)]
some big endian fixes
"kinda sucks but it works" kind of thing
notaz [Fri, 9 Sep 2022 23:26:04 +0000 (02:26 +0300)]
standalone: allow lightrec for testing
lightrec is not (yet?) here, just to reduce diff from libretro fork
notaz [Sat, 10 Sep 2022 13:46:05 +0000 (16:46 +0300)]
spu: fix wrong volume shift
libretro/pcsx_rearmed#685
notaz [Fri, 9 Sep 2022 23:37:50 +0000 (02:37 +0300)]
fix build
forgot to add 'extern'
notaz [Fri, 9 Sep 2022 23:39:24 +0000 (02:39 +0300)]
gte: minor diff from libretro
notaz [Fri, 9 Sep 2022 19:11:30 +0000 (22:11 +0300)]
psxinterpreter: reduce the use of globals
they induce penalties with -fPIC
notaz [Thu, 8 Sep 2022 17:09:04 +0000 (20:09 +0300)]
easier logging of unhandled stuff
notaz [Thu, 8 Sep 2022 18:13:25 +0000 (21:13 +0300)]
cdrom: partially emulate the fifo
notaz [Thu, 8 Sep 2022 15:17:06 +0000 (18:17 +0300)]
dma: try more accurate timings
seems to help Legend of Mana
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)
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
notaz [Mon, 5 Sep 2022 20:47:10 +0000 (23:47 +0300)]
cdrom: clean up command handling
notaz [Mon, 5 Sep 2022 16:41:52 +0000 (19:41 +0300)]
cdrom: try to eliminate playback timing drifting
notaz [Tue, 6 Sep 2022 23:09:08 +0000 (02:09 +0300)]
psxcounters: try to eliminate another source of audio drift
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.
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
notaz [Sun, 4 Sep 2022 23:03:24 +0000 (02:03 +0300)]
spu: support master volume
notaz [Sun, 4 Sep 2022 21:40:58 +0000 (00:40 +0300)]
spu: rename dwChannelOn to something more suitable
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().
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.
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.
notaz [Fri, 2 Sep 2022 22:54:28 +0000 (01:54 +0300)]
cdrom: take a minor change from libretro
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
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
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
notaz [Wed, 31 Aug 2022 23:02:21 +0000 (02:02 +0300)]
cdrom: some debugging aid
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
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.
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
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
notaz [Sat, 13 Aug 2022 21:05:07 +0000 (00:05 +0300)]
gpu_neon: fix wrong block counting
notaz [Thu, 11 Aug 2022 19:52:54 +0000 (22:52 +0300)]
drc: fix a silly mistake of overwriting a reg
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
notaz [Wed, 10 Aug 2022 19:32:11 +0000 (22:32 +0300)]
drc: fix wrong masking in set_jump_target
notaz [Tue, 9 Aug 2022 17:42:39 +0000 (20:42 +0300)]
cspace: add forgotten length decrement
notaz [Mon, 8 Aug 2022 22:50:54 +0000 (01:50 +0300)]
mark libretro makefile as unmaintained here
notaz [Mon, 8 Aug 2022 21:07:27 +0000 (00:07 +0300)]
cspace: generic implementation with vector extensions
notaz [Mon, 8 Aug 2022 18:16:59 +0000 (21:16 +0300)]
gpu_neon: integration for arm64
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)
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
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
notaz [Mon, 1 Aug 2022 21:08:49 +0000 (00:08 +0300)]
gpu_neon: fix some more abi violations
notaz [Tue, 2 Aug 2022 21:51:35 +0000 (00:51 +0300)]
drc: patch up some potential issues on the switch
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
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
Paul Cercueil [Fri, 3 Jun 2022 17:26:28 +0000 (18:26 +0100)]
CI: Pass SDL_CONFIG to the ./configure script
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Paul Cercueil [Fri, 29 Apr 2016 20:06:36 +0000 (22:06 +0200)]
configure: Detect the toolchain's sdl-config tool
Instead of calling the host's sdl-config, which doesn't work when
cross-compiling, call the sdl-config program that's installed in the
compiler's sysroot.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
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>
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>
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>
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>
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>
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>
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>
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>
notaz [Mon, 18 Jul 2022 21:21:44 +0000 (00:21 +0300)]
drc: some more libnx support
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
notaz [Thu, 14 Jul 2022 21:24:34 +0000 (00:24 +0300)]
drc: some libnx support
notaz [Mon, 6 Jun 2022 22:59:51 +0000 (01:59 +0300)]
cdriso: hack .chd track handling to match .cue
libretro/pcsx_rearmed#648
notaz [Mon, 6 Jun 2022 21:45:57 +0000 (00:45 +0300)]
cdrom: don't read and play simultaneously
notaz/pcsx_rearmed#250
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