pcsx_rearmed.git
4 days agoMerge branch 'master' into libretro libretro github/libretro
notaz [Sun, 17 Nov 2024 02:53:44 +0000 (04:53 +0200)]
Merge branch 'master' into libretro

4 days agotry another macro for arm vfp master github/master
notaz [Sun, 17 Nov 2024 02:48:14 +0000 (04:48 +0200)]
try another macro for arm vfp

4 days agoMerge branch 'master' into libretro
notaz [Sun, 17 Nov 2024 02:33:50 +0000 (04:33 +0200)]
Merge branch 'master' into libretro

4 days agodrc: restore scratch_buf_ptr
notaz [Sun, 17 Nov 2024 02:32:02 +0000 (04:32 +0200)]
drc: restore scratch_buf_ptr

me from 2013 outsmarted myself from 2024 with this one

4 days agoMerge branch 'master' into libretro
notaz [Sun, 17 Nov 2024 01:43:24 +0000 (03:43 +0200)]
Merge branch 'master' into libretro

4 days agodrc: eliminate a global from get_addr_ht
notaz [Sun, 17 Nov 2024 01:33:53 +0000 (03:33 +0200)]
drc: eliminate a global from get_addr_ht

4 days agogpu_unai: switch back to older DIV_MULTINV behavior
notaz [Sun, 17 Nov 2024 00:19:18 +0000 (02:19 +0200)]
gpu_unai: switch back to older DIV_MULTINV behavior

caused polygon "cracks" if compiled on gcc 10.2 (devkitARM release 55),
but seems ok on gcc 11.4 or gcc 14.2 (devkitARM release 65)

libretro/pcsx_rearmed#852

4 days agoarm: make sure RunFast is on
notaz [Sun, 17 Nov 2024 00:17:52 +0000 (02:17 +0200)]
arm: make sure RunFast is on

seems already to be the case on 3ds at least

4 days agogpulib: try to reduce global reload
notaz [Wed, 13 Nov 2024 23:20:47 +0000 (01:20 +0200)]
gpulib: try to reduce global reload

espacially bad on arm32 with -pie (which is on by default):
   text    data     bss     dec     hex filename
   9904       0    4444   14348    380c plugins/gpulib/gpu.o # before
   9128       0    4444   13572    3504 plugins/gpulib/gpu.o # after

6 days agogit subrepo pull (merge) deps/libchdr
notaz [Thu, 14 Nov 2024 23:40:02 +0000 (01:40 +0200)]
git subrepo pull (merge) deps/libchdr

subrepo:
  subdir:   "deps/libchdr"
  merged:   "b3974651"
upstream:
  origin:   "https://github.com/rtissera/libchdr"
  branch:   "master"
  commit:   "b3974651"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "57de7d6"

6 days agoMerge branch 'master' into libretro
notaz [Thu, 14 Nov 2024 23:39:08 +0000 (01:39 +0200)]
Merge branch 'master' into libretro

6 days agoupdate libchdr
notaz [Thu, 14 Nov 2024 23:37:37 +0000 (01:37 +0200)]
update libchdr

6 days agoavoid -Wno-format in general case
notaz [Thu, 14 Nov 2024 23:29:23 +0000 (01:29 +0200)]
avoid -Wno-format in general case

need this only for libchdr wanting to print int32_t on platforms
where int32_t is long int
libretro/pcsx_rearmed#851

10 days agogpu_unai: clean up ilace_mask
notaz [Sun, 10 Nov 2024 16:38:18 +0000 (18:38 +0200)]
gpu_unai: clean up ilace_mask

do_cmd_list() was no place for it.
It should also alternate odd/even lines but I leave that for later.

10 days agogpu_unai: drop pixel_skip
notaz [Sun, 10 Nov 2024 16:25:15 +0000 (18:25 +0200)]
gpu_unai: drop pixel_skip

it's not possible to enable it so no need to check it on each primitive

10 days agostandalone: unbreak .exe mode
notaz [Sun, 10 Nov 2024 15:54:28 +0000 (17:54 +0200)]
standalone: unbreak .exe mode

12 days agoMerge branch 'master' into libretro
notaz [Fri, 8 Nov 2024 23:13:04 +0000 (01:13 +0200)]
Merge branch 'master' into libretro

13 days agolibretro: don't make cycle_multiplier depend on device
notaz [Fri, 8 Nov 2024 00:41:35 +0000 (02:41 +0200)]
libretro: don't make cycle_multiplier depend on device

It causes different compatibility on different devices.
If the user wants to win some fps this way, they should just
change their config.

13 days agotiming hack +1
notaz [Fri, 8 Nov 2024 00:38:17 +0000 (02:38 +0200)]
timing hack +1

libretro/pcsx_rearmed#848

13 days ago3ds: allow compiling with just DEVKITPRO set
notaz [Thu, 7 Nov 2024 21:40:32 +0000 (23:40 +0200)]
3ds: allow compiling with just DEVKITPRO set

13 days agocdrom: fix wrong logic with cdr.Prev
notaz [Thu, 7 Nov 2024 00:23:41 +0000 (02:23 +0200)]
cdrom: fix wrong logic with cdr.Prev

13 days agofix too early notify
notaz [Wed, 6 Nov 2024 23:58:34 +0000 (01:58 +0200)]
fix too early notify

drc mem setup needs hw regs loaded

2 weeks ago3ds: no dynarec thread when 'auto'
notaz [Tue, 5 Nov 2024 00:46:05 +0000 (02:46 +0200)]
3ds: no dynarec thread when 'auto'

2 weeks agogpu_unai: some new asm
notaz [Tue, 5 Nov 2024 00:42:18 +0000 (02:42 +0200)]
gpu_unai: some new asm

2 weeks agogpu_unai: move the line loop into the driver func
notaz [Fri, 1 Nov 2024 00:33:01 +0000 (02:33 +0200)]
gpu_unai: move the line loop into the driver func

no need to repeat some of the setup on each line,
this also prepares for a full asm implementation of some drivers

2 weeks agogpulib: use mmap callbacks for platforms that have it
notaz [Fri, 1 Nov 2024 00:04:33 +0000 (02:04 +0200)]
gpulib: use mmap callbacks for platforms that have it

I think this was lost in some refactoring.
Also use minimum alignment of at least (x86) cache line size.

2 weeks agogpu_neon: mask before compare
notaz [Fri, 1 Nov 2024 00:02:55 +0000 (02:02 +0200)]
gpu_neon: mask before compare

2 weeks agocdriso: missing null check
notaz [Fri, 1 Nov 2024 00:00:34 +0000 (02:00 +0200)]
cdriso: missing null check

2 weeks agogpu_unai: minor tuning for 3ds
notaz [Mon, 28 Oct 2024 00:27:39 +0000 (02:27 +0200)]
gpu_unai: minor tuning for 3ds

not much of a difference, but at least avoids s_invTable

3 weeks agorestore .gitmodules after merge
notaz [Sun, 27 Oct 2024 22:36:08 +0000 (00:36 +0200)]
restore .gitmodules after merge

3 weeks agoMerge branch 'master' into libretro
notaz [Sun, 27 Oct 2024 22:01:49 +0000 (00:01 +0200)]
Merge branch 'master' into libretro

3 weeks agomerge from libretro
notaz [Sun, 27 Oct 2024 19:52:25 +0000 (21:52 +0200)]
merge from libretro

got tired of all the conflicts

3 weeks agogpu_unai: don't typedef le32_t as structs
notaz [Sun, 27 Oct 2024 00:21:18 +0000 (03:21 +0300)]
gpu_unai: don't typedef le32_t as structs

Experiments show it prevents autovectorization on some compilers,
so do it in asserts build only.

3 weeks agogpu_unai: simplify gpuClearImage
notaz [Sat, 26 Oct 2024 23:41:16 +0000 (02:41 +0300)]
gpu_unai: simplify gpuClearImage

no need for alignment checks as it's not possible on real psx

3 weeks agomerge gpu_unai with gpu_unai_old
notaz [Sat, 26 Oct 2024 22:32:40 +0000 (01:32 +0300)]
merge gpu_unai with gpu_unai_old

Can now switch between them during gameplay.
Specify GPU_UNAI_NO_OLD=1 to prevent compiling this in to save memory or
whatever. No big endian support.

3 weeks agotry to support older binutils
notaz [Sat, 26 Oct 2024 20:42:05 +0000 (23:42 +0300)]
try to support older binutils

EXTERN in a linker script doesn't work on ld 2.34, works on 2.43.1

3 weeks agotry to fix apple build
notaz [Sat, 26 Oct 2024 20:12:21 +0000 (23:12 +0300)]
try to fix apple build

3 weeks agoplatforms: try to fix build
notaz [Sat, 26 Oct 2024 19:57:57 +0000 (22:57 +0300)]
platforms: try to fix build

many lack weak symbols, apple has different pthread_setname_np...

3 weeks ago3ds: only invalidate icache on non-compiler core
notaz [Fri, 25 Oct 2024 19:25:09 +0000 (22:25 +0300)]
3ds: only invalidate icache on non-compiler core

seems enough, or is it?

3 weeks agogpu_unai: don't typedef le32_t as structs
notaz [Sun, 27 Oct 2024 00:21:18 +0000 (03:21 +0300)]
gpu_unai: don't typedef le32_t as structs

Experiments show it prevents autovectorization on some compilers,
so do it in asserts build only.

3 weeks agogpu_unai: simplify gpuClearImage
notaz [Sat, 26 Oct 2024 23:41:16 +0000 (02:41 +0300)]
gpu_unai: simplify gpuClearImage

no need for alignment checks as it's not possible on real psx

3 weeks agomerge gpu_unai with gpu_unai_old
notaz [Sat, 26 Oct 2024 22:32:40 +0000 (01:32 +0300)]
merge gpu_unai with gpu_unai_old

Can now switch between them during gameplay.
Specify GPU_UNAI_NO_OLD=1 to prevent compiling this in to save memory or
whatever. No big endian support.

3 weeks agotry to support older binutils
notaz [Sat, 26 Oct 2024 20:42:05 +0000 (23:42 +0300)]
try to support older binutils

EXTERN in a linker script doesn't work on ld 2.34, works on 2.43.1

3 weeks agotry to fix apple build
notaz [Sat, 26 Oct 2024 20:12:21 +0000 (23:12 +0300)]
try to fix apple build

3 weeks agoplatforms: try to fix build
notaz [Sat, 26 Oct 2024 19:57:57 +0000 (22:57 +0300)]
platforms: try to fix build

many lack weak symbols, apple has different pthread_setname_np...

3 weeks agofix switch build
notaz [Fri, 25 Oct 2024 23:09:45 +0000 (02:09 +0300)]
fix switch build

3 weeks agogpulib_thread: patch up some crashes
notaz [Fri, 25 Oct 2024 20:54:18 +0000 (23:54 +0300)]
gpulib_thread: patch up some crashes

thread create vs thread.queue race

3 weeks ago3ds: only invalidate icache on non-compiler core
notaz [Fri, 25 Oct 2024 19:25:09 +0000 (22:25 +0300)]
3ds: only invalidate icache on non-compiler core

seems enough, or is it?

3 weeks agomove more globals to psxRegs
notaz [Thu, 24 Oct 2024 23:29:53 +0000 (02:29 +0300)]
move more globals to psxRegs

more locality, less literal pools on ARM

3 weeks agodrc: drop pending_exception
notaz [Thu, 24 Oct 2024 21:14:40 +0000 (00:14 +0300)]
drc: drop pending_exception

just causing confusion

3 weeks agodrc: add another sync after running the interpreter
notaz [Thu, 24 Oct 2024 21:07:54 +0000 (00:07 +0300)]
drc: add another sync after running the interpreter

3 weeks agodrc: update the debug patches
notaz [Thu, 24 Oct 2024 21:18:33 +0000 (00:18 +0300)]
drc: update the debug patches

3 weeks ago3ds: drop pre-rosalina code
notaz [Wed, 23 Oct 2024 23:33:38 +0000 (02:33 +0300)]
3ds: drop pre-rosalina code

no reason not to run an up-to-date cfw

3 weeks ago3ds: use range clearing for small ranges
notaz [Wed, 23 Oct 2024 23:25:47 +0000 (02:25 +0300)]
3ds: use range clearing for small ranges

Seems to be wastefull to throw away the entire icache when just a few
new insns are compiled. Not that this gives any noticeable perf
difference though.

3 weeks agomove more globals to psxRegs
notaz [Thu, 24 Oct 2024 23:29:53 +0000 (02:29 +0300)]
move more globals to psxRegs

more locality, less literal pools on ARM

3 weeks agodrc: drop pending_exception
notaz [Thu, 24 Oct 2024 21:14:40 +0000 (00:14 +0300)]
drc: drop pending_exception

just causing confusion

3 weeks agodrc: add another sync after running the interpreter
notaz [Thu, 24 Oct 2024 21:07:54 +0000 (00:07 +0300)]
drc: add another sync after running the interpreter

3 weeks agodrc: update the debug patches
notaz [Thu, 24 Oct 2024 21:18:33 +0000 (00:18 +0300)]
drc: update the debug patches

3 weeks ago3ds: drop pre-rosalina code
notaz [Wed, 23 Oct 2024 23:33:38 +0000 (02:33 +0300)]
3ds: drop pre-rosalina code

no reason not to run an up-to-date cfw

3 weeks ago3ds: use range clearing for small ranges
notaz [Wed, 23 Oct 2024 23:25:47 +0000 (02:25 +0300)]
3ds: use range clearing for small ranges

Seems to be wastefull to throw away the entire icache when just a few
new insns are compiled. Not that this gives any noticeable perf
difference though.

3 weeks ago3ds: use arm-mem memcpy
notaz [Wed, 23 Oct 2024 23:23:27 +0000 (02:23 +0300)]
3ds: use arm-mem memcpy

newlib's memcpy isn't that great

3 weeks agogit subrepo clone https://github.com/bavison/arm-mem deps/arm-mem
notaz [Tue, 22 Oct 2024 21:16:39 +0000 (00:16 +0300)]
git subrepo clone https://github.com/bavison/arm-mem deps/arm-mem

subrepo:
  subdir:   "deps/arm-mem"
  merged:   "ee8ac1d5"
upstream:
  origin:   "https://github.com/bavison/arm-mem"
  branch:   "master"
  commit:   "ee8ac1d5"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "57de7d6"

3 weeks agomdec: compiler-friendlier clamp
notaz [Tue, 22 Oct 2024 20:53:38 +0000 (23:53 +0300)]
mdec: compiler-friendlier clamp

that whole thing begs to be rewritten but ohwell

3 weeks agostandalone: neon dithering should be on by default
notaz [Tue, 22 Oct 2024 18:44:27 +0000 (21:44 +0300)]
standalone: neon dithering should be on by default

on switch too

3 weeks agochd: override config
notaz [Tue, 22 Oct 2024 18:43:03 +0000 (21:43 +0300)]
chd: override config

relies on -Iinclude being before -Ideps/libchdr/include

3 weeks agogpulib: try to reduce flips
notaz [Tue, 22 Oct 2024 17:45:03 +0000 (20:45 +0300)]
gpulib: try to reduce flips

3 weeks agoarm: provide bgr888_to_rgb565 for v6
notaz [Tue, 22 Oct 2024 16:29:26 +0000 (19:29 +0300)]
arm: provide bgr888_to_rgb565 for v6

3 weeks ago3ds: update ctr_clear_cache
notaz [Sun, 20 Oct 2024 21:38:07 +0000 (00:38 +0300)]
3ds: update ctr_clear_cache

DMB looks insufficient before invalidate, also doesn't match what Linux
does, so adjust. Hopefully will solve weird rare crashes.

3 weeks agoupdate Android.mk
notaz [Sun, 20 Oct 2024 00:04:51 +0000 (03:04 +0300)]
update Android.mk

no idea if it compiles a working library though...

3 weeks agocdriso: try some different buffering
notaz [Sat, 19 Oct 2024 21:19:50 +0000 (00:19 +0300)]
cdriso: try some different buffering

3 weeks agocdrom: adjust the PhysCdPropagations hack
notaz [Wed, 16 Oct 2024 23:46:38 +0000 (02:46 +0300)]
cdrom: adjust the PhysCdPropagations hack

3 weeks ago3ds: try partial linking
notaz [Tue, 15 Oct 2024 22:45:51 +0000 (01:45 +0300)]
3ds: try partial linking

3 weeks ago3ds: adjust for newer toolchain
notaz [Tue, 15 Oct 2024 00:39:25 +0000 (03:39 +0300)]
3ds: adjust for newer toolchain

3 weeks agolibretro: report when required env vars are not set
notaz [Tue, 15 Oct 2024 00:29:43 +0000 (03:29 +0300)]
libretro: report when required env vars are not set

3 weeks agolibretro: show the actual fps, some extra stats
notaz [Tue, 15 Oct 2024 00:10:44 +0000 (03:10 +0300)]
libretro: show the actual fps, some extra stats

3 weeks ago3ds: customize thread creation
notaz [Mon, 14 Oct 2024 22:49:22 +0000 (01:49 +0300)]
3ds: customize thread creation

3 weeks agostandalone: enable the new threaded stuff
notaz [Sun, 13 Oct 2024 18:37:10 +0000 (21:37 +0300)]
standalone: enable the new threaded stuff

3 weeks agodrc: try compiling on another thread
notaz [Thu, 10 Oct 2024 23:34:16 +0000 (02:34 +0300)]
drc: try compiling on another thread

3 weeks agosync from master
notaz [Mon, 14 Oct 2024 23:21:48 +0000 (02:21 +0300)]
sync from master

4 weeks agomdec: compiler-friendlier clamp
notaz [Tue, 22 Oct 2024 20:53:38 +0000 (23:53 +0300)]
mdec: compiler-friendlier clamp

that whole thing begs to be rewritten but ohwell

4 weeks agostandalone: neon dithering should be on by default
notaz [Tue, 22 Oct 2024 18:44:27 +0000 (21:44 +0300)]
standalone: neon dithering should be on by default

on switch too

4 weeks agochd: override config
notaz [Tue, 22 Oct 2024 18:43:03 +0000 (21:43 +0300)]
chd: override config

relies on -Iinclude being before -Ideps/libchdr/include

4 weeks agogpulib: try to reduce flips
notaz [Tue, 22 Oct 2024 17:45:03 +0000 (20:45 +0300)]
gpulib: try to reduce flips

4 weeks agoarm: provide bgr888_to_rgb565 for v6
notaz [Tue, 22 Oct 2024 16:29:26 +0000 (19:29 +0300)]
arm: provide bgr888_to_rgb565 for v6

4 weeks ago3ds: update ctr_clear_cache
notaz [Sun, 20 Oct 2024 21:38:07 +0000 (00:38 +0300)]
3ds: update ctr_clear_cache

DMB looks insufficient before invalidate, also doesn't match what Linux
does, so adjust. Hopefully will solve some weird rare crashes.

4 weeks agoupdate Android.mk
notaz [Sun, 20 Oct 2024 00:04:51 +0000 (03:04 +0300)]
update Android.mk

no idea if it compiles a working library though...

4 weeks agocdriso: try some different buffering
notaz [Sat, 19 Oct 2024 21:19:50 +0000 (00:19 +0300)]
cdriso: try some different buffering

4 weeks agocdrom: adjust the PhysCdPropagations hack
notaz [Wed, 16 Oct 2024 23:46:38 +0000 (02:46 +0300)]
cdrom: adjust the PhysCdPropagations hack

4 weeks ago3ds: try partial linking
notaz [Tue, 15 Oct 2024 22:45:51 +0000 (01:45 +0300)]
3ds: try partial linking

4 weeks ago3ds: adjust for newer toolchain
notaz [Tue, 15 Oct 2024 00:39:25 +0000 (03:39 +0300)]
3ds: adjust for newer toolchain

4 weeks agolibretro: show the actual fps, some extra stats
notaz [Tue, 15 Oct 2024 00:10:44 +0000 (03:10 +0300)]
libretro: show the actual fps, some extra stats

4 weeks ago3ds: customize thread creation
notaz [Mon, 14 Oct 2024 22:49:22 +0000 (01:49 +0300)]
3ds: customize thread creation

4 weeks agostandalone: enable the new threaded stuff
notaz [Sun, 13 Oct 2024 18:37:10 +0000 (21:37 +0300)]
standalone: enable the new threaded stuff

4 weeks agodrc: try compiling on another thread
notaz [Thu, 10 Oct 2024 23:34:16 +0000 (02:34 +0300)]
drc: try compiling on another thread

4 weeks agotvos: properly set min supported version
Eric Warmenhoven [Thu, 17 Oct 2024 03:48:52 +0000 (23:48 -0400)]
tvos: properly set min supported version

6 weeks agoenable lightrec
notaz [Mon, 7 Oct 2024 23:46:33 +0000 (02:46 +0300)]
enable lightrec

6 weeks agodeal with some platform-specific warnings
notaz [Sat, 5 Oct 2024 23:56:57 +0000 (02:56 +0300)]
deal with some platform-specific warnings

6 weeks agonew async cdrom + cdrom cleanup
notaz [Wed, 2 Oct 2024 23:56:07 +0000 (02:56 +0300)]
new async cdrom + cdrom cleanup

Should've split this really, but that's lots of extra work...
Beware of breakage, but please report bugs.

6 weeks agodetect bad SysMessage format
notaz [Fri, 4 Oct 2024 23:07:42 +0000 (02:07 +0300)]
detect bad SysMessage format

6 weeks agoadd dedicated mmap functions for libnx
notaz [Tue, 1 Oct 2024 16:43:13 +0000 (19:43 +0300)]
add dedicated mmap functions for libnx

the previous code would call svcUnmapPhysicalMemory() on mem possibly
allocated by aligned_alloc() which didn't look right