pcsx_rearmed.git
5 months agopsxbios: implement some cdrom related stuff
notaz [Mon, 4 Dec 2023 20:17:10 +0000 (22:17 +0200)]
psxbios: implement some cdrom related stuff

5 months agopatch another gpulib alignment issue
notaz [Sat, 2 Dec 2023 23:21:50 +0000 (01:21 +0200)]
patch another gpulib alignment issue

for neon bgr888_to_rgb888

5 months agoadjust dma alignment and some cleanup
notaz [Fri, 1 Dec 2023 21:45:40 +0000 (23:45 +0200)]
adjust dma alignment and some cleanup

libretro/pcsx_rearmed#699

5 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

5 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.

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

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

5 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

5 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

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

libretro/pcsx_rearmed#128

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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.

5 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

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

5 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

5 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>
5 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>
5 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

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

libretro/pcsx_rearmed#288

5 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

5 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

5 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

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

5 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

5 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

5 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

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

6 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

6 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

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

6 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>
6 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>
6 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

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

6 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

6 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.

6 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

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

Blue's Clues

6 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

6 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

6 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

6 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

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

6 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

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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

6 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

6 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

6 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>
6 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

6 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>
6 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...

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

6 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

6 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

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

6 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

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

6 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

6 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

6 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

6 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

6 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

6 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?)

6 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

6 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

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

notaz/pcsx_rearmed#317

6 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

6 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

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

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

libretro/pcsx_rearmed#777

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

6 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

6 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>
6 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