Open vanfanel opened 8 months ago
And I guess it's not a compilation issue. So the pre-compiled core from here:
https://github.com/realnc/dosbox-core/releases/tag/latest_build_linux_arm
Doesn't work either?
@realnc No, that doesn't work with the dynamic core, either.
Could this be related?
https://github.com/flyinghead/flycast/issues/1288
Apparently, it originates from this Raspberry Pi OS bug:
https://github.com/raspberrypi/bookworm-feedback/issues/107
So, where could I set the page size for the dynarec?
I have confirmed that the 16K PageSize is what causes the segfault here, since using kernel=kernel8.img
avoids the problem and dynarec works.
@realnc It's an easy fix:
src/cpu/core_dynrec.cpp:#define PAGESIZE 4096
src/cpu/core_dynrec.cpp:#define DYN_PAGE_HASH (4096>>DYN_HASH_SHIFT)
src/cpu/core_dyn_x86.cpp:#define PAGESIZE 4096
You see these 4096? They should be 16384 so dynarec core works on the Pi5. This is because on the Pi5:
root@raspberrypi:~# getconf PAGESIZE
16384
What Flycast did to fix this, is get the PAGE_SIZE at build time: https://github.com/flyinghead/flycast/commit/0f6a92caad25ed65d6b558bb965793ae02c39be1
Would you please add such a fix to this core?
Well, made the fix and the corresponding PR. @realnc Please merge https://github.com/realnc/dosbox-core/pull/58
Hi there,
Just built this core on the latest Raspberry Pi OS on the Pi5, and it segfaults when
dosbox_core_core
is set todynamic
.Not much more to say, it seems the ARMV8L dynarec doesn't work on the Pi5.