notaz [Mon, 27 Nov 2023 22:23:03 +0000 (00:23 +0200)]
gpu: start doing some basic gpu timing
minimum only for now, mostly based on Mednafen
libretro/pcsx_rearmed#573
libretro/pcsx_rearmed#783
notaz [Sun, 26 Nov 2023 19:39:08 +0000 (21:39 +0200)]
libretro: drop the Frame Duping option
Unclear what it was for, added in commit
0e5a7b7d5a4894754a73d0ea496b3b7b3f6b32d8
libretro/pcsx_rearmed#805
notaz [Sat, 25 Nov 2023 23:02:27 +0000 (01:02 +0200)]
update db
libretro/pcsx_rearmed#128
notaz [Sat, 25 Nov 2023 22:11:30 +0000 (00:11 +0200)]
drop some unused funcs
removed in a plugin but not the core
notaz [Sat, 25 Nov 2023 21:59:36 +0000 (23:59 +0200)]
libretro: report errors and warnings as such
notaz [Sat, 25 Nov 2023 21:56:41 +0000 (23:56 +0200)]
libretro: direct fb access requires duping support
because video doesn't necessary update at vsync rate
libretro/pcsx_rearmed#805
notaz [Sat, 25 Nov 2023 20:37:28 +0000 (22:37 +0200)]
cdrom: fail pausing on seek
libretro/pcsx_rearmed#790
notaz [Sat, 25 Nov 2023 00:52:47 +0000 (02:52 +0200)]
try different dualshock analog heuristics
libretro/pcsx_rearmed#765
notaz [Tue, 21 Nov 2023 23:06:05 +0000 (01:06 +0200)]
spu: add a guard for "runaway" channels
should really mask but it's inconvenient with the raw pointers used
there
notaz [Tue, 21 Nov 2023 22:37:49 +0000 (00:37 +0200)]
don't use a stack var out of scope
newer compilers are stricter about this, as well as asan
notaz [Tue, 21 Nov 2023 22:27:27 +0000 (00:27 +0200)]
cdrom: always error out on shell open
Duckstation claims it has been verified on console.
libretro/pcsx_rearmed#804
notaz [Tue, 21 Nov 2023 22:06:05 +0000 (00:06 +0200)]
spu: forgot to save some stuff again
notaz [Tue, 21 Nov 2023 22:02:50 +0000 (00:02 +0200)]
apply cdrom volume in spu
The previous sector delay thing breaks rhythm games.
Also much easier to deal with timing in SPU code.
notaz [Mon, 20 Nov 2023 21:06:31 +0000 (23:06 +0200)]
libretro: add a few options for the analog combo
like in the other core
notaz [Mon, 20 Nov 2023 00:39:56 +0000 (02:39 +0200)]
update analog default list
notaz [Mon, 20 Nov 2023 00:17:24 +0000 (02:17 +0200)]
defaut dualshock to digital again, unless overriden
... or a key combo is used
libretro/pcsx_rearmed#765
Paul Cercueil [Sun, 19 Nov 2023 11:54:22 +0000 (12:54 +0100)]
frontend: Fix buffer overrun
The format passed to sscanf() requested a 256-chars string, but that's
excluding the terminating \0 character as the 257th character.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Paul Cercueil [Sun, 19 Nov 2023 11:50:39 +0000 (12:50 +0100)]
Makefile: Enable address sanitizer with DEBUG_ASAN=1
The Address Sanitizer (built in GCC and LLVM) is an extremely powerful
tool, moreso than e.g. Valgrind for detecting memory issues.
It is not available on every architecture/OS combination (see
https://github.com/google/sanitizers/wiki/AddressSanitizer), so it can
only be enabled by compiling with DEBUG_ASAN=1.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
notaz [Sun, 19 Nov 2023 21:45:55 +0000 (23:45 +0200)]
spu: adjust dma timing + a hack
libretro/pcsx_rearmed#799
notaz [Thu, 16 Nov 2023 23:08:45 +0000 (01:08 +0200)]
psxbios: implement strtol
libretro/pcsx_rearmed#288
notaz [Thu, 16 Nov 2023 21:23:05 +0000 (23:23 +0200)]
psxbios: handle direct bios table calls
libretro/pcsx_rearmed#797
notaz [Thu, 16 Nov 2023 19:07:21 +0000 (21:07 +0200)]
spu: patch up more savestate issues
notaz/pcsx_rearmed#329
notaz [Mon, 13 Nov 2023 22:46:38 +0000 (00:46 +0200)]
yet more timing hacks
libretro/pcsx_rearmed#107
notaz [Mon, 13 Nov 2023 20:07:12 +0000 (22:07 +0200)]
rearrange cycle hack table
notaz [Mon, 13 Nov 2023 22:44:20 +0000 (00:44 +0200)]
cdrom: try more states
let's see what else breaks now
libretro/pcsx_rearmed#796
notaz [Mon, 13 Nov 2023 19:04:37 +0000 (21:04 +0200)]
gpu_neon: enforce alignment required for asm
libretro/pcsx_rearmed#798
notaz [Sat, 4 Nov 2023 00:06:57 +0000 (02:06 +0200)]
adjust the deadzone hack
libretro/pcsx_rearmed#792
notaz [Fri, 3 Nov 2023 00:02:26 +0000 (02:02 +0200)]
cdrom: add forgotten reset
notaz [Thu, 2 Nov 2023 21:17:28 +0000 (23:17 +0200)]
cdrom: implement some more irq details
notaz [Thu, 2 Nov 2023 17:24:40 +0000 (19:24 +0200)]
spu: implement some more irq details
libretro/pcsx_rearmed#787
notaz [Thu, 2 Nov 2023 16:46:17 +0000 (18:46 +0200)]
update gitignore
Paul Cercueil [Tue, 31 Oct 2023 17:11:39 +0000 (18:11 +0100)]
unai: Use 8.8 RGB triplet format for gouraud shading
Use a new 'gcol_t' type which fits in 64 bits, and encode each color
component into a 8.8 fixed-point format.
This boosts the precision of the gouraud shading algorithm, at almost
zero cost.
Fixes #320.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Paul Cercueil [Thu, 2 Nov 2023 09:49:09 +0000 (10:49 +0100)]
unai: Preserve MSB in light routines
Apply the "MSB_PRESERVED" speed hack to non-ARM architectures.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Bobby Smith [Wed, 1 Nov 2023 18:21:20 +0000 (19:21 +0100)]
Add missing #if for the "Threaded SPU" core option
notaz [Wed, 1 Nov 2023 16:56:36 +0000 (18:56 +0200)]
gpu_unai: sync with libretro
notaz [Wed, 1 Nov 2023 16:47:16 +0000 (18:47 +0200)]
rename gpu_senquack to gpu_unai
to reduce the pain of syncing with libretro
notaz [Wed, 1 Nov 2023 16:28:03 +0000 (18:28 +0200)]
rename gpu_unai to gpu_unai_old
Because libretro's gpu_unai is different, making syncing the branches
a PITA.
notaz [Tue, 31 Oct 2023 23:48:23 +0000 (01:48 +0200)]
frontend: drop an outdated sanity check
notaz [Tue, 31 Oct 2023 23:47:14 +0000 (01:47 +0200)]
spu: maybe better mute
Blue's Clues
notaz [Mon, 30 Oct 2023 23:44:38 +0000 (01:44 +0200)]
cdrom: implement xa buffering somewhat
libretro/pcsx_rearmed#784
notaz [Mon, 30 Oct 2023 23:43:12 +0000 (01:43 +0200)]
spu: sync on koff
otherwise problems with FIFA99
notaz [Sun, 29 Oct 2023 22:33:46 +0000 (00:33 +0200)]
gpulib: don't set_mode for 0
can happen with the new borderless setting
notaz [Sun, 29 Oct 2023 21:58:03 +0000 (23:58 +0200)]
rework memhandlers to deal with some bus details
notaz/pcsx_rearmed#327
notaz [Sun, 29 Oct 2023 21:54:58 +0000 (23:54 +0200)]
cdrom: simplify getStatus
notaz [Sat, 28 Oct 2023 22:19:32 +0000 (01:19 +0300)]
cdrom: allow resetting with lid open
libretro/pcsx_rearmed#679
notaz [Sat, 28 Oct 2023 20:40:01 +0000 (23:40 +0300)]
libretro: fix option mismatch
notaz [Sat, 28 Oct 2023 20:23:30 +0000 (23:23 +0300)]
libretro: clear the allocated buffers
there is code that relies on that memory to be cleared
because linux mmap() clears it
notaz [Sat, 28 Oct 2023 19:53:21 +0000 (22:53 +0300)]
libretro: try to support different pitches
untested as GET_CURRENT_SOFTWARE_FRAMEBUFFER returns false in my setup
notaz [Fri, 27 Oct 2023 20:56:06 +0000 (23:56 +0300)]
adjust vita's mappings to more resemble other platforms
notaz [Thu, 26 Oct 2023 21:24:47 +0000 (00:24 +0300)]
cdrom: proper autopause int
libretro/pcsx_rearmed#396
notaz [Wed, 25 Oct 2023 22:00:29 +0000 (01:00 +0300)]
psxhw: debug-log more weird writes
they'd likely need special handling
notaz [Wed, 25 Oct 2023 21:56:20 +0000 (00:56 +0300)]
cdrom: maybe more accurate lid behavior
libretro/pcsx_rearmed#779
notaz [Wed, 25 Oct 2023 21:47:50 +0000 (00:47 +0300)]
cdrom: try some different seek times
libretro/pcsx_rearmed#781
libretro/pcsx_rearmed#150
notaz [Wed, 25 Oct 2023 20:08:48 +0000 (23:08 +0300)]
gpu_neon: fix some missing ebuf updates
notaz [Wed, 25 Oct 2023 20:06:59 +0000 (23:06 +0300)]
cdriso: unbreak chd cdda
fixes notaz/pcsx_rearmed#328
notaz [Tue, 24 Oct 2023 23:07:00 +0000 (02:07 +0300)]
fix build
notaz [Tue, 24 Oct 2023 22:36:42 +0000 (01:36 +0300)]
gpulib: trust game's centering based on a database
libretro/pcsx_rearmed#160
notaz [Tue, 24 Oct 2023 18:42:04 +0000 (21:42 +0300)]
gpulib: add a "borderless" option to restore old behavior
Paul Cercueil [Tue, 24 Oct 2023 17:08:40 +0000 (19:08 +0200)]
psxdma: Fix endian issue in gpuInterrupt()
The HW_DMA2_MADR register contains little-endian data, therefore it
must always be accessed through one of the swap macros.
This fixes the slow DMA linked-list walking on big-endian systems.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
notaz [Mon, 23 Oct 2023 22:22:27 +0000 (01:22 +0300)]
save some things that weren't saved but should have been
libretro/pcsx_rearmed#274
Paul Cercueil [Sun, 22 Oct 2023 22:38:45 +0000 (00:38 +0200)]
psxmem.h: Fix annoying warning
Avoid doing arithmetic on pointers to keep compilers happy.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
notaz [Mon, 23 Oct 2023 22:00:55 +0000 (01:00 +0300)]
improve field status after enable
sort of a hack (as usual) but ohwell...
notaz [Mon, 23 Oct 2023 18:20:51 +0000 (21:20 +0300)]
more timing hacks
notaz [Mon, 23 Oct 2023 18:00:35 +0000 (21:00 +0300)]
gpu_neon: rework buffering to reduce flickering
... maybe
notaz/pcsx_rearmed#324
notaz [Sat, 21 Oct 2023 21:09:16 +0000 (00:09 +0300)]
add a libcrypt warning
gives a hint instead of silently not working
notaz [Sat, 21 Oct 2023 20:33:34 +0000 (23:33 +0300)]
update libpicofe
notaz [Fri, 20 Oct 2023 23:45:06 +0000 (02:45 +0300)]
try a workaround for ff8 analogs
notaz/pcsx_rearmed#54
Matheus Garcia [Sat, 21 Oct 2023 15:40:07 +0000 (15:40 +0000)]
Compatibility with FreeBSD
notaz [Fri, 20 Oct 2023 20:14:17 +0000 (23:14 +0300)]
try a new github issue template
notaz [Fri, 20 Oct 2023 19:58:58 +0000 (22:58 +0300)]
don't print some old PCSX version
confuses some users which version to report
notaz [Thu, 19 Oct 2023 21:20:19 +0000 (00:20 +0300)]
reduce seeking and open handles to maybe help smb
libretro/pcsx_rearmed#342
notaz [Tue, 17 Oct 2023 22:44:46 +0000 (01:44 +0300)]
must specify cflags to link
important for -mfpu when using lto
notaz [Mon, 16 Oct 2023 21:16:46 +0000 (00:16 +0300)]
rework gpu busy timing
previous implementation caused complications with dynarecs
notaz [Mon, 16 Oct 2023 18:00:32 +0000 (21:00 +0300)]
drc: implement cycle reload on read
... but decided to not enable it yet (or ever?)
notaz [Sun, 15 Oct 2023 20:10:16 +0000 (23:10 +0300)]
spu: rvb volume is signed
notaz/pcsx_rearmed#316
saulfabreg Wii VC Project [Sun, 15 Oct 2023 00:48:43 +0000 (19:48 -0500)]
add Bomberman: Fantasy Race to database for hack "(GPU) slow linked list walking"
Without it, the Retry/Quit menu when you lose a race is invisible.
Fixes https://github.com/libretro/pcsx_rearmed/issues/776
notaz [Sat, 14 Oct 2023 21:48:20 +0000 (00:48 +0300)]
cdrom: adjust timing
notaz/pcsx_rearmed#317
notaz [Sat, 14 Oct 2023 20:42:11 +0000 (23:42 +0300)]
update vibration handling
following the nocash description
notaz/pcsx_rearmed#314
notaz [Sat, 14 Oct 2023 16:18:01 +0000 (19:18 +0300)]
spu: implement irq on dma
notaz/pcsx_rearmed#295
notaz [Fri, 13 Oct 2023 20:19:24 +0000 (23:19 +0300)]
eliminate event code duplication
notaz [Fri, 13 Oct 2023 15:56:41 +0000 (18:56 +0300)]
bigendian again
libretro/pcsx_rearmed#777
StormedBubbles [Tue, 30 May 2023 20:30:16 +0000 (16:30 -0400)]
Optional lightgun crosshairs + add "Konami Gun" device
notaz [Thu, 12 Oct 2023 22:15:13 +0000 (01:15 +0300)]
patch up some clang/apple issues
notaz [Wed, 11 Oct 2023 22:38:04 +0000 (01:38 +0300)]
cdrom: adjust pause behavior
follows mednafen now
notaz/pcsx_rearmed#288
notaz [Wed, 11 Oct 2023 22:36:37 +0000 (01:36 +0300)]
cdrom: adjust the resume timing hack
otherwise some load times become excessive, like in ff7
notaz [Tue, 10 Oct 2023 23:14:08 +0000 (02:14 +0300)]
unbreak some old savestates
I have too many of them
notaz [Tue, 10 Oct 2023 23:11:51 +0000 (02:11 +0300)]
spu: try keyoff ignore
unclear if that's what's supposed to happen
notaz/pcsx_rearmed#315
notaz [Tue, 10 Oct 2023 20:48:42 +0000 (23:48 +0300)]
spu: rearrange struct to reduce padding
notaz [Mon, 9 Oct 2023 21:39:57 +0000 (00:39 +0300)]
add a nasty hack for gpu busy timing
with a hope to remove it someday
notaz/pcsx_rearmed#225
notaz [Mon, 9 Oct 2023 18:54:54 +0000 (21:54 +0300)]
provide DISABLE_MEM_LUTS default
notaz [Mon, 9 Oct 2023 18:10:37 +0000 (21:10 +0300)]
psxbios: don't limit pointers to ram
scratchpad is sometimes used
Paul Cercueil [Fri, 6 Oct 2023 20:53:47 +0000 (22:53 +0200)]
Add compile-time option to drop psxMemRLUT, psxMemWLUT
Add compile-time option which, if enabled, will replace accesses to
psxMemRLUT and psxMemWLUT with a small inline function psxm().
The reasons behind this change are:
- These were some BIG LUTs. On 32-bit, they would account for 512 KiB of
RAM. On 64-bit, they would account for 1 MiB of RAM. This sounds tiny
by today's standards, but it still is huge for some of the platforms
that PCSX supports.
- Computing the pointer isn't that resource-intensive. Still slower than
reading from a LUT (as long as the LUT entry is in the cache, which it
should be, as the few valid entries are grouped together), but I doubt
that it slows down the interpreter by a lot.
- Even if it does slow down the interpreter a bit, it shouldn't be a
huge deal, given that the interpreter isn't really used nowadays as
the JITs support all the major CPU architectures, and the interpreter
is used mostly for debugging purposes. Besides, the two JITs do not
use these LUTs.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
notaz [Sun, 8 Oct 2023 22:20:07 +0000 (01:20 +0300)]
gpu: a bit better idle bit handling
notaz/pcsx_rearmed#217
notaz [Sat, 7 Oct 2023 22:55:58 +0000 (01:55 +0300)]
setup spu r8 handlers
used by Xenogears, unknown what for
notaz [Sat, 7 Oct 2023 22:43:25 +0000 (01:43 +0300)]
spu: make fmod work in threaded mode
having to do such work makes me want to drop this dreaded
threaded stuff altogether
notaz [Sat, 7 Oct 2023 19:56:09 +0000 (22:56 +0300)]
spu: try to clean up the interpolation mess
It's still full of magic offsets and constants,
but maybe not as much as before.
notaz [Fri, 6 Oct 2023 22:01:44 +0000 (01:01 +0300)]
gpulib: forgot to mark fb dirty
notaz [Thu, 5 Oct 2023 22:12:50 +0000 (01:12 +0300)]
spu: adjust fmod to match nocash description
mednafen doesn't quite agree though, so this may need to be revisited
notaz [Wed, 4 Oct 2023 21:54:29 +0000 (00:54 +0300)]
standalone: load per-game config from cmd line too
notaz/pcsx_rearmed#163
notaz [Wed, 4 Oct 2023 20:51:55 +0000 (23:51 +0300)]
drc: avoid excessive recursion in hle mode