The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, работающего через SDL 2

04.03.2022 19:18

Опубликован первый выпуск слоя совместимости sdl12-compat, предоставляющего API, совместимый с двоичным и исходным кодом SDL 1.2, но работающий поверх SDL 2. Проект может выступать в качестве полной замены SDL 1.2 и пригоден для организации выполнения устаревших программ, написанных для SDL 1.2, используя современные возможности актуальной ветки SDL 2. В том числе sdl12-compat позволяет запускать приложения с неродным разрешением экрана, не меняя при этом фактическое разрешение экрана в системе и используя для отрисовки OpenGL.

  1. Главная ссылка к новости (https://github.com/libsdl-org/...)
  2. OpenNews: Мультимедийная библиотека SDL переходит на использование Wayland по умолчанию
  3. OpenNews: Выпуск мультимедийной библиотеки SDL 2.0.20
  4. OpenNews: Проект SDL переходит на Git и GitHub
  5. OpenNews: Мультимедийная библиотека SDL переходит на новую схему нумерации выпусков
  6. OpenNews: Уязвимость в библиотеке SDL, приводящая к выполнению кода при обработке изображений
Автор новости: Павел Павлов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56804-sdl
Ключевые слова: sdl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:53, 04/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Небольшие пояснения к новости, если вдруг не понятно, что такое SDL:

    sdl12-compat (сущ.) — слой совместимости с SDL 1.2.

    SDL 1.2 (сущ.) — то, что можно реализовать средствами SDL 2.

    SDL 2 (сущ.) — то, через что работает sdl12-compat.

     
     
  • 2.2, Fracta1L (ok), 22:17, 04/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Стало понятно, спасибо
     
     
  • 3.15, Аноним (15), 00:30, 05/03/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ничё ты не понял. Оно не на Rust.
     
  • 2.3, Голум (?), 22:26, 04/03/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Понимал, что такое SDL, пока не прочитал сей пост
     
  • 2.4, Zenitur (ok), 22:37, 04/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > что такое SDL

    Если кто-то и правда не знает, что такое SDL (хотя я уверен, что у нас на сайте таких людей нет), то об этом можно почитать здесь: https://www.opennet.dev/openforum/vsluhforumID3/126399.html#16

     

  • 1.5, Zenitur (ok), 22:42, 04/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Хорошая штука. Некоторые программы до сих пор используют SDL 1.2. Например Dosbox. Или Quake2 3.21 (если кому-то хочется запускать не source-порт, а оригинальные бинарники от Id Software прямиком из 2001 года). Или Unreal Tournament 2004
     
     
  • 2.8, Аноним (8), 22:46, 04/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    DosBox уже есть несколько форков на SDL2.
     
  • 2.11, Аноним (11), 23:57, 04/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оригинальный Quake и слыхом не слыхивал про какой-то SDL.
     
     
  • 3.14, Zenitur (ok), 00:28, 05/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Про первый квейк я не знаю - я не запускал официальные бинари от 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 оттуда, и зашить новую...

     
     
  • 4.19, Аноним (19), 15:13, 06/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем ковыряться в древних бинариях, если движки обоих игр давным давно выложены под GPL?
     

  • 1.6, Skullnet (ok), 22:42, 04/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Идея хорошая, но приложений на SDL 1.2 очень мало, большую часть уже давно переписали на SDL 2.
     
     
  • 2.18, Аноним (18), 18:16, 05/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У меня в Арче LMMS подтянул SDL1 в качестве зависимости, например.
     
  • 2.26, Аноним (26), 18:30, 09/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем же ты врёшь? На SDL12 огромная куча хороших свободных игрушек.

    % cat /usr/ports/INDEX-13| awk -F\| '$8~/sdl-1.2/{print $1}' | wc -l    
         397

     
  • 2.29, mos87 (ok), 10:54, 10/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    кэп говорит, что есть куча приложений которые никто никогда переписывать не будет

    ЛОЛ, в абанте ВЛЦ до сих пор от сдл1 зависит... д.б.

    правда это конечно 1) абанта 2) ЛТС 3) отсутсвие практики какой-нибудь lazy-loading загрузки плагинов в открытом софте. Что имхо сводит половину усилий по мудялризации примерно на нет. (перевод на пальцах - ставятся тонны говна которое ты использовать никогда в жизни не будешь... а потом оно обновляется... а потом к нему прилетают тонны "очень нужных" обновлений "безопасности")

     

  • 1.7, Sunderland93 (ok), 22:42, 04/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В Fedora он уже 2 или 3 выпуска подряд поставляется по умолчанию
     
  • 1.9, Аноним (9), 22:50, 04/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    аххх...еть. Кому-то в этом мире еще не только нужна обратная совместимость, но он готов для этого работать.

     
  • 1.10, Аноним (10), 22:55, 04/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > совместимый с двоичным и исходным кодом SDL 1.2, но работающий поверх SDL 2

    Ведите всех модно-молодёжных хипстеров и как обосс@вшихся котят тыкайте сюда носом, пока не поймут, как правильно нужно модернизировать библиотеки и что значит фраза "обратная совместимость".

     
     
  • 2.16, Аноним (16), 05:56, 05/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сам то много библиотек написал? Покажи хоть одну
     

  • 1.12, Аноним (12), 00:07, 05/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Альт-таб работает? Я могу заменить файлы игры чтобы старый sdl заработал? Это игры типа Darwinia и Uplink, а так же railroad tycoon 2 и ещё примерно сотня других, есть проблемы с фулскрином и переключением окон, выводом звука и вейландом.
     
     
  • 2.13, Аноним (12), 00:09, 05/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    К слову заменить бандленный sdl1 на системный sdl1 более новой версии по-моему нельзя, во всяком случае я видел только сегфолты.
     
     
  • 3.17, Аноним (11), 07:48, 05/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В винде — запросто. Приходилось досбокс так чинить.
     

  • 1.20, Аноним (19), 15:15, 06/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А этот слой совместимости позволит запускать старые программы на wayland без xwayland?
     
  • 1.25, Аноним (26), 18:27, 09/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что же с sdl_mixer/sdl_image/sdl_net?
     
  • 1.27, mos87 (ok), 10:52, 10/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    да оно давно наклёпано так-то. просто в последнее время seen some love

    самое приятное применение сего было бы подкладывать сей shim старым (Локи) играм, чтобы меньше мучений было. Но есть игрухи и не древние (например не открытые на двигле дум3) котоые тоже с SDL1

    короче YMMV - где-то робит, где-то не очень.

     
  • 1.30, Аноним (30), 22:41, 10/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нужно!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру