Merge Icache emulation from PCSX Redux + Senquack changes from PCSX4ALL
authorgameblabla <gameblabla@protonmail.com>
Sat, 2 Oct 2021 16:10:23 +0000 (18:10 +0200)
committergameblabla <gameblabla@protonmail.com>
Sat, 2 Oct 2021 16:10:23 +0000 (18:10 +0200)
commit7a8117168d6b9ad083757e013049c0e45734f3fb
tree79c3150bcbb5241d8122456ac701e83bb24871e1
parent4810ff9b810f9ae2b9bf511abe167278c957a6b2
Merge Icache emulation from PCSX Redux + Senquack changes from PCSX4ALL

See (Redux) :
https://github.com/grumpycoders/pcsx-redux/commit/1923ce5

See original icache implementation (mirror of PCSX Reloaded):
https://github.com/gameblabla/pcsxr/commit/6916151

Without icache emulation, F1 2001 will greatly misbehave :
if you accelerate, the car will go around like crazy.
With icache emulation, it works as intended.

Note that our code is slightly different from theirs as i found out that
having the icache arrays in psxregs would cause crashes so instead
what i'm doing is to taking them out of there and only allocating them
on the heap (due to their great size).

Known issue(s) : Instruction cache emulation code fails to run
Spyro 2 PAL version. (or is it because of SBI?)

Co-authored-by: Nicolas Noble <nicolasnoble@users.noreply.github.com>
Co-authored-by: senquack <dansilsby@gmail.com>
16 files changed:
Makefile
Makefile.libretro
frontend/libretro.c
frontend/libretro_core_options.h
frontend/libretro_core_options_intl.h
frontend/main.c
frontend/menu.c
libpcsxcore/lightrec/plugin.c
libpcsxcore/new_dynarec/backends/psx/emu_if.c
libpcsxcore/plugins.c
libpcsxcore/psxbios.c
libpcsxcore/psxcommon.h
libpcsxcore/psxinterpreter.c
libpcsxcore/psxmem.c
libpcsxcore/r3000a.c
libpcsxcore/r3000a.h