Package: libsdl1.2-compat,bumprace Severity: important Forwarded: https://github.com/libsdl-org/sdl12-compat/issues/253 Control: found -1 libsdl1.2-compat/1.2.60-1 Control: found -1 libsdl1.2-compat/1.2.64-2 Control: found -1 bumprace/1.5.8-1 User: pkg-sdl-maintain...@lists.alioth.debian.org Usertags: sdl12-compat-regression
sdl12-compat is a compatibility layer that implements the SDL 1.2 API/ABI by dlopening SDL 2 and using that instead. During the Debian 13 cycle, I want to replace the unmaintained "classic SDL 1.2" with sdl12-compat. I tested lots of older games with sdl12-compat during the Debian 12 freeze and upstream was able to apply fixes or workarounds, but unfortunately bumprace is one of the few for which using sdl12-compat exhibits a regression. It's not clear whether this is a bumprace bug, or a sdl12-compat bug. Prerequisites: * Debian 12 system (with or without upgrading libsdl1.2-compat from unstable) * A Wayland environment with Xwayland * sudo apt install bumprace libsdl1.2-compat To reproduce: export SDL12COMPAT_DEBUG_LOGGING=1 bumprace SDL_VIDEODRIVER=x11 LD_LIBRARY_PATH='/usr/$LIB/sdl12-compat' bumprace SDL_VIDEODRIVER=wayland LD_LIBRARY_PATH='/usr/$LIB/sdl12-compat' bumprace While the LD_LIBRARY_PATH is set, check that you see this as the first line of output: > INFO: sdl12-compat 1.2.60, built on (date) at (time), talking to SDL2 2.26.5 Use arrow keys and Enter to select "1 player game", "Flying saucer (Best steering)". Use Left/Right arrow keys to rotate (the red tick mark on the flying saucer is the back end) and Up arrow key to fire the engine. Steer yourself into an enemy (grey shuriken-looking things) or obstacle (electricity). If necessary exit the level (press Esc repeatedly) and start again to get a level where there is electricity closer to your starting position. Expected result: * After colliding, an explosion and "CRASHED" appear, reasonably promptly, and the level restarts Actual result: * With classic SDL 1.2 (simple "asc" command), it works as expected. * With libsdl1.2-compat, often (maybe half the time), the game freezes for a while (music continues to play but the game is unresponsive). In GNOME this often triggers a "Bumprace is not responding" dialog. According to SDL upstream, the problem is that the game doesn't iterate the SDL main loop while fading in and out the red "CRASHED" message. It seems that this might have been OK in SDL 1.2, but in SDL 2 the result is that it fades in extremely slowly. Workaround: using native X11 (for example "GNOME on Xorg") doesn't seem to trigger this for whatever reason. smcv