pcsx_rearmed.git
32 hours agocdrom: remove some old read-as-play logic master github/master
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

32 hours 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()

32 hours 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 days agocspace: fix 24bit downscaler
notaz [Sun, 18 Jan 2026 01:39:12 +0000 (03:39 +0200)]
cspace: fix 24bit downscaler

2 days 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 days 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 days 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

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

8 days 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

11 days 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 weeks agogpu_neon: unbreak build
notaz [Sun, 4 Jan 2026 02:51:00 +0000 (04:51 +0200)]
gpu_neon: unbreak build

2 weeks 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 weeks 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 weeks agogpu_async: some dma support
notaz [Sat, 3 Jan 2026 23:18:45 +0000 (01:18 +0200)]
gpu_async: some dma support

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

2 weeks 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 weeks 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 weeks 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 weeks agogpu_async: handle fb wrapping
notaz [Tue, 30 Dec 2025 22:26:49 +0000 (00:26 +0200)]
gpu_async: handle fb wrapping

2 weeks 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 weeks agoclean up some includes
notaz [Sat, 27 Dec 2025 01:20:54 +0000 (03:20 +0200)]
clean up some includes

3 weeks 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

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

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

caused spunull savestate crashes

3 weeks 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

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

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

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

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

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

3 weeks 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

4 weeks 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

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

4 weeks 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

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

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

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

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

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

no more MENU_X2

8 weeks 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

8 weeks 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

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

4 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

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

`make ipk`

5 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

5 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

5 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

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

./configure --platform=miyoo

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

5 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

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

7 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

7 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

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

7 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

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

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

8 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

8 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

8 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

8 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

8 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

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

8 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

8 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

8 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

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

8 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>
8 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>
8 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>
8 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>
8 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>
8 months agocdrom: Move libretro specific stuff out of libpcsxcore
Paul Cercueil [Mon, 14 Apr 2025 19:21:51 +0000 (21:21 +0200)]
cdrom: Move libretro specific stuff out of libpcsxcore

This stuff doesn't belong here, and prevents other emulators using
libpcsxcore from implementing the new async CDROM API properly.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
8 months agolightrec: Detect and speed up GPU status polling
Paul Cercueil [Sat, 19 Apr 2025 13:27:02 +0000 (15:27 +0200)]
lightrec: Detect and speed up GPU status polling

If the GPUSTATUS_POLLING_THRESHOLD macro is set to a value > 0, the
Lightrec glue code will attempt to detect polling of the GPU status
register, with a polling interval in PSX cycles up to the threshold
configured.

This is still quite experimental, hence the reason why it's disabled by
default. However, this gives a huge speed boost (35% and above) when
running on Dreamcast, tested with a threshold value of 350, on games
that don't use the PSX CPU much and spend a lot of time waiting for
VSYNC.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
9 months agogte_neon: fix broken ir0 saturation flag
notaz [Sat, 12 Apr 2025 23:25:23 +0000 (02:25 +0300)]
gte_neon: fix broken ir0 saturation flag

a 14 year old bug...
notaz/pcsx_rearmed#371

9 months agodrc: make gcc11 happier
notaz [Sat, 12 Apr 2025 21:57:05 +0000 (00:57 +0300)]
drc: make gcc11 happier

-Warray-bounds only under -O3, apparently

9 months agolightrec: update
notaz [Sat, 12 Apr 2025 21:25:55 +0000 (00:25 +0300)]
lightrec: update

9 months agounbreak enhanced resolution
notaz [Sat, 12 Apr 2025 20:51:39 +0000 (23:51 +0300)]
unbreak enhanced resolution

Fixes: cdc1d78f3e3e22c45e8461368b3aa58fce23c09c

9 months agolibretro: revise the psxclock text again
notaz [Tue, 8 Apr 2025 23:16:06 +0000 (02:16 +0300)]
libretro: revise the psxclock text again

notaz/pcsx_rearmed#362

9 months agolibretro: remove outdated text
notaz [Wed, 2 Apr 2025 22:00:12 +0000 (01:00 +0300)]
libretro: remove outdated text

9 months agofrontend/menu: label can only go with statement
Apaczer [Wed, 2 Apr 2025 12:55:05 +0000 (14:55 +0200)]
frontend/menu: label can only go with statement

fix for older gcc

9 months agoconfigure: disable `tslib` for static
Apaczer [Tue, 1 Apr 2025 18:21:00 +0000 (20:21 +0200)]
configure: disable `tslib` for static

9 months agofrontend/menu: disable dl func. on static gcc
Apaczer [Tue, 1 Apr 2025 18:20:41 +0000 (20:20 +0200)]
frontend/menu: disable dl func. on static gcc

9 months agoMakefile: don't fail on release when missing plugins
Apaczer [Tue, 1 Apr 2025 18:29:10 +0000 (20:29 +0200)]
Makefile: don't fail on release when missing plugins

9 months agoconfigure: don't build so plugins for static
Apaczer [Tue, 1 Apr 2025 13:37:19 +0000 (15:37 +0200)]
configure: don't build so plugins for static

9 months agofrontend/menu: don't show ext. plugins in static build
Apaczer [Mon, 31 Mar 2025 19:58:29 +0000 (21:58 +0200)]
frontend/menu: don't show ext. plugins in static build

9 months agofrontend/menu: display only plausible gpu plugins
Apaczer [Mon, 31 Mar 2025 15:08:56 +0000 (17:08 +0200)]
frontend/menu: display only plausible gpu plugins

9 months agoMakefile: define supported GPUs with cflag
Apaczer [Mon, 31 Mar 2025 15:26:30 +0000 (17:26 +0200)]
Makefile: define supported GPUs with cflag

add HAVE_NEON_GPU to config.mak

9 months agoplugins: fix gpu_neon build as a .so
notaz [Sun, 30 Mar 2025 23:16:04 +0000 (02:16 +0300)]
plugins: fix gpu_neon build as a .so

9 months agoreadme.txt: add `gpu_neon.so` to plug list
Apaczer [Sun, 30 Mar 2025 19:33:40 +0000 (21:33 +0200)]
readme.txt: add `gpu_neon.so` to plug list

9 months agofrontend: rm unused now gpu chars and func.
Apaczer [Sun, 30 Mar 2025 19:22:47 +0000 (21:22 +0200)]
frontend: rm unused now gpu chars and func.

9 months agofrontend: rm BUILTIN_GPU_NEON ifdefs for shared build to work
Apaczer [Sun, 30 Mar 2025 19:18:12 +0000 (21:18 +0200)]
frontend: rm BUILTIN_GPU_NEON ifdefs for shared build to work

9 months agofrontend/menu: only display sel. GPU plug setting
Apaczer [Sat, 29 Mar 2025 16:55:33 +0000 (17:55 +0100)]
frontend/menu: only display sel. GPU plug setting

9 months agoclean up pad plugin stuff
notaz [Sun, 30 Mar 2025 14:59:42 +0000 (17:59 +0300)]
clean up pad plugin stuff

pad code was never used as a plugin, and there is no benefit from all
the indirection

9 months agodrop all the net stuff
notaz [Sun, 30 Mar 2025 14:09:41 +0000 (17:09 +0300)]
drop all the net stuff

it's completely broken and there are no plans to work on it

9 months agoclean up old gpu psemu funcs
notaz [Sun, 30 Mar 2025 13:57:45 +0000 (16:57 +0300)]
clean up old gpu psemu funcs

9 months agoconfigure: omit already build-in GPU in $plugins
Apaczer [Sat, 29 Mar 2025 15:17:27 +0000 (16:17 +0100)]
configure: omit already build-in GPU in $plugins

9 months agofrontend/menu: show relevant built-in GPU
Apaczer [Fri, 28 Mar 2025 21:12:38 +0000 (22:12 +0100)]
frontend/menu: show relevant built-in GPU

9 months agoconfigure: unset `PIC` cflag for plugins if not used
Apaczer [Wed, 26 Mar 2025 21:14:57 +0000 (22:14 +0100)]
configure: unset `PIC` cflag for plugins if not used

also don't redefine PIC in Makefiles