URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 126941
[ Назад ]

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

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

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=56804


Содержание

Сообщения в этом обсуждении
"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 04-Мрт-22 21:53 
Небольшие пояснения к новости, если вдруг не понятно, что такое SDL:

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

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

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


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Fracta1L , 04-Мрт-22 22:17 
Стало понятно, спасибо

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 05-Мрт-22 00:30 
Ничё ты не понял. Оно не на Rust.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Голум , 04-Мрт-22 22:26 
Понимал, что такое SDL, пока не прочитал сей пост

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Zenitur , 04-Мрт-22 22:37 
> что такое SDL

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


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Zenitur , 04-Мрт-22 22:42 
Хорошая штука. Некоторые программы до сих пор используют SDL 1.2. Например Dosbox. Или Quake2 3.21 (если кому-то хочется запускать не source-порт, а оригинальные бинарники от Id Software прямиком из 2001 года). Или Unreal Tournament 2004

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 04-Мрт-22 22:46 
DosBox уже есть несколько форков на SDL2.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 04-Мрт-22 23:57 
Оригинальный Quake и слыхом не слыхивал про какой-то SDL.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Zenitur , 05-Мрт-22 00:28 
Про первый квейк я не знаю - я не запускал официальные бинари от 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 оттуда, и зашить новую...


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 06-Мрт-22 15:13 
Зачем ковыряться в древних бинариях, если движки обоих игр давным давно выложены под GPL?

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Skullnet , 04-Мрт-22 22:42 
Идея хорошая, но приложений на SDL 1.2 очень мало, большую часть уже давно переписали на SDL 2.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 05-Мрт-22 18:16 
У меня в Арче LMMS подтянул SDL1 в качестве зависимости, например.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 09-Мрт-22 18:30 
Зачем же ты врёшь? На SDL12 огромная куча хороших свободных игрушек.

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


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено mos87 , 10-Мрт-22 10:54 
кэп говорит, что есть куча приложений которые никто никогда переписывать не будет

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

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


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Sunderland93 , 04-Мрт-22 22:42 
В Fedora он уже 2 или 3 выпуска подряд поставляется по умолчанию

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 04-Мрт-22 22:50 
аххх...еть. Кому-то в этом мире еще не только нужна обратная совместимость, но он готов для этого работать.


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 04-Мрт-22 22:55 
> совместимый с двоичным и исходным кодом SDL 1.2, но работающий поверх SDL 2

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


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 05-Мрт-22 05:56 
Сам то много библиотек написал? Покажи хоть одну

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 05-Мрт-22 00:07 
Альт-таб работает? Я могу заменить файлы игры чтобы старый sdl заработал? Это игры типа Darwinia и Uplink, а так же railroad tycoon 2 и ещё примерно сотня других, есть проблемы с фулскрином и переключением окон, выводом звука и вейландом.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 05-Мрт-22 00:09 
К слову заменить бандленный sdl1 на системный sdl1 более новой версии по-моему нельзя, во всяком случае я видел только сегфолты.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 05-Мрт-22 07:48 
В винде — запросто. Приходилось досбокс так чинить.

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 06-Мрт-22 15:15 
А этот слой совместимости позволит запускать старые программы на wayland без xwayland?

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 09-Мрт-22 18:27 
А что же с sdl_mixer/sdl_image/sdl_net?

"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено mos87 , 10-Мрт-22 10:52 
да оно давно наклёпано так-то. просто в последнее время seen some love

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

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


"Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, ра..."
Отправлено Аноним , 10-Мрт-22 22:41 
Нужно!