pcsx_rearmed.git
2 weeks agoMerge branch 'master' into libretro libretro github/libretro
notaz [Mon, 17 Mar 2025 00:21:39 +0000 (02:21 +0200)]
Merge branch 'master' into libretro

2 weeks agoandroid: drop -funroll-loops
notaz [Mon, 17 Mar 2025 00:18:54 +0000 (02:18 +0200)]
android: drop -funroll-loops

I don't like the bloat. If someone can show benchmarks showing this
helps, I'm happy to revert this.

2 weeks agodefault to O3 for autovectorization
notaz [Mon, 17 Mar 2025 00:17:37 +0000 (02:17 +0200)]
default to O3 for autovectorization

2 weeks agoexperimental rgb32 output option
notaz [Mon, 17 Mar 2025 00:15:23 +0000 (02:15 +0200)]
experimental rgb32 output option

notaz/pcsx_rearmed#355

2 weeks agospu: don't crash on 1 cpu w/threads enabled
notaz [Sun, 16 Mar 2025 23:14:07 +0000 (01:14 +0200)]
spu: don't crash on 1 cpu w/threads enabled

closes notaz/pcsx_rearmed#356

2 weeks agogpulib: avoid forced clears on state load
notaz [Fri, 14 Mar 2025 22:09:48 +0000 (00:09 +0200)]
gpulib: avoid forced clears on state load

forcing reg writes caused full fb clears each frame on run-ahead

4 weeks agoMerge branch 'master' into libretro
notaz [Tue, 4 Mar 2025 00:22:32 +0000 (02:22 +0200)]
Merge branch 'master' into libretro

4 weeks agospu: fix thread vs savestates races
notaz [Tue, 4 Mar 2025 00:02:33 +0000 (02:02 +0200)]
spu: fix thread vs savestates races

4 weeks agotry to support macOS for standalone
notaz [Mon, 3 Mar 2025 00:02:05 +0000 (02:02 +0200)]
try to support macOS for standalone

5 weeks agoMerge branch 'master' into libretro r25l
notaz [Wed, 26 Feb 2025 00:40:50 +0000 (02:40 +0200)]
Merge branch 'master' into libretro

5 weeks agorelease r25 r25
notaz [Fri, 21 Feb 2025 23:43:45 +0000 (01:43 +0200)]
release r25

5 weeks agocdrom: adjust the t'ai hack
notaz [Tue, 25 Feb 2025 23:45:02 +0000 (01:45 +0200)]
cdrom: adjust the t'ai hack

5 weeks agomisc: time_bcd should actually be bcd
notaz [Tue, 25 Feb 2025 21:17:59 +0000 (23:17 +0200)]
misc: time_bcd should actually be bcd

5 weeks agodma: partially disable pcr handling
notaz [Tue, 25 Feb 2025 00:59:52 +0000 (02:59 +0200)]
dma: partially disable pcr handling

5 weeks agodrc: update patches
notaz [Mon, 24 Feb 2025 23:35:57 +0000 (01:35 +0200)]
drc: update patches

5 weeks agodrc: forgot to set may_except
notaz [Mon, 24 Feb 2025 23:28:47 +0000 (01:28 +0200)]
drc: forgot to set may_except

otherwise unneeded_reg[] thing breaks, can be seen with
Config.PreciseExceptions enabled in some games

5 weeks agodrc: limit more prints
notaz [Mon, 24 Feb 2025 00:52:26 +0000 (02:52 +0200)]
drc: limit more prints

to not flood the logs

5 weeks agoMerge branch 'master' into libretro
notaz [Sun, 23 Feb 2025 02:28:20 +0000 (04:28 +0200)]
Merge branch 'master' into libretro

5 weeks agodrc: fix wrong writes
notaz [Sun, 23 Feb 2025 02:20:09 +0000 (04:20 +0200)]
drc: fix wrong writes

5 weeks agomisc: detect pal from lic sector
notaz [Sun, 23 Feb 2025 00:13:08 +0000 (02:13 +0200)]
misc: detect pal from lic sector

5 weeks agocdrom: don't deliver non mode1/2 sectors
notaz [Sun, 23 Feb 2025 00:11:17 +0000 (02:11 +0200)]
cdrom: don't deliver non mode1/2 sectors

5 weeks agopsxinterpreter: log bus error address
notaz [Sat, 22 Feb 2025 23:12:53 +0000 (01:12 +0200)]
psxinterpreter: log bus error address

5 weeks agodma: handle PCR writes
notaz [Sat, 22 Feb 2025 23:10:09 +0000 (01:10 +0200)]
dma: handle PCR writes

no commercial game needs this, so was missing
notaz/pcsx_rearmed#354

5 weeks agocdrom: try emulating fifo status bit
notaz [Sat, 22 Feb 2025 22:59:16 +0000 (00:59 +0200)]
cdrom: try emulating fifo status bit

is this good enough?
notaz/pcsx_rearmed#354

5 weeks agodrc: fix a clash of 'unneeded' passes
notaz [Sat, 22 Feb 2025 18:34:56 +0000 (20:34 +0200)]
drc: fix a clash of 'unneeded' passes

pass2_unneeded_regs() made decisions before some removals

5 weeks agospu: update TI C64x code
notaz [Fri, 21 Feb 2025 23:27:09 +0000 (01:27 +0200)]
spu: update TI C64x code

surprised it's not broken completely

5 weeks agogpulib: add height adjustment option
notaz [Fri, 21 Feb 2025 22:01:59 +0000 (00:01 +0200)]
gpulib: add height adjustment option

libretro/pcsx_rearmed#880

6 weeks agoMerge branch 'master' into libretro
notaz [Thu, 13 Feb 2025 23:15:55 +0000 (01:15 +0200)]
Merge branch 'master' into libretro

6 weeks agounbreak gh build
notaz [Thu, 13 Feb 2025 23:15:27 +0000 (01:15 +0200)]
unbreak gh build

6 weeks agoMerge branch 'master' into libretro
notaz [Thu, 13 Feb 2025 23:06:18 +0000 (01:06 +0200)]
Merge branch 'master' into libretro

6 weeks agodrc: avoid some header includes when not needed
notaz [Thu, 13 Feb 2025 23:04:47 +0000 (01:04 +0200)]
drc: avoid some header includes when not needed

7 weeks agodb: add localized PE2 versions
notaz [Thu, 13 Feb 2025 00:09:18 +0000 (02:09 +0200)]
db: add localized PE2 versions

7 weeks agocdrom: more lid hacks
notaz [Wed, 12 Feb 2025 00:31:51 +0000 (02:31 +0200)]
cdrom: more lid hacks

someday this should be properly tested on hw...

libretro/pcsx_rearmed#877
libretro/pcsx_rearmed#779

7 weeks agogpulib: avoid unaligned read
notaz [Mon, 10 Feb 2025 23:49:29 +0000 (01:49 +0200)]
gpulib: avoid unaligned read

we still support arm9 and such

7 weeks agoavoid some left shifting to sign bit
notaz [Mon, 10 Feb 2025 22:43:16 +0000 (00:43 +0200)]
avoid some left shifting to sign bit

doesn't patch out left shifting negative values as that seems to be
properly handled by gcc/clang/msvc (even while the standard makes it
undefined), and patching it would uglify the code too much

7 weeks agogpu: some function mismatches
notaz [Mon, 10 Feb 2025 22:37:32 +0000 (00:37 +0200)]
gpu: some function mismatches

pointed out by ubsan

7 weeks agolightrec: rm dup line
notaz [Sat, 8 Feb 2025 22:03:53 +0000 (00:03 +0200)]
lightrec: rm dup line

7 weeks agogpu_neon: avoid some clang warnings
notaz [Sat, 8 Feb 2025 21:51:54 +0000 (23:51 +0200)]
gpu_neon: avoid some clang warnings

8 weeks agoMerge branch 'master' into libretro
notaz [Sat, 1 Feb 2025 20:51:21 +0000 (22:51 +0200)]
Merge branch 'master' into libretro

8 weeks agogpulib: keep dirty flag if not displayed
notaz [Sat, 1 Feb 2025 00:34:02 +0000 (02:34 +0200)]
gpulib: keep dirty flag if not displayed

2 months agolightning: apply patch from libretro/pcsx_rearmed#868
notaz [Wed, 29 Jan 2025 00:18:50 +0000 (02:18 +0200)]
lightning: apply patch from libretro/pcsx_rearmed#868

Just to stop people reporting bugs.
Can be reverted later and properly synced with upstream lightrec when it
gets the fix.
libretro/pcsx_rearmed#868
libretro/pcsx_rearmed#873

2 months agoMerge branch 'master' into libretro
notaz [Thu, 30 Jan 2025 22:57:42 +0000 (00:57 +0200)]
Merge branch 'master' into libretro

2 months agospu: try some reverb resample filtering
notaz [Thu, 30 Jan 2025 21:24:18 +0000 (23:24 +0200)]
spu: try some reverb resample filtering

when gauss/cubic interpolation is on
libretro/pcsx_rearmed#515

2 months agolibretro: clean up win32 build
notaz [Tue, 28 Jan 2025 22:56:45 +0000 (00:56 +0200)]
libretro: clean up win32 build

2 months agogpu: partially revert 4a15db3fc8
notaz [Tue, 28 Jan 2025 21:10:41 +0000 (23:10 +0200)]
gpu: partially revert 4a15db3fc8

broke busy after dma
libretro/pcsx_rearmed#873

2 months agoMerge branch 'master' into libretro
notaz [Mon, 27 Jan 2025 23:06:15 +0000 (01:06 +0200)]
Merge branch 'master' into libretro

2 months agopropagate config after cd check
notaz [Sun, 26 Jan 2025 20:10:20 +0000 (22:10 +0200)]
propagate config after cd check

libretro/pcsx_rearmed#870

2 months agoMerge branch 'master' into libretro
notaz [Sat, 25 Jan 2025 21:13:07 +0000 (23:13 +0200)]
Merge branch 'master' into libretro

2 months agodb: update
notaz [Sat, 25 Jan 2025 20:51:42 +0000 (22:51 +0200)]
db: update

libretro/pcsx_rearmed#870

2 months agodrc: must call both callbacks in mixed mode
notaz [Sat, 25 Jan 2025 19:43:59 +0000 (21:43 +0200)]
drc: must call both callbacks in mixed mode

libretro/pcsx_rearmed#871

2 months agomake: address a ci race
notaz [Sat, 25 Jan 2025 01:35:39 +0000 (03:35 +0200)]
make: address a ci race

would be better to drop the plugins really

2 months agoMerge branch 'master' into libretro
notaz [Sat, 25 Jan 2025 00:59:51 +0000 (02:59 +0200)]
Merge branch 'master' into libretro

2 months agostandalone: fix missed y scaling
notaz [Sat, 25 Jan 2025 00:52:07 +0000 (02:52 +0200)]
standalone: fix missed y scaling

2 months agohle: assorted fixes
notaz [Thu, 23 Jan 2025 23:51:59 +0000 (01:51 +0200)]
hle: assorted fixes

like switching bios<->hle, w^x dynarec

2 months agodrc: implement block linking on platforms that lacked it
notaz [Thu, 23 Jan 2025 22:19:14 +0000 (00:19 +0200)]
drc: implement block linking on platforms that lacked it

... and likely break some of those platforms that I can't test :(

2 months agodrc: rearrange stop_after_jal stuff, limit NI prints
notaz [Wed, 22 Jan 2025 22:18:09 +0000 (00:18 +0200)]
drc: rearrange stop_after_jal stuff, limit NI prints

2 months agodrc: handle gte stalls closer to the interpreter
notaz [Wed, 22 Jan 2025 21:26:54 +0000 (23:26 +0200)]
drc: handle gte stalls closer to the interpreter

2 months agodrc: detect unoptimized stack reloads
notaz [Wed, 22 Jan 2025 01:11:12 +0000 (03:11 +0200)]
drc: detect unoptimized stack reloads

2 months agodrc: generate diff-able debug output
notaz [Wed, 22 Jan 2025 23:11:27 +0000 (01:11 +0200)]
drc: generate diff-able debug output

2 months agodrc: rework vsync
notaz [Wed, 22 Jan 2025 01:10:57 +0000 (03:10 +0200)]
drc: rework vsync

2 months agodb: update
notaz [Tue, 21 Jan 2025 21:12:57 +0000 (23:12 +0200)]
db: update

libretro/pcsx_rearmed#515

note that lightrec already runs more cycles as it doesn't do any
gte stall things

2 months agocpu: make sure config is applied when core is changed
notaz [Tue, 21 Jan 2025 20:51:15 +0000 (22:51 +0200)]
cpu: make sure config is applied when core is changed

2 months agospu: rework reverb according to nocash docs
notaz [Mon, 20 Jan 2025 23:12:35 +0000 (01:12 +0200)]
spu: rework reverb according to nocash docs

rpi4 performs about the same

2 months agostandalone: allow to enable slowboot in config at least
notaz [Mon, 20 Jan 2025 01:08:29 +0000 (03:08 +0200)]
standalone: allow to enable slowboot in config at least

2 months agocdrom: try different seek timing
notaz [Mon, 20 Jan 2025 01:06:41 +0000 (03:06 +0200)]
cdrom: try different seek timing

unclear if it's better, might need to revert

2 months agocdrom: drop the propagation thing
notaz [Sun, 19 Jan 2025 20:58:28 +0000 (22:58 +0200)]
cdrom: drop the propagation thing

It does more harm than good by causing instability.
Maybe make it optional someday.

2 months agocdrom: disable some hack for xa
notaz [Sat, 18 Jan 2025 23:42:35 +0000 (01:42 +0200)]
cdrom: disable some hack for xa

2 months agolightrec: Add the big-ass debugger
Paul Cercueil [Fri, 17 Jan 2025 00:50:05 +0000 (01:50 +0100)]
lightrec: Add the big-ass debugger

This debugger has this name because it doesn't even try to be suttle -
it will run the dynarec and interpreter versions of Lightrec in
parallel, comparing their behaviour at every exit point, and returning
any issue as soon as they appear.

By default, the emulator will print a checksum of the registers after
each exit point. When a mismatch is found, it is advised to re-start the
debugging setting the LIGHTREC_VERY_DEBUG=1 environment variable, and to
set the LIGHTREC_BEGIN_CYCLES environment variable to the cycle value of
the last known state. When the "very debug" mode is used, the
interpreter and dynarec will exit after each single block, and the
emulator will compute a checksum of the whole RAM and scratchpad and
print all registers. This two-level debugging allows to find a mismatch
point very fast, and then fine-tune until the exact breaking point is
found.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 months agoDisable mult/div and memset optimizations when debugging Lightrec
Paul Cercueil [Fri, 17 Jan 2025 00:49:07 +0000 (01:49 +0100)]
Disable mult/div and memset optimizations when debugging Lightrec

These optimizations cause Lightrec's interpreter and dynarec to have
different behaviours.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 months agolightrec: Add LIGHTREC_DEBUG functionality
Paul Cercueil [Fri, 17 Jan 2025 00:25:17 +0000 (01:25 +0100)]
lightrec: Add LIGHTREC_DEBUG functionality

When set, Lightrec will be built with the debug log level, the built-in
disassembler for PSX code and JIT code (requires binutils), and support
outputing data to the big-ass debugger (if the proper environment
variables are set).

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 months agoattempt to fix CI
notaz [Sat, 18 Jan 2025 00:27:42 +0000 (02:27 +0200)]
attempt to fix CI

2 months agotry some more CIs
notaz [Sat, 18 Jan 2025 00:20:51 +0000 (02:20 +0200)]
try some more CIs

2 months agoMerge branch 'master' into libretro
notaz [Thu, 16 Jan 2025 00:41:14 +0000 (02:41 +0200)]
Merge branch 'master' into libretro

2 months agocore: move some more stuff to psxRegs
notaz [Thu, 16 Jan 2025 00:01:21 +0000 (02:01 +0200)]
core: move some more stuff to psxRegs

less literal pools

2 months agodrc: fix wrong stop check
notaz [Wed, 15 Jan 2025 23:20:30 +0000 (01:20 +0200)]
drc: fix wrong stop check

would return prematurely because of this

2 months agomisc: hard-reset cpu on hle change
notaz [Wed, 15 Jan 2025 23:06:43 +0000 (01:06 +0200)]
misc: hard-reset cpu on hle change

2 months agofix some warnings on win32
notaz [Wed, 15 Jan 2025 19:15:07 +0000 (21:15 +0200)]
fix some warnings on win32

2 months agoMerge branch 'master' into libretro
notaz [Tue, 14 Jan 2025 01:36:59 +0000 (03:36 +0200)]
Merge branch 'master' into libretro

2 months agodb: update
notaz [Tue, 14 Jan 2025 01:32:04 +0000 (03:32 +0200)]
db: update

no desire to dig out the real reason; works on arm?
libretro/pcsx_rearmed#867

2 months agolightrec: update
notaz [Tue, 14 Jan 2025 01:27:23 +0000 (03:27 +0200)]
lightrec: update

2 months agogpu: adjust timing again
notaz [Tue, 14 Jan 2025 00:51:58 +0000 (02:51 +0200)]
gpu: adjust timing again

maybe I should just give up...

2 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Sun, 12 Jan 2025 22:07:38 +0000 (23:07 +0100)]
git subrepo pull --force deps/lightrec

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

2 months agoMerge branch 'master' into libretro
notaz [Sat, 11 Jan 2025 23:52:03 +0000 (01:52 +0200)]
Merge branch 'master' into libretro

2 months agodrc: adjust timing hacks
notaz [Sat, 11 Jan 2025 22:28:09 +0000 (00:28 +0200)]
drc: adjust timing hacks

also drop the difference from other cpu cores
libretro/pcsx_rearmed#858
notaz/pcsx_rearmed#349

2 months agorestore Haiku build
Benjamin FRANCOIS [Fri, 10 Jan 2025 19:56:50 +0000 (11:56 -0800)]
restore Haiku build

2 months agorestore Haiku build
Benjamin FRANCOIS [Fri, 10 Jan 2025 19:56:50 +0000 (11:56 -0800)]
restore Haiku build

2 months agolightrec: update to match libretro branch
notaz [Thu, 9 Jan 2025 19:23:39 +0000 (21:23 +0200)]
lightrec: update to match libretro branch

2 months agoMerge pull request #863 from pcercuei/update-lightrec-20250108
notaz [Thu, 9 Jan 2025 19:02:29 +0000 (21:02 +0200)]
Merge pull request #863 from pcercuei/update-lightrec-20250108

Update Lightrec 2025-01-08

2 months agogit subrepo pull --force deps/lightning
Paul Cercueil [Thu, 9 Jan 2025 17:24:39 +0000 (18:24 +0100)]
git subrepo pull --force deps/lightning

subrepo:
  subdir:   "deps/lightning"
  merged:   "a6bb2b5a7cf"
upstream:
  origin:   "https://git.savannah.gnu.org/git/lightning.git"
  branch:   "master"
  commit:   "a6bb2b5a7cf"
git-subrepo:
  version:  "0.4.6"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "110b9eb"

2 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Wed, 8 Jan 2025 14:29:46 +0000 (15:29 +0100)]
git subrepo pull --force deps/lightrec

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

2 months agoMerge branch 'master' into libretro
notaz [Mon, 6 Jan 2025 22:47:40 +0000 (00:47 +0200)]
Merge branch 'master' into libretro

2 months agogpu_neon: try more to not violate the arm32 abi
notaz [Mon, 6 Jan 2025 00:51:47 +0000 (02:51 +0200)]
gpu_neon: try more to not violate the arm32 abi

keep 8b stack alignment, save/restore regs, try avoiding hazards of
arm+neon accessing same cachelines on cortex-a8

3 months agoMerge branch 'master' into libretro
notaz [Sat, 28 Dec 2024 21:44:38 +0000 (23:44 +0200)]
Merge branch 'master' into libretro

3 months ago3ds: fix build
notaz [Sat, 28 Dec 2024 21:43:01 +0000 (23:43 +0200)]
3ds: fix build

c++ and long s32 combines to a peril

3 months agoMerge branch 'master' into libretro
notaz [Sat, 28 Dec 2024 21:25:33 +0000 (23:25 +0200)]
Merge branch 'master' into libretro

3 months agogpu: further timing hacks
notaz [Fri, 27 Dec 2024 20:04:33 +0000 (22:04 +0200)]
gpu: further timing hacks

libretro/pcsx_rearmed#711
notaz/pcsx_rearmed#348

3 months agogpu_neon: typo fix + minor stuff
notaz [Fri, 27 Dec 2024 15:37:31 +0000 (17:37 +0200)]
gpu_neon: typo fix + minor stuff

3 months agocdrom: fix wrong state
notaz [Thu, 26 Dec 2024 20:18:02 +0000 (22:18 +0200)]
cdrom: fix wrong state

libretro/pcsx_rearmed#860

3 months agolibretro: simplify axis_range_modifier
notaz [Thu, 26 Dec 2024 19:03:15 +0000 (21:03 +0200)]
libretro: simplify axis_range_modifier

also default to square as that better matches psx on modern controllers

3 months agogpu: different offset handling
notaz [Tue, 24 Dec 2024 18:39:34 +0000 (20:39 +0200)]
gpu: different offset handling

hopefully better, please report if something breaks
libretro/pcsx_rearmed#622