FWGS / xash3d

DEPRECATED in favor of https://github.com/FWGS/xash3d-fwgs. Only bugfixes are accepted.
https://xash.su
GNU General Public License v3.0
553 stars 107 forks source link

Implement XashDS futures #312

Closed D0ve closed 6 years ago

D0ve commented 6 years ago

Очень бы хотелось функций XashDS , чтобы были т.с. из коробки: Android dedicated server with x86 dynamic translator and dll support

или хотя бы x86 dynamic translator and dll support

В Android и Linux

цель: играть нормально в любые моды с транслятором dll

Кроме существующего репо https://github.com/FWGS/xashds-android Было бы хорошо для заимствования кода имхо посмотреть и этот https://github.com/GregTheMadMonk/xashds-android

Заранее очень признателен кураторам за реализацию!!!

nekonomicon commented 6 years ago

Было бы хорошо для заимствования кода имхо посмотреть и этот

Чего-то вы видать не понимаете, но ладно. Линукс-версия xash3d и так умеет загружать dll. В xashds для андроид используется линукс-сервер с dll-загрузчиком в эмуляторе qemu/exagear. Нативный dll-загрузчик для андроид не стабилен.

D0ve commented 6 years ago

Да, согласен , спасибо за разъяснения ; суть была - портировать dll-загрузчик в эмуляторе , - очень хотелось саппорта любых модов с dll для Андроид/Линукс...

Наверно хотелось и доработанный стабильный нативный динамический x86 транслятор для dll...

Как вариант, родилась мысль, ведь в dll просто ресурсы и скрипты, но запакованы и в коде x86... ? Может стоит придумать репакер для dll в какой-либо стандартный формат , который Xash понимает !

mittorn commented 6 years ago

Ты видимо не знаешь как устроен двоичныц файл программы. Данные и код перемешаны. Из dll вызываются функции движком напрямую и читаются данные. Ты не можешь транслировать dll отдельно ни одним из существующих трансляторов. Только целиком. А написание такого транслятора - задача на миллион долларов

mittorn commented 6 years ago

ещё один вариант - статическая трансляция. Это осуществимо_ но сложно. И это поьребует уйму ручной работы над каждым dll.

mittorn commented 6 years ago

https://m.habrahabr.ru/post/215375/ Доработай его наработку. Имплементируй недостаюшие инструкции и прикрути winapi от dll загрузчика . Пока что это самый простой способ.

D0ve commented 6 years ago

Признателен за разбор полёта! А эмулятор если прикрутить как в XashDS , сдвинется дело с загрузкой dll вперёд ?

...спросил потому что на XashDS вроде как были успешные случаи загрузок dll...

a1batross commented 6 years ago

Да тут просто стена безграмотности.

1) XashDS -- Xash Dedicated Server. Сам по себе не имеет никакого отношения к Android, а XashDS Android лишь включает обычный собранный под Linux x86 движок, запущенный под эмулятором. Это просто невозможно как-то применить где-то ещё.

2) Запускать x86 код внутри ARM кода -- задача на практике неисполнимая.

3) Даже если ты намереваешься пускать полный движок под эмулятором, то зачем тебе вообще Xash3D? Бери голдсорс и Exagear, и играйся наздоровье.

D0ve commented 6 years ago

Да хотелось просто очень чтобы такие игры как Ганмен шли 'из коробки'... тема уже поднималась конечно, но так всё и не сдвинулось... И возникла мысль , почему нельзя сделать специальный билд Ксаш для Андроид уже с Линуксовым Ксашем х86 в эмуляторе! (в точности как в XashDS-Android, только с полным Xash'ем ) Потому как сингл , насколько понимаю, КсашДС Андроид не заведёт(.

nekonomicon commented 6 years ago

Он как раз для запуска синглплейерных модов на андроиде и предназначен, только с клиентом HL что-то может не работать. Практичней будет поиск исходников мода, либо их повторная реализация с целью дальнейшей сборки нативных библиотек под андроид и другие платформы.

a1batross commented 6 years ago

Возникла у него мысль. Ты вообще читал что я писал? Пункт третий. Если тебе так охота запускать полноценный движок, то зачем тебе Ксаш? Бери голдсорс и запускай. Ещё и возможность на оригинальных серверах поиграть получишь, чего у нас никогда не будет. :)

Тема будет ещё много раз подниматься, но ответ всегда один. Вне зависимости от ваших хотелось, на практике осуществить задуманное не выйдет. А теоретизировать можно сколько угодно.

D0ve commented 6 years ago

Зачем же тогда в КсашДС-андроид соблазнили возможностью работы с dll! (за что большой респект кстати). Да, хочется запускать на своём андроиде всё,)

Просвятите тогда пожалуйста будет ли совершенствоваться нативный dll-загрузчик для андроид ?

И что известно о поддержке библиотек прекомпилированных под ARM ? (тогда будет шанс поддержки бинарно транслированных/перекомпелированных dll-лек из х86 в arm!)

mittorn commented 6 years ago

Он создавался для запуска сервера кс на ранних стадиях разработки cs16client. Позже был адаптирован для игры в Opposing Force, Decay PC и некоторые другие моды

D0ve commented 6 years ago

каюсь , многих проблем с запуском dll не знал( Тогда , чтобы не было путаницы , предлагаю переименовать XashDS-Android в ,например , XashXL for Andoid (X86.Linux.for.Android) !!! И строить его как полноценную версию (не только сервер) Хаsh.x86Linux в эмуляторе QEMU ! Т.к. действительно это архинужный продукт! Да и , глядишь , Элтэкс свой транслятор сопенсорсят возможно , после нападок Интела... или другой более лучший способ транслирования/эмулирования х86 на Андроиде появится.

nekonomicon commented 6 years ago

Для x86 android все-таки есть wine, а dll-загрузчик в движке - сильно урезаная оболочка на его основе и многие вызовы внешних библиотек он не оборачивает. Да и то, что вы просите труднореализуемо на практике и возможно будет проще отреверсить нужный мод, если от него нет исходников, да и любая эмуляция дает дополнительные накладные расходы. К тому же xash3d - платформа для моддинга, а не просто запускалка старых модов на GoldSource.

D0ve commented 6 years ago

я имел ввиду ессно x86 android в эмуляторе для Андроид арм, которым иявляется сейчас КсашДС Андроид(арм). Предложил ему новое имя XashXL ) и основывать на полноценном Ксаше от ЛинуксХ86. И попросил его не бросать , а хотя бы добавлять в него код сторонних разработчиков тоже, таких как в шапке например. А с АндроидомХ86 вообще, да, там конечно Вайн).

mittorn commented 6 years ago

пусть остаётся пока как есть. Разве что xashds требует обновления и нормального интерфейса. Ну и дедика нативного чтобы удобно было держать сервера на уже не используемых устройствах.

D0ve commented 6 years ago

Главное возможность полноценного сингл мода оставьте в нём пожалуйста! И если можно полноценный, не урезанный, Ксаш чтоб в нём был тоже! Потому как, пожалуй, КсашДС-Андроид сейчас очень нужная палочка-выручалочка для модов с dll-ками!

a1batross commented 6 years ago

Я это, пожалуй, закрою. Нет ни обсуждения проблемы, ни проблемы как таковой.

D0ve commented 6 years ago

Да, согласен. Но проблема, в общем была в загрузке х86-dll на Андроид арм... . В старых форумах нашёл о планах на поддержку своих библиотек..., интересно в силе ли они ещё?

nekonomicon commented 6 years ago

В старых форумах нашёл о планах на поддержку своих библиотек..., интересно в силе ли они ещё?

Я вам как минимум 2раза об этом написал, но вы то ли не читаете, то ли не понимаете. http://www.moddb.com/games/xash3d-android/downloads