libretro / pcsx_rearmed

ARM optimized PCSX fork
GNU General Public License v2.0
164 stars 116 forks source link

[Raspberry Pi 5] Page Memory Incompatible with 16KB Page Memory #810

Closed pjft closed 6 months ago

pjft commented 6 months ago

PCSX-ReARMed Version

PCSX-ReARMed 025b6fd (cc 12.2.0 64bit pic arm64v8 neon ari64 gpu=neon)

Your device

Pi5

Operating System of your device

Linux (or Linux-based like RetroPie etc.)

CPU architecture

ARM 64bit (AArch64)

Issue description

Unsure if this is the right repo or whether it should be reported further upstream. Basically the core crashes on load on a Pi5, running Raspberry Pi OS 64-bit. It seems that the current workaround is to force the OS to use 4kb page size by adding this to the config.txt file:

kernel=kernel8.img

This is showing up in a set of software on the Pi5: https://github.com/raspberrypi/bookworm-feedback/issues/107 but it's fixed at the software level.

Other cores were fixed similarly: https://github.com/flyinghead/flycast/issues/1288

Happy to help and test things with some guidance. I tried to force the change of page size on libpcsxcore/lightrec/sysconf.c but of course it wouldn't be as simple, so I'm at a loss.

Thanks.

Step-by-step reproduction and logs

Logs:

[WARN] [GameMode]: GameMode cannot be enabled on this system ("dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory.") https://github.com/FeralInteractive/gamemode needs to be installed.
[WARN] [Config]: GameMode unsupported - disabling..
[INFO] RetroArch 1.16.0 (Git e89a7ce)
[INFO] Saving files in content directory is set. This overrides other save file directory settings.
[INFO] Saving save states in content directory is set. This overrides other save state file directory settings.
[INFO] === Build =======================================
[INFO] Capabilities: ASIMD 
[INFO] Version: 1.16.0
[INFO] Git: e89a7ce
[INFO] Built: Nov 10 2023
[INFO] =================================================
[INFO] [Input]: Found input driver: "x".
[INFO] [Core]: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-pcsx-rearmed/pcsx_rearmed_libretro.so"
[INFO] [Config]: Loading config: "/opt/retropie/configs/psx/retroarch.cfg".
[INFO] [Config]: Appending config: "/dev/shm/retroarch.cfg".
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: GET_LANGUAGE: "0".
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2_INTL.
[INFO] [Remaps]: Core-specific remap found at "/opt/retropie/configs/psx/PCSX-ReARMed/PCSX-ReARMed.rmp".
[INFO] Saving files in content directory is set. This overrides other save file directory settings.
[INFO] Saving save states in content directory is set. This overrides other save state file directory settings.
[INFO] [Overrides]: Redirecting save file to "/home/pi/RetroPie/roms/psx/Thunder Force V - Perfect System (USA).srm".
[INFO] [Overrides]: Redirecting save state to "/home/pi/RetroPie/roms/psx/Thunder Force V - Perfect System (USA).state".
[INFO] [Environ]: GET_MESSAGE_INTERFACE_VERSION.
[libretro INFO] Memcard 2: disabled
[libretro INFO] Starting PCSX-ReARMed 025b6fd (cc 12.2.0 64bit pic arm64v8 neon ari64 gpu=neon)
[libretro INFO] Init new dynarec, ndrc size 1001000
[libretro INFO] mprotect() failed: Invalid argument
[libretro INFO] ndrc config: mul=175, ha=0, pex=0
[libretro INFO] (0x7fff9f843460) testing if we can run recompiled code @0x7fff9fe31000...
/opt/retropie/supplementary/runcommand/runcommand.sh: line 1319:  7893 Segmentation fault      /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-pcsx-rearmed/pcsx_rearmed_libretro.so --config /opt/retropie/configs/psx/retroarch.cfg "/home/pi/RetroPie/roms/psx/Thunder Force V - Perfect System (USA).PBP" --verbose --appendconfig /dev/shm/retroarch.cfg
notaz commented 6 months ago

Should probably be fixed, give it a try.

pjft commented 6 months ago

Thank you so much for the quick response - it is working great!