motofan logo
> 

ELFs by EXL: Ностальгия разработки под Motorola P2K, Обновлено 05-Mar-2025: BadApple E770v/RAZR V3x 60FPS (NEW!)

EXL
сообщение 10.11.2023, 4:57


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


Настроение:
null



Рейтинг: 4654



Решил немного оживить тёплую-ламповую ветку и выложить в отдельную тему все ELF'ы для платформы Motorola P2K, которые я напрограммировал в качестве хобби и изучения P2K API за последний год. Разработка в основном происходила в Telegram-чате MotoFan.Ru, заходите и поностальгируйте по старым-добрым денькам, у нас там бывает весело!

Изображение

Для корректной работы моих ELF'ов на вашей прошивке обязательно обновляем библиотеки из последнего по дате прикреплённого архива ниже, который будет иногда обновляться. В нём содержатся актуальные версии всех ELF'ов из этой темы и актуальные библиотеки. Enjoy!

К сожалению, пока ещё не все планы удалось воплатить в жизнь из-за нехватки свободного времени и отсутствия должной мотивации, но я надеюсь что когда-нибудь мне всё-таки удастся закончить многие задуманные вещи.

Репозитории с исходным кодом проектов

01. https://github.com/EXL/P2kElfs
02. https://github.com/EXL/2048/tree/master/2048-P2K
03. https://github.com/EXL/2048/tree/master/2048-P2K/2048-AHI

Инструкции по сборке

Вы можете использовать самые разные сборочные системы для сборки проектов из этой темы: make, BAT building scripts и CMake. Нужно просто следуя данным инструкциям установить и настроить SDK & Toolchains для разработки ELF'ов под Windows или Linux и дальше действовать по инструкциям, чтобы импортировать проект или проекты в современные IDE, такие как Qt Creator, Visual Code или CLion:

01. Build with CMake and CLion
02. Build with CMake and Visual Studio Code
03. Build with CMake and Qt Creator IDE

В некоторых случаях потребуется дополнительная установка Python и CMake инструментариев. Помимо этого оставлена возможность сборки проектов из CLI (command-line interface), которая может быть удобна, если нет цели редактировать код, а лишь собрать исполняемый ELF-файл. Для этого требуется только установить SDK & Toolchains и настроить его для сборки.

Модифицированные прошивки

Все представленные ниже модифицированные кастомные прошивки имеют возможность запуска ELF'ов, содержат некоторые полезные патчи и имеют ностальгическое стоковое оформление и наполнение контентом.

01. Dream A Reality 2.x Test 17 - для Motorola E398, ROKR E1, доступен ElfPack 1.0 и ElfPack 2.0
02. E1_R373_49R Modded - для Motorola E398, ROKR E1, доступен ElfPack 1.0 и ElfPack 2.0
03. L6_R3511_G_0A.52.45R_A_Original_Mod_Pro_2.0 - для Motorola SLVR L6, L6i, доступен ElfPack 1.0
04. L6i_R3443H1_G_0A.65.0BR - для Motorola SLVR L6, L6i, доступен ElfPack 1.0
05. V235_R3512_G_0A.30.6CR - для Motorola V235, доступен ElfPack 1.0
06. Vxxx_TRIPLETS_G_0B.09.72R - для Motorola V300, V400, V500, V600, доступен ElfPack 1.0
07. C650_R365_G_0B.D3.08R - для Motorola C380, C650, V180, V220 доступен ElfPack 1.0
08. V635_R474_G_08.48.6FR - для Motorola V635, доступен ElfPack 1.0

Список задач

01. Объединить все свои ELF'ы в единый архив и создать тему.
02. Обновить библиотеки для всех доступных пресетов телефонов.
🟩 03. Объединить, обновить и подготовить удобный SDK & Toolchains для разработки ELF'ов.
🟩 04. Подготовить несколько модифицированных прошивок для удобного запуска ELF'ов.
🟩 05. Подготовить эмулятор Motorola P2K к релизу.
🟩 06. Портировать эмулятор NES/Famicom/Dendy с GBA или других устройств.
🟩 07. Портировать DOOM с GBA, BREW или других проектов.
08. Адаптировать ELF'ы к использованию на M·CORE телефонах.
09. Разобраться с векторными шрифтами на последних P2K устройствах.
10. Достучаться до Nvidia GoForce на M·CORE телефонах, по типу того как ATI Imageon задействован на ARM девайсах.
🟩 11. Поэкспериментировать с работой сети Интернет из ELF'ов.
🟩 12. Поэкспериментировать с HTTPS, возможно портировать библиотеки с Arduino и похожих проектов для этого.
🟩 13. Безумная идея: портировать ElfLoader на Motorola C350. Народный телефон. Даже на Nokia 3310 можно запускать собственный код. Чем C350 хуже?
🟩 14. Попробовать портировать ElfLoader на Motorola C550. Этот телефон чуть интереснее C350 и имеет больше RAM.
15. Портировать ElfLoader на Motorola C650 и все остальные в этой серии. На них должны быть ELF'ы, ведь на Siemens C65 они вроде как есть.
16. Портировать ElfLoader на Motorola V635, флагманский P2K-телефон обязан иметь поддержку ELF'ов.
🟩 17. Портировать ElfLoader на классический Motorola RAZR V3, печально что возможность запуска ELF'ов реализована только в более современных V3r и V3i.
🟩 18. Портировать ElfLoader на Motorola V80, интересно с его крутой RGB-подсветкой поработать.
🟩 19. Портировать ElfLoader на Motorola A630, интересно с Landscape-экраном в UIS и QWERTY-клавиатурой. поработать.
🟩 20. Перенести MotoWiki на GitHub, GitLab и BitBucket.
🟩 21. Создать архив ELF'ов на GitHub, GitLab и BitBucket и перенести всю разработку и всё выжившее туда.
22. Портировать ElfLoader на Motorola V235.
23. Портировать ElfLoader на Motorola V600 и обновить библиотеки.
24. Портировать ElfLoader на Motorola SLVR L6, L6i и обновить библиотеки.
25. Обновить Benchmark.elf, добавив возможность бенчмаркинга скорости дисков /a/, /b/, /c/ и /e/.
26. Обновить 2048, добавив корректную отрисовку векторных TTF-шрифтов на канвасе и диалоговые меню.
27. Добавить в Dumper.elf возможность снятия дампов периферии Neptune, ревизия и серийный номер.
🟩 28. Портировать ElfLoader на Motorola E1000, флагманский P2K/GSM-телефон обязан иметь поддержку ELF'ов. Теперь это возможно благодаря обходу RSA.
🟩 29. Портировать ElfLoader на Motorola C390. Теперь это возможно благодаря обходу RSA.

Список проектов этой темы

01. 2048-UIS - Популярная игра-головоломка "2048", написанная с использованием фреймворков AFW и UIS.
02. 2048-AHI - Популярная игра-головоломка "2048", написанная с использованием фреймворков AFW и UIS и видеодрайвера AHI (ATI Handheld Interface).
03. Ambilight - Резидентный ELF, реализующий интересные режимы свечения RGB-светодиодов.
04. Batt Dump - Утилита для создания дампов ROM'ов аккумуляторов по 1-Wire интерфейсу.
05. Benchmark - Простой бенчмарк для телефонов Motorola на платформе P2K.
06. Dumper - Утилита для дампа различных регионов памяти телефонов Motorola на платформе P2K.
07. Elf Box - Простой лаунчер ELF-приложений, написанный для Motorola V600.
08. Fire Effect - Порт демки с эффектом огня из игры Doom на PlayStation 1 (PSX).
09. Neko - Забавный анимированный виджет для экрана рабочего стола с поддержкой скинов.
10. Overclock - Приложение для разгона ядра ARM7TDMI в SoC Neptune LTE/LTE2 со штатных 52 МГц до 65 МГц.
11. Perlin - Порт демки на основе Perlin-шума с платформы DCT-3 (Nokia 3310).
12. Power Alert - Простейший пример резидентной ELF-программы для отправки SMS-сообщения при отключении телефона от питания.
13. Screenshot - Резидентный ELF для быстрого снятия скриншотов в формате BMP 16bpp.
14. Spout - Порт простенькой, но сильно затягивающей японской игры с платформы P/ECE.
15. Vibro Haptic - Резидентный ELF для вибро-отклика в различных меню телефона на манер Sony Ericsson.
16. Yeti3D Old - Порт старой демо-версии 3D-движка Yeti3D с платформы Nintendo Game Boy Advance (GBA).
17. Yeti3D - Порт новой версии техно-демки 3D-движка Yeti3D с платформы Nintendo Game Boy Advance (GBA).
18. Bad Apple - Реализация популярного демо "Bad Apple!!" энкодированного в 1bpp сжатые кадры и воспроизводимого с помощью GPU.
19. vNesC - Экспериментальный порт эмулятора NES/Famicom/Dendy с Siemens SGold/NewSGold платформы на Motorola P2K.

Список библиотек, телефонов и прошивок с возможностью запуска ELF'ов

01. E1_R373_G_0E.30.49R - Motorola ROKR E1, EP 1.0 и EP 2.0 библиотеки.
02. E1_R373_G_0E.30.79R - Motorola ROKR E1, EP 1.0 и EP 2.0 библиотеки.
03. E1_R373_G_0E.30.DAR_test16 - Motorola ROKR E1, EP 1.0 и EP 2.0 библиотеки.
04. E1_R373_G_0E.30.DAR_test17 - Motorola ROKR E1, EP 1.0 и EP 2.0 библиотеки.
05. K1_R452F_G_08.03.08R - Motorola KRZR K1, EP 1.0 и EP 2.0 библиотеки.
06. K3_R261171LD_U_99.51.06R - Motorola KRZR K3, EA 1.0 библиотеки. Только прототипы.
07. L6_R3511_G_0A.52.45R_A - Motorola SLVR L6, L6i, EP 1.0 библиотеки.
08. L6i_R3443H1_G_0A.65.0BR - Motorola SLVR L6, L6i, EP 1.0 библиотеки.
09. L7_R4513_G_08.B7.ACR_RB - Motorola SLVR L7, EP 1.0 и EP 2.0 библиотеки.
10. L7_R4513_G_08.B7.E0R_RB - Motorola SLVR L7, EP 1.0 и EP 2.0 библиотеки.
11. L7e_R452D_G_08.01.0AR - Motorola SLVR L7e, EP 1.0 и EP 2.0 библиотеки.
12. L9_R452J_G_08.22.05R - Motorola SLVR L9, EP 1.0 и EP 2.0 библиотеки.
13. V3i_R4441D_G_08.01.03R - Motorola RAZR V3i, V3e, EP 1.0 и EP 2.0 библиотеки.
14. V3r_R4515_G_08.BD.D3R - Motorola RAZR V3r, EP 1.0 и EP 2.0 библиотеки.
15. V235_R3512_G_0A.30.6CR - Motorola V235, EP 1.0 библиотеки.
16. V360_R4513_G_08.B7.ACR - Motorola V360, EP 1.0 и EP 2.0 библиотеки.
17. V600_TRIPLETS_G_0B.09.72R - Motorola V300, V500, V600, EP 1.0 и EP 2.0 (не тестировано) библиотеки.
18. Z3_R452B_G_08.02.0DR - Motorola RIZR Z3, EP 1.0 и EP 2.0 библиотеки.
19. Z3_R452F1_G_08.04.09R - Motorola RIZR Z3, EP 1.0 и EP 2.0 библиотеки.
20. Z3_R452H6_G_08.00.05R - Motorola RIZR Z3, EP 1.0 и EP 2.0 библиотеки.
21. C650_R365_G_0B.D3.08R - Motorola C380, C650, V180, V220, EP 1.0 библиотеки.
22. E770v_R252211_U_85.9B.E1P - Motorola E770, E770v, EM 2.0 библиотеки.
23. V3x_R252211LD_U_85.9B.E6P - Motorola RAZR V3x, EM 2.0 библиотеки.
24. V635_R474_G_08.48.6FR - Motorola V635, EP 1.0 библиотеки.

Спасибо

По славной и доброй MotoFan.Ru'овской традиции, перечисляю в алфавитном порядке ники тех пользователей и разработчиков, без труда и помощи которых ничего из этого бы не было:

-=M@STER=-, Alesha_Pl, Andy51, azt59, baat, Chik_v, Cool-T, dimonp25, DmT, ds3v, FEAR4ik, Fenja, fkcoder, flash.tato, G-XaD, GandjaFuzz, Indepth6, kadukmm, kuzulis, Macho, motoprogger, om2804, Osta, Rek>pth, rock88, theC0r3, thegood, tim_apple, Unreal_man, Vilko, z3DD3r

Извиняюсь, если кого-то забыл. Если вы случайно попали в эту тему спустя десяток или более лет, спасибо вам огромное, ребята!

Прикреплённые файлы:
Прикрепленный файл P2kElfs_Release_05-Mar-2025.zip   ( 26.95 мегабайт ) Кол-во скачиваний: 88
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Ответ в темуСоздание новой темы
Ответов
EXL
сообщение 13.11.2023, 10:39


Rock The Microphone
********

Группа: Администраторы
Сообщений: 3 145
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652
Модель телефона: XT894 / XT897
Прошивка: Различные


Настроение:
null



Рейтинг: 4654



17. Yeti3D

Назначение: Порт новой версии техно-демки 3D-движка Yeti3D с платформы Nintendo Game Boy Advance (GBA).
Автор: Derek J. Evans, EXL
Протестировано на Motorola: SLVR L6, SLVR L6i, E398, ROKR E1, V600, V360, V235, SLVR L7, RAZR V3i, RAZR V3r, SLVR L7e (частично), KRZR K1 (частично), C650, E770v, RAZR V3x, V635
Платформа: ElfPack v1.x for ARM (EP1), ElfPack v2.x for ARM (EP2), ElfPack v2.x for M-CORE (EM2)
Тип приложения: GUI + GPU + Java Heap + Videomode + Tasks (в версии с Task'ами).
Исходный код: https://github.com/EXL/P2kElfs/tree/master/Yeti3D
Управление:
• Левая софт-кнопка, Красная трубка, 0 - Выход.
• D-Pad, Joystick, 2, 4, 8, 6 - Движение.
• 1 - Смотреть вверх.
• 3 - Смотреть вниз.
• 7, 9 - Прыжок.
• D-Pad Center, Joystick Center, 5 - Огонь (недоступно в оптимизированной версии).
Дополнительно: Зацените графоний, который доселе никогда не отображался на дисплеях наших слабеньких P2K-моторолок! Я портировал некоторые интересные 3D-движки и технодемки Yeti3D с Nintendo Game Boy Advance (GBA) и хотя частота процессора Neptune LTE1/2 (ARM7TDMI) @ 52 MHz и видеочип ATI Imageon W22xx в телефоне не позволяют сильно разгуляться, кое-что всё-таки удалось выжать. Те, у кого по странному стечению обстоятельств почему-то всё ещё нет телефона Motorola на платформе P2K могут потыкать эти технодемки 3D-движков онлайн, прямо в Web-браузере! Сам движок разрабатывался в первую очередь для Nintendo Game Boy Advance (GBA), что позволило его относительно легко перенести, переписав видеовывод на AHI (ATI Imageon) и решив проблемы с конверсией Little-Endian => Big-Endian. Кроме того потребовалось использовать Java Heap вместо System Heap, поскольку этот движок требователен к RAM и кушает около 500-600 KB. Для телефонов с небольшим количеством RAM подготовлена оптимизированная версия, которая кушает 300-400 KB. Версии с полноэкранным видеовыводом 1-в-1 требуют изменение видеорежима дисплея на поворотный на 90°. Помимо этого есть вресия для Task'ов, в которой имеется отдельный Event-цикл, что пресекает перезагрузки. Переносить этот движок на мобильные телефоны было очень увлекательно, часть различных программерских историй были рассказаны в нашем Telegram-канале MotoFan.Ru, почитайте кому интересно и присоединяйтесь. Сцена кодинга под Motorola P2K до сих пор жива! Более подробное описание, дополнительную информацию и самое главное, таблицы сравнения производительности, можно найти по ссылке на GitHub'е. Чуть позже был подготовлен порт на телефоны Motorola, работающие на Rainbow PoG платформе, которые используют процессор M-CORE M341S @ 90 MHz и видеоускоритель Nvidia GoForce 4000/4800. Переписанный блиттинг на GFGx (Nvidia GoForce) порадовал высоким FPS и плавностью картинки!
Полезные ссылки:
https://web.archive.org/web/20031204145215/.../gba/index.html
https://sourceforge.net/projects/yeti3dpro/
Нативные игры и эмуляторы для ZN5
https://lab.exlmoto.ru/y3d/
https://exlmotodev.github.io/y3d/
YouTube:
Yeti3D Engine port to ELF for Motorola P2K phones
Yeti3D Engine on Motorola P2K phones, 52 MHz & 65 MHz (ARM7TDMI overclocking) comparison
Yeti3D Engine on Motorola V300 and Motorola V600, thanks to Paschendale!
Yeti3D Engine on Motorola RAZR V3i and Motorola ROKR E1, thanks to Bs0Dd!
Скриншоты Motorola SLVR L6i, ROKR E1:
Изображение
Галерея фотографий:
Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

Доступные файлы (буквы в имени описывают возможности):
V (1-я) - Аппаратная смена видеорежима средствами ATI Imageon, к примеру, 176x220 => 220x176, 128x160 => 160x128 и т. д.
R (1-я) - Аппаратный rotozoom вывода средствами ATI Imageon, к примеру, 120x80 => 176x220, 96x64 => 128x160 и т. д.
D (1-я) - DAL видеорежим, программный рендеринг для Motorola C650 и похожих телефонов
N (2-я) - Неоптимизированная версия со спрайтами и логикой сущностей.
O (2-я) - Оптимизированная версия без спрайтов и логики сущностей.
1 (3-я) - ELF для ElfPack 1.0.
2 (3-я) - ELF для ElfPack 2.0.
T (4-я) - ELF для ElfPack 2.0 с использованием Task'ов и Semaphor'ов.
D (4-я) - Отладочная версия с экранным буфером в Java Heap и выводом FPS, работает без константы Class_dal.
J (4-я) - Специальные оптимизированные версии с экранным буфером в Java Heap для телефонов с небольшим количеством RAM: Motorola V600, Motorola V235.
F (4-я) - Специальные версии с выводом FPS.
L (4-я) - Специальные версии с длинным поиском адресов поверхностей для Motorola RAZR V3r.
Z (4-я) - Специальные версии с переворотом экрана для Motorola SLVR L6.
U (4-я) - Специальные оптимизированные версии с экранным буфером в UIS Heap для телефонов с небольшим количеством RAM: Motorola C650.
S (5-я) - Версии с ограничением FPS, чтобы телефон не перезагружался.
+ Версии для Motorola V635.

Скачать можно в обновляемом архиве в первом посту темы!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
EXL   ELFs by EXL: Ностальгия разработки под Motorola P2K   10.11.2023, 4:57
EXL   1. 2048-UIS https://motofan.ru/files/storage/2048-...   12.11.2023, 14:14
EXL   2. 2048-AHI https://motofan.ru/files/storage/2048-...   12.11.2023, 14:42
EXL   3. Ambilight [img]https://motofan.ru/files/storage...   12.11.2023, 15:08
EXL   4. Batt Dump Назначение: Утилита для создания дам...   12.11.2023, 15:22
EXL   5. Benchmark https://motofan.ru/files/storage/benc...   12.11.2023, 15:42
EXL   6. Dumper https://motofan.ru/files/storage/dumper_...   12.11.2023, 16:08
EXL   7. Elf Box https://motofan.ru/files/storage/elfbox...   13.11.2023, 6:10
EXL   8. Fire Effect Назначение: Порт демки с эффектом ...   13.11.2023, 7:05
EXL   9. Neko https://motofan.ru/files/storage/neko_48x4...   13.11.2023, 8:02
EXL   10. Overclock https://motofan.ru/files/storage/ove...   13.11.2023, 8:27
EXL   11. Perlin Назначение: Порт демки на основе Perli...   13.11.2023, 8:40
EXL   12. Power Alert Назначение: Простейший пример рез...   13.11.2023, 8:49
EXL   13. Screenshot Назначение: Резидентный ELF для бы...   13.11.2023, 9:04
EXL   14. Spout Назначение: Порт простенькой, но сильно...   13.11.2023, 9:24
EXL   15. Vibro Haptic https://motofan.ru/files/storage/...   13.11.2023, 9:43
EXL   16. Yeti3D Old Назначение: Порт старой демо-верси...   13.11.2023, 9:57
EXL   17. Yeti3D Назначение: Порт новой версии техно-де...   13.11.2023, 10:39
EXL   18. Bad Apple Назначение: Реализация популярного ...   17.11.2023, 18:42
EXL   [size=4]+ Обновление Dumper и Benchmark Dumper: Д...   27.2.2024, 8:47
EXL   + Обновление 2048-UIS и 2048-AHI [offtopic]Спаси...   27.2.2024, 12:20
G-XaD   Извращенец %)   3.3.2024, 22:54
CrayZor   Извращенец %) G-XaD ты тут, Я очень рад, присоед...   4.3.2024, 1:12
EXL   G-XaD, Привет, решил вот вспомнить былые деньки ;...   7.3.2024, 18:36
EXL   [size=4]+ Обновление Yeti3D Добавлены рабочие вер...   7.3.2024, 18:39
EXL   [size=4]+ Обновление Dumper Исправлен баг с неини...   23.3.2024, 20:38
sumkin   Дома так и валяется v635, которым так и не пользов...   26.3.2024, 4:23
EXL   sumkin, Да, V635 крутой телефон, по сути являлся ...   26.3.2024, 10:37
EXL   Наконец-то мне с dimonp25 удалось портировать EP1 ...   15.11.2024, 8:13
EXL   Несколько месяцев назад в конференции MotoFan.Ru в...   4.12.2024, 10:55
EXL   19. vNesC [color=#3333FF]Назначение: Эксперимента...   4.12.2024, 12:44
EXL   Небольшой отчёт за первый квартал 2025 года! ...   19.3.2025, 14:24

ELFs by EXL: Ностальгия разработки под Motorola P2K, Обновлено 05-Mar-2025: BadApple E770v/RAZR V3x 60FPS (NEW!) · Эльфы, их разработка и портирование · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 18.7.2025, 3:50

Форум живёт: