diff --git a/configs/recalbox-rpi5_64_defconfig b/configs/recalbox-rpi5_64_defconfig index 4ca1dae374b4f78b1949c8af6b3b9e7ffb0d5bce..6f20cf158583b1d33480116349abb05c4a53b175 100644 --- a/configs/recalbox-rpi5_64_defconfig +++ b/configs/recalbox-rpi5_64_defconfig @@ -191,13 +191,14 @@ BR2_PACKAGE_XARCADE2JSTICK=y BR2_PACKAGE_LINAPPLE_PIE=y BR2_PACKAGE_DUCKSTATION=y BR2_PACKAGE_SOLARUS_RECALBOX=y -BR2_PACKAGE_MUPEN64PLUS_AUDIO_SDL=y -BR2_PACKAGE_MUPEN64PLUS_CORE=y -BR2_PACKAGE_MUPEN64PLUS_INPUT_SDL=y -BR2_PACKAGE_MUPEN64PLUS_VIDEO_RICE=y -BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2=y -BR2_PACKAGE_MUPEN64PLUS_RSPHLE=y -BR2_PACKAGE_MUPEN64PLUS_UICONSOLE=y +# Removed since dynarec does not work with 16k pagesize +# BR2_PACKAGE_MUPEN64PLUS_AUDIO_SDL=y +# BR2_PACKAGE_MUPEN64PLUS_CORE=y +# BR2_PACKAGE_MUPEN64PLUS_INPUT_SDL=y +# BR2_PACKAGE_MUPEN64PLUS_VIDEO_RICE=y +# BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2=y +# BR2_PACKAGE_MUPEN64PLUS_RSPHLE=y +# BR2_PACKAGE_MUPEN64PLUS_UICONSOLE=y BR2_PACKAGE_HATARI=y BR2_PACKAGE_ADVANCEMAME=y BR2_PACKAGE_BEEBEM=y diff --git a/package/recalbox-romfs2/systems/64dd/system.ini b/package/recalbox-romfs2/systems/64dd/system.ini index 07156606bb9959dc69c7568fc5166df207519c48..231f02d8b3d7d91408421df5f3b1236f1b71fc67 100644 --- a/package/recalbox-romfs2/systems/64dd/system.ini +++ b/package/recalbox-romfs2/systems/64dd/system.ini @@ -43,6 +43,7 @@ crt.multiregion = 1 [core.0] package = BR2_PACKAGE_LIBRETRO_PARALLEL_N64 priority = 1 +priority.rpi5_64 = 2 emulator = "libretro" core = "parallel_n64" extensions = ".bin .ndd" @@ -55,6 +56,7 @@ crt.available = 1 [core.1] package = BR2_PACKAGE_LIBRETRO_MUPEN64PLUS_NX priority = 2 +priority.rpi5_64 = 1 emulator = "libretro" core = "mupen64plus_next" extensions = ".bin .n64 .ndd .v64 .z64" @@ -62,3 +64,4 @@ netplay = 0 softpatching = 0 compatibility = low speed = unknown +crt.available = 1 diff --git a/package/recalbox-romfs2/systems/n64/system.ini b/package/recalbox-romfs2/systems/n64/system.ini index ffe36a9e0150e50d26b571ea554f0ce427dfcf04..d9280ea5b3f18e6ced5287933b4275b6506c617b 100644 --- a/package/recalbox-romfs2/systems/n64/system.ini +++ b/package/recalbox-romfs2/systems/n64/system.ini @@ -125,6 +125,7 @@ crt.available = 1 [core.7] package = BR2_PACKAGE_LIBRETRO_MUPEN64PLUS_NX priority = 8 +priority.rpi5_64 = 1 emulator = "libretro" core = "mupen64plus_next" extensions = ".n64 .v64 .z64 .zip .7z" @@ -132,6 +133,7 @@ netplay = 0 softpatching = 1 compatibility = high speed = high +crt.available = 1 [core.8] package = BR2_PACKAGE_MUPEN64PLUS_VIDEO_RICE diff --git a/projects/configgen/configgen/generators/libretro/libretroCores.py b/projects/configgen/configgen/generators/libretro/libretroCores.py index 30ac14ef21a33cec356c1e356744ba1f348bfb7e..dc10ceec60979f2f9e7e23e993f101882fd00457 100644 --- a/projects/configgen/configgen/generators/libretro/libretroCores.py +++ b/projects/configgen/configgen/generators/libretro/libretroCores.py @@ -40,6 +40,8 @@ class LibretroCores: coreSettings.setString("parallel-n64-64dd-hardware", '"disabled"') coreSettings.setString("parallel-n64-gfxplugin", '"auto"') coreSettings.setString("parallel-n64-alt-map", '"disabled"') + if Architecture().isPi5: + coreSettings.setString("parallel-n64-cpucore", '"cached_interpreter"') @staticmethod def configureMUPEN64(coreSettings: keyValueSettings): diff --git a/projects/configgen/tests/generators/libretroGenerator_test.py b/projects/configgen/tests/generators/libretroGenerator_test.py index 4d5755e44f07b90697f94092369cdc74f54f19e7..636af86d6517c03215a48993eef83956007a4b44 100644 --- a/projects/configgen/tests/generators/libretroGenerator_test.py +++ b/projects/configgen/tests/generators/libretroGenerator_test.py @@ -321,3 +321,14 @@ def test_widescreen_mode_disabled_tate(mocker, emulator, controller_configuratio assert 'reicast_widescreen_hack = "disabled"' in coreConf assert '/usr/lib/libretro/flycast_libretro.so' in command.array + +def test_given_rpi5_and_n64_parallel_then_avoid_dynarec(mocker, emulator, controller_configuration): + mocker.patch('configgen.utils.architecture.Architecture.isPi5', return_value=True) + + recalbox_conf = keyValueSettings("", True) + n64 = Emulator(name='n64', videoMode='1920x1080', ratio='auto', emulator='libretro', core='parallel_n64') + n64.configure(recalbox_conf, ExtraArguments("", "", "", "", "", "", "", "", "", "", "", "", "")) + emulator.generate(n64, controller_configuration, recalbox_conf, Arguments('path/to/rom.zip')) + + coreConf = Path(libretroConfigurations.recalboxFiles.retroarchCoreCustom).read_text() + assert 'parallel-n64-cpucore = "cached_interpreter"' in coreConf