Sidebar

Xash3D SDL2 форк

  • Наступило лето и у нас стартовал конкурс с призовым фондом в $120!
    "De-Make It!" Summer Contest.

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
ZhekA сказал(а):
2 a1batross:
Если свернуть через альт+таб, то в винде мышка стоит по центру и ее сдвинуть нельзя.
SDL всё же - один большой баг :)

[ADDED=mittorn]1435682695[/ADDED]
Ku2zoff сказал(а):
Что заметил: при выходе из сетевой игры, если сервер ещё запущен (не была введена команда disconnect), двиг иногда крашится.
Я подозреваю vgui. в оригинальном виндовом ксаше тоже есть такое. Если отображался текст через vgui - будет краш.
 
Последнее редактирование:

a1batross

Umu~!
06.01.2015
672
27
28
Награды
0
21
Москва
xash.su
2 Дядя Миша:
вот и я понял. что он как бы есть, но вот все считают что его типа нет. Вот и начал медленно переносить.
 

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
У меня получилось сделать невозможное загрузить hl.dll в linux.
Работает только мультиплеер т.к не все функции winapi реализованы. Предположительно это из-за чтения/записи nodes.
К сожалению, отлаживать windows-код в linux-бинаре сложно (мне приодилось смотреть в дизассемблер и расставлять breakpoint'ы в gdb по адресам).
Ещё почему-то сломалась клавиатура в консоли.
 
Последнее редактирование:
Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
У меня получилось сделать невозможное загрузить hl.dll в linux.
Через кастомный загрузчик? :)
Я в XashNT пользовательские дллки максимально отвязываю от системы, насколько это вообще возможно сделать. Потом пригодится.

[ADDED=Дядя Миша]1435768068[/ADDED]
вот и я понял. что он как бы есть, но вот все считают что его типа нет. Вот и начал медленно переносить.
Там надо с таймингами разобраться прежде всего. Я бы без проблем это сделал, если бы не эти гребанные каллбэки в клиентку и кривой предиктинг оружия.
Т.е. надо написать не просто предиктинг, а такой чтобы он корректно работал со всеми глупостями. которые народ обожает пихать в эти три функции.
А там чего только нет. До абсурда доходило - в арранджементе выключаешь предиктинг и все кастомные спрайты становятся ориентироваными (ну дым, трава). Невозможно в принципе обеспечить совместимость говнокода с альтернативной реализацией известных систем. Причём говнокод может быть по обе стороны. Например в самой халфе прозрачность в TriAPI регулируется путём умножения цвета на прозрачность.
 
Последнее редактирование:

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
Через загрузчик от mplayer.
На кастомный загрузчик смотрел - его тут не хватит, нужно ещё некоторые хаки делать для загрузки библиотек из linux. Хотя возможно ещё объединю их, но это сложно сделать т.к он написан был под windows.
Если речь идёт об отвязывании библиотек от системы - можно посмотреть в сторону Native Client, оно вроде на всех системах один формат имеет.

[ADDED=mittorn]1435769831[/ADDED]
a1batross сказал(а):
2 mittorn:
попробуй отлаживать сервер, если его собрать с HLSDK.
А какая разница? Я всё равно только адреса буду видеть.
Тут лучше загрузчик до ума довести, чтобы он ругался на нереализованные/неразрешённые функции.
 
Последнее редактирование:

a1batross

Umu~!
06.01.2015
672
27
28
Награды
0
21
Москва
xash.su
2 mittorn:
А ты загрузчик уже в отдельную либу сделал? Или пока прототип в движок засунул?

[ADDED=a1batross]1435773475[/ADDED]
2 Дядя Миша:
насколько я узнавал от одного работника Valve, может помочь в этом деле SourceSDK и QW. Но думаю, воссоздать говнокод Valve от этого не выйдет. Надо бы сделать проверку ошибок предикта, а там смотреть дальше. ГС вот её имеет, в кваках есть.
 
Последнее редактирование:

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
Загрузчик отдельной либой, которая прилинкована к libxash.so.
Код залил. Он пока паршивый, но мультиплеер полноценно работает. Заодно прикрепил makefile. Уже можно испоььзовать для linux-серверов, если либу потянет
Пока что всякие NameForFunction не реализованы.
 
Последнее редактирование:

FiEctro

Супер Модератор
Команда форума
Супер Модератор
28.07.2006
17 140
343
83
Награды
2
27
Эквестрия
  • Золотая медаль 213
  • Neh
2 a1batross:
Предиктинги QW, GS и Source отличаются довольно сильно.
 

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
2 Дядя Миша:
Можешь дать примеры расшифрованных dll, которые не загружаются? Хочу скормить их загрузчику от mplayer. Вдруг удастся исправить.
Когда сделаю загрузку клиента, буду пытаться выкинуть повторяющийся код, чтобы использовать nonstandard load в linux. А то там сейчас 2 pe loader'а есть.
 

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
Чтож, нашёл соотв. тему с декодером, дешифорвал клиент от какой-то кски и он загрузился в память. Падает конечно при запуске, прямо в F, но тем не менее, загружается.
Толку правда никакого т.к эта версия на vgui2 (вижу там CreateInterface)
 

Ku2zoff

Member
12.08.2010
315
6
18
Награды
0
28
mittorn сказал(а):
Толку правда никакого т.к эта версия на vgui2 (вижу там CreateInterface)
Попробуй клиентку от cs 1.5, она тоже не грузится под ксашем. Только не знаю, шифрованная она или нет.
 

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
2 Ku2zoff:
Дай мне её, если несложно, или 1.4. У меня интернет не позволяет скачать лишнюю cs.
Наладил загрузку dll сервера и клиента xashxt. Пока что без мышки. Думаю вообще сделать опционально мышь в движке, включаемую cvar'ом.
Теперь мне нужен загрузчик vgui в виде dll.
Вот он: https://github.com/SDLash3D/xash3d/tree/external_vgui/vgui_support
Мне нечем собирать dll на linux. mingw не годится т.к нужен msvc++-abi.
Все 3 библиотеки (vgui.dll, vgui_support.dll, client.dll) должны иметь одинаковый ABI и загружаться динамически. Тогда есть шанс, что заработают другие клиенты.
С серверами тоже не очень хорошо.
Да, стандартный сервер загрузился без особой возни. В xashxt потреблвалось реализовать десяточек функций. Но разрвбы могут собирать всё это дело с разными версиями библиотек. Например, используется как минимум 2 разных API с одинаковыми функциями - win32 и msvcrt. Старый клиент xash у меня сразу загрузился, но падал т.к оказался несовместим с актуальным движком (новый рендер).
 

gfdjr5

[NULL]
25.11.2012
562
0
0
Награды
0
mittorn сказал(а):
2 Ku2zoff:
Дай мне её, если несложно, или 1.4. У меня интернет не позволяет скачать лишнюю cs.
Наладил загрузку dll сервера и клиента xashxt. Пока что без мышки. Думаю вообще сделать опционально мышь в движке, включаемую cvar'ом.
Теперь мне нужен загрузчик vgui в виде dll.
Вот он: https://github.com/SDLash3D/xash3d/tree/external_vgui/vgui_support
Мне нечем собирать dll на linux. mingw не годится т.к нужен msvc++-abi.
Все 3 библиотеки (vgui.dll, vgui_support.dll, client.dll) должны иметь одинаковый ABI и загружаться динамически. Тогда есть шанс, что заработают другие клиенты.
С серверами тоже не очень хорошо.
Да, стандартный сервер загрузился без особой возни. В xashxt потреблвалось реализовать десяточек функций. Но разрвбы могут собирать всё это дело с разными версиями библиотек. Например, используется как минимум 2 разных API с одинаковыми функциями - win32 и msvcrt. Старый клиент xash у меня сразу загрузился, но падал т.к оказался несовместим с актуальным движком (новый рендер).
Мышь и так на кваре держится, т.к. её поддержки изначально ещё в Quake не было, это потом появилась такая возможность, активируемая через квар (правильнее сказать, консольная команда - "+mlook"/"-mlook")
От 1.3 версии тоже попробуйте поковырять - это максимальная версия кс, клиентку которой ксаш может загрузить и с ней работать
 
Последнее редактирование:

Ku2zoff

Member
12.08.2010
315
6
18
Награды
0
28
>>Дай мне её, если несложно, или 1.4. У меня интернет не позволяет скачать лишнюю cs.
Держи. От 1.5. 1.4 даже установщика сейчас на компе нету. Расширение *.7z не забудь стереть. Говноаттач мало того, что не грузит файлы более 300 кб, ещё и не хочет жрать "неправильные типы файлов". Рукибпоотрывал за такую тупость. Ну на hlfx.ru тоже не лучше ситуация, даже хуже. Здесь хоть мультиаттач есть.
 

Вложения

Команда форума
VIP
28.03.2010
15 328
252
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
2 Ku2zoff:
Оффтоп
 

mittorn

Active member
22.04.2010
1 225
19
38
Награды
0
gfdjr5 сказал(а):
Мышь и так на кваре держится, т.к. её поддержки изначально ещё в Quake не было, это потом появилась такая возможность, активируемая через квар (правильнее сказать, консольная команда - "+mlook"/"-mlook")
От 1.3 версии тоже попробуйте поковырять - это максимальная версия кс, клиентку которой ксаш может загрузить и с ней работать
Я имею в виду другое: управление мышью вообще продублировать в движке. Сейчас у меня в эмуляторе winapi мышка реализована stub'ами (чтобы не вылетало и не вращалось). Таким образом, мышь вообще не работает. Можно для каждой реализации клиента придумывать костыли для управления мышкой. Работать будет не везде. К тому же если где-то не мышка, а что-то другое (захотят например на моноблоке с тачскрина управлять). А можно сделать mouse look со стороны движка. Тогда клиенты не будут завязаны на платформу.
 

Донат - Операционные расходы

Итого
1 120.00 $
Цель
1 300.00 $
Донат завершается:

Доноры Красавчики

Новые сообщения

Пользователи онлайн