ROCKNIX / distribution

Other
258 stars 51 forks source link

generate_idtech.sh - Doom 3 and Quake III only for x86 #326

Closed porschemad911 closed 6 days ago

porschemad911 commented 1 week ago

Tested - both vitaquake3-lr and boom3-lr cores require RetroArch to be built with OpenGL not GLES, so limiting to HW_ARCH=x86_64 in generate_idtech.sh to match packages/emulators/libretro/idtech-lr/package.mk.

Closes #288

porschemad911 commented 1 week ago

Tested on my OGU and script seems to behave well. Ignores Doom 3 / Quake 3 as it should even when I have the PAK files loaded.

I do not have an x86 device or build to test.

sydarn commented 1 week ago

Hi Porschemad911, x86 isn't really maintained at this point. What about RK3588? There we do build retroarch with OpenGL. I think the main reason we don't build with OpenGL is libmali, which we might not always be tied to. Is there a way to do a runtime check for Retroarch?

Best, sydarn

porschemad911 commented 1 week ago

@sydarn Thanks for the idea and Discord discussion! Seems it will work if building retroarch with OpenGL support enabled but OpenGLES support disabled. Runtime check can be done by parsing output of retroarch --features.

Back to draft for now :-)

porschemad911 commented 1 week ago

In my testing building RA with only OpenGL support and not OpenGLES support breaks other cores, eg Snes9x, which gives EGL errors and segfaults:

runemu.sh: /usr/bin/runemu.sh Executing taskset -c 0-1 /usr/bin/retroarch -L /tmp/cores/snes9x_libretro.so --set-shader /tmp/shaders/ --config /storage/.config/retroarch/retroarch.cfg --appendconfig /tmp/.retroarch.cfg /storage/roms/snes/Super Mario All-Stars (USA).zip
...
[INFO] [Video]: Set video size to: 854x480.
[INFO] [Video]: Starting threaded video driver..
[INFO] [Wayland]: Compositor doesn't support zwp_idle_inhibit_manager_v1 protocol
[INFO] [Wayland]: Compositor doesn't support zxdg_decoration_manager_v1 protocol
[INFO] [EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay
[INFO] [EGL]: EGL version: 1.4
[INFO] [GLCore]: Found GL context: "wayland".
[INFO] [GLCore]: Detecting screen resolution: 480x854.
[ERROR] [EGL]: #0x3009, EGL_BAD_MATCH
/usr/bin/runemu.sh: line 398:  3295 Segmentation fault      ${EMUPERF} /usr/bin/${RABIN} -L /tmp/cores/${CORE}_libretro.so --set-shader /tmp/shaders/ --config ${RETROARCH_TEMP_CONFIG} --appendconfig ${RETROARCH_APPEND_CONFIG} "${ROMNAME}"

I think the best way forward is just to update the generator script to exclude these 2 cores for non-x86 to match the package build.