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

14 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

14 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

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

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

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

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

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

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

15 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

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

maybe done?

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

15 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

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

15 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

15 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

15 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

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

libretro/pcsx_rearmed#740

15 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

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

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

15 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

15 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

15 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

15 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

15 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

15 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

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

15 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?

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

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

15 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

15 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

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

15 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

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

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

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

15 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

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

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

15 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

15 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

15 months 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)

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

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

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

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

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

15 months 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"

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

15 months 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>
15 months 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)

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

15 months 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>
16 months 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

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

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

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

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

I wish I could test this before commiting

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

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

16 months 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>
16 months agoplatforms: try some new big endian platforms
notaz [Mon, 24 Jul 2023 21:03:28 +0000 (00:03 +0300)]
platforms: try some new big endian platforms

Big endian reportedly works thanks to Paul Cercueil's work.
Let's see if it builds in CI.

16 months agotry to fix win32 build
notaz [Mon, 24 Jul 2023 20:20:12 +0000 (23:20 +0300)]
try to fix win32 build

HAVE_MMAP etc clashing with libretro-common

16 months agotry to fix android build yet again
notaz [Mon, 24 Jul 2023 19:47:18 +0000 (22:47 +0300)]
try to fix android build yet again

impossible to not forget it for me

16 months agoMerge pull request #728 from pcercuei/libretro-wiiu-v4
notaz [Mon, 24 Jul 2023 19:32:20 +0000 (22:32 +0300)]
Merge pull request #728 from pcercuei/libretro-wiiu-v4

WiiU port

16 months agoUpdate GameCube/Wii/WiiU targets
Ash Logan [Sun, 29 May 2022 12:53:18 +0000 (22:53 +1000)]
Update GameCube/Wii/WiiU targets

Update the GameCube/Wii/WiiU targets to make sure they compile and work;
and add support for the Lightrec dynarec, using a custom memory map on
the WiiU target (and unoptimized regular malloc'd addresses on NGC/Wii).

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
16 months agoSupport compiling without posix_memalign() function
Paul Cercueil [Sat, 11 Feb 2023 14:47:30 +0000 (14:47 +0000)]
Support compiling without posix_memalign() function

Add NO_POSIX_MEMALIGN option in Makefile.libretro to support platform
that don't provide the posix_memalign() function.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
16 months agoSupport compiling without pthreads
Paul Cercueil [Sat, 11 Feb 2023 14:22:21 +0000 (14:22 +0000)]
Support compiling without pthreads

Add NO_PTHREAD option in the Makefile, which can be used on platforms
that don't support pthreads.

Since dfsound/spu.c disables threading support on Win32 and platform
defining NO_OS (Switch, 3DS, PSP Vita), mark them as not having
pthreads.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
16 months agoSupport compiling without mmap functions
Paul Cercueil [Sat, 11 Feb 2023 14:17:13 +0000 (14:17 +0000)]
Support compiling without mmap functions

Add NO_MMAP option in Makefile.libretro that can be turned ON on
platforms that don't support mmap(), and for which memory mapping hooks
must be provided.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
16 months agoMakefile: Switch to using libretro-common subrepo
Paul Cercueil [Sat, 11 Feb 2023 14:53:01 +0000 (14:53 +0000)]
Makefile: Switch to using libretro-common subrepo

Instead of integrating the content of the libretro-common repository
inside this core, reference it as a git subrepo, just like it is
currently done with GNU Lightning and Lightrec.

The advantage is that the latest code from the main libretro-common
repository can be fetched easily now.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
16 months agogit subrepo clone https://github.com/libretro/libretro-common.git deps/libretro-common
Paul Cercueil [Sun, 9 Jul 2023 12:38:25 +0000 (14:38 +0200)]
git subrepo clone https://github.com/libretro/libretro-common.git deps/libretro-common

subrepo:
  subdir:   "deps/libretro-common"
  merged:   "86d5e4128c"
upstream:
  origin:   "https://github.com/libretro/libretro-common.git"
  branch:   "master"
  commit:   "86d5e4128c"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

16 months agopsxinterpreter: adjust COP decoding
notaz [Thu, 20 Jul 2023 21:04:03 +0000 (00:04 +0300)]
psxinterpreter: adjust COP decoding

16 months agopsxinterpreter: yet more exceptions, new config option
notaz [Wed, 19 Jul 2023 22:51:46 +0000 (01:51 +0300)]
psxinterpreter: yet more exceptions, new config option

16 months agopsxinterpreter: rework load delays
notaz [Mon, 17 Jul 2023 22:49:46 +0000 (01:49 +0300)]
psxinterpreter: rework load delays

16 months agopsxinterpreter: rework branching in ds
notaz [Mon, 17 Jul 2023 17:54:19 +0000 (20:54 +0300)]
psxinterpreter: rework branching in ds

16 months agopsxinterpreter: tons of new exceptions
notaz [Sun, 16 Jul 2023 22:18:05 +0000 (01:18 +0300)]
psxinterpreter: tons of new exceptions

does anything need any of this though?

16 months agopsxinterpreter: assorted fixes
notaz [Sat, 15 Jul 2023 21:11:04 +0000 (00:11 +0300)]
psxinterpreter: assorted fixes

16 months agoMerge pull request #732 from bslenul/crash-fix
notaz [Mon, 17 Jul 2023 17:06:27 +0000 (20:06 +0300)]
Merge pull request #732 from bslenul/crash-fix

Fix crash when BIOS isn't found

16 months agoMerge pull request #731 from bslenul/remove-strip-debug
notaz [Mon, 17 Jul 2023 17:06:12 +0000 (20:06 +0300)]
Merge pull request #731 from bslenul/remove-strip-debug

Don't strip debug build

16 months agoFix crash when BIOS isn't found
Bobby Smith [Mon, 17 Jul 2023 16:28:25 +0000 (18:28 +0200)]
Fix crash when BIOS isn't found

16 months agoDon't strip debug build
Bobby Smith [Mon, 17 Jul 2023 14:33:00 +0000 (16:33 +0200)]
Don't strip debug build

16 months agolibretro: allow_interlace should be 2 by default
notaz [Fri, 14 Jul 2023 22:56:42 +0000 (01:56 +0300)]
libretro: allow_interlace should be 2 by default

16 months agolightrec: use cycle_multiplier
notaz [Fri, 14 Jul 2023 22:19:28 +0000 (01:19 +0300)]
lightrec: use cycle_multiplier

libretro/pcsx_rearmed#695

16 months agoattempt to fix build
notaz [Fri, 14 Jul 2023 20:09:58 +0000 (23:09 +0300)]
attempt to fix build

16 months agolibretro: look for openbios
notaz [Fri, 14 Jul 2023 19:50:13 +0000 (22:50 +0300)]
libretro: look for openbios

Lowest priority since it still has lower compatibility and lightrec has
problems with it.

libretro/pcsx_rearmed#708

16 months agoadjust bios handling again
notaz [Thu, 13 Jul 2023 23:05:30 +0000 (02:05 +0300)]
adjust bios handling again

changed my mind about BiosBooted

16 months agoremove "slow" text from Enhanced Resolution
notaz [Thu, 13 Jul 2023 22:41:37 +0000 (01:41 +0300)]
remove "slow" text from Enhanced Resolution

Perhaps it made sense back in 2011, but now there is plenty of hardware
that can do it without any slowdowns.

16 months agohandle more GP0 status bits
notaz [Thu, 13 Jul 2023 22:20:43 +0000 (01:20 +0300)]
handle more GP0 status bits

should help openbios

16 months agogpu_neon: fix texels vs pixels confusion
notaz [Thu, 13 Jul 2023 22:15:00 +0000 (01:15 +0300)]
gpu_neon: fix texels vs pixels confusion

16 months agodrc: fix wrong unmap size
notaz [Wed, 12 Jul 2023 21:03:03 +0000 (00:03 +0300)]
drc: fix wrong unmap size

16 months agopsxmem: Use POSIX mmap functions as default hooks
Paul Cercueil [Sat, 11 Feb 2023 13:26:15 +0000 (13:26 +0000)]
psxmem: Use POSIX mmap functions as default hooks

Simplify the code by using the POSIX mmap functions as the default
psxMapHook / psxUnmapHook functions.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
16 months agolibpcsxcore: Use the same type for next_interrupt everywhere
Ash Logan [Sun, 29 May 2022 12:53:34 +0000 (22:53 +1000)]
libpcsxcore: Use the same type for next_interrupt everywhere

u32 is long unsigned int on some platforms

16 months agomore timing hacks
notaz [Wed, 12 Jul 2023 22:24:18 +0000 (01:24 +0300)]
more timing hacks

16 months agocdrom: moar hacks
notaz [Tue, 11 Jul 2023 23:21:26 +0000 (02:21 +0300)]
cdrom: moar hacks

libretro/pcsx_rearmed#714