repstosw 0 Posted September 14, 2021 · Report post Приветствую! Есть плата LicheePi Zero на базе чипа Allwinner V3s (ARM Cortex-A7) и собственно-сделанный BareMetal SDK, поддерживающий работу с: 1) файловой системой 2) видео-системой 3) звуковой системой 4) ввод данных (кнопки) в однозадачном режиме (цикл в main() + обработчик прерывания) Насколько реально будет туда портировать (перенести, сбилдить, скомпилять) J2ME виртуальную машину - для запуска MIDlet'ов ("Java"-игр) стареньких кнопочных телефонов с маленькими экранами (от 128x128 до 320x240) ? На всякий случай уточню: нужна не вся Java, а только J2ME, более конкретнее - CLDC и MIDP не ниже 2.0.. Поиск в интернете ни к чему ясному не подтолкнул: 1) все ссылки на java.net померли, вместо них Оракла - там чёрт ногу сломит где искать что надо 2) phoneME - кто его реально собирал? у кого есть опыт сборке сего чуда? Как у него дела с совместимостью игр? 3) какие ещё есть проекты? Как я это вижу? : 1) попытаться собрать J2ME эмулятор под Linux в Linux (платформа ПК x86) 2) выкинуть всё ненужное (секьюрити, работа с сокетами, сетью и прочим хламом) 3) завести вывод звука, графики и ввод данных - на бэкэнд(драйвера) своего SDK для V3s У кого-нибудь есть опыт сборки? Чё-то смотрю, что там больше Java надо, чем C. Его одним GCC реально собрать? В чём подвох? В сорцах куча Джавы... Без JRE соберётся? Велик соблазн запускать такие игрули: Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted September 14, 2021 (edited) · Report post 1 час назад, repstosw сказал: Насколько реально будет туда портировать (перенести, сбилдить, скомпилять) J2ME виртуальную машину - для запуска MIDlet'ов ("Java"-игр) стареньких кнопочных телефонов с маленькими экранами (от 128x128 до 320x240) ? Ну в старых телефонах же работает, там проц АРМ 7(9) на 240МГц, это почти, как СТМка 7я например, должно работать, но чувствую, гемора при портировании будет немало, это ж вроде, как коммерческая реализация... 1 час назад, repstosw сказал: Чё-то смотрю, что там больше Java надо, чем C. Добро пожаловать в линух, там всегда для сборки какой-нить проги требуется куча либ, питонов, явы , баша и пр... 1 час назад, repstosw сказал: в однозадачном режиме (цикл в main() + обработчик прерывания) RTOS еще не прикрутили? Можно уже, штука хорошая))) Ну или хотя бы переключатель контекста... Edited September 14, 2021 by mantech Quote Ответить с цитированием Share this post Link to post Share on other sites
repstosw 0 Posted September 14, 2021 · Report post 58 minutes ago, mantech said: Добро пожаловать в линух, там всегда для сборки какой-нить проги требуется куча либ, питонов, явы , баша и пр... Это зависит от степени упоротости тех, кто пишет софт. Я видел обратное: кроме штатного GCC при сборке проекта в Линуксе(на ПК) больше ничего не нужно было. 1 hour ago, mantech said: RTOS еще не прикрутили? Можно уже, штука хорошая))) Ну или хотя бы переключатель контекста... Если очень сильно будет нужна псевдо-многозадачность (или многопоточность), то придётся прикрутить. Ничего тяжёлого в этом не вижу - существуют куча микро-осей под МК. В крайнем случае напишу самостоятельно. Меня волнует сейчас три вопроса: 1) Нужен готовый билд этой phoneME под Windows ПК, чтобы потестировать его на играх - насколько он хорош... 2) Насколько сорцы phoneME независимы от других компиляторов? Проще говоря - хватит ли одного тулчейна GCC под Линуксом, чтобы собрать его? 3) Через make-файлы можно ли урезать сборку phoneME ? Выкинуть сокеты, посылку СМС, выкинуть Open GL, 3D, которые мне не нужны? Оставить только те JSR, которые работают с нужными вещами: файлы, память, отрисов на экран, воспроизведение звука (MIDI и WAV достаточно), считывание клавиш? Очень давно умельцы уже сделали порт под консоли GP2X Wiz, Caanoo и другие J2ME: https://dl.openhandhelds.org/cgi-bin/wiz.cgi?0,0,0,0,73,400 Вроде как работает, но лично проверить не смогу, так как у меня нет этих консолей. А вот под ПК я бы хотел проверить... Странно, что под ПК никто это чудо не собирал и публично не выкладывал... Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted September 14, 2021 · Report post 9 часов назад, repstosw сказал: Я видел обратное: А вот я, к сожалению, нет(( 9 часов назад, repstosw сказал: Странно, что под ПК никто это чудо не собирал и публично не выкладывал... Видать нужды большой не было, ушла на покой эта фон_ява, и видать все это приняли без сожаления... 9 часов назад, repstosw сказал: Выкинуть сокеты, посылку СМС, выкинуть Open GL, 3D, которые мне не нужны? Может это вы так думаете, а разработчик приложения что-то да задействовал, в результате будет пшик)) Quote Ответить с цитированием Share this post Link to post Share on other sites
makc 0 Posted September 14, 2021 · Report post @repstosw, https://github.com/SquirrelJME/SquirrelJME рассматривали? Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted September 14, 2021 · Report post 1 час назад, makc сказал: https://github.com/SquirrelJME/SquirrelJME А где Сишные исходники-то там? Quote Ответить с цитированием Share this post Link to post Share on other sites
makc 0 Posted September 14, 2021 · Report post 5 минут назад, mantech сказал: А где Сишные исходники-то там? https://github.com/SquirrelJME/SquirrelJME/tree/trunk/ratufacoat Например здесь: Цитата RatufaCoat (SquirrelJME) RatufaCoat is a Java ME Virtual Machine which is capable of running the SquirrelJME run-time. It is written in C and is intended to be used as an included library into other programs such as RetroArch. A SummerCoat Register Format ROM is required for this to operate, to which the SquirrelJME project must be referred to accordingly. Quote Ответить с цитированием Share this post Link to post Share on other sites
repstosw 0 Posted September 17, 2021 (edited) · Report post On 9/15/2021 at 3:27 AM, makc said: https://github.com/SquirrelJME/SquirrelJME рассматривали? Присмотрюсь. С другого форума ещё рекомендовали глянуть вот такую VM: https://en.wikipedia.org/wiki/Mika_VM. На гитхабе есть исходники. Или распарсить JAVA-код в LLVM, прикрутив бэкэнд типа: https://www.cs.cornell.edu/projects/polyglot/ https://www.graalvm.org/reference-manual/native-image/ Куча низведанного Если часть исходников написаны на JAVA, то их можно компильнуть на ПК. Только вот вопрос - будут ли они работать на других архитектурах? Ведь байткод везде одинаков, или есть подводные камни? На хосте я могу пользоваться чем угодно - любой компилятор. Главное, чтобы на таргете - была только архитектура целевого процессора. Edited September 17, 2021 by repstosw Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted September 17, 2021 · Report post 15 часов назад, repstosw сказал: Ведь байткод везде одинаков, или есть подводные камни? Заявляли разработчики кроссплатформенность - главная фишка, но в некоторых процах есть т.н. ява рантайм акселератор, что это - х.з., но тут могут быть и подводные камни... Quote Ответить с цитированием Share this post Link to post Share on other sites
bingo 0 Posted September 29, 2021 · Report post Возможно, будут полезно. "Java на одноплатниках: легко и просто" https://habr.com/ru/post/580368/ Quote Ответить с цитированием Share this post Link to post Share on other sites
repstosw 0 Posted September 29, 2021 · Report post Я пока временно отложил этот вопрос. Не по зубам пока мне эта задача. Более подробно мои страдания изложены здесь: https://gamedev.ru/code/forum/?id=263750 Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted September 30, 2021 · Report post 29.09.2021 в 07:02, bingo сказал: Возможно, будут полезно. библиотека работает на любом Linux, любого одноплатника (при наличии там драйверов) Это совсем не baremetal 14.09.2021 в 21:41, makc сказал: 14.09.2021 в 21:36, mantech сказал: А где Сишные исходники-то там? https://github.com/SquirrelJME/SquirrelJME/tree/trunk/ratufacoat Например здесь: Ну кстати, вполне портабельное дело, поглядел в первом приближении. Лет 7 назад бы поразбирался, с целью добавления этой явы в свою ОС, но с другой стороны - ява это ООП, а оно мне не по душе совсем)) Quote Ответить с цитированием Share this post Link to post Share on other sites
repstosw 0 Posted October 11, 2021 · Report post On 10/1/2021 at 12:21 AM, mantech said: Ну кстати, вполне портабельное дело, поглядел в первом приближении. Лет 7 назад бы поразбирался, с целью добавления этой явы в свою ОС, но с другой стороны - ява это ООП, а оно мне не по душе совсем)) Мне тоже ООП не по душе. Но ведь есть же эмуляторы NES, SEGA и им подобные. Они портируются спокойно со знанием С/C++ и без знаний ассемблеров 6502 и 68K (процессоры сеги и неса). Так почему же при портировании Java я обязан знать Java? В идеале, кроме крестов ничего знать не обязан. Ну или как минимум компильнуть классы Java и забыть их как страшный сон. Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted October 11, 2021 · Report post 4 часа назад, repstosw сказал: Так почему же при портировании Java я обязан знать Java? В идеале, кроме крестов ничего знать не обязан. Это к линуксописателям, они пишут группами, кто-то в яве разбирается, кто-то в сях, кто в питоне, вот и слепят кашу-малашу, а одному в ней разбираться совсем не айс(( Quote Ответить с цитированием Share this post Link to post Share on other sites