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

3 months ago3ds: some random tuning
notaz [Mon, 30 Sep 2024 18:08:28 +0000 (21:08 +0300)]
3ds: some random tuning

saves some memory

3 months agolightrec: relax mem requirements so that asan works
notaz [Fri, 27 Sep 2024 21:03:42 +0000 (00:03 +0300)]
lightrec: relax mem requirements so that asan works

Seems to work anyway with suboptimal mappings, and MAP_FIXED_NOREPLACE
is unnecessary as the kernel will honour the address if it's free and
return something else if it's not.

3 months agosync from libretro branch
notaz [Mon, 7 Oct 2024 22:21:32 +0000 (01:21 +0300)]
sync from libretro branch

To ease maintenance burden. Includes lightrec.
Only gpulib_thread_if is left out, unsure what to do with it.

4 months agolibretro: improve retro_memory_map
notaz [Tue, 3 Sep 2024 21:19:25 +0000 (00:19 +0300)]
libretro: improve retro_memory_map

libretro/pcsx_rearmed#845

4 months agolibretro: use shorter option names to fit narrow frontends
notaz [Tue, 3 Sep 2024 21:17:32 +0000 (00:17 +0300)]
libretro: use shorter option names to fit narrow frontends

5 months agogpu_neon: enable tex hack by default
notaz [Thu, 22 Aug 2024 21:09:55 +0000 (00:09 +0300)]
gpu_neon: enable tex hack by default

5 months agogpu_neon: rework enh. res. texturing hack
notaz [Tue, 20 Aug 2024 20:49:45 +0000 (23:49 +0300)]
gpu_neon: rework enh. res. texturing hack

libretro/pcsx_rearmed#841

5 months agocdriso: log main cd img size
notaz [Wed, 21 Aug 2024 21:38:45 +0000 (00:38 +0300)]
cdriso: log main cd img size

5 months agogpu_neon: fix wrong mask bit for fills
notaz [Fri, 16 Aug 2024 22:38:45 +0000 (01:38 +0300)]
gpu_neon: fix wrong mask bit for fills

Fixes notaz/pcsx_rearmed#344

5 months agogpulib: adjust masking
notaz [Fri, 16 Aug 2024 22:44:00 +0000 (01:44 +0300)]
gpulib: adjust masking

no idea if anything uses this, but tested on hw

5 months agoavoid double prints with bios+Config.PsxOut
notaz [Fri, 16 Aug 2024 00:05:46 +0000 (03:05 +0300)]
avoid double prints with bios+Config.PsxOut

6 months agocdrom: more hacks for more timing issues
notaz [Wed, 24 Jul 2024 23:34:23 +0000 (02:34 +0300)]
cdrom: more hacks for more timing issues

libretro/pcsx_rearmed#840

7 months agogpu_neon: revive the old tests
notaz [Sat, 29 Jun 2024 23:23:25 +0000 (02:23 +0300)]
gpu_neon: revive the old tests

7 months agogpu_neon: fix sign extension
notaz [Sat, 29 Jun 2024 22:48:22 +0000 (01:48 +0300)]
gpu_neon: fix sign extension

unclear why it's added differently from sprites, might need to revisit
libretro/pcsx_rearmed#833

7 months agotry some overscan display option
notaz [Fri, 28 Jun 2024 22:08:41 +0000 (01:08 +0300)]
try some overscan display option

libretro/pcsx_rearmed#313

7 months agostandalone: some ppf loading
notaz [Fri, 28 Jun 2024 22:02:05 +0000 (01:02 +0300)]
standalone: some ppf loading

mostly for testing, like game.chd.ppf would load game.chd and apply
game.chd.ppf patch

7 months agoUpdate timing (override) hack for Power Rangers: Lightspeed Rescue (SuperrSonic)...
saulfabreg Wii VC Project [Thu, 27 Jun 2024 21:09:13 +0000 (16:09 -0500)]
Update timing (override) hack for Power Rangers: Lightspeed Rescue (SuperrSonic) (#341)

* Update timing (override) hack for Power Rangers: Lightspeed Rescue (SuperrSonic)

The game's jumping command does not work if the game FPS is over 30.

At 280, on level 3 has audio stutters. Needs more testing.

SuperrSonic found 310 ideal to maintain the emulation at full speed, at the cost of the game dropping more frames, this allowed jumping to always work and keep the sound stutter free, as it was tested the entire game this way.

Credit to SuperrSonic for this fix.

* update timing hack description for PRLR (SuperrSonic)

7 months agomore timing hacks: fix jump command on Power Rangers - Lightspeed Rescue
saulfabreg Wii VC Project [Sun, 16 Jun 2024 20:28:41 +0000 (15:28 -0500)]
more timing hacks: fix jump command on Power Rangers - Lightspeed Rescue

https://github.com/libretro/pcsx_rearmed/issues/837

8 months agospunull: Add missing callback and fix prototypes
Paul Cercueil [Thu, 30 May 2024 09:54:55 +0000 (11:54 +0200)]
spunull: Add missing callback and fix prototypes

- Add SPUregisterScheduleCb() which was missing
- Fix prototypes of some functions, which did not have the right number
  of parameters. This caused warnings at the linking phase when building
  PCSX with LTO.

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