pcsx_rearmed.git
11 months agoan alt hack for Judge Dredd
notaz [Fri, 1 Dec 2023 23:05:10 +0000 (01:05 +0200)]
an alt hack for Judge Dredd

11 months agogpu: improve timings of clipped sprites
notaz [Wed, 29 Nov 2023 23:58:19 +0000 (01:58 +0200)]
gpu: improve timings of clipped sprites

Judge Dredd has tons of them.
Too lazy to do this for peops so keep it neglected for now.

11 months agomore timing hacks
notaz [Mon, 27 Nov 2023 22:51:32 +0000 (00:51 +0200)]
more timing hacks

11 months agogpu_unai: fix clear masking
notaz [Mon, 27 Nov 2023 22:47:16 +0000 (00:47 +0200)]
gpu_unai: fix clear masking

11 months agogpu: start doing some basic gpu timing
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

11 months agolibretro: drop the Frame Duping option
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

11 months agoupdate db
notaz [Sat, 25 Nov 2023 23:02:27 +0000 (01:02 +0200)]
update db

libretro/pcsx_rearmed#128

11 months agodrop some unused funcs
notaz [Sat, 25 Nov 2023 22:11:30 +0000 (00:11 +0200)]
drop some unused funcs

removed in a plugin but not the core

11 months agolibretro: report errors and warnings as such
notaz [Sat, 25 Nov 2023 21:59:36 +0000 (23:59 +0200)]
libretro: report errors and warnings as such

11 months agolibretro: direct fb access requires duping support
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

11 months agocdrom: fail pausing on seek
notaz [Sat, 25 Nov 2023 20:37:28 +0000 (22:37 +0200)]
cdrom: fail pausing on seek

libretro/pcsx_rearmed#790

11 months agotry different dualshock analog heuristics
notaz [Sat, 25 Nov 2023 00:52:47 +0000 (02:52 +0200)]
try different dualshock analog heuristics

libretro/pcsx_rearmed#765

12 months agospu: add a guard for "runaway" channels
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

12 months agodon't use a stack var out of scope
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

12 months agocdrom: always error out on shell open
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

12 months agospu: forgot to save some stuff again
notaz [Tue, 21 Nov 2023 22:06:05 +0000 (00:06 +0200)]
spu: forgot to save some stuff again

12 months agoapply cdrom volume in spu
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.

12 months agolibretro: add a few options for the analog combo
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

12 months agoupdate analog default list
notaz [Mon, 20 Nov 2023 00:39:56 +0000 (02:39 +0200)]
update analog default list

12 months agodefaut dualshock to digital again, unless overriden
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

12 months agofrontend: Fix buffer overrun
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>
12 months agoMakefile: Enable address sanitizer with DEBUG_ASAN=1
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>
12 months agospu: adjust dma timing + a hack
notaz [Sun, 19 Nov 2023 21:45:55 +0000 (23:45 +0200)]
spu: adjust dma timing + a hack

libretro/pcsx_rearmed#799

12 months agopsxbios: implement strtol
notaz [Thu, 16 Nov 2023 23:08:45 +0000 (01:08 +0200)]
psxbios: implement strtol

libretro/pcsx_rearmed#288

12 months agopsxbios: handle direct bios table calls
notaz [Thu, 16 Nov 2023 21:23:05 +0000 (23:23 +0200)]
psxbios: handle direct bios table calls

libretro/pcsx_rearmed#797

12 months agospu: patch up more savestate issues
notaz [Thu, 16 Nov 2023 19:07:21 +0000 (21:07 +0200)]
spu: patch up more savestate issues

notaz/pcsx_rearmed#329

12 months agoyet more timing hacks
notaz [Mon, 13 Nov 2023 22:46:38 +0000 (00:46 +0200)]
yet more timing hacks

libretro/pcsx_rearmed#107

12 months agorearrange cycle hack table
notaz [Mon, 13 Nov 2023 20:07:12 +0000 (22:07 +0200)]
rearrange cycle hack table

12 months agocdrom: try more states
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

12 months agogpu_neon: enforce alignment required for asm
notaz [Mon, 13 Nov 2023 19:04:37 +0000 (21:04 +0200)]
gpu_neon: enforce alignment required for asm

libretro/pcsx_rearmed#798

12 months agoadjust the deadzone hack
notaz [Sat, 4 Nov 2023 00:06:57 +0000 (02:06 +0200)]
adjust the deadzone hack

libretro/pcsx_rearmed#792

12 months agocdrom: add forgotten reset
notaz [Fri, 3 Nov 2023 00:02:26 +0000 (02:02 +0200)]
cdrom: add forgotten reset

12 months agocdrom: implement some more irq details
notaz [Thu, 2 Nov 2023 21:17:28 +0000 (23:17 +0200)]
cdrom: implement some more irq details

12 months agospu: 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

12 months agoupdate gitignore
notaz [Thu, 2 Nov 2023 16:46:17 +0000 (18:46 +0200)]
update gitignore

12 months agounai: Use 8.8 RGB triplet format for gouraud shading
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>
12 months agounai: Preserve MSB in light routines
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>
12 months agoAdd missing #if for the "Threaded SPU" core option
Bobby Smith [Wed, 1 Nov 2023 18:21:20 +0000 (19:21 +0100)]
Add missing #if for the "Threaded SPU" core option

12 months agogpu_unai: sync with libretro
notaz [Wed, 1 Nov 2023 16:56:36 +0000 (18:56 +0200)]
gpu_unai: sync with libretro

12 months agorename gpu_senquack to gpu_unai
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

12 months agorename gpu_unai to gpu_unai_old
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.

12 months agofrontend: drop an outdated sanity check
notaz [Tue, 31 Oct 2023 23:48:23 +0000 (01:48 +0200)]
frontend: drop an outdated sanity check

12 months agospu: maybe better mute
notaz [Tue, 31 Oct 2023 23:47:14 +0000 (01:47 +0200)]
spu: maybe better mute

Blue's Clues

12 months agocdrom: implement xa buffering somewhat
notaz [Mon, 30 Oct 2023 23:44:38 +0000 (01:44 +0200)]
cdrom: implement xa buffering somewhat

libretro/pcsx_rearmed#784

12 months agospu: sync on koff
notaz [Mon, 30 Oct 2023 23:43:12 +0000 (01:43 +0200)]
spu: sync on koff

otherwise problems with FIFA99

12 months agogpulib: don't set_mode for 0
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

12 months agorework memhandlers to deal with some bus details
notaz [Sun, 29 Oct 2023 21:58:03 +0000 (23:58 +0200)]
rework memhandlers to deal with some bus details

notaz/pcsx_rearmed#327

12 months agocdrom: simplify getStatus
notaz [Sun, 29 Oct 2023 21:54:58 +0000 (23:54 +0200)]
cdrom: simplify getStatus

12 months agocdrom: allow resetting with lid open
notaz [Sat, 28 Oct 2023 22:19:32 +0000 (01:19 +0300)]
cdrom: allow resetting with lid open

libretro/pcsx_rearmed#679

12 months agolibretro: fix option mismatch
notaz [Sat, 28 Oct 2023 20:40:01 +0000 (23:40 +0300)]
libretro: fix option mismatch

12 months agolibretro: clear the allocated buffers
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

12 months agolibretro: try to support different pitches
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

12 months agoadjust vita's mappings to more resemble other platforms
notaz [Fri, 27 Oct 2023 20:56:06 +0000 (23:56 +0300)]
adjust vita's mappings to more resemble other platforms

12 months agocdrom: proper autopause int
notaz [Thu, 26 Oct 2023 21:24:47 +0000 (00:24 +0300)]
cdrom: proper autopause int

libretro/pcsx_rearmed#396

12 months agopsxhw: debug-log more weird writes
notaz [Wed, 25 Oct 2023 22:00:29 +0000 (01:00 +0300)]
psxhw: debug-log more weird writes

they'd likely need special handling

12 months agocdrom: maybe more accurate lid behavior
notaz [Wed, 25 Oct 2023 21:56:20 +0000 (00:56 +0300)]
cdrom: maybe more accurate lid behavior

libretro/pcsx_rearmed#779

12 months agocdrom: try some different seek times
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

12 months agogpu_neon: fix some missing ebuf updates
notaz [Wed, 25 Oct 2023 20:08:48 +0000 (23:08 +0300)]
gpu_neon: fix some missing ebuf updates

12 months agocdriso: unbreak chd cdda
notaz [Wed, 25 Oct 2023 20:06:59 +0000 (23:06 +0300)]
cdriso: unbreak chd cdda

fixes notaz/pcsx_rearmed#328

12 months agofix build
notaz [Tue, 24 Oct 2023 23:07:00 +0000 (02:07 +0300)]
fix build

12 months agogpulib: trust game's centering based on a database
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

12 months agogpulib: add a "borderless" option to restore old behavior
notaz [Tue, 24 Oct 2023 18:42:04 +0000 (21:42 +0300)]
gpulib: add a "borderless" option to restore old behavior

12 months agopsxdma: Fix endian issue in gpuInterrupt()
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>
12 months agosave some things that weren't saved but should have been
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

12 months agopsxmem.h: Fix annoying warning
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>
12 months agoimprove field status after enable
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...

12 months agomore timing hacks
notaz [Mon, 23 Oct 2023 18:20:51 +0000 (21:20 +0300)]
more timing hacks

12 months agogpu_neon: rework buffering to reduce flickering
notaz [Mon, 23 Oct 2023 18:00:35 +0000 (21:00 +0300)]
gpu_neon: rework buffering to reduce flickering

... maybe

notaz/pcsx_rearmed#324

13 months agoadd a libcrypt warning
notaz [Sat, 21 Oct 2023 21:09:16 +0000 (00:09 +0300)]
add a libcrypt warning

gives a hint instead of silently not working

13 months agoupdate libpicofe
notaz [Sat, 21 Oct 2023 20:33:34 +0000 (23:33 +0300)]
update libpicofe

13 months agotry a workaround for ff8 analogs
notaz [Fri, 20 Oct 2023 23:45:06 +0000 (02:45 +0300)]
try a workaround for ff8 analogs

notaz/pcsx_rearmed#54

13 months agoCompatibility with FreeBSD
Matheus Garcia [Sat, 21 Oct 2023 15:40:07 +0000 (15:40 +0000)]
Compatibility with FreeBSD

13 months agotry a new github issue template
notaz [Fri, 20 Oct 2023 20:14:17 +0000 (23:14 +0300)]
try a new github issue template

13 months agodon't print some old PCSX version
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

13 months agoreduce seeking and open handles to maybe help smb
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

13 months agomust specify cflags to link
notaz [Tue, 17 Oct 2023 22:44:46 +0000 (01:44 +0300)]
must specify cflags to link

important for -mfpu when using lto

13 months agorework gpu busy timing
notaz [Mon, 16 Oct 2023 21:16:46 +0000 (00:16 +0300)]
rework gpu busy timing

previous implementation caused complications with dynarecs

13 months agodrc: implement cycle reload on read
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?)

13 months agospu: rvb volume is signed
notaz [Sun, 15 Oct 2023 20:10:16 +0000 (23:10 +0300)]
spu: rvb volume is signed

notaz/pcsx_rearmed#316

13 months agoadd Bomberman: Fantasy Race to database for hack "(GPU) slow linked list walking"
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

13 months agocdrom: adjust timing
notaz [Sat, 14 Oct 2023 21:48:20 +0000 (00:48 +0300)]
cdrom: adjust timing

notaz/pcsx_rearmed#317

13 months agoupdate vibration handling
notaz [Sat, 14 Oct 2023 20:42:11 +0000 (23:42 +0300)]
update vibration handling

following the nocash description
notaz/pcsx_rearmed#314

13 months agospu: implement irq on dma
notaz [Sat, 14 Oct 2023 16:18:01 +0000 (19:18 +0300)]
spu: implement irq on dma

notaz/pcsx_rearmed#295

13 months agoeliminate event code duplication
notaz [Fri, 13 Oct 2023 20:19:24 +0000 (23:19 +0300)]
eliminate event code duplication

13 months agobigendian again
notaz [Fri, 13 Oct 2023 15:56:41 +0000 (18:56 +0300)]
bigendian again

libretro/pcsx_rearmed#777

13 months agoOptional lightgun crosshairs + add "Konami Gun" device
StormedBubbles [Tue, 30 May 2023 20:30:16 +0000 (16:30 -0400)]
Optional lightgun crosshairs + add "Konami Gun" device

13 months agopatch up some clang/apple issues
notaz [Thu, 12 Oct 2023 22:15:13 +0000 (01:15 +0300)]
patch up some clang/apple issues

13 months agocdrom: adjust pause behavior
notaz [Wed, 11 Oct 2023 22:38:04 +0000 (01:38 +0300)]
cdrom: adjust pause behavior

follows mednafen now
notaz/pcsx_rearmed#288

13 months agocdrom: adjust the resume timing hack
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

13 months agounbreak some old savestates
notaz [Tue, 10 Oct 2023 23:14:08 +0000 (02:14 +0300)]
unbreak some old savestates

I have too many of them

13 months agospu: try keyoff ignore
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

13 months agospu: rearrange struct to reduce padding
notaz [Tue, 10 Oct 2023 20:48:42 +0000 (23:48 +0300)]
spu: rearrange struct to reduce padding

13 months agoadd a nasty hack for gpu busy timing
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

13 months agoprovide DISABLE_MEM_LUTS default
notaz [Mon, 9 Oct 2023 18:54:54 +0000 (21:54 +0300)]
provide DISABLE_MEM_LUTS default

13 months agopsxbios: don't limit pointers to ram
notaz [Mon, 9 Oct 2023 18:10:37 +0000 (21:10 +0300)]
psxbios: don't limit pointers to ram

scratchpad is sometimes used

13 months agoAdd compile-time option to drop psxMemRLUT, psxMemWLUT
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>
13 months agogpu: a bit better idle bit handling
notaz [Sun, 8 Oct 2023 22:20:07 +0000 (01:20 +0300)]
gpu: a bit better idle bit handling

notaz/pcsx_rearmed#217

13 months agosetup spu r8 handlers
notaz [Sat, 7 Oct 2023 22:55:58 +0000 (01:55 +0300)]
setup spu r8 handlers

used by Xenogears, unknown what for

13 months agospu: make fmod work in threaded mode
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

13 months agospu: try to clean up the interpolation mess
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.