pcsx_rearmed.git
7 weeks agoMerge branch 'master' into libretro
notaz [Wed, 28 Jan 2026 02:09:48 +0000 (04:09 +0200)]
Merge branch 'master' into libretro

7 weeks agounbreak build
notaz [Wed, 28 Jan 2026 02:09:22 +0000 (04:09 +0200)]
unbreak build

7 weeks agolibretro: update frameskip logic
notaz [Wed, 28 Jan 2026 00:46:28 +0000 (02:46 +0200)]
libretro: update frameskip logic

As PSX usually runs at 20fps or so, underruns were not noticed because
the following frame after underrun libretro would indicate none, but the
core's logic would only evaluate it when the game flips the buffers,
which is like every 3rd frame or so. With that frameskip on slow devices
was pretty much ineffective.

7 weeks agofrontend: if frameskip is on, use it for fast-forward
notaz [Tue, 27 Jan 2026 21:46:49 +0000 (23:46 +0200)]
frontend: if frameskip is on, use it for fast-forward

7 weeks agogpulib: try delaying a frame on frameskip, more tuning
notaz [Tue, 27 Jan 2026 01:24:01 +0000 (03:24 +0200)]
gpulib: try delaying a frame on frameskip, more tuning

unsure if the delay thing is a good idea really...
for frameskip only so should not affect most people

7 weeks agogpulib: pass gpu to vout funcs
notaz [Tue, 27 Jan 2026 01:22:02 +0000 (03:22 +0200)]
gpulib: pass gpu to vout funcs

7 weeks agogpulib: try different vram update tracking
notaz [Mon, 26 Jan 2026 21:40:58 +0000 (23:40 +0200)]
gpulib: try different vram update tracking

Soul Reaver to not blit too much

7 weeks agogpulib: attempt to improve some frameskip logic
notaz [Mon, 26 Jan 2026 00:55:42 +0000 (02:55 +0200)]
gpulib: attempt to improve some frameskip logic

7 weeks agogpulib: move status update out of inner loop
notaz [Mon, 26 Jan 2026 00:50:53 +0000 (02:50 +0200)]
gpulib: move status update out of inner loop

it was done in vain most of the time

7 weeks agogpu: missing sync and endian conversions
notaz [Sun, 25 Jan 2026 23:13:41 +0000 (01:13 +0200)]
gpu: missing sync and endian conversions

8 weeks agomenu: fix some memcard parsing issues
notaz [Wed, 21 Jan 2026 00:04:20 +0000 (02:04 +0200)]
menu: fix some memcard parsing issues

8 weeks agoMerge branch 'master' into libretro
notaz [Mon, 19 Jan 2026 02:10:43 +0000 (04:10 +0200)]
Merge branch 'master' into libretro

8 weeks agocdrom: remove some old read-as-play logic
notaz [Mon, 19 Jan 2026 01:59:58 +0000 (03:59 +0200)]
cdrom: remove some old read-as-play logic

Supposedly tested in 2013 (55b8460a0e10da33133a98faeeb5b2375ef91dc0) but
maybe it was reading, not playing? Or maybe the mod chip affected this.

libretro/pcsx_rearmed#904

8 weeks agogpulib: init {x,y}{1,2}
notaz [Mon, 19 Jan 2026 01:19:05 +0000 (03:19 +0200)]
gpulib: init {x,y}{1,2}

based on nocash. Otherwise there's weird state during early boot where
y0/y1 are 0 and check_mode_change() doesn't call pl_vout_set_mode()

8 weeks agobios: clear more stuff for no-bios boot
notaz [Mon, 19 Jan 2026 01:13:46 +0000 (03:13 +0200)]
bios: clear more stuff for no-bios boot

libretro/pcsx_rearmed#903

2 months agocspace: fix 24bit downscaler
notaz [Sun, 18 Jan 2026 01:39:12 +0000 (03:39 +0200)]
cspace: fix 24bit downscaler

2 months agogpu_async: fix bogus idle read
notaz [Sat, 17 Jan 2026 00:18:02 +0000 (02:18 +0200)]
gpu_async: fix bogus idle read

2 months agospu: simplify interpolation modes
notaz [Fri, 16 Jan 2026 22:54:52 +0000 (00:54 +0200)]
spu: simplify interpolation modes

- cut the sample buffers by more than half
- even simpler simple interpolation with comparable quality
- gauss mode should stay as before

2 months agogpu_unai: lots of new asm
notaz [Sun, 11 Jan 2026 22:10:46 +0000 (00:10 +0200)]
gpu_unai: lots of new asm

but hopefully not bugs

2 months agogpu_unai: can't do some optimizations with dithering
notaz [Fri, 9 Jan 2026 22:53:32 +0000 (00:53 +0200)]
gpu_unai: can't do some optimizations with dithering

notaz/pcsx_rearmed#401

2 months agogpu_unai: cleanup
notaz [Fri, 9 Jan 2026 20:46:54 +0000 (22:46 +0200)]
gpu_unai: cleanup

- BLITMASK removed for good since it's unused and only doubles
  compilation time and generates tons of useless code
- gpuBlending24 removed since real hw has no such thing
- real dithering table is used, now folded in gpuLighting funcs
  to avoid some pack/unpack steps
- pass y to PolySpan to avoid useless recalc from pDst

2 months agogpu_unai: various asm tuning for armv6
notaz [Wed, 7 Jan 2026 23:39:43 +0000 (01:39 +0200)]
gpu_unai: various asm tuning for armv6

2 months agoMerge branch 'master' into libretro
notaz [Sun, 4 Jan 2026 02:51:11 +0000 (04:51 +0200)]
Merge branch 'master' into libretro

2 months agogpu_neon: unbreak build
notaz [Sun, 4 Jan 2026 02:51:00 +0000 (04:51 +0200)]
gpu_neon: unbreak build

2 months agogpu_async: avoid some thread wakeups
notaz [Sun, 4 Jan 2026 02:00:37 +0000 (04:00 +0200)]
gpu_async: avoid some thread wakeups

2 months agogpu_async: some draw area fixes
notaz [Sun, 4 Jan 2026 01:07:05 +0000 (03:07 +0200)]
gpu_async: some draw area fixes

2 months agogpu_async: some dma support
notaz [Sat, 3 Jan 2026 23:18:45 +0000 (01:18 +0200)]
gpu_async: some dma support

2 months agogpu_async: unbreak frameskip
notaz [Sat, 3 Jan 2026 00:20:48 +0000 (02:20 +0200)]
gpu_async: unbreak frameskip

2 months agoMerge branch 'master' into libretro
notaz [Fri, 2 Jan 2026 00:53:23 +0000 (02:53 +0200)]
Merge branch 'master' into libretro

2 months agocdrom: deny Read* on cdda tracks
notaz [Thu, 1 Jan 2026 01:04:28 +0000 (03:04 +0200)]
cdrom: deny Read* on cdda tracks

Monster Rancher 2 generator thing tries to read whatever is inserted,
reject it for audio cd like Duckstation does.
Also only skip when mode bit5 is not set.
libretro/pcsx_rearmed#901

2 months agocdriso: rework cue parsing
notaz [Thu, 1 Jan 2026 00:49:45 +0000 (02:49 +0200)]
cdriso: rework cue parsing

- INDEX 01 for track 01 used by https://legendcup.com/make-a-monster-mr2.php
- start/length no longer kept in MSF-format as pretty much nothing needs
  it like that, saves tons of conversions

libretro/pcsx_rearmed#901

2 months agopsxbios: avoid unsafe pointer access
notaz [Tue, 30 Dec 2025 22:02:29 +0000 (00:02 +0200)]
psxbios: avoid unsafe pointer access

sanitizers were not happy

2 months agogpu_async: handle fb wrapping
notaz [Tue, 30 Dec 2025 22:26:49 +0000 (00:26 +0200)]
gpu_async: handle fb wrapping

2 months agogpu: rework downscale stuff
notaz [Tue, 30 Dec 2025 21:59:19 +0000 (23:59 +0200)]
gpu: rework downscale stuff

no more need for extra buffer, works with all plugins

2 months agoclean up some includes
notaz [Sat, 27 Dec 2025 01:20:54 +0000 (03:20 +0200)]
clean up some includes

2 months agoMerge branch 'master' into libretro
notaz [Sun, 28 Dec 2025 01:58:33 +0000 (03:58 +0200)]
Merge branch 'master' into libretro

2 months agogpu_async: deal with some threading issues
notaz [Sun, 28 Dec 2025 01:01:28 +0000 (03:01 +0200)]
gpu_async: deal with some threading issues

2 months agomisc: avoid saving some heap garbage
notaz [Sat, 27 Dec 2025 00:51:56 +0000 (02:51 +0200)]
misc: avoid saving some heap garbage

2 months agospu: remove struct duplications
notaz [Sat, 27 Dec 2025 00:50:15 +0000 (02:50 +0200)]
spu: remove struct duplications

caused spunull savestate crashes

2 months agoplugins: use SysPrintf
notaz [Fri, 26 Dec 2025 17:50:48 +0000 (19:50 +0200)]
plugins: use SysPrintf

for messages to get to log files in libretro version

2 months agomake: fix another issue with autodeps
notaz [Fri, 26 Dec 2025 18:09:11 +0000 (20:09 +0200)]
make: fix another issue with autodeps

2 months agounbreak ctr build
notaz [Fri, 26 Dec 2025 02:10:05 +0000 (04:10 +0200)]
unbreak ctr build

2 months agounbreak ctr build
notaz [Fri, 26 Dec 2025 02:10:05 +0000 (04:10 +0200)]
unbreak ctr build

2 months agoMerge branch 'master' into libretro
notaz [Fri, 26 Dec 2025 01:43:42 +0000 (03:43 +0200)]
Merge branch 'master' into libretro

2 months agounbreak android build
notaz [Fri, 26 Dec 2025 01:39:43 +0000 (03:39 +0200)]
unbreak android build

2 months agogpu_neon: rm some unused stuff
notaz [Wed, 24 Dec 2025 00:37:59 +0000 (02:37 +0200)]
gpu_neon: rm some unused stuff

2 months agogpulib: thread sync reduction
notaz [Tue, 23 Dec 2025 01:01:11 +0000 (03:01 +0200)]
gpulib: thread sync reduction

2 months agogpulib: new plugin-independant multithreading support
notaz [Mon, 22 Dec 2025 22:05:52 +0000 (00:05 +0200)]
gpulib: new plugin-independant multithreading support

works with gpu_neon and others, replaces gpulib_thread_if

2 months agomake: use automatic dependencies
notaz [Mon, 22 Dec 2025 20:43:44 +0000 (22:43 +0200)]
make: use automatic dependencies

better late than never I guess

2 months agocdrom-async: move thread stuff out
notaz [Fri, 19 Dec 2025 20:04:14 +0000 (22:04 +0200)]
cdrom-async: move thread stuff out

2 months agodrop the unused HAVE_NEON
notaz [Mon, 15 Dec 2025 22:28:58 +0000 (00:28 +0200)]
drop the unused HAVE_NEON

only results in confusion like in libretro/pcsx_rearmed#899

3 months agodrop the unused HAVE_NEON
notaz [Mon, 15 Dec 2025 22:28:58 +0000 (00:28 +0200)]
drop the unused HAVE_NEON

only results in confusion like in libretro/pcsx_rearmed#899

3 months agodrop gnulib submodule
notaz [Mon, 15 Dec 2025 21:30:19 +0000 (23:30 +0200)]
drop gnulib submodule

The upstream server is just unreliable and it annoyingly breaks the CI.
I'd rather apply this on every lightning merge than have a broken CI.

3 months agoMerge branch 'master' into libretro
notaz [Sun, 14 Dec 2025 00:24:59 +0000 (02:24 +0200)]
Merge branch 'master' into libretro

3 months agocdrom: new hacks for bios slowboot
notaz [Sat, 13 Dec 2025 22:24:48 +0000 (00:24 +0200)]
cdrom: new hacks for bios slowboot

libretro/pcsx_rearmed#897

3 months agocdrom: report lead-out correctly
notaz [Sun, 14 Dec 2025 00:18:44 +0000 (02:18 +0200)]
cdrom: report lead-out correctly

or at least how nocash describes it

libretro/pcsx_rearmed#887

3 months agospu: rewrite adsr according to current docs
notaz [Thu, 11 Dec 2025 00:23:04 +0000 (02:23 +0200)]
spu: rewrite adsr according to current docs

nocash mostly

3 months agospu: somewhat better reverb off handling
notaz [Sun, 7 Dec 2025 23:46:42 +0000 (01:46 +0200)]
spu: somewhat better reverb off handling

3 months agoupdate libpicofe
notaz [Fri, 5 Dec 2025 22:52:25 +0000 (00:52 +0200)]
update libpicofe

no more MENU_X2

3 months agouse https:// URL for gnulib in .gitmodules
Hans-Christoph Steiner [Mon, 24 Nov 2025 16:59:01 +0000 (17:59 +0100)]
use https:// URL for gnulib in .gitmodules

HTTPS Everywhere! This is a trivial fix to improve privacy and security.

3 months agocdrom: minor tweak from pcercuei
notaz [Sun, 23 Nov 2025 23:55:44 +0000 (01:55 +0200)]
cdrom: minor tweak from pcercuei

https://github.com/notaz/pcsx_rearmed/pull/390#issuecomment-3568471649

3 months agoMerge branch 'master' into libretro
notaz [Sun, 23 Nov 2025 22:26:05 +0000 (00:26 +0200)]
Merge branch 'master' into libretro

3 months agorework readme
notaz [Sun, 23 Nov 2025 22:20:42 +0000 (00:20 +0200)]
rework readme

readme.txt moved as it's pandora specific really

6 months agocdrom-async: Fix subchannel read with hardware CD-ROM
Paul Cercueil [Wed, 20 Aug 2025 13:36:56 +0000 (15:36 +0200)]
cdrom-async: Fix subchannel read with hardware CD-ROM

The common CD-ROM code expects cdra_readSub() to read the subchannel
data of a given sector without actually changing the current sector
whose buffer is returned by cdra_getBuffer().

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
6 months agofrontend: reuse menu logic for config changing plugins
notaz [Fri, 22 Aug 2025 21:12:31 +0000 (00:12 +0300)]
frontend: reuse menu logic for config changing plugins

notaz/pcsx_rearmed#388

6 months agoMerge pull request #389 from Apaczer/add_miyoo_armv5
notaz [Fri, 22 Aug 2025 21:24:13 +0000 (00:24 +0300)]
Merge pull request #389 from Apaczer/add_miyoo_armv5

Add `miyoo` platform armv5 support

6 months agoMIYOO: add ipk package
Apaczer [Tue, 19 Aug 2025 20:37:22 +0000 (22:37 +0200)]
MIYOO: add ipk package

`make ipk`

6 months agoMIYOO: plat_sdl: add custom bindings
Apaczer [Sun, 22 Jun 2025 20:44:26 +0000 (22:44 +0200)]
MIYOO: plat_sdl: add custom bindings

6 months agoMIYOO: frontend: add custom def config
Apaczer [Tue, 1 Apr 2025 19:14:42 +0000 (21:14 +0200)]
MIYOO: frontend: add custom def config

Update main & menu

6 months agoMIYOO: frontend: use CWD for PCSX_DOT_DIR
Apaczer [Mon, 11 Aug 2025 19:33:31 +0000 (21:33 +0200)]
MIYOO: frontend: use CWD for PCSX_DOT_DIR

6 months agoadd official MIYOO support
Apaczer [Mon, 11 Aug 2025 19:25:00 +0000 (21:25 +0200)]
add official MIYOO support

./configure --platform=miyoo

7 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Sat, 16 Aug 2025 15:37:09 +0000 (17:37 +0200)]
git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "a173cf409e1"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "a173cf409e1"
git-subrepo:
  version:  "0.4.6"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "110b9eb"

7 months agolightrec: update
notaz [Sat, 16 Aug 2025 17:27:06 +0000 (20:27 +0300)]
lightrec: update

7 months agoMerge branch 'master' into libretro
notaz [Fri, 15 Aug 2025 18:29:46 +0000 (21:29 +0300)]
Merge branch 'master' into libretro

7 months agotry to revive dev-release builds
notaz [Tue, 27 May 2025 23:05:26 +0000 (02:05 +0300)]
try to revive dev-release builds

After github killed its ubuntu-20.04 image.
The intent here is to use older toolchains to support devices with older OSes.

7 months agocdriso: fill trackinfo for metadata-less formats
notaz [Fri, 15 Aug 2025 17:51:44 +0000 (20:51 +0300)]
cdriso: fill trackinfo for metadata-less formats

libretro/pcsx_rearmed#894

7 months agolightrec: update
notaz [Fri, 15 Aug 2025 17:50:11 +0000 (20:50 +0300)]
lightrec: update

7 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Fri, 15 Aug 2025 07:50:45 +0000 (09:50 +0200)]
git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "3ebca4b2940"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "3ebca4b2940"
git-subrepo:
  version:  "0.4.6"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "110b9eb"

8 months agofrontend/menu: add "Downscale Hi-Res" option
Apaczer [Tue, 10 Jun 2025 19:37:24 +0000 (21:37 +0200)]
frontend/menu: add "Downscale Hi-Res" option

from `scale_hires` intval

9 months agofrontend: update libpicofe, fix missed callbacks
notaz [Wed, 18 Jun 2025 17:37:31 +0000 (20:37 +0300)]
frontend: update libpicofe, fix missed callbacks

could crash on bios boot

9 months agofrontend: update libpicofe
notaz [Tue, 27 May 2025 22:30:17 +0000 (01:30 +0300)]
frontend: update libpicofe

9 months agoconfigure: drop the old brcm stuff
notaz [Tue, 27 May 2025 18:08:30 +0000 (21:08 +0300)]
configure: drop the old brcm stuff

9 months agodeps: switch gnu_lightning to a github mirror
notaz [Thu, 22 May 2025 22:50:11 +0000 (01:50 +0300)]
deps: switch gnu_lightning to a github mirror

The original is sometimes down, breaking CI.

9 months agoMerge branch 'master' into libretro
notaz [Thu, 22 May 2025 22:32:38 +0000 (01:32 +0300)]
Merge branch 'master' into libretro

9 months agofrontend: more gl options
notaz [Tue, 20 May 2025 21:54:58 +0000 (00:54 +0300)]
frontend: more gl options

9 months agospu: ssat is ARMv6, not v7
notaz [Tue, 20 May 2025 23:54:37 +0000 (02:54 +0300)]
spu: ssat is ARMv6, not v7

9 months agocdrom: fix wrong volumes on state load
notaz [Tue, 20 May 2025 23:53:41 +0000 (02:53 +0300)]
cdrom: fix wrong volumes on state load

libretro/pcsx_rearmed#890

9 months agospu: deal with some reverb overflows
notaz [Tue, 20 May 2025 23:00:40 +0000 (02:00 +0300)]
spu: deal with some reverb overflows

still possible but hopefully won't happen in practice
libretro/pcsx_rearmed#890

9 months agofrontend: improve sdl gamepad support
notaz [Tue, 20 May 2025 21:48:28 +0000 (00:48 +0300)]
frontend: improve sdl gamepad support

notaz/pcsx_rearmed#379

10 months agofrontend: rework sdl gl vout_method
notaz [Wed, 14 May 2025 21:46:37 +0000 (00:46 +0300)]
frontend: rework sdl gl vout_method

10 months agounbreak NO_FRONTEND build
notaz [Sun, 11 May 2025 23:34:26 +0000 (02:34 +0300)]
unbreak NO_FRONTEND build

10 months agofrontend: use more traditional profile dir
notaz [Sun, 11 May 2025 18:27:12 +0000 (21:27 +0300)]
frontend: use more traditional profile dir

With backward compatibility to working dir, also can set 'HOME=' env var
for the old behavior.

notaz/pcsx_rearmed#375

10 months agosdandalone: rework sdl output
notaz [Sat, 10 May 2025 22:21:51 +0000 (01:21 +0300)]
sdandalone: rework sdl output

- 2x overlay mode from PicoDrive
- somewhat proper fullscreen mode
- overlay scaling options
- gles mode probably broken (no longer works on more modern distros
  anyway - it's some very old code)
- new bugs

10 months agocdrom: fix double free on exit
notaz [Thu, 24 Apr 2025 22:13:08 +0000 (01:13 +0300)]
cdrom: fix double free on exit

10 months agodisable a false-positive warning
notaz [Tue, 22 Apr 2025 22:26:42 +0000 (01:26 +0300)]
disable a false-positive warning

10 months agocdrom: Align read buffers to 64 bytes
Paul Cercueil [Tue, 15 Apr 2025 11:18:05 +0000 (13:18 +0200)]
cdrom: Align read buffers to 64 bytes

Align the address and size of read buffers to 64 bytes, which
should be bigger or equal than the size of the cache lines on most
systems.

This allows hardware CD-ROM implementations to perform reads using DMA,
which generally have tight requirements on alignment.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
10 months agocdrom: Handle empty path string as synonym to cdrom:
Paul Cercueil [Tue, 15 Apr 2025 10:43:14 +0000 (12:43 +0200)]
cdrom: Handle empty path string as synonym to cdrom:

An empty path string previously meant we were going to use the hardware
CD-ROM. This is obvious when looking at the UsingIso() function for
instance.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
10 months agocdrom: Support using C11 threads instead of libretro ones
Paul Cercueil [Mon, 14 Apr 2025 21:47:35 +0000 (23:47 +0200)]
cdrom: Support using C11 threads instead of libretro ones

Libretro threads only work on... libretro.
Add support for C11 threads for the non-libretro platforms that still
want the async CD-ROM code.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
10 months agocdrom: Support subchannel reads with HW players
Paul Cercueil [Mon, 14 Apr 2025 19:54:38 +0000 (21:54 +0200)]
cdrom: Support subchannel reads with HW players

Add function rcdrom_readSub(), that can be implemented by frontends, and
update rcdrom_open() to take an extra parameter, that can be set by the
frontend to tell the async CD-ROM code whether or not subchannel reads
are supported.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
10 months agocdrom: Update real-CDROM API
Paul Cercueil [Mon, 14 Apr 2025 19:26:29 +0000 (21:26 +0200)]
cdrom: Update real-CDROM API

Rename cdrom_read_sector() to rcdrom_readSector(), and
cdrom_is_media_inserted() to rcdrom_isMediaInserted() to match the rest
of the "rcdrom" API.

Update rcdrom_open() to return a handle, which will then be passed
around to every other rcdrom API call.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>