Итак, свершилось, собрал Xash3D FWGS и на ZN5. Теперь возможно это один из технически продвинутых портов на Motorola ZN5. 

Всё началось с того, что благодаря усилиям mittorn удалось запустить движок на устройствах с низким количеством памяти. Так, он его запустил на китайском плеере с Linux с 32 мегабайтами памяти и MIPS процессором:
* https://vk.com/video146179717_456239236
* https://vk.com/video146179717_456239237
* https://vk.com/video146179717_456239238
Его порт не использует SDL, а работает напрямую с фреймбуффером, альсой и evdev. У нас может и можно работать напрямую с alsa и evdev, но напрямую с фреймбуфером явно не получится, поэтому я полез портировать движок с SDL2 на классический SDL1.2.
К тому времени как я закончил, mittorn уже почти завершил low memory mode, а я только расчехлил ZN5 и тулчейны от MotoMAGX.
В целом, порт оказался проще, чем я думал. Его осложнило его лишь то, что HLSDK уже давно не собиралось GCC 3.x, не говоря уже о движке. Поначалу, я хотел завести Clang 9 на ZN5 и у меня получилось это сделать, но производительность на нём была в несколько раз ниже, вполне возможно из-за того, что мне пришлось отключить инлайнинг.
После немногих экспериментов, вот что получилось:
* Поезд из шести минут растянулся до 12.
* Hazard Course.
Видео:
https://open.tube/videos/embed/69e5ddfb-0b9...11-8b8ae45e0b85
https://open.tube/videos/embed/852f367b-ce9...82-061d7a559e32
Да, конечно, можно сказать, что ведь Quake II работает лучше, но и Xash3D никогда не был движком из 1999 года и не приспособлен работать в таких тесных по памяти/IO/CPU условиях. Чудо что он вообще работает. Тем не менее, старичкам предлагаю рассказать на каких их компьютерах работал Quake, Quake II и Half-Life.
Кстати, работает сеть, но поиск серверов зависает, поэтому можно подключаться через консоль -- connect 192.168.16.1, ну вы это без меня знаете.
Если неудобно вводить через экранную клавиатуру, то можно печатать прямо в консоль через Telnet.
Перед тем как устанавливать:
* Разработка велась на SDL1.2-HW от Ant-ON, поэтому ни на чём другом работу не гарантирую.
* Для ZN5 64 обязательно выставить минимум 128 мегабайт свопа, иначе чревато зависанием телефона. Для 128 наверное тоже, но у меня такого нет. Там наверное даже не придётся замыливать так сильно текстуры.
* Рекомендую не убитую флешку, иначе ждать загрузки будете столько же, сколько на видео.
* Рекомендую разгон до 700 МГц.
Установка несложная:
0. Создаем /mmc/mmca1/mgxbox/Xash
1. Берём папку valve из файлов со стимовской последней халфой(да, так надо!), кидаем в созданную папку.
2. В ту же папку Xash распаковываем xash3d-magx.7z из https://github.com/FWGS/xash3d-deploy/tree/anewengine-master(в аттаче билд, если что-то пошло не так).
3. Закинуть в valve userconfig.cfg и gameinfo.txt из аттача.
3. Можно запускать run.sh из файлового менеджера, телнета, как вам угодно.
Я бы мог и PEP/MGX пакет собрать, но они никогда у меня прямо на телефоне не ставились, что в 2012, что сейчас. Поэтому вот так.
Огромное спасибо мотороле за их Linux-фоны, спасибо всему мотофановскому сообществу за порты игр и невероятно дружелюбную атмосферу, особенно EXL, поскольку именно ZN5 меня познакомила со многими классическими играми, в особенности Quake, которую я люблю до сих пор и наверное без этого бы не взялся форкать Xash3D.
Добавлено позже (7.11.2019, 5:46):
Только заметил, что на CI не собралось так, как надо.
Вот, в аттаче билд, но вообще, вдальнейшем на CI всегда самый последний будет. Пока я не отключу сборку, конечно.
Исходный код: https://github.com/FWGS/xash3d-fwgs
CI (автоматические сборки): https://github.com/FWGS/xash3d-deploy/tree/anewengine-master


Всё началось с того, что благодаря усилиям mittorn удалось запустить движок на устройствах с низким количеством памяти. Так, он его запустил на китайском плеере с Linux с 32 мегабайтами памяти и MIPS процессором:
* https://vk.com/video146179717_456239236
* https://vk.com/video146179717_456239237
* https://vk.com/video146179717_456239238
Его порт не использует SDL, а работает напрямую с фреймбуффером, альсой и evdev. У нас может и можно работать напрямую с alsa и evdev, но напрямую с фреймбуфером явно не получится, поэтому я полез портировать движок с SDL2 на классический SDL1.2.
К тому времени как я закончил, mittorn уже почти завершил low memory mode, а я только расчехлил ZN5 и тулчейны от MotoMAGX.
В целом, порт оказался проще, чем я думал. Его осложнило его лишь то, что HLSDK уже давно не собиралось GCC 3.x, не говоря уже о движке. Поначалу, я хотел завести Clang 9 на ZN5 и у меня получилось это сделать, но производительность на нём была в несколько раз ниже, вполне возможно из-за того, что мне пришлось отключить инлайнинг.
После немногих экспериментов, вот что получилось:
* Поезд из шести минут растянулся до 12.
* Hazard Course.
Видео:
https://open.tube/videos/embed/69e5ddfb-0b9...11-8b8ae45e0b85
https://open.tube/videos/embed/852f367b-ce9...82-061d7a559e32
Да, конечно, можно сказать, что ведь Quake II работает лучше, но и Xash3D никогда не был движком из 1999 года и не приспособлен работать в таких тесных по памяти/IO/CPU условиях. Чудо что он вообще работает. Тем не менее, старичкам предлагаю рассказать на каких их компьютерах работал Quake, Quake II и Half-Life.
Кстати, работает сеть, но поиск серверов зависает, поэтому можно подключаться через консоль -- connect 192.168.16.1, ну вы это без меня знаете.

Если неудобно вводить через экранную клавиатуру, то можно печатать прямо в консоль через Telnet.
Перед тем как устанавливать:
* Разработка велась на SDL1.2-HW от Ant-ON, поэтому ни на чём другом работу не гарантирую.
* Для ZN5 64 обязательно выставить минимум 128 мегабайт свопа, иначе чревато зависанием телефона. Для 128 наверное тоже, но у меня такого нет. Там наверное даже не придётся замыливать так сильно текстуры.

* Рекомендую не убитую флешку, иначе ждать загрузки будете столько же, сколько на видео.
* Рекомендую разгон до 700 МГц.
Установка несложная:
0. Создаем /mmc/mmca1/mgxbox/Xash
1. Берём папку valve из файлов со стимовской последней халфой(да, так надо!), кидаем в созданную папку.
2. В ту же папку Xash распаковываем xash3d-magx.7z из https://github.com/FWGS/xash3d-deploy/tree/anewengine-master(в аттаче билд, если что-то пошло не так).
3. Закинуть в valve userconfig.cfg и gameinfo.txt из аттача.
3. Можно запускать run.sh из файлового менеджера, телнета, как вам угодно.
Я бы мог и PEP/MGX пакет собрать, но они никогда у меня прямо на телефоне не ставились, что в 2012, что сейчас. Поэтому вот так.

Огромное спасибо мотороле за их Linux-фоны, спасибо всему мотофановскому сообществу за порты игр и невероятно дружелюбную атмосферу, особенно EXL, поскольку именно ZN5 меня познакомила со многими классическими играми, в особенности Quake, которую я люблю до сих пор и наверное без этого бы не взялся форкать Xash3D.
Добавлено позже (7.11.2019, 5:46):
Только заметил, что на CI не собралось так, как надо.
Вот, в аттаче билд, но вообще, вдальнейшем на CI всегда самый последний будет. Пока я не отключу сборку, конечно.
Исходный код: https://github.com/FWGS/xash3d-fwgs
CI (автоматические сборки): https://github.com/FWGS/xash3d-deploy/tree/anewengine-master