pcsx_rearmed.git
11 months agocdrom: fix a copy-paste mistake
notaz [Wed, 6 Dec 2023 22:03:37 +0000 (00:03 +0200)]
cdrom: fix a copy-paste mistake

thanks to xjsxjs197 for the report

11 months agopsxbios: implement some more memcard details
notaz [Wed, 6 Dec 2023 21:59:11 +0000 (23:59 +0200)]
psxbios: implement some more memcard details

11 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

11 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

11 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

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

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

13 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

13 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

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

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

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

13 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