pcsx_rearmed.git
4 weeks 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

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

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

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

libretro/pcsx_rearmed#860

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

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

5 weeks agogpu_neon: unbreak tests
notaz [Tue, 24 Dec 2024 17:57:57 +0000 (19:57 +0200)]
gpu_neon: unbreak tests

5 weeks agocdrom: yet another timing hack
notaz [Mon, 23 Dec 2024 12:21:47 +0000 (14:21 +0200)]
cdrom: yet another timing hack

libretro/pcsx_rearmed#858

5 weeks agocdrom: some cleanup
notaz [Mon, 23 Dec 2024 12:21:16 +0000 (14:21 +0200)]
cdrom: some cleanup

6 weeks agogpu: some timing improvements
notaz [Thu, 19 Dec 2024 23:04:28 +0000 (01:04 +0200)]
gpu: some timing improvements

libretro/pcsx_rearmed#857
notaz/pcsx_rearmed#217

6 weeks agogpulib: unbreak debug logs
notaz [Thu, 19 Dec 2024 00:23:00 +0000 (02:23 +0200)]
gpulib: unbreak debug logs

6 weeks agovita: disable drc thread
notaz [Wed, 18 Dec 2024 23:18:26 +0000 (01:18 +0200)]
vita: disable drc thread

tc writes from a thread cause data abort, and sceKernelOpenVMDomain()
returns 80010058 which https://wiki.henkaku.xyz/vita/SceSblSsMgr mentions
as SCE_ERROR_ERRNO_ENOSYS, aka "Invalid system call number"?

6 weeks agovita: another try
notaz [Wed, 18 Dec 2024 21:47:00 +0000 (23:47 +0200)]
vita: another try

maybe the last
libretro/pcsx_rearmed#856

6 weeks agodrc: allow address 0 in thread mode
notaz [Tue, 17 Dec 2024 23:28:49 +0000 (01:28 +0200)]
drc: allow address 0 in thread mode

Otherwise the compile thread would spin endlessly.
Noticed it when another bug caused exec at address 0.

6 weeks agopsxinterpreter: avoid excessive icache clearing
notaz [Tue, 17 Dec 2024 23:28:11 +0000 (01:28 +0200)]
psxinterpreter: avoid excessive icache clearing

6 weeks agodrc: avoid mov pc
notaz [Tue, 17 Dec 2024 19:36:52 +0000 (21:36 +0200)]
drc: avoid mov pc

DDI0406 A4.1.1 "Changing between Thumb state and ARM state" recommends
against mov pc, and recent compilers completely avoid it too.

6 weeks agovita: yet another try to fix crashes
notaz [Tue, 17 Dec 2024 19:34:32 +0000 (21:34 +0200)]
vita: yet another try to fix crashes

libretro/pcsx_rearmed#856

6 weeks agodrc: another try to fix thread cache stuff
notaz [Tue, 17 Dec 2024 00:20:39 +0000 (02:20 +0200)]
drc: another try to fix thread cache stuff

libretro/pcsx_rearmed#856

6 weeks agomake: no line splitting
notaz [Mon, 16 Dec 2024 01:18:07 +0000 (03:18 +0200)]
make: no line splitting

won't work on libretro-build-libnx-devkitpro , who tf knows why?

6 weeks agoattempt to fix github workflows
notaz [Mon, 16 Dec 2024 01:16:04 +0000 (03:16 +0200)]
attempt to fix github workflows

6 weeks agodb: another lightrec hack
notaz [Mon, 16 Dec 2024 01:10:00 +0000 (03:10 +0200)]
db: another lightrec hack

6 weeks agomdec: timing hacks
notaz [Sun, 15 Dec 2024 23:39:42 +0000 (01:39 +0200)]
mdec: timing hacks

libretro/pcsx_rearmed#846

6 weeks agovita: try to fix alloc
notaz [Sun, 15 Dec 2024 22:35:53 +0000 (00:35 +0200)]
vita: try to fix alloc

libretro/pcsx_rearmed#856

6 weeks agovita: cleanup
notaz [Sun, 15 Dec 2024 21:28:39 +0000 (23:28 +0200)]
vita: cleanup

6 weeks agolibretro: drop remnants of _async_cd
notaz [Sun, 15 Dec 2024 20:45:44 +0000 (22:45 +0200)]
libretro: drop remnants of _async_cd

there is pcsx_rearmed_cd_readahead now

7 weeks agogpu: allow to force-enable dithering
notaz [Mon, 9 Dec 2024 00:17:13 +0000 (02:17 +0200)]
gpu: allow to force-enable dithering

libretro/pcsx_rearmed#853

7 weeks agofix build
notaz [Sun, 8 Dec 2024 23:10:52 +0000 (01:10 +0200)]
fix build

libretro/pcsx_rearmed#855

7 weeks ago3ds: change psx vram location
notaz [Sat, 7 Dec 2024 00:48:28 +0000 (02:48 +0200)]
3ds: change psx vram location

should be better in theory but doesn't seem to matter in practice

8 weeks agoandroid build yet again...
notaz [Thu, 5 Dec 2024 00:52:33 +0000 (02:52 +0200)]
android build yet again...

8 weeks agodrc: disable thread for cache hack
notaz [Wed, 4 Dec 2024 22:25:40 +0000 (00:25 +0200)]
drc: disable thread for cache hack

can't mix drc with interpreter in this case
libretro/pcsx_rearmed#854

8 weeks agopartially revert f0d65622de
notaz [Wed, 4 Dec 2024 00:21:39 +0000 (02:21 +0200)]
partially revert f0d65622de

GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE was a bad idea, mixing multinv
with normal div still causes issues on newer compilers, probably due
to precision or float op ordering or something

8 weeks agogpu_unai: asm part 5
notaz [Mon, 2 Dec 2024 00:56:09 +0000 (02:56 +0200)]
gpu_unai: asm part 5

8 weeks agogpu_unai: asm part 4
notaz [Sun, 1 Dec 2024 16:14:18 +0000 (18:14 +0200)]
gpu_unai: asm part 4

8 weeks agogpu_unai: asm part 3
notaz [Wed, 27 Nov 2024 00:14:03 +0000 (02:14 +0200)]
gpu_unai: asm part 3

8 weeks agogpu_unai: asm part 2
notaz [Tue, 26 Nov 2024 00:26:59 +0000 (02:26 +0200)]
gpu_unai: asm part 2

2 months agogpu_unai: more asm
notaz [Sat, 23 Nov 2024 23:32:12 +0000 (01:32 +0200)]
gpu_unai: more asm

2 months agogpu_unai: avoid unneeded gouraud calculations
notaz [Wed, 20 Nov 2024 00:41:04 +0000 (02:41 +0200)]
gpu_unai: avoid unneeded gouraud calculations

2 months agorect quad optimizations
notaz [Mon, 18 Nov 2024 01:15:32 +0000 (03:15 +0200)]
rect quad optimizations

2 months agocspace_arm: slight improvements
notaz [Sun, 17 Nov 2024 22:04:49 +0000 (00:04 +0200)]
cspace_arm: slight improvements

...maybe

2 months agotry another macro for arm vfp
notaz [Sun, 17 Nov 2024 02:48:14 +0000 (04:48 +0200)]
try another macro for arm vfp

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

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

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

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

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

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

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

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

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

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

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

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

libretro/pcsx_rearmed#848

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

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

2 months 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 months 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 months agogpu_unai: some new asm
notaz [Tue, 5 Nov 2024 00:42:18 +0000 (02:42 +0200)]
gpu_unai: some new asm

2 months 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 months 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 months agogpu_neon: mask before compare
notaz [Fri, 1 Nov 2024 00:02:55 +0000 (02:02 +0200)]
gpu_neon: mask before compare

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

2 months 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 months 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 months 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 months 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 months 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 months 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 months agotry to fix apple build
notaz [Sat, 26 Oct 2024 20:12:21 +0000 (23:12 +0300)]
try to fix apple build

3 months 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 months 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 months 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 months agodrc: drop pending_exception
notaz [Thu, 24 Oct 2024 21:14:40 +0000 (00:14 +0300)]
drc: drop pending_exception

just causing confusion

3 months 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 months agodrc: update the debug patches
notaz [Thu, 24 Oct 2024 21:18:33 +0000 (00:18 +0300)]
drc: update the debug patches

3 months 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 months 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 months 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 months 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 months 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 months agogpulib: try to reduce flips
notaz [Tue, 22 Oct 2024 17:45:03 +0000 (20:45 +0300)]
gpulib: try to reduce flips

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

3 months 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 months agocdriso: try some different buffering
notaz [Sat, 19 Oct 2024 21:19:50 +0000 (00:19 +0300)]
cdriso: try some different buffering

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

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

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

3 months 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 months ago3ds: customize thread creation
notaz [Mon, 14 Oct 2024 22:49:22 +0000 (01:49 +0300)]
3ds: customize thread creation

3 months 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 months 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 months agoenable lightrec
notaz [Mon, 7 Oct 2024 23:46:33 +0000 (02:46 +0300)]
enable lightrec

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

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

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

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

3 months agotry to clean up various mmap func failure return value confusion
notaz [Tue, 1 Oct 2024 16:40:59 +0000 (19:40 +0300)]
try to clean up various mmap func failure return value confusion

such a mess

3 months agopsxmem: fix map retry breakage
notaz [Tue, 1 Oct 2024 16:36:25 +0000 (19:36 +0300)]
psxmem: fix map retry breakage

fixes 417b59ebc326fc753f8c881c24fc7aff975df7ea

3 months agodrc: less alarmist ram map message
notaz [Mon, 30 Sep 2024 20:23:48 +0000 (23:23 +0300)]
drc: less alarmist ram map message

To discourage opening bugs like libretro/pcsx_rearmed#717

Also a warning fix

3 months agonew 3ds_mmap, avoid useless retries
notaz [Mon, 30 Sep 2024 18:14:41 +0000 (21:14 +0300)]
new 3ds_mmap, avoid useless retries