libsdl-org / sdl12-compat

An SDL-1.2 compatibility layer that uses SDL 2.0 behind the scenes.
Other
196 stars 40 forks source link

Sort through compatibility list... #27

Closed icculus closed 2 years ago

icculus commented 3 years ago

Awhile ago, I put a call out for software that's still known to use SDL 1.2, and this is what showed up:

https://docs.google.com/spreadsheets/d/1u8Rq3LVQYYgu28sBuxrZ371QolbiZu5z_LjENc4ddZs/edit?usp=sharing

I haven't gone through much of this yet, but it's a good list of testable things for sdl12.-compat. When there's time, someone should try some of these games and apps.

lanodan commented 3 years ago

As it doesn't seems to be available for all distributions but is probably going to be handy for others, gentoo can list of reverse-dependencies (for a lot of them there is alternate options like SDL2 though, this is anything which can pull SDL-1.2): https://packages.gentoo.org/packages/media-libs/libsdl/reverse-dependencies

rhysperry111 commented 2 years ago

A similar list can be produced for Arch.

Here's the output of `pactree -sr sdl` ``` sdl ├─caph ├─cuyo ├─desmume ├─dgen-sdl ├─din ├─dosemu ├─dwarffortress ├─freewheeling ├─frogatto ├─glhack ├─lib32-sdl │ ├─lib32-sdl_image │ │ └─steam-native-runtime │ ├─lib32-sdl_mixer │ │ └─steam-native-runtime │ ├─lib32-sdl_net │ ├─lib32-sdl_ttf │ │ └─steam-native-runtime │ ├─lib32-smpeg │ │ └─lib32-sdl_mixer │ ├─steam-native-runtime │ └─zsnes ├─lmms ├─mupen64plus ├─perl-alien-sdl │ └─perl-sdl │ └─frozen-bubble ├─sdl_gfx │ ├─clanlib │ ├─freedroid │ ├─freedroidrpg │ ├─freewheeling │ ├─lincity-ng │ ├─manaplus │ └─perl-sdl ├─sdl_image │ ├─armagetronad │ ├─chromium-bsu │ ├─critter │ ├─cuyo │ ├─dwarffortress │ ├─fillets-ng │ ├─flobopuyo │ ├─flowblade │ ├─freedroid │ ├─freedroidrpg │ ├─frogatto │ ├─glob2 │ ├─gnujump │ ├─kobodeluxe │ ├─lib32-sdl_image │ ├─lincity-ng │ ├─manaplus │ ├─meterbridge │ ├─navit │ ├─perl-sdl │ ├─pingus │ ├─sasteroids │ ├─slimevolley │ ├─steam-native-runtime │ ├─uqm │ └─zaz ├─sdl_mixer │ ├─armagetronad │ ├─asciiportal │ ├─barrage │ ├─critter │ ├─cuyo │ ├─fillets-ng │ ├─flobopuyo │ ├─freeciv │ ├─freedroid │ ├─freedroidrpg │ ├─frogatto │ ├─gambas3-gb-sdl-sound │ ├─gnujump │ ├─lbreakout2 │ ├─lib32-sdl_mixer │ ├─lincity-ng │ ├─ltris │ ├─manaplus │ ├─perl-sdl │ ├─pingus │ ├─sasteroids │ └─steam-native-runtime ├─sdl_net │ ├─dosbox │ ├─glob2 │ ├─manaplus │ ├─perl-sdl │ └─slimevolley ├─sdl_pango │ └─perl-sdl ├─sdl_sound │ └─dosbox ├─sdl_ttf │ ├─dwarffortress │ ├─fillets-ng │ ├─freewheeling │ ├─frogatto │ ├─gambas3-gb-sdl │ ├─glob2 │ ├─lib32-sdl_ttf │ ├─lincity-ng │ ├─manaplus │ ├─perl-sdl │ ├─sasteroids │ ├─slimevolley │ ├─steam-native-runtime │ └─xwax ├─smpeg │ ├─lib32-smpeg │ ├─perl-sdl │ ├─rocksndiamonds │ ├─sdl_mixer │ └─sdl_sound ├─steam-native-runtime ├─tinyemu ├─transcode ├─virtualbox │ └─virtualbox-ext-vnc ├─xwax └─zaz ```
arrowgent commented 2 years ago

linux ubuntu 18.04 libsdl1.2debian/bionic,now 1.2.15+dfsg2-6 libsdl2-2.0-0/bionic,now 2.0.20+dfsg-2

not sure what exactly youre looking for during the test. i just check that it loads fullscreen or windowed, keyboard and mouse input works, audio plays. no errors report in the terminal output.


d1x-rebirt tested, loads fine plays fine.

d1x-rebirth

Type '/usr/local/share/games/d1x-rebirth/d1x-rebirth -help' for a list of command-line options.

D1X-Rebirth v0.61  Nov 21 2020 12:19:50
This is a MODIFIED version of Descent, based on Registered v1.5 Jan 5, 1996.
Copyright (C) 1994, 1995 Parallax Software Corporation
DESCENT is a trademark of Interplay Productions, Inc.
Copyright (C) 2005-2013 Christian Beckhaeuser, 2013-2017 Kp
Using SDL_mixer library v1.2.12
sdl-joystick: 0 joysticks

export LD_LIBRARY_PATH="/usr/local/share/games/d1x-rebirth" ldd d1x-rebirth|grep SDL

    libSDL_image-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0 (0x00007fab8f991000)
    libSDL_mixer-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL_mixer-1.2.so.0 (0x00007fab8f73f000)
    libSDL-1.2.so.0 => /usr/local/share/games/d1x-rebirth/libSDL-1.2.so.0 (0x00007fab8f504000)
    libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007fab8b9a5000)

same for d2x-rebirth

d2x-rebirth

Type '/usr/local/share/games/d2x-rebirth/d2x-rebirth -help' for a list of command-line options.

D2X-Rebirth v0.61  Nov 21 2020 12:42:22
This is a MODIFIED version of Descent 2, based on Full Version v1.2.
Copyright (C) 1994-1996 Parallax Software Corporation
DESCENT is a trademark of Interplay Productions, Inc.
Copyright (C) 1999 Peter Hawkins, 2002 Bradley Bell, 2005-2013 Christian Beckhaeuser, 2013-2017 Kp
Using SDL_mixer library v1.2.12

export LD_LIBRARY_PATH="/usr/local/share/games/d2x-rebirth" ldd d2x-rebirth|grep SDL

    libSDL_image-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0 (0x00007ff24d5e7000)
    libSDL_mixer-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL_mixer-1.2.so.0 (0x00007ff24d395000)
    libSDL-1.2.so.0 => /usr/local/share/games/d2x-rebirth/libSDL-1.2.so.0 (0x00007ff24d15a000)
    libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007ff2495fb000)

zandronum 3.1 game runs and plays etc.

libsdl1.2 ldd zandronum|grep SDL libSDL-1.2.so.0 => /usr/local/lib/libSDL-1.2.so.0 (0x00007f9a9cafa000)

sdl12-compat export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/games/zandronum ldd zandronum|grep SDL /usr/games/zandronum/libSDL-1.2.so.0 (0x00007fce69e8d000)


dosbox-svn apt list dosbox dosbox/now 0.74-5-3+lp20220205~ubuntu18.04.1 amd64 [installed,local]

dosbox

DOSBox version SVN
Copyright 2002-2021 DOSBox Team, published under GNU GPL.
---
CONFIG: Loading primary settings from config file /home/catbox/.dosbox/dosbox-SVN.conf
SDL: You are running in 24 bpp mode, this will slow down things!
ALSA:Client initialised [128:0]
MIDI: Opened device:alsa
MAPPER: Loading mapper settings from /home/catbox/.dosbox/mapper-SVN.map

ldd dosbox|grep SDL

    libSDL_sound-1.0.so.1 => /usr/lib/x86_64-linux-gnu/libSDL_sound-1.0.so.1 (0x00007efcf6ca6000)
    libSDL-1.2.so.0 => /build/libsdl12-compat/sdl12-compat/build/libSDL-1.2.so.0 (0x00007efcf6558000)
    libSDL_net-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL_net-1.2.so.0 (0x00007efcf5f01000)
    libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007efcf346b000)

scummvm uses SDL2 since version 2.5? not sure when this was changed. possibly between 2.1 - 2.2 although not all platforms (android?) might not be using SDL2 yet. scummvm_2.5.1-1_ubuntu18.04_amd64.deb

ldd scummvm|grep SDL

    libSDL2_net-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2_net-2.0.so.0 (0x00007f73ab1ea000)
    libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f73aae46000)

some more thorough investigation and more of my latest compilations were using SDL2, many games moved over more recently


uqm for example:

ldd uqm-0.6.2|grep SDL

    libSDL-1.2.so.0 => /build/libsdl12-compat/sdl12-compat/build/libSDL-1.2.so.0 (0x00007fd93a5a4000)
    libSDL_image-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0 (0x00007fd93a385000)
    libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007fd937ec5000)

ldd uqm-0.8.0|grep SDL libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f7934ceb000)

uqm-mm/UQM-MegaMod $ ldd UrQuanMasters|grep SDL libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f00b820b000)


hope that helps, gives a reference for +1 tested on a few of your list https://github.com/libsdl-org/sdl12-compat/issues/27#issue-815643969

arrowgent commented 2 years ago

linux

quake4

built sdl12-compat:i386 library

tested with quake4.x86 and quake4smp.x86

seems to be working correctly menus, alt tab, console, in game, opengl, etc.

icculus commented 2 years ago

So a lot of the list has been tested over time, and Fedora is shipping sdl12-compat as their only SDL 1.2 implementation (and I noticed that Ubuntu 22.04 has it as an optional package you can choose instead of classic SDL 1.2), so it seems like general consensus is this doesn't suck for compatibility, and lots of people will be testing automatically for us.

Going forward, we'll just deal with specific issues in specific apps, like the OpenXcom bug in #185, etc, as they pop up.