Когда-то давно, может быть лет 10 назад, у меня был довольно интересный девайс с Linux'ом и J2ME на борту, про который я написал обзор для хабра: Полный обзор возможностей Motorola ZINE ZN5. Этот девайс был, как сейчас бы сказали «гиковским», после взлома прошивки появлялась возможность установки туда различного нативного софта и он фактически усилием энтузиастов превращался в смартфон.
Но что самое интересное, в качестве виртуальной машины для J2ME там тоже использовался SUN'овский KVM, видимо достаточно сильно приправленный Motorola, которая прикрутила к нему возможность работы с 3D и прокинула привязки GUI-интерфейса до общесистемного GUI-тулкита в виде Qt 2.3.8. К моему сожалению, в официальный репозиторий Motorola ZN5 они не выложили исходники своих наработок над KVM, видимо им это позволяла лицензия или исходный код KVM был вообще закрыт и лицензирован исключительно для Motorola.
Мне в то время очень хотелось открутить от KVM интересную библиотеку libezx3dgraphics.so.1.0.0, которая как раз и представляла реализацию 3D.
Ну а исходники KVM мне помогли бы разобраться как использовать эту библиотеку, чтобы написать свою Homebrew-демку в 3D на её основе. Увы, подобному не суждено было сбыться и моим камнем преткновения стало именно то, что я не смог найти в своё время исходники KVM, а ковыряться с декомпилятором мне тогда было лень, да и подобного опыта не хватало.
Я хочу связаться с одним из авторов порта KVM для Nintendo DS (благо он отметился в Readme.txt) и узнать по поводу исходников, поскольку очень хочется прикрутить работу с сетью к Java машине. Это бы существенно расширило возможности приложений для этой JVM. Если что то прояснится отпишусь здесь.
Я буду очень благодарен, если вы не забудете и отпишетесь, когда вам ответит этот человек. Это как минимум закроет некоторые вопросы, на которые я в своё время не нашёл ответа:
Были ли исходники KVM открыты вообще?
Если исходники KVM были открыты, то под какой лицензией?
Если исходники KVM были открыты, не нарушила ли Motorola их лицензию не опубликовав свои изменения?
В этом KVM изначально имеется интерфейс для различных 3D-классов или же это привнесение Motorola?
Иногда думаю достать это устройство и добить Homebrew на основе системной 3D библиотеки, так что буду рад любой информации. Ещё раз спасибо за статью!
Огромное спасибо за статью. Знакомство с тактическими шутерами у меня началось не с Operation Flashpoint, а с игры, которая вышла немного раньше. Она называлась Delta Force и была разработана ребятами из NovaLogic. Это тоже был довольно интересный шутер, с прицелом на реализм и огромные, по меркам прошлого тысячелетия, карты. И как помню, там тоже нужно было долго-долго куда-то идти, чтобы выполнить задание, а любая пуля противника могла убить с первого попадания, поэтому игра была достаточно сложной.
Вообще ARMA 2 и моды для неё всегда поражали своей атмосферой, возможностями, реализмом и огромными картами. Подобные тактические шутеры, особенно в своих мультиплеерах, подарили массу ярких впечатлений, эмоций и адреналина мне и моим друзьям.
Кстати, мало кто знает, что мегапопулярный ныне PUBG берёт своё начало тоже как мод DayZ: Battle Royale для ARMA 2. И благодаря возможностям и функциональности движка мод этот был далеко не так казуален, как современная игра.
Так что желаю всяческих успехов Bohemia Interactive и надеюсь, что они в будущем нас ещё порадуют подобными играми.
Да, большое спасибо за замечание. Можно, конечно, добавить дополнительную проверку перед вызовом strcat() и вообще воспользоваться strncat(). Здесь я всё-таки понадеялся на адекватность системного API, функция find_directory() которого всегда возвращает коротенький путь /boot/home/config/settings/ при этом наборе аргументов. Но, как говорится в известной русской пословице — «доверяй, но проверяй». Возможно, в будущем, если в Haiku добавят поддержку многопользовательских сеансов, то этот путь может быть изменён до /boot/home/%username%/config/settings/, и если имя пользователя %username% будет порядка 1000 символов, то произойдёт переполнение. Хотя, скорее всего такого тоже не допустят. Насколько я знаю, в современных UNIX-like операционных системах максимальная длина %username% всего 32 символа.
Отличная статья! Огромное спасибо за труд.
Заметил, что в проекте эмуляции — «Феникс» имеется и ColecoVision, что просто замечательно. Было бы классно ещё и заиметь поддержку Intellivision. В Astrosmash поиграть очень хочется (:
Дело громкое, ссылка на Ru-Board попала в СМИ, хабр (гиктаймс) и прочие IT-ресурсы. Естественно, сервер не справляется с таким огромным количеством «зашел сегодня, потыкал». Это очевидно.
А ещё интересно, сколь успешно камера снимает в сложных сценах: вечером/ночью на улице и в помещении, с несколькими источниками света, на вечиринках.
В 2008-2010 снимки казались прорывными. Но прогресс на месте не стоит, и в сравнении с фотографиями, сделанными на современный смартфон, зачастую разница не в пользу ZN5. Помню, что на сложных сценах и в темноте очень часто подводила ксеноновая вспышка: то пересвет, то недосвет.
Для успешного запуска игрушки Дэйв Беннет (Dave Bennett) использовал приложение SDLash, которое способно эмулировать игровой движок GoldSource, используемый Half-Life.
О никакой эмуляции не может идти и речи, это полноценная замена Gold Source, его фанатская реализация. Неплохо бы перефразировать этот абзац, я бы сделал это таким образом:
Для успешного запуска игрушки Дэйв Беннет (Dave Bennett) использовал проект SDLash3D, который является успешной попыткой портирования движка Xash3D на Android. В свою очередь Xash3D представляет собой написанную с нуля реализацию оригинального движка игры Half-Life — Gold Source. Xash3D совместим со множеством различных игр и модов, базирующихся на Gold Source. Например, этот движок можно использовать для запуска Half-Life: Opposing Force, Gunman Chronicles, Half-Life: Blue Shift и множества других игр.
Ещё хорошим тоном будет являться наличие ссылки на исходные коды этих проектов в новости: github.com/SDLash3D
Ведь если новость прочитает программист, который заинтересуется проектом, то он легко сможет получить доступ к репозиторию без всяких там манипуляций с поисковыми системами.
Кроме того, как уже отметили комментарием выше, в новости неплохо было бы заметить, что разработка проекта происходила на территории СНГ, силами наших соотечественников.
Программист с ником «Дядя Миша» несколько лет занимался разработкой Xash3D.
А программисты a1batross, mittorn и nicknekit несколько месяцев занимались портированием Xash3D на GNU/Linux и в последствии на Android.
Я тут развожу такое занудство потому, что о тех кто купил Android-часы, скачал приложение, нажал иконку запуска и сделал фотографию пишут целые новости, а о тех кто несколько лет пытался написать аналог Gold Source не имея на руках исходного кода, или о тех, кто целый год добивался стабильной работы этого порта на Linux и Android, лицом к лицу сталкиваясь с различными проблемами переноса C/C++-кода между разными архитектурами, даже пары строк в этой новости нет. Несправедливость прямо какая-то. Вот мне бы намного было интереснее прочитать интервью с разработчиком движка Xash3D, чем ещё одну новость о том, что кто-то смог запустить приложение перекинув его в устройство с помощью adb и нажав иконку запуска.
Вообще мне, как и наверняка большинству, потребовалась пересборка Qt 5 не ради статической линковки, а ради освобождения QtCore от зависимости в виде тяжёлых ICU-библиотек. Я посчитал неприемлемым то, что вместе с программой тянутся целых ~30MB библиотек, функции которых программка по сути дела вообще не использует. Ну и раз не обойтись без пересборки фреймворка, было решено попробовать ещё и статическую линковку. Утилитка (кстати OpenSource) маленькая, поэтому собирать для неё что-то вроде установщика, было бы дико. Распространение с помощью единого исполнительного файла на мой взгляд очень удобно для простенькой программы. Кстати, я заметил что статическая линковка сейчас «в моде»: некоторые популярные Qt-приложения используют именно её, например, так делают IM-мессенджер Telegram и качалка torrent'ов — qBittorrent (кстати советую, отличная штука).
Вернёмся к ICU-библиотекам. Как оказалось, принудительная зависимость QtCore от них — это косяк билд-фермы Qt, тянущийся ещё с самого выхода Qt 5. Подробнее об этом можно почитать информацию в тикете багртрекера. В котором и пообещали исправить положение дел в будущем минорном релизе.
Мне даже не верится, что спустя столько времени, в Qt 5.5.0 библиотека QtCore по-умолчанию наконец-то освободится от зависимости далеко не аскетичных ICU-библиотек; и они будут необходимы лишь для работы QtWebkit/QtWebEngine, как и предполагалось изначально.
Да, у меня тоже 17MB получилось. Странно то, что получилось так много. Если этот калькулятор собирать с использованием статической Qt 4, то получается всего 9МБ.
И ещё спрошу следующий интересующий меня момент.
У кого имеется статическая сборка Qt 5 под Windows, ответьте пожалуйста на следующие вопросы:
1. Зависит ли ваш исполнительный файл от таких библиотек, как:
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
?
2. Сколько МБ занимает у вас исполнительный файл с простой пустой формой QMainWindow и библиотеками указанными выше? Влинковать статически оные библиотеки можно добавив в ваш проектный файл строку:
Подскажите, а параметризованные команды поддерживаются?
Что-то вроде
/send <chat_id> <text_message>
и подобное.Но что самое интересное, в качестве виртуальной машины для J2ME там тоже использовался SUN'овский KVM, видимо достаточно сильно приправленный Motorola, которая прикрутила к нему возможность работы с 3D и прокинула привязки GUI-интерфейса до общесистемного GUI-тулкита в виде Qt 2.3.8. К моему сожалению, в официальный репозиторий Motorola ZN5 они не выложили исходники своих наработок над KVM, видимо им это позволяла лицензия или исходный код KVM был вообще закрыт и лицензирован исключительно для Motorola.
Мне в то время очень хотелось открутить от KVM интересную библиотеку libezx3dgraphics.so.1.0.0, которая как раз и представляла реализацию 3D.
Ну а исходники KVM мне помогли бы разобраться как использовать эту библиотеку, чтобы написать свою Homebrew-демку в 3D на её основе. Увы, подобному не суждено было сбыться и моим камнем преткновения стало именно то, что я не смог найти в своё время исходники KVM, а ковыряться с декомпилятором мне тогда было лень, да и подобного опыта не хватало.
Я буду очень благодарен, если вы не забудете и отпишетесь, когда вам ответит этот человек. Это как минимум закроет некоторые вопросы, на которые я в своё время не нашёл ответа:
Иногда думаю достать это устройство и добить Homebrew на основе системной 3D библиотеки, так что буду рад любой информации. Ещё раз спасибо за статью!
Вообще ARMA 2 и моды для неё всегда поражали своей атмосферой, возможностями, реализмом и огромными картами. Подобные тактические шутеры, особенно в своих мультиплеерах, подарили массу ярких впечатлений, эмоций и адреналина мне и моим друзьям.
Кстати, мало кто знает, что мегапопулярный ныне PUBG берёт своё начало тоже как мод DayZ: Battle Royale для ARMA 2. И благодаря возможностям и функциональности движка мод этот был далеко не так казуален, как современная игра.
Так что желаю всяческих успехов Bohemia Interactive и надеюсь, что они в будущем нас ещё порадуют подобными играми.
Большое спасибо за статью. Не ожидал, что вы начнёте свои эксперименты с написания GUI-тулкита.
Заметил, что в проекте эмуляции — «Феникс» имеется и ColecoVision, что просто замечательно. Было бы классно ещё и заиметь поддержку Intellivision. В Astrosmash поиграть очень хочется (:
Думаю, начну ей пользоваться, а то веду свои заметки совсем примитивно: текстовые файлики и синхронизация с помощью git.
Но модель знаковая, согласен.
Ага. У них там проблемы с парком, всего вроде 2-3 автобуса на маршрут. Он ходит, но дожидаться его можно вечно.
Увы, уже пять лет, как не использую его.
Только через такие костыли.
Почти нет.
В 2008-2010 снимки казались прорывными. Но прогресс на месте не стоит, и в сравнении с фотографиями, сделанными на современный смартфон, зачастую разница не в пользу ZN5. Помню, что на сложных сценах и в темноте очень часто подводила ксеноновая вспышка: то пересвет, то недосвет.
У меня тогда был лишь просто "красивый" шестизнак (:
О никакой эмуляции не может идти и речи, это полноценная замена Gold Source, его фанатская реализация. Неплохо бы перефразировать этот абзац, я бы сделал это таким образом:
Ещё хорошим тоном будет являться наличие ссылки на исходные коды этих проектов в новости: github.com/SDLash3D
Ведь если новость прочитает программист, который заинтересуется проектом, то он легко сможет получить доступ к репозиторию без всяких там манипуляций с поисковыми системами.
Кроме того, как уже отметили комментарием выше, в новости неплохо было бы заметить, что разработка проекта происходила на территории СНГ, силами наших соотечественников.
Программист с ником «Дядя Миша» несколько лет занимался разработкой Xash3D.
А программисты a1batross, mittorn и nicknekit несколько месяцев занимались портированием Xash3D на GNU/Linux и в последствии на Android.
Я тут развожу такое занудство потому, что о тех кто купил Android-часы, скачал приложение, нажал иконку запуска и сделал фотографию пишут целые новости, а о тех кто несколько лет пытался написать аналог Gold Source не имея на руках исходного кода, или о тех, кто целый год добивался стабильной работы этого порта на Linux и Android, лицом к лицу сталкиваясь с различными проблемами переноса C/C++-кода между разными архитектурами, даже пары строк в этой новости нет. Несправедливость прямо какая-то. Вот мне бы намного было интереснее прочитать интервью с разработчиком движка Xash3D, чем ещё одну новость о том, что кто-то смог запустить приложение перекинув его в устройство с помощью adb и нажав иконку запуска.
Вернёмся к ICU-библиотекам. Как оказалось, принудительная зависимость QtCore от них — это косяк билд-фермы Qt, тянущийся ещё с самого выхода Qt 5. Подробнее об этом можно почитать информацию в тикете багртрекера. В котором и пообещали исправить положение дел в будущем минорном релизе.
Мне даже не верится, что спустя столько времени, в Qt 5.5.0 библиотека QtCore по-умолчанию наконец-то освободится от зависимости далеко не аскетичных ICU-библиотек; и они будут необходимы лишь для работы QtWebkit/QtWebEngine, как и предполагалось изначально.
У кого имеется статическая сборка Qt 5 под Windows, ответьте пожалуйста на следующие вопросы:
1. Зависит ли ваш исполнительный файл от таких библиотек, как:
?
2. Сколько МБ занимает у вас исполнительный файл с простой пустой формой QMainWindow и библиотеками указанными выше? Влинковать статически оные библиотеки можно добавив в ваш проектный файл строку:
Спасибо.