motofan logo
2 страниц V  1 2 >        
> 

EmuElf, Elf-окружение для Win32

Andy51
сообщение 3.4.2010, 16:50


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Я уже довольно давно начал работу над проектом, позволяющим собирать и тестировать эльфы под Windows. Первое настоящее боевое крещение разработка прошла на тестовых сборках Aegis, и вообще говоря, была доступна всё это время на SVN, просто у меня небыло настроения рассказать об этой штуке.

Вкратце, что это такое и как работает:
  1. Берём исходник эльфа, работающего с драйвером (UIS не поддерживается)
  2. Иногда придётся подправить функции чтения из бинарных файлов - на системах от Intel и Motorola разный порядок байт (endianness) - см. примеры.
  3. Собираем исходник в VisualStudio (разрабатывается на 6 версии), подключив к проекту EmuElf.lib
  4. Если в EmuElf есть все необходимые функции, то на выходе получаем *.exe файл, повторяющий функциональность эльфа!


Что входит в текущую версию EmuElf:
  • Окно 176x220 - экран
  • Консоль - показывает debug-сообщения, выводимые через PFprintf и cprint
  • Цифровая клавиатура замаплена на нумпад (789 = 123; 0 = *; Del = 0; Enter = #)
  • AFW в зачаточном состоянии
  • DL - таймеры, DL_KeyKjavaGetKeyState
  • DL_Fs - корень эмулируемой файловой системы находится в папке FS, рядом с exe-файлом. Поддерживаются только основные файловые операции. Впрочем, практически тоже самое можно сказать и про всё остальное.
  • API Elfpack2
  • AHI (видеодрайвер) - наиболее развитая часть проекта, много функций, но всё равно не все. Весь проект изначально затачивался на код, использующий только драйвер для вывода графики.
  • GDA - альтернативный видеодрайвер, API реализован более-менее полностью, насколько я помню (моя разработка, тоже выложу как будет время)
  • Таски (аналог threads в vrtx) - для использования этих функций на реальном телефоне нужен специальный патч (тоже моя разработка, тоже как-нибудь зрелизю)
  • Строковые функции с u_*, suAlloc/FreeMem и прочее по мелочи

Отдельно стоит отметить некоторые вещи, которые НЕ поддерживаются:
  • UIS НЕ поддерживается (только UIS_CreateNullDialog), и в мои планы не входит его реализация
  • Одновременно может быть запущено только одно приложение (Application)
  • Ещё раз отмечу, что результат интерпретации, скажем, в UINT32 данных, прочитанных из файла отличается в EmuElf и в эльфе - необходимо использовать функции для преобразования endianness

Для тех, кто так ничего и не понял или лень читать: EmuElf - это инструмент для разработчиков, который позволяет многократно ускорить и значительно упростить разработку эльфов под видеодрайвер ;)

Забирать отсюда: svn://svn.vilko.ru/emuelf

В репозитории уже есть Debug-build последней версии emuelf.lib, а также два эльфа-примера, собирающихся с ним: helloworld-snd и какая-то старая версия Matrix.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 4.4.2010, 17:47


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 174
Регистрация: 31.3.2007
Из: Екатеринбург
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008


Настроение:
Второй год подряд решаю мир. Решения не найдено.



Рейтинг: 669



Andy51,
А и отладчик я так понял юзается родной, тот который в среде к которой линкуется окружение?
Цитата(Andy51 @ Вчера, 21:50)

Собираем исходник в VisualStudio (разрабатывается на 6 версии)
*


Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 4.4.2010, 18:43


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



DmT, да, именно так. Возможность отладки эльфов на PC - основное назначение EmuElf
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 6.4.2010, 7:01


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



Andy51, как ярый сторонник всего ясного и подробного мог бы лучше расписать что делать с кучей исходников скаченой с свн)) хотябы на мотовики, не думаю что все такие уж звери в программировании)))
Цитата
Иногда придётся подправить функции чтения из бинарных файлов - на системах от Intel и Motorola разный порядок байт
ага, больше четырёх часов жизни потерял из-за того что не прочитал эту строчку... ужас... не мог понять что не так... а оно с другой стороны отсчитывает байтики(((
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Matrasa
сообщение 6.4.2010, 8:50


Опытный
***

Группа: Пользователи
Сообщений: 106
Регистрация: 22.2.2009
Пользователь №: 194 157
Модель телефона: E398
Прошивка: DAR 2.15

Рейтинг: 2.5



Гм, а как эту либу скачать то? Впервые вижу svn ссылки.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 6.4.2010, 12:42


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Цитата(baat @ Сегодня, 10:01)

что делать с кучей исходников скаченой с свн
*


Открыть проект в VS и компилировать ;)
А ещё там уже скомпиленная либа есть.

Цитата(Andy51 @ 3.4.2010, 19:50)

на системах от Intel и Motorola разный порядок байт (endianness) - см. примеры.
*


Ещё раз указываю - осторожнее с чтением из файла и извращениями с указателями!
В Matrix модифицирован файл bmp.c - обратите внимание на макросы SWAP_BYTES_IN_DWORD и SWAP_BYTES_IN_WORD.

Matrasa, http://wiki.motofan.ru/index.php/ElfPack2 Использование Subversion

Цитата(baat @ Сегодня, 10:01)

хотябы на мотовики,
*


"хотябы"? shok.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 6.4.2010, 12:57


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 174
Регистрация: 31.3.2007
Из: Екатеринбург
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008


Настроение:
Второй год подряд решаю мир. Решения не найдено.



Рейтинг: 669



Цитата(baat @ Сегодня, 13:01)

Иногда придётся подправить функции чтения из бинарных файлов - на системах от Intel и Motorola разный порядок байт
ага, больше четырёх часов жизни потерял из-за того что не прочитал эту строчку... ужас... не мог понять что не так... а оно с другой стороны отсчитывает байтики(((
*


Это действительно приносит огроменные неудобства, особенно когда это связанно со структурами... У меня для того чтобы с этим справляться написаны несколько модулей костылей, чтобы хоть как-то более менее упростить задачу преобразования Endianess.
Вот на кой черт вообще было придумано два стандарта? Я не понимаю.
Andy51,
А ты введи профилирование в проекты с EmuElf ну и как бы devkit подключи к VC. Один профиль будет собирать компилятором VC с либой EmuElf, а другой будет собирать devkitом с либой телефона. И определи стандартные конструкции и идентификаторы(ну макросами), которые будут определять в каком профиле как компилировать, и все отличия забивать вот в такие конструкции ветвления на макросах.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 6.4.2010, 14:41


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083
Модель телефона: E1, k810
Прошивка: r373_g_0e.30.79r

Рейтинг: 323



Пол часа шаманил, собрал matrix используя MinGW + Code::Blocks. Влом доставать VS :)
Работает хорошо.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 6.4.2010, 14:46


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 174
Регистрация: 31.3.2007
Из: Екатеринбург
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008


Настроение:
Второй год подряд решаю мир. Решения не найдено.



Рейтинг: 669



Цитата(G-XaD @ Сегодня, 20:41)

Пол часа шаманил, собрал matrix используя MinGW + Code::Blocks. Влом доставать VS :)
*


Аналогично, только с CodeLite ом. ;)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 6.4.2010, 14:56


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


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



Рейтинг: 1535



а я, как честная сволочь, скачал лицензию vc++ 6 с рапидшары 65мб архивчик... и собрал матрикс, красиво, только просто
Цитата(Andy51 @ 6.4.2010, 15:42) *
Открыть проект в VS и компилировать ;)
не получилось,
пока показал ей где что лежит... причём при каждом открытии проекта оказалось необходимым...

хеловорд ошибку выдало, я разбиратся не стал, просто забил)))

Сообщение отредактировал baat - 6.4.2010, 15:53
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EmuElf, Elf-окружение для Win32 · Эльфы, их разработка и портирование · Forum
 

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

 



Текстовая версия Сейчас: 27.4.2024, 10:52

Форум живёт: