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

23 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

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

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

libretro/pcsx_rearmed#754

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

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

libretro/pcsx_rearmed#752

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

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

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

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

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

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

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

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

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

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

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

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

wasn't paying attention

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

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

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

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

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

2 years 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>
2 years 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>
2 years 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>
2 years 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"

2 years 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"

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

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

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

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

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

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

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

2 years 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>
2 years agofrontend: accept more bios
notaz [Thu, 17 Aug 2023 21:59:35 +0000 (00:59 +0300)]
frontend: accept more bios

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

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

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

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

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

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

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

maybe done?

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

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

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

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

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

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

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

libretro/pcsx_rearmed#740

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

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

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

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

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

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

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

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

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

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

2 years 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?

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

2 years 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"

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

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

2 years 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>
2 years 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>
2 years 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"

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

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

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

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

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

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

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

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

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

2 years agodrc: update according to the interpreter (3)
notaz [Thu, 27 Jul 2023 00:09:34 +0000 (03:09 +0300)]
drc: update according to the interpreter (3)

2 years agodrc: update according to interpreter (2)
notaz [Tue, 25 Jul 2023 22:23:06 +0000 (01:23 +0300)]
drc: update according to interpreter (2)

2 years agodrc: optional address error exception support
notaz [Sun, 23 Jul 2023 22:28:07 +0000 (01:28 +0300)]
drc: optional address error exception support

2 years agodrc: update according to interpreter
notaz [Fri, 21 Jul 2023 20:33:10 +0000 (23:33 +0300)]
drc: update according to interpreter

much larger commit than I'd like but it's too much work to split it

2 years agoMerge pull request #738 from pcercuei/update-lightrec-20230727
notaz [Thu, 27 Jul 2023 16:52:06 +0000 (19:52 +0300)]
Merge pull request #738 from pcercuei/update-lightrec-20230727

Update to latest Lightrec 2023-07-27

2 years agoMerge pull request #739 from pcercuei/lightrec-memory-protection
notaz [Thu, 27 Jul 2023 16:50:33 +0000 (19:50 +0300)]
Merge pull request #739 from pcercuei/lightrec-memory-protection

lightrec: use mmap() for code buffer if possible

2 years agogit subrepo pull --force deps/lightrec
Paul Cercueil [Thu, 27 Jul 2023 10:11:31 +0000 (12:11 +0200)]
git subrepo pull --force deps/lightrec

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

2 years agolightrec: use mmap() for code buffer if possible
Paul Cercueil [Thu, 27 Jul 2023 09:32:58 +0000 (11:32 +0200)]
lightrec: use mmap() for code buffer if possible

When not using the custom memory map, the code buffer was simply
malloc'd. This only works if the memory returned has no protection,
which is not the case e.g. on Linux.

If mmap() is available, use it to allocate the code buffer, so that the
proper memory protection flags can be used.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agoMerge pull request #737 from pcercuei/always-use-code-buffer
notaz [Tue, 25 Jul 2023 20:43:13 +0000 (23:43 +0300)]
Merge pull request #737 from pcercuei/always-use-code-buffer

lightrec: Alloc code buffer with standard memory map

2 years agolightrec: Alloc code buffer with standard memory map
Paul Cercueil [Tue, 25 Jul 2023 17:58:44 +0000 (19:58 +0200)]
lightrec: Alloc code buffer with standard memory map

Provide Lightrec with a code buffer even when using a non-custom memory
map, as some platforms (NGC, Wii) cannot emit code outside a provided
code buffer.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agomake: enable lightrec for psl1ght too
notaz [Tue, 25 Jul 2023 17:43:59 +0000 (20:43 +0300)]
make: enable lightrec for psl1ght too

no idea if anything works though (untested)

2 years agoMerge pull request #736 from pcercuei/add-sysconf
notaz [Tue, 25 Jul 2023 17:39:01 +0000 (20:39 +0300)]
Merge pull request #736 from pcercuei/add-sysconf

make: Enable Lightrec for GC/Wii

2 years agomake: Enable Lightrec for GC/Wii
Paul Cercueil [Tue, 25 Jul 2023 10:27:50 +0000 (12:27 +0200)]
make: Enable Lightrec for GC/Wii

Add the missing sysconf() function so that the GC/Wii builds will link
properly against Lightrec and GNU Lightning.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2 years agomake: try to fix osx still not detecting things
notaz [Mon, 24 Jul 2023 22:33:46 +0000 (01:33 +0300)]
make: try to fix osx still not detecting things

2 years agotry again again
notaz [Mon, 24 Jul 2023 22:23:56 +0000 (01:23 +0300)]
try again again

2 years agomake: get rid of NO_OS NO_SOCKET
notaz [Mon, 24 Jul 2023 22:22:02 +0000 (01:22 +0300)]
make: get rid of NO_OS NO_SOCKET

no longer used

2 years agomake: try to get osx build to detect stuff
notaz [Mon, 24 Jul 2023 22:19:13 +0000 (01:19 +0300)]
make: try to get osx build to detect stuff

... the way I want, like osx-arm64 is actually arm

2 years agotry again
notaz [Mon, 24 Jul 2023 21:49:51 +0000 (00:49 +0300)]
try again

I wish I could test this before commiting

2 years agomake: select the compiler earlier for detection to work
notaz [Mon, 24 Jul 2023 21:43:15 +0000 (00:43 +0300)]
make: select the compiler earlier for detection to work

and disable ppc macos for now

2 years agoMerge pull request #735 from pcercuei/fix-win32-build-part-2
notaz [Mon, 24 Jul 2023 21:27:15 +0000 (00:27 +0300)]
Merge pull request #735 from pcercuei/fix-win32-build-part-2

Fix Win32 build, part 2

2 years agoFix Win32 build, part 2
Paul Cercueil [Mon, 24 Jul 2023 21:14:36 +0000 (23:14 +0200)]
Fix Win32 build, part 2

GNU Lightning does use the 'HAVE_MMAP' macro, so it needs to be defined
when compiling it; otherwise Lightning will fail on an assert() at
runtime.

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