Опубликован первый выпуск слоя совместимости sdl12-compat, предоставляющего API, совместимый с двоичным и исходным кодом SDL 1.2, но работающий поверх SDL 2. Проект может выступать в качестве полной замены SDL 1.2 и пригоден для организации выполнения устаревших программ, написанных для SDL 1.2, используя современные возможности актуальной ветки SDL 2. В том числе sdl12-compat позволяет запускать приложения с неродным разрешением экрана, не меняя при этом фактическое разрешение экрана в системе и используя для отрисовки OpenGL...Подробнее: https://www.opennet.me/opennews/art.shtml?num=56804
Небольшие пояснения к новости, если вдруг не понятно, что такое SDL:sdl12-compat (сущ.) — слой совместимости с SDL 1.2.
SDL 1.2 (сущ.) — то, что можно реализовать средствами SDL 2.
SDL 2 (сущ.) — то, через что работает sdl12-compat.
Стало понятно, спасибо
Ничё ты не понял. Оно не на Rust.
Понимал, что такое SDL, пока не прочитал сей пост
> что такое SDLЕсли кто-то и правда не знает, что такое SDL (хотя я уверен, что у нас на сайте таких людей нет), то об этом можно почитать здесь: https://www.opennet.me/openforum/vsluhforumID3/126399.html#16
Хорошая штука. Некоторые программы до сих пор используют SDL 1.2. Например Dosbox. Или Quake2 3.21 (если кому-то хочется запускать не source-порт, а оригинальные бинарники от Id Software прямиком из 2001 года). Или Unreal Tournament 2004
DosBox уже есть несколько форков на SDL2.
Оригинальный Quake и слыхом не слыхивал про какой-то SDL.
Про первый квейк я не знаю - я не запускал официальные бинари от Id Software, а запускал современный ezQuake. Зато второй квейк, оригинальный из тех лет, я пробовал запускать. На сайте idsoftware.com предлагаются на выбор две сборки под Linux: собранную с libc5, и собранную с glibc. Я выбрал вторую сборку, и скачался файл quake2_3.21-r0.16.1-english.runНу чё, распаковал, запустил. Запускать надо именно файл quake2.sh, который скрипт, а не quake2, который является исполняемым файлом.
В настройках игры можно выбрать рендерер. Либо X11 OpenGL, либо SDL OpenGL. Первый работает совсем печально и плохо, зато второй работает без проблем. То же самое с софтварным рендерингом, там тоже два варианта: X11 Software и SDL Software. И тоже через SDL всё гладенько, тогда как через X11 всё печально.
Только звук заикается. Я решил эту проблему, запуская игру следующим образом:
export SDL_AUDIODRIVER=dsp
./quake2.shЛибо в одну строчку:
SDL_AUDIODRIVER=dsp ./quake2.sh
Эта переменная нужна, чтобы выводить звук через OSS вместо ALSA. Через OSS всё чётенько, даже если это всего лишь эмуляция OSS поверх ALSA. Тогда как по умолчанию игра выводит через ALSA, и звук шипит и заикается.
SDL статически слинкован с бинарником игры, и видать это какой-то очень старый SDL 1.2, который плохо работает с ALSA. И да, судя по анализу бинаря при помощи binutils, ALSA там поддерживается (даже несмотря на то, что сборка от 2001 года).
Вот бы как-то выковырять оттуда старую SDL 1.2 оттуда, и зашить новую...
Зачем ковыряться в древних бинариях, если движки обоих игр давным давно выложены под GPL?
Идея хорошая, но приложений на SDL 1.2 очень мало, большую часть уже давно переписали на SDL 2.
У меня в Арче LMMS подтянул SDL1 в качестве зависимости, например.
Зачем же ты врёшь? На SDL12 огромная куча хороших свободных игрушек.% cat /usr/ports/INDEX-13| awk -F\| '$8~/sdl-1.2/{print $1}' | wc -l
397
кэп говорит, что есть куча приложений которые никто никогда переписывать не будетЛОЛ, в абанте ВЛЦ до сих пор от сдл1 зависит... д.б.
правда это конечно 1) абанта 2) ЛТС 3) отсутсвие практики какой-нибудь lazy-loading загрузки плагинов в открытом софте. Что имхо сводит половину усилий по мудялризации примерно на нет. (перевод на пальцах - ставятся тонны говна которое ты использовать никогда в жизни не будешь... а потом оно обновляется... а потом к нему прилетают тонны "очень нужных" обновлений "безопасности")
В Fedora он уже 2 или 3 выпуска подряд поставляется по умолчанию
аххх...еть. Кому-то в этом мире еще не только нужна обратная совместимость, но он готов для этого работать.
> совместимый с двоичным и исходным кодом SDL 1.2, но работающий поверх SDL 2Ведите всех модно-молодёжных хипстеров и как обосс@вшихся котят тыкайте сюда носом, пока не поймут, как правильно нужно модернизировать библиотеки и что значит фраза "обратная совместимость".
Сам то много библиотек написал? Покажи хоть одну
Альт-таб работает? Я могу заменить файлы игры чтобы старый sdl заработал? Это игры типа Darwinia и Uplink, а так же railroad tycoon 2 и ещё примерно сотня других, есть проблемы с фулскрином и переключением окон, выводом звука и вейландом.
К слову заменить бандленный sdl1 на системный sdl1 более новой версии по-моему нельзя, во всяком случае я видел только сегфолты.
В винде — запросто. Приходилось досбокс так чинить.
А этот слой совместимости позволит запускать старые программы на wayland без xwayland?
А что же с sdl_mixer/sdl_image/sdl_net?
да оно давно наклёпано так-то. просто в последнее время seen some loveсамое приятное применение сего было бы подкладывать сей shim старым (Локи) играм, чтобы меньше мучений было. Но есть игрухи и не древние (например не открытые на двигле дум3) котоые тоже с SDL1
короче YMMV - где-то робит, где-то не очень.
Нужно!