Эмуляция > Эмуляторы для консолей и мобильных устройств
J2ME Эмулятор GBA
<< < (2/3) > >>
iddqd:
WilliamJ, отличная идея! Удачи в этом нелёгком деле;)
WilliamJ:
SergeCheb - Я не пропал, просто пароль забыл... :wall: :rofl:
iddqd - Конечно, идея на счет эльфов, или "Чёт типа того" на Нокиях - отличная. Только трудно-осуществимая.

SergeCheb - Да, пока победы не одержал... Времени нету совсем... -_-
WilliamJ:
Кое что нашел сегодня час назад.
Процессор ARM 9 ****(Забыл модель), который есть в телефоне Nokia 2700, аппаратно поддерживает функцию Jazelle, которая ускоряет Java программу в 8 раз. Только, чтобы эта функция работала, нужно встроить в приложение дополнительный код. Этот код отделяют от основного спец. строками(?). Если найду еще инфу, напишу сюда.
gepar:
WilliamJ,я сейчас с мобильника так что сильно инет серфить для поиска инфы не получается, но вот эти "в 8 раз" это небось враньё. Глупо же ограничивать проц чтобы проги работали медленнее и активировать его лишь если дописать "Ану бегом мне выполнять *?@%;! ". Хотя это могли сделать с целью экономии батарейки ... но всё равно что-то в твоих данных не так, как мне кажется.
WilliamJ:
gepar - Нет, везде так пишут. И Вики, и на других сайтах.
Буду изучать Jazelle в этом направлении... :)

А НЕ для всех программ эту пишут строку, потому, что
не все старые и новые процессоры эту технологию поддерживают.
А в законах Явы говорится:
Ява(технология) должна работать одинаково на всех устройствах.

Jazelle в Вики

Из Википедии:

--- Цитата ---Расширение Jazelle использует низкоуровневый бинарный перевод, выполненный в виде дополнительной ступени между выборкой и декодированием этапа инструкций процессора pipeline. Опознанный байт-код преобразуется в строку из одного или более родных инструкций ARM.
--- Конец цитаты ---

Jazelle на офф. сайте ARM(процессоры).
rock88:
Попробую и я что-нить вставить  ;)
И так у меня Motorola EM30, процессор ARM11 (arm1136jf-s, armv6j) 532Mhz, озу 64Мб, свап 300Мб.
Это недоразумение на яве идет 4 фпс, при том что проц поддерживает всякие там Jazelle и VFP и тд.
Недавно у нас появился порт gpsp, посмотрим сколько он кушает памяти:
До запуска

total         used         free       
410092      51944       358148

Запускаем Legend of Zelda, The - The Minish Cap

total         used         free
410092      73392       336700

Больше 20Мб ушло, у нокий столько будет? Да и идет не фулспид, при фрэймскипе 2 фпс 35-40, ну играть можно.

Что там еще можно на эльфы портировать? - VBA, ну тут вообще глухо, 5фпс не играбельно, хотя есть пара игр которые фулспид выдают - обе Mat Hoffman's Pro BMX.

Так, это что касается эльфов и прочего натива. На нокиях кто-нибуть видел эльфы, эльпаки, эльфлоадеры? Их нет и наверно уже и не будет.

Вернемся к яве, ухх, как вспомню что это интерпретатор, меня аж передергивает :D
Jazelle позволяет некоторому куску байткода выполнятся прямо на процессоре, а не в ява машине. Писать спец коды и тд вроде(!) не нужно.
В общем забудь про ява эмулятор GBA - это фантастика!
PS
Посмотри разницу в цене между моим телефоном и своей нокией. Разница очень незначительная, если она вообще есть, но в моем случае я получил OS Linux и кучу эмуляторов, даже RE1 с PSX прошел с 5фпс :D а что ты получил? Геморой!
WilliamJ:
Фух. Вот ещё кому надо(а это надо не только для J2ME GBA, но и для обычной Java),
нашел крайне интересную информацию про Jazelle. В идеале, это инструкция, как
включать эту самую технологию.

То есть, теоретически(пока практически ещё почти ни кто не пробовал),
можно будет по 3D графике играть(Или по скорости) в N-Gage игры(вместе с Jazelle)...

Или, например, ускорить все существующие J2ME эмуляторы(NES, GB и т.д.)
для мобильников(может и смартфонов).

Инструкция BXJ (ARM)(Начало выполнения инструкций)

Инструкция BX (ARM)(Конец выполнения инструкций)


Множество крайне полезной инфы про Архитектуру ARM процессоров и код для них.
Архитектура ARM

Первый спойлер - для rock88 :)
rock88 - О! А я вас видел на "том" сайте, где про этот эмулятор Java GBA писали.
Написано же русским языком, Jazelle ИМЕННО включается только спец. кодом. И
выключается тоже. :?
Второй спойлер
Сам эмулятор уже изменен (не мною) под MIDP 2.0 и по этому загружается
на многих телефонах. Скорость (без Jazelle) - 2 кадра в секунду.

С помощью простой арифметики можно посчитать, что применив технологию Jazelle
скорость работы эмулятора возрастет минимум от 4 и максимум(возможно и больше)
до 16 кадров в секунду!А если потом ещё оптимизацию провести...
Будет очень даже играбельно.

Также можно использовать дополнительный
процессор DSP - чтобы в реальном времени обрабатывать звуки. Тогда
можно будет задействовать настоящий(не MIDI) звук из консоли. ;)
dreikk:
rock88, на сименсе порт vba и на 2мб оперативки работает, так что можно сделать подгрузку ромов по частях (почти все эмули для сименса поддерживают эту функцию). Хотя хз, на нокию вроде нету эльфпака и наверн не будет ;)
rock88:
dreikk, про 20мб озу это я про gpsp писал, там рекомпилятор и все дела, отсюда и высокая скорость, по сравнению с VBA

WilliamJ, так это получается нужно будет переписать весь код на байткод и вставить в главном цикле в начале BXJ в конце BX, что-то не верится что будет все так просто, уже все бы давным давно игрались на телефонах в GBA. И авторы эмулей бы во всю использовали данную технологию, ведь написать/портировать эмуль гораздо сложнее чем вставить 2 строчки кода.
Но все же я крайне скептически отношусь к тому, что на яве эмуль гба будет 16фпс выдавать, телефон скорей всего лопнет :D
Baka:
На яве не вариант, а вот нативный - играбелен.
gpsp на НЕ смартфоне без звука работает практически на фул спиде, при включении звука скорость не сильно падает, а звук медленен.
rock88:
интeрeсно что это зa нe смaртфон, нa котором рaботaeт gpsp
Baka:
Ну как... поидее это не смартфон, но хакнув прошивку, можно портировать софт с линукса, мб я ошибаюсь и это уже можно назвать смартфоном.
Говорю про Motorola Z6 (а также E2,E6,A1200,E8,ZN5...)
rock88:
Ну дaк, послe нeхитрых мaнипуляций эти тeлeфоны прeврaщaются дaжe большe чeм в смaртфоны. А нa з6 от e8 или зн5 вeрсия рaботaeт? А то нa зн5 нормaльно рeкомпилятор рaботaeт, и скорость в рaзы вышe
Baka:
Сейчас весь софт, игры и эмуляторы на з6 появляются после порта на зн5. В некоторых случаях достаточно изменить ярлык для запуска, иногда нужно пересобрать.
Железо на з6 и зн5 то одно, просто разные версии ос.
rock88:
нa e8/зн5 я под SDL портировaл, у мeня нa eм30 нaпримeр, вeрсия с зн5 нe рaботaeт, нa з6 жe проц тaкой-жe. А вeрсии, нaписaнныe под сдл нa всeх мaгх должны бeз всяких мaнипуляций рaботaть, ну тaм конeчно клaвиши пeрeмaпить нужно, но это ужe по мeлочи.
Мнe EXL говорил что у нeго дрaйвeр3 57фпс - фулспид выдaeт, a у мeня 8фпс - тормозa, у тeбя кaк с 3д игрaми, тормозит?
WilliamJ:
Хорошо, что сегодня выходной. Смогу в плотную заняться решением этой задачи... :) Надеюсь...

Я ещё кое-что понял.

С помощью данной функции(Jazelle) эмулятор ГБА может выполнять не только инструкции для
32-ух битных процессоров, но и инструкции для 16 битных процессоров - THUMB(как раз, в эмуляторе есть
штук 15 или больше файлов THUMB.class, которые как раз и выполняют эту функцию).
По этому их надо тоже использовать в Джезле, чтобы уменьшить нагрузку на главный проц., и этим прибавить скорости выполнения...
Вот только я ещё не знаю, будет ли Jazelle работать во всех файлах *.class , или только в одном... :?
Если во всех файлах, то это как раз будет отлично.

Скачаю рекомпилятор, компилятор... и буду возиться с этим эмулем.
А-то, почему-то писать новый эмулятор ГБА оказалось не возможной задачей... :(
Ни где не могу найти документацию по нему(по GBA, в смысле)...

По-этому, по-пытаюсь улучшить этот... :)
rock88:
WilliamJ, вот если бы ты на си + асм писал, тогда бы твой эмулятор мог бы использовать инструкции проца в качестве инструкций гба. Конечно пришлось бы возится с эмуляцией неподдерживаемых инструкций, всяких там регистров, доступа к памяти и т.д.

http://swiki.hithot.cc/ru_RU/Jazelle

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

Самая лучшая документация по гба - исходники эмулей :)
iddqd:
WilliamJ, прогресс есть?
gepar:
iddqd,я думаю автор перечитал тему и заметил мои сообщения в самом начале  :)
MVP:
vBoy же есть вроде, и пашет исправно. Если я по теме конечно  :lol:
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии