pcsx_rearmed.git
7 months agocdrom: adjust timing
notaz [Sat, 14 Oct 2023 21:48:20 +0000 (00:48 +0300)]
cdrom: adjust timing

notaz/pcsx_rearmed#317

7 months agoupdate vibration handling
notaz [Sat, 14 Oct 2023 20:42:11 +0000 (23:42 +0300)]
update vibration handling

following the nocash description
notaz/pcsx_rearmed#314

7 months agospu: implement irq on dma
notaz [Sat, 14 Oct 2023 16:18:01 +0000 (19:18 +0300)]
spu: implement irq on dma

notaz/pcsx_rearmed#295

7 months agoeliminate event code duplication
notaz [Fri, 13 Oct 2023 20:19:24 +0000 (23:19 +0300)]
eliminate event code duplication

7 months agobigendian again
notaz [Fri, 13 Oct 2023 15:56:41 +0000 (18:56 +0300)]
bigendian again

libretro/pcsx_rearmed#777

7 months agopatch up some clang/apple issues
notaz [Thu, 12 Oct 2023 22:15:13 +0000 (01:15 +0300)]
patch up some clang/apple issues

7 months agoOptional lightgun crosshairs + add "Konami Gun" device
StormedBubbles [Tue, 30 May 2023 20:30:16 +0000 (16:30 -0400)]
Optional lightgun crosshairs + add "Konami Gun" device

7 months agocdrom: adjust pause behavior
notaz [Wed, 11 Oct 2023 22:38:04 +0000 (01:38 +0300)]
cdrom: adjust pause behavior

follows mednafen now
notaz/pcsx_rearmed#288

7 months agocdrom: adjust the resume timing hack
notaz [Wed, 11 Oct 2023 22:36:37 +0000 (01:36 +0300)]
cdrom: adjust the resume timing hack

otherwise some load times become excessive, like in ff7

7 months agolightrec: handle a case of ignored MAP_FIXED_NOREPLACE
notaz [Wed, 11 Oct 2023 18:22:17 +0000 (21:22 +0300)]
lightrec: handle a case of ignored MAP_FIXED_NOREPLACE

7 months agounbreak some old savestates
notaz [Tue, 10 Oct 2023 23:14:08 +0000 (02:14 +0300)]
unbreak some old savestates

I have too many of them

7 months agospu: try keyoff ignore
notaz [Tue, 10 Oct 2023 23:11:51 +0000 (02:11 +0300)]
spu: try keyoff ignore

unclear if that's what's supposed to happen
notaz/pcsx_rearmed#315

7 months agospu: rearrange struct to reduce padding
notaz [Tue, 10 Oct 2023 20:48:42 +0000 (23:48 +0300)]
spu: rearrange struct to reduce padding

7 months agoadd a nasty hack for gpu busy timing
notaz [Mon, 9 Oct 2023 21:39:57 +0000 (00:39 +0300)]
add a nasty hack for gpu busy timing

with a hope to remove it someday
notaz/pcsx_rearmed#225

7 months agopsxbios: don't limit pointers to ram
notaz [Mon, 9 Oct 2023 18:10:37 +0000 (21:10 +0300)]
psxbios: don't limit pointers to ram

scratchpad is sometimes used

7 months agoprovide DISABLE_MEM_LUTS default
notaz [Mon, 9 Oct 2023 18:54:54 +0000 (21:54 +0300)]
provide DISABLE_MEM_LUTS default

7 months agoAdd compile-time option to drop psxMemRLUT, psxMemWLUT
Paul Cercueil [Fri, 6 Oct 2023 20:53:47 +0000 (22:53 +0200)]
Add compile-time option to drop psxMemRLUT, psxMemWLUT

Add compile-time option which, if enabled, will replace accesses to
psxMemRLUT and psxMemWLUT with a small inline function psxm().

The reasons behind this change are:

- These were some BIG LUTs. On 32-bit, they would account for 512 KiB of
  RAM. On 64-bit, they would account for 1 MiB of RAM. This sounds tiny
  by today's standards, but it still is huge for some of the platforms
  that PCSX supports.

- Computing the pointer isn't that resource-intensive. Still slower than
  reading from a LUT (as long as the LUT entry is in the cache, which it
  should be, as the few valid entries are grouped together), but I doubt
  that it slows down the interpreter by a lot.

- Even if it does slow down the interpreter a bit, it shouldn't be a
  huge deal, given that the interpreter isn't really used nowadays as
  the JITs support all the major CPU architectures, and the interpreter
  is used mostly for debugging purposes. Besides, the two JITs do not
  use these LUTs.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
7 months agogpu: a bit better idle bit handling
notaz [Sun, 8 Oct 2023 22:20:07 +0000 (01:20 +0300)]
gpu: a bit better idle bit handling

notaz/pcsx_rearmed#217

7 months agosetup spu r8 handlers
notaz [Sat, 7 Oct 2023 22:55:58 +0000 (01:55 +0300)]
setup spu r8 handlers

used by Xenogears, unknown what for

7 months agospu: make fmod work in threaded mode
notaz [Sat, 7 Oct 2023 22:43:25 +0000 (01:43 +0300)]
spu: make fmod work in threaded mode

having to do such work makes me want to drop this dreaded
threaded stuff altogether

7 months agospu: try to clean up the interpolation mess
notaz [Sat, 7 Oct 2023 19:56:09 +0000 (22:56 +0300)]
spu: try to clean up the interpolation mess

It's still full of magic offsets and constants,
but maybe not as much as before.

7 months agogpulib: forgot to mark fb dirty
notaz [Fri, 6 Oct 2023 22:01:44 +0000 (01:01 +0300)]
gpulib: forgot to mark fb dirty

7 months agospu: adjust fmod to match nocash description
notaz [Thu, 5 Oct 2023 22:12:50 +0000 (01:12 +0300)]
spu: adjust fmod to match nocash description

mednafen doesn't quite agree though, so this may need to be revisited

7 months agostandalone: load per-game config from cmd line too
notaz [Wed, 4 Oct 2023 21:54:29 +0000 (00:54 +0300)]
standalone: load per-game config from cmd line too

notaz/pcsx_rearmed#163

7 months agoMerge pull request #771 from pcercuei/update-lightrec-20231006
notaz [Sun, 8 Oct 2023 15:25:57 +0000 (18:25 +0300)]
Merge pull request #771 from pcercuei/update-lightrec-20231006

Update lightrec 20231006

7 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Fri, 6 Oct 2023 21:33:00 +0000 (23:33 +0200)]
git subrepo pull --force deps/lightrec

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

7 months agogit subrepo pull (merge) --force deps/lightning
Paul Cercueil [Fri, 6 Oct 2023 21:32:55 +0000 (23:32 +0200)]
git subrepo pull (merge) --force deps/lightning

subrepo:
  subdir:   "deps/lightning"
  merged:   "4d1ef4c372"
upstream:
  origin:   "https://github.com/pcercuei/gnu_lightning.git"
  branch:   "pcsx_rearmed"
  commit:   "4d1ef4c372"
git-subrepo:
  version:  "0.4.6"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "110b9eb"

7 months agodrc: avoid excessive recursion in hle mode
notaz [Wed, 4 Oct 2023 20:51:55 +0000 (23:51 +0300)]
drc: avoid excessive recursion in hle mode

7 months agogpulib: use mmap on linux like before
notaz [Sun, 1 Oct 2023 21:37:45 +0000 (00:37 +0300)]
gpulib: use mmap on linux like before

negativeExponent made it heap alloc as default in 12367ad02, why?

7 months agoadd a thp-based huge page alloc fallback
notaz [Sun, 1 Oct 2023 22:24:50 +0000 (01:24 +0300)]
add a thp-based huge page alloc fallback

7 months agopatch up some savestate issues
notaz [Sun, 1 Oct 2023 21:02:39 +0000 (00:02 +0300)]
patch up some savestate issues

exposed by RetroArch's run-ahead/rewind functionality

7 months agolightrec: must use MAP_FIXED_NOREPLACE
notaz [Sat, 30 Sep 2023 20:26:21 +0000 (23:26 +0300)]
lightrec: must use MAP_FIXED_NOREPLACE

otherwise it'll destroy existing mappings

notaz/pcsx_rearmed#109
CC @pcercuei

7 months agopsxbios: more careful cnf parsing
notaz [Sat, 30 Sep 2023 19:43:03 +0000 (22:43 +0300)]
psxbios: more careful cnf parsing

7 months agodrc: make hash table issues easier to debug
notaz [Sat, 30 Sep 2023 18:08:47 +0000 (21:08 +0300)]
drc: make hash table issues easier to debug

7 months agospu: try to improve timing
notaz [Wed, 27 Sep 2023 20:12:48 +0000 (23:12 +0300)]
spu: try to improve timing

notaz/pcsx_rearmed#305

7 months agorm leftover debug code
notaz [Tue, 26 Sep 2023 23:24:32 +0000 (02:24 +0300)]
rm leftover debug code

7 months agospu: avoid relying on signed overflow undefined behavior
notaz [Tue, 26 Sep 2023 22:20:27 +0000 (01:20 +0300)]
spu: avoid relying on signed overflow undefined behavior

didn't seem to cause any issue in practice, but who knows with
all the different compilers

7 months agoplugin_lib: fix a silly crash
notaz [Tue, 26 Sep 2023 22:09:51 +0000 (01:09 +0300)]
plugin_lib: fix a silly crash

8 months agoinput changes part4
notaz [Sun, 24 Sep 2023 20:02:12 +0000 (23:02 +0300)]
input changes part4

libretro/pcsx_rearmed#765

8 months agolog some build info
notaz [Sat, 23 Sep 2023 19:39:52 +0000 (22:39 +0300)]
log some build info

helpful for bug reports

8 months agopsxbios: experimental vsync HLE
notaz [Sat, 23 Sep 2023 19:00:13 +0000 (22:00 +0300)]
psxbios: experimental vsync HLE

unsure how useful this is

8 months agodrc: adjust ld_use_hazard
notaz [Sat, 23 Sep 2023 20:57:36 +0000 (23:57 +0300)]
drc: adjust ld_use_hazard

8 months agolog some info about bios and config
notaz [Thu, 21 Sep 2023 17:34:02 +0000 (20:34 +0300)]
log some info about bios and config

8 months agopsxbios: some more details
notaz [Wed, 20 Sep 2023 22:17:37 +0000 (01:17 +0300)]
psxbios: some more details

8 months agocdrom: some report mode details
notaz [Wed, 20 Sep 2023 19:49:40 +0000 (22:49 +0300)]
cdrom: some report mode details

trusting mednafen on this one
libretro/pcsx_rearmed#762

8 months agoinput changes part3
notaz [Tue, 19 Sep 2023 22:56:41 +0000 (01:56 +0300)]
input changes part3

notaz/pcsx_rearmed#309

8 months agoandroid again
notaz [Mon, 18 Sep 2023 23:37:01 +0000 (02:37 +0300)]
android again

8 months agopsxbios: allow custom api overrides
notaz [Mon, 18 Sep 2023 22:35:30 +0000 (01:35 +0300)]
psxbios: allow custom api overrides

BallBlazer Champions hooks custom heap funcs
notaz/pcsx_rearmed#307

8 months agopsxbios: maybe more accurate malloc
notaz [Mon, 18 Sep 2023 22:34:44 +0000 (01:34 +0300)]
psxbios: maybe more accurate malloc

8 months agolightrec: Emulate BREAK
Paul Cercueil [Mon, 18 Sep 2023 16:39:40 +0000 (18:39 +0200)]
lightrec: Emulate BREAK

Some games (F1 2000, maybe others) require BREAK to be emulated
properly.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
8 months agoattempt to improve guncon defaults
notaz [Fri, 15 Sep 2023 23:41:06 +0000 (02:41 +0300)]
attempt to improve guncon defaults

The previous change wrongly introduced resolution into the calculation
which is unneeded because input is not pixel coordinates.

8 months agocleanup the input mess, part2
notaz [Thu, 14 Sep 2023 22:18:13 +0000 (01:18 +0300)]
cleanup the input mess, part2

8 months agoyet more timing hacks
notaz [Wed, 13 Sep 2023 22:19:28 +0000 (01:19 +0300)]
yet more timing hacks

libretro/pcsx_rearmed#758

8 months agounai: Fix scalers doing endianness conversion
Paul Cercueil [Wed, 13 Sep 2023 09:23:16 +0000 (11:23 +0200)]
unai: Fix scalers doing endianness conversion

Both the VRAM and the downscale buffers are in little-endian format,
there's no need to do any endianness conversion.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
8 months agopsxbios: fix warnings
notaz [Wed, 13 Sep 2023 21:10:41 +0000 (00:10 +0300)]
psxbios: fix warnings

8 months agopsxbios: unbreak input
notaz [Wed, 13 Sep 2023 20:58:27 +0000 (23:58 +0300)]
psxbios: unbreak input

8 months agofix standalone build
notaz [Wed, 13 Sep 2023 20:19:54 +0000 (23:19 +0300)]
fix standalone build

8 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Tue, 12 Sep 2023 22:20:43 +0000 (00:20 +0200)]
git subrepo pull --force deps/lightrec

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

8 months agolibpcsxcore: Set unsafe flags after reset
Paul Cercueil [Tue, 12 Sep 2023 21:33:04 +0000 (23:33 +0200)]
libpcsxcore: Set unsafe flags after reset

Lightrec is only initialized once, when the emulator starts. We need to
set the unsafe flags after reset because the setting will be different
across games.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
8 months agothe usual android buildfix
notaz [Tue, 12 Sep 2023 22:38:26 +0000 (01:38 +0300)]
the usual android buildfix

8 months agotry to cleanup the mess in the input code
notaz [Tue, 12 Sep 2023 21:08:56 +0000 (00:08 +0300)]
try to cleanup the mess in the input code

8 months agodeal with lightrec warnings
notaz [Tue, 12 Sep 2023 21:10:13 +0000 (00:10 +0300)]
deal with lightrec warnings

they're just too annoying

8 months agoMerge pull request #757 from pcercuei/lightrec-hacks
notaz [Sun, 10 Sep 2023 22:53:16 +0000 (01:53 +0300)]
Merge pull request #757 from pcercuei/lightrec-hacks

libpcsxcore: Add database for Lightrec hacks

8 months agoadjust irq10 and rcnt for pal
notaz [Sun, 10 Sep 2023 20:26:54 +0000 (23:26 +0300)]
adjust irq10 and rcnt for pal

libretro/pcsx_rearmed#723

8 months agolibretro: allow unlimited cheat length
notaz [Sun, 10 Sep 2023 19:06:56 +0000 (22:06 +0300)]
libretro: allow unlimited cheat length

notaz/pcsx_rearmed#306

8 months agopsxinterpreter: log reserved insn once
notaz [Sun, 10 Sep 2023 19:03:19 +0000 (22:03 +0300)]
psxinterpreter: log reserved insn once

8 months agocdrom: add a hack for bad rips
notaz [Sun, 10 Sep 2023 15:18:26 +0000 (18:18 +0300)]
cdrom: add a hack for bad rips

The game gets track times using CdlGetTN/CdlGetTD, but the rip only
keeps the data track. The game then wants to play a track using a
hardcoded track number, reading out of range of the list it got before,
sending garbage to CDC with infinite retries.

notaz/pcsx_rearmed#302

8 months agolibpcsxcore: Add database for Lightrec hacks
Paul Cercueil [Sun, 10 Sep 2023 18:58:02 +0000 (20:58 +0200)]
libpcsxcore: Add database for Lightrec hacks

And add entries for the infamous Formula One games.

These games do tricks with the instruction cache that are hard to
emulate properly in an interpreter, and almost impossible in a dynamic
recompiler.

Funnily enough, emulating the CPU less accurately by only invalidating
cached code on DMA writes and never on CPU writes make these games work.

These hacks will also make Lightrec generate faster code, but they are
unsafe by nature, and that's why they are conditionally enabled.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
8 months agogpulib: handle vram copy in gpulib
notaz [Fri, 8 Sep 2023 21:39:34 +0000 (00:39 +0300)]
gpulib: handle vram copy in gpulib

use internal buffering according to mednafen
notaz/pcsx_rearmed#289

8 months agosome lightgun selection mechanism
notaz [Wed, 6 Sep 2023 20:47:23 +0000 (23:47 +0300)]
some lightgun selection mechanism

8 months agopsxbios: primitive chdir implementation
notaz [Tue, 5 Sep 2023 22:05:48 +0000 (01:05 +0300)]
psxbios: primitive chdir implementation

8 months agopsxbios: don't overwrite ra
notaz [Tue, 5 Sep 2023 19:03:32 +0000 (22:03 +0300)]
psxbios: don't overwrite ra

8 months agofix irq10 for the dynarec
notaz [Tue, 5 Sep 2023 18:07:01 +0000 (21:07 +0300)]
fix irq10 for the dynarec

libretro/pcsx_rearmed#723

8 months agogpulib: add some missed sync and flush
notaz [Mon, 4 Sep 2023 23:05:01 +0000 (02:05 +0300)]
gpulib: add some missed sync and flush

notaz/pcsx_rearmed#303

8 months agogpulib: new debug compile option for raw fb display
notaz [Mon, 4 Sep 2023 23:03:23 +0000 (02:03 +0300)]
gpulib: new debug compile option for raw fb display

8 months agopreliminary irq10 support
notaz [Mon, 4 Sep 2023 20:09:05 +0000 (23:09 +0300)]
preliminary irq10 support

libretro/pcsx_rearmed#723

8 months agolightrec: initial hle support
notaz [Sat, 2 Sep 2023 19:54:16 +0000 (22:54 +0300)]
lightrec: initial hle support

8 months agoMerge pull request #756 from pcercuei/update-lightrec-20230902
notaz [Sat, 2 Sep 2023 21:07:39 +0000 (00:07 +0300)]
Merge pull request #756 from pcercuei/update-lightrec-20230902

Update Lightrec 2023-09-02

8 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Sat, 2 Sep 2023 20:45:44 +0000 (22:45 +0200)]
git subrepo pull --force deps/lightrec

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

8 months agogpu_neon: more complicated overflow check
notaz [Thu, 31 Aug 2023 22:29:28 +0000 (01:29 +0300)]
gpu_neon: more complicated overflow check

8 months agopsxbios: rework firstfile/nextfile
notaz [Thu, 31 Aug 2023 20:50:09 +0000 (23:50 +0300)]
psxbios: rework firstfile/nextfile

8 months agogpu: handle wrapping somewhat
notaz [Thu, 31 Aug 2023 20:51:19 +0000 (23:51 +0300)]
gpu: handle wrapping somewhat

instead of crashing outright

8 months agofrontend: don't frameskip on fast forward
notaz [Thu, 31 Aug 2023 20:32:18 +0000 (23:32 +0300)]
frontend: don't frameskip on fast forward

It just glitches everything.
Standalone only, libretro does it's own thing.

8 months agofix arm32 build
notaz [Thu, 31 Aug 2023 00:13:17 +0000 (03:13 +0300)]
fix arm32 build

libretro/pcsx_rearmed#754

8 months agoMerge pull request #754 from pcercuei/unai-big-endian
notaz [Wed, 30 Aug 2023 21:09:33 +0000 (00:09 +0300)]
Merge pull request #754 from pcercuei/unai-big-endian

unai: Add support for big-endian

8 months agomake GPUopen consistent everywhere
notaz [Wed, 30 Aug 2023 20:30:39 +0000 (23:30 +0300)]
make GPUopen consistent everywhere

libretro/pcsx_rearmed#752

8 months agounai: Add support for big-endian
Paul Cercueil [Wed, 30 Aug 2023 14:36:56 +0000 (16:36 +0200)]
unai: Add support for big-endian

Fix VRAM and PacketBuffer accesses to always go through endianness
conversion. This should fix most of Unai on big-endian systems.

I think it is not 100% complete as RGB888 frames are still rendered in
the host's endian - but in my case the emulator (WiiSX) expects a host
endian format for RGB888 so it still works.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
8 months agopsxbios: implement get/setconf
notaz [Tue, 29 Aug 2023 21:43:15 +0000 (00:43 +0300)]
psxbios: implement get/setconf

8 months agoplatforms: enable emscripten
notaz [Tue, 29 Aug 2023 19:56:21 +0000 (22:56 +0300)]
platforms: enable emscripten

8 months agotry to unbreak bigendian
notaz [Tue, 29 Aug 2023 00:28:40 +0000 (03:28 +0300)]
try to unbreak bigendian

always struggling with it
libretro/pcsx_rearmed#753

8 months agofix a minor warning
notaz [Mon, 28 Aug 2023 23:10:22 +0000 (02:10 +0300)]
fix a minor warning

8 months agoMerge pull request #752 from Namaneo/fix_emscripten
notaz [Mon, 28 Aug 2023 23:06:11 +0000 (02:06 +0300)]
Merge pull request #752 from Namaneo/fix_emscripten

Fix emscripten build

8 months agosome missing error handling
notaz [Mon, 28 Aug 2023 20:55:01 +0000 (23:55 +0300)]
some missing error handling

pointed out by gcc analyzer

8 months agopsxbios: assorted changes
notaz [Mon, 28 Aug 2023 20:27:57 +0000 (23:27 +0300)]
psxbios: assorted changes

fixes of more bugs, I'm not sure

8 months agoFix emscripten build
Julien Loir [Mon, 28 Aug 2023 20:46:34 +0000 (22:46 +0200)]
Fix emscripten build

9 months agopsxbios: fix wrong regs in syscall handler
notaz [Sun, 27 Aug 2023 20:22:53 +0000 (23:22 +0300)]
psxbios: fix wrong regs in syscall handler

9 months agogpulib: don't corrupt memory on garbage commands
notaz [Sun, 27 Aug 2023 20:21:36 +0000 (23:21 +0300)]
gpulib: don't corrupt memory on garbage commands

9 months agopsxbios: Load() flushes cache
notaz [Sun, 27 Aug 2023 15:23:57 +0000 (18:23 +0300)]
psxbios: Load() flushes cache

9 months agopsxbios: unbreak bcopy
notaz [Sun, 27 Aug 2023 14:39:54 +0000 (17:39 +0300)]
psxbios: unbreak bcopy

wasn't paying attention

9 months agodrc: allow to execute bios even in hle mode
notaz [Sat, 26 Aug 2023 23:04:46 +0000 (02:04 +0300)]
drc: allow to execute bios even in hle mode

some instructions are now placed there