pcsx_rearmed.git
21 months agothe usual android buildfix
notaz [Tue, 12 Sep 2023 22:38:26 +0000 (01:38 +0300)]
the usual android buildfix

21 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

21 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

21 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

21 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

21 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

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

21 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

21 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>
21 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

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

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

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

21 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

21 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

21 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

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

libretro/pcsx_rearmed#723

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

21 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

21 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"

22 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

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

22 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

22 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.

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

libretro/pcsx_rearmed#754

22 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

22 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

22 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>
22 months agopsxbios: implement get/setconf
notaz [Tue, 29 Aug 2023 21:43:15 +0000 (00:43 +0300)]
psxbios: implement get/setconf

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

22 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

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

22 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

22 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

22 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

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

22 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

22 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

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

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

wasn't paying attention

22 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

22 months agopsxbios: add missing clearing for copy related functions
notaz [Sat, 26 Aug 2023 22:08:45 +0000 (01:08 +0300)]
psxbios: add missing clearing for copy related functions

notaz/pcsx_rearmed#300

22 months agodrc: adjust debugging code to work with hle bios
notaz [Sat, 26 Aug 2023 22:07:19 +0000 (01:07 +0300)]
drc: adjust debugging code to work with hle bios

22 months agoreduce some code duplication
notaz [Sat, 26 Aug 2023 22:01:46 +0000 (01:01 +0300)]
reduce some code duplication

22 months agoMerge pull request #750 from pcercuei/lightrec-update-20230826
notaz [Sat, 26 Aug 2023 15:40:42 +0000 (18:40 +0300)]
Merge pull request #750 from pcercuei/lightrec-update-20230826

Lightrec update 20230826

22 months agoUse fractional cycles within Lightrec
Paul Cercueil [Fri, 25 Aug 2023 13:18:00 +0000 (15:18 +0200)]
Use fractional cycles within Lightrec

Instead of computing cycles back and forth between PCSX and Lightrec,
compute and use a cycles-per-opcode value in 22.10 format and use that.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
22 months agolightrec: Update lightrec.h
Paul Cercueil [Sat, 26 Aug 2023 08:41:37 +0000 (10:41 +0200)]
lightrec: Update lightrec.h

Update lightrec.h to reflect upstream changes.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
22 months agolightning: Update lightning.h
Paul Cercueil [Thu, 24 Aug 2023 16:41:34 +0000 (18:41 +0200)]
lightning: Update lightning.h

Update lightning.h to reflect upstream changes.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
22 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Sat, 26 Aug 2023 08:38:47 +0000 (10:38 +0200)]
git subrepo pull --force deps/lightrec

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

22 months agogit subrepo pull (merge) --force deps/lightning
Paul Cercueil [Sat, 26 Aug 2023 08:38:41 +0000 (10:38 +0200)]
git subrepo pull (merge) --force deps/lightning

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

22 months agospu: adjust irqs again
notaz [Fri, 25 Aug 2023 20:32:14 +0000 (23:32 +0300)]
spu: adjust irqs again

this begs for hw testing, but I don't have the setup right now...

libretro/pcsx_rearmed#746

22 months agospu: rm bunch of unused functions
notaz [Fri, 25 Aug 2023 19:39:19 +0000 (22:39 +0300)]
spu: rm bunch of unused functions

22 months agofix build
notaz [Thu, 24 Aug 2023 23:19:01 +0000 (02:19 +0300)]
fix build

22 months agogpu_neon: some hack to enhanced mode
notaz [Thu, 24 Aug 2023 21:06:31 +0000 (00:06 +0300)]
gpu_neon: some hack to enhanced mode

22 months agogpu_neon: don't crash on large primitives in enhancement mode
notaz [Thu, 24 Aug 2023 20:07:56 +0000 (23:07 +0300)]
gpu_neon: don't crash on large primitives in enhancement mode

22 months agogpu_neon: rework buffer selection
notaz [Sun, 20 Aug 2023 19:38:03 +0000 (22:38 +0300)]
gpu_neon: rework buffer selection

to fix MGS codec and maybe more

22 months agoMerge pull request #749 from pcercuei/lightrec-allow-mem-override
notaz [Thu, 24 Aug 2023 21:17:40 +0000 (00:17 +0300)]
Merge pull request #749 from pcercuei/lightrec-allow-mem-override

lightrec: Allow to override code buffer size

22 months agolightrec: Allow to override code buffer size
Paul Cercueil [Thu, 24 Aug 2023 20:08:04 +0000 (22:08 +0200)]
lightrec: Allow to override code buffer size

Allow the CODE_BUFFER_SIZE macro to be overriden.

This is helpful on platforms that don't want a 8 MiB buffer.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
22 months agofrontend: accept more bios
notaz [Thu, 17 Aug 2023 21:59:35 +0000 (00:59 +0300)]
frontend: accept more bios

22 months agotry to emulate borders properly
notaz [Wed, 16 Aug 2023 22:55:11 +0000 (01:55 +0300)]
try to emulate borders properly

22 months agomore timing hacks
notaz [Sat, 19 Aug 2023 21:04:59 +0000 (00:04 +0300)]
more timing hacks

22 months agopsxbios: remove some globals
notaz [Thu, 17 Aug 2023 19:49:26 +0000 (22:49 +0300)]
psxbios: remove some globals

22 months agogpu_neon: change enhancement_buf selection
notaz [Wed, 16 Aug 2023 23:38:32 +0000 (02:38 +0300)]
gpu_neon: change enhancement_buf selection

Not sure what was the idea there but it caused rightmost column of
things simetimes to not get rendered, like in Alundra 2 loading
screens and FMVs.

22 months agocdrom: more timing hacks
notaz [Wed, 16 Aug 2023 20:24:28 +0000 (23:24 +0300)]
cdrom: more timing hacks

22 months agospu: add forgotten prevflags checking
notaz [Wed, 16 Aug 2023 19:59:42 +0000 (22:59 +0300)]
spu: add forgotten prevflags checking

forgot in 3113a160828f9353715e4b8cc1041d9c86162df2

22 months agopsxbios: more pad stuff
notaz [Tue, 15 Aug 2023 20:06:33 +0000 (23:06 +0300)]
psxbios: more pad stuff

maybe done?

22 months agospu: clear on init
notaz [Mon, 14 Aug 2023 21:16:22 +0000 (00:16 +0300)]
spu: clear on init

Otherwise some residual stuff seems to carry over between games,
especially in hle mode.

22 months agospu: implement volume regs somewhat
notaz [Tue, 15 Aug 2023 22:01:37 +0000 (01:01 +0300)]
spu: implement volume regs somewhat

crash2 seems to read them, unclear what for

22 months agopsxbios: some assorted changes
notaz [Mon, 14 Aug 2023 20:49:23 +0000 (23:49 +0300)]
psxbios: some assorted changes

22 months agodma: should clear both start bits
notaz [Mon, 14 Aug 2023 20:47:07 +0000 (23:47 +0300)]
dma: should clear both start bits

at least that's how I understand nocash

22 months agopsxbios: try to improve initial boot state
notaz [Mon, 14 Aug 2023 20:44:25 +0000 (23:44 +0300)]
psxbios: try to improve initial boot state

22 months agopsxbios: implement some pad reading details
notaz [Sun, 13 Aug 2023 22:36:03 +0000 (01:36 +0300)]
psxbios: implement some pad reading details

22 months agodma: clean up
notaz [Sun, 13 Aug 2023 16:15:31 +0000 (19:15 +0300)]
dma: clean up

libretro/pcsx_rearmed#740

22 months agopsxbios: rewrite event handling
notaz [Sat, 12 Aug 2023 22:59:20 +0000 (01:59 +0300)]
psxbios: rewrite event handling

no more mapping to some internal array

22 months agolog unhandled io more clearly
notaz [Sat, 12 Aug 2023 16:05:35 +0000 (19:05 +0300)]
log unhandled io more clearly

22 months agoemulate pending irq bit somewhat
notaz [Sat, 12 Aug 2023 16:01:22 +0000 (19:01 +0300)]
emulate pending irq bit somewhat

22 months agotry to fix reset in HLE mode
notaz [Thu, 10 Aug 2023 23:10:55 +0000 (02:10 +0300)]
try to fix reset in HLE mode

22 months agopsxbios: handle dynamic CB alloc
notaz [Thu, 10 Aug 2023 23:08:29 +0000 (02:08 +0300)]
psxbios: handle dynamic CB alloc

SYSTEM.CNF TCB/EVENT settings are used now

22 months agomisc: accept a path without slash
notaz [Thu, 10 Aug 2023 23:01:11 +0000 (02:01 +0300)]
misc: accept a path without slash

22 months agodrc: fix reg alloc for div
notaz [Thu, 10 Aug 2023 17:53:40 +0000 (20:53 +0300)]
drc: fix reg alloc for div

libretro/pcsx_rearmed#745

22 months agospu: some cdda/xa reverb support
notaz [Wed, 9 Aug 2023 23:29:53 +0000 (02:29 +0300)]
spu: some cdda/xa reverb support

not for threaded spu as it'd race with writes and I don't want to use a
mutex or do extra copying there

libretro/pcsx_rearmed#733

22 months agopsxbios: completely rework exception handling
notaz [Tue, 8 Aug 2023 22:51:46 +0000 (01:51 +0300)]
psxbios: completely rework exception handling

should be much closer to the real thing

22 months agotry to fix apple build
notaz [Sun, 6 Aug 2023 18:24:58 +0000 (21:24 +0300)]
try to fix apple build

22 months agolibretro: add (psx) exe and iso to valid_extensions
notaz [Sun, 6 Aug 2023 18:01:09 +0000 (21:01 +0300)]
libretro: add (psx) exe and iso to valid_extensions

doesn't seem to work though?

22 months agolibretro: understand psx exes
notaz [Sun, 6 Aug 2023 17:46:16 +0000 (20:46 +0300)]
libretro: understand psx exes

22 months agoupdate libchdr
notaz [Sun, 6 Aug 2023 16:55:37 +0000 (19:55 +0300)]
update libchdr

git subrepo pull (merge) --force deps/libchdr

subrepo:
  subdir:   "deps/libchdr"
  merged:   "54bfb871"
upstream:
  origin:   "https://github.com/rtissera/libchdr"
  branch:   "master"
  commit:   "54bfb871"
git-subrepo:
  version:  "0.4.6"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "110b9eb"

22 months agocdriso: clean up mode1 detection
notaz [Sun, 6 Aug 2023 16:22:42 +0000 (19:22 +0300)]
cdriso: clean up mode1 detection

libretro/pcsx_rearmed#743

22 months agoMerge pull request #742 from pcercuei/update-lightrec-20230804
notaz [Fri, 4 Aug 2023 22:08:26 +0000 (01:08 +0300)]
Merge pull request #742 from pcercuei/update-lightrec-20230804

Update lightrec 20230804

22 months agolightrec: Add mirror to parallel port
Paul Cercueil [Fri, 4 Aug 2023 21:31:51 +0000 (23:31 +0200)]
lightrec: Add mirror to parallel port

The PS2/PS3 BIOS will try to access the parallel port through a mirror
at 0x1fa00000.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
22 months agolightrec: Increase size of hw registers area
Paul Cercueil [Fri, 4 Aug 2023 15:24:07 +0000 (17:24 +0200)]
lightrec: Increase size of hw registers area

Increase it from 0x2000 bytes (the real area size on a PS1) to 0x8000
bytes to support the BIOS extracted from the PS3 firmware.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
22 months agogit subrepo pull --force deps/lightrec
Paul Cercueil [Fri, 4 Aug 2023 21:30:38 +0000 (23:30 +0200)]
git subrepo pull --force deps/lightrec

subrepo:
  subdir:   "deps/lightrec"
  merged:   "15216f3a2e"
upstream:
  origin:   "https://github.com/pcercuei/lightrec.git"
  branch:   "master"
  commit:   "15216f3a2e"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

22 months agolibretro: accept ps1_rom.bin (and similar) bios too
notaz [Thu, 3 Aug 2023 21:25:21 +0000 (00:25 +0300)]
libretro: accept ps1_rom.bin (and similar) bios too

22 months agodrc: disable some weird code
notaz [Thu, 3 Aug 2023 21:22:45 +0000 (00:22 +0300)]
drc: disable some weird code

22 months agodrc: adjust load/store checks
notaz [Wed, 2 Aug 2023 22:30:56 +0000 (01:30 +0300)]
drc: adjust load/store checks

22 months agodrc: adjust alignment checking
notaz [Wed, 2 Aug 2023 22:28:27 +0000 (01:28 +0300)]
drc: adjust alignment checking

22 months agodrc: adjust MAXBLOCK
notaz [Wed, 2 Aug 2023 22:24:14 +0000 (01:24 +0300)]
drc: adjust MAXBLOCK

it was stopping at MAXBLOCK/2 in most cases anyway, so adjust
the arrays for the size that's actually used

22 months agoarm64: use ldp/stp more
notaz [Wed, 2 Aug 2023 22:22:58 +0000 (01:22 +0300)]
arm64: use ldp/stp more

22 months agodrc: some cleanup
notaz [Wed, 2 Aug 2023 22:20:45 +0000 (01:20 +0300)]
drc: some cleanup

22 months agodma: don't copy out of range
notaz [Sat, 29 Jul 2023 23:31:02 +0000 (02:31 +0300)]
dma: don't copy out of range

it should wrap, but that's not practical so just limit for now
libretro/pcsx_rearmed#740

22 months agodrc: try to prevent wrong eviction
notaz [Sat, 29 Jul 2023 21:08:55 +0000 (00:08 +0300)]
drc: try to prevent wrong eviction