repstosw 18 14 сентября, 2021 Опубликовано 14 сентября, 2021 · Жалоба Приветствую! Есть плата 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 соберётся? Велик соблазн запускать такие игрули: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 14 сентября, 2021 Опубликовано 14 сентября, 2021 (изменено) · Жалоба 1 час назад, repstosw сказал: Насколько реально будет туда портировать (перенести, сбилдить, скомпилять) J2ME виртуальную машину - для запуска MIDlet'ов ("Java"-игр) стареньких кнопочных телефонов с маленькими экранами (от 128x128 до 320x240) ? Ну в старых телефонах же работает, там проц АРМ 7(9) на 240МГц, это почти, как СТМка 7я например, должно работать, но чувствую, гемора при портировании будет немало, это ж вроде, как коммерческая реализация... 1 час назад, repstosw сказал: Чё-то смотрю, что там больше Java надо, чем C. Добро пожаловать в линух, там всегда для сборки какой-нить проги требуется куча либ, питонов, явы , баша и пр... 1 час назад, repstosw сказал: в однозадачном режиме (цикл в main() + обработчик прерывания) RTOS еще не прикрутили? Можно уже, штука хорошая))) Ну или хотя бы переключатель контекста... Изменено 14 сентября, 2021 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 14 сентября, 2021 Опубликовано 14 сентября, 2021 · Жалоба 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 Вроде как работает, но лично проверить не смогу, так как у меня нет этих консолей. А вот под ПК я бы хотел проверить... Странно, что под ПК никто это чудо не собирал и публично не выкладывал... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 14 сентября, 2021 Опубликовано 14 сентября, 2021 · Жалоба 9 часов назад, repstosw сказал: Я видел обратное: А вот я, к сожалению, нет(( 9 часов назад, repstosw сказал: Странно, что под ПК никто это чудо не собирал и публично не выкладывал... Видать нужды большой не было, ушла на покой эта фон_ява, и видать все это приняли без сожаления... 9 часов назад, repstosw сказал: Выкинуть сокеты, посылку СМС, выкинуть Open GL, 3D, которые мне не нужны? Может это вы так думаете, а разработчик приложения что-то да задействовал, в результате будет пшик)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 195 14 сентября, 2021 Опубликовано 14 сентября, 2021 · Жалоба @repstosw, https://github.com/SquirrelJME/SquirrelJME рассматривали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 14 сентября, 2021 Опубликовано 14 сентября, 2021 · Жалоба 1 час назад, makc сказал: https://github.com/SquirrelJME/SquirrelJME А где Сишные исходники-то там? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 195 14 сентября, 2021 Опубликовано 14 сентября, 2021 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 17 сентября, 2021 Опубликовано 17 сентября, 2021 (изменено) · Жалоба 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, то их можно компильнуть на ПК. Только вот вопрос - будут ли они работать на других архитектурах? Ведь байткод везде одинаков, или есть подводные камни? На хосте я могу пользоваться чем угодно - любой компилятор. Главное, чтобы на таргете - была только архитектура целевого процессора. Изменено 17 сентября, 2021 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 17 сентября, 2021 Опубликовано 17 сентября, 2021 · Жалоба 15 часов назад, repstosw сказал: Ведь байткод везде одинаков, или есть подводные камни? Заявляли разработчики кроссплатформенность - главная фишка, но в некоторых процах есть т.н. ява рантайм акселератор, что это - х.з., но тут могут быть и подводные камни... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bingo 0 29 сентября, 2021 Опубликовано 29 сентября, 2021 · Жалоба Возможно, будут полезно. "Java на одноплатниках: легко и просто" https://habr.com/ru/post/580368/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 29 сентября, 2021 Опубликовано 29 сентября, 2021 · Жалоба Я пока временно отложил этот вопрос. Не по зубам пока мне эта задача. Более подробно мои страдания изложены здесь: https://gamedev.ru/code/forum/?id=263750 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 30 сентября, 2021 Опубликовано 30 сентября, 2021 · Жалоба 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 назад бы поразбирался, с целью добавления этой явы в свою ОС, но с другой стороны - ява это ООП, а оно мне не по душе совсем)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 11 октября, 2021 Опубликовано 11 октября, 2021 · Жалоба On 10/1/2021 at 12:21 AM, mantech said: Ну кстати, вполне портабельное дело, поглядел в первом приближении. Лет 7 назад бы поразбирался, с целью добавления этой явы в свою ОС, но с другой стороны - ява это ООП, а оно мне не по душе совсем)) Мне тоже ООП не по душе. Но ведь есть же эмуляторы NES, SEGA и им подобные. Они портируются спокойно со знанием С/C++ и без знаний ассемблеров 6502 и 68K (процессоры сеги и неса). Так почему же при портировании Java я обязан знать Java? В идеале, кроме крестов ничего знать не обязан. Ну или как минимум компильнуть классы Java и забыть их как страшный сон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 35 11 октября, 2021 Опубликовано 11 октября, 2021 · Жалоба 4 часа назад, repstosw сказал: Так почему же при портировании Java я обязан знать Java? В идеале, кроме крестов ничего знать не обязан. Это к линуксописателям, они пишут группами, кто-то в яве разбирается, кто-то в сях, кто в питоне, вот и слепят кашу-малашу, а одному в ней разбираться совсем не айс(( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться