PDA

Просмотр полной версии : Мобильный спектрум



Dr.Lion/RSM
22.05.2006, 00:26
В данной ветке форума часто всплывает один и тот же, по сути, вопрос: "Существует ли нормальный эмулятор спектрума под моб. телефон, написанный на мобильной яве?". Ответ очевиден и очень печален: "Нет не существует, ибо моб. телефон имеет ограниченные ресурсы и очень тормознутую виртуальную машину Java!". Данное утверждение трудно опровергнуть, но попытаться создать некий экспериментальный проект Мобильного Спектрума, на мой взгляд, можно.

На данный момент я встречал две реализации подобия эмулятора спектрума на моб. телефоне - MobileZX и ReadPlayZX. Первый явно не доделан и не оптимизирован по скорости, второй построен, по сути, на основе первого и имеет несколько расширенную функциональность. Они явно далеки от совершенства, поэтому их трудно назвать эмуляторами, способными обеспечить хотя бы возможность играть в любимые спектрумовские игры. Данные обстоятельства а так же простой человеческий интерес толкнули меня на создание нового проекта Мобильного Спектрума. Я считаю, что имею необходимый опыт для подобной затеи, так как уже писал эмуляторы.

Однажды я скачал себе эмелятор nes, написанный на Visual Basic. Он имел страшный вид и целый букет глюков. Набравшись терпения и целой кучи документации + исходников других эмулей на C++, я начал писать на VB свой эмуль. Прошло время и я разобрался во всех вопросах, написал хороший эмулятор на VB, но в свет его не пустил, так как он врятли мог конкурировать с монстрами, написанными на C++. Тем не менее, он прекрасно работает и служит мне надежным испытательным полигоном для другого моего проекта - эмулятора приставки nes на мобильном телефоне.

На данный момент я написал эмулятор nes для мобильника (можно сказать, портировал его с VB, использовал некоторые хитрости из vNes в плане эмуляции CPU), который, хоть и медленно (даже на моем Sony Ericsson K700) но работает. Сейчас интенсивно занимаюсь оптимизацией его кода.

Что же касается эмуляции спектрума, то по сравнению с nes, zx-spectrum имеет во много раз более простой видеоконтроллер, который можно (и я даже знаю как) эмулировать с гораздо меньшими временными затратами чем PPU nes, нет множества т.н. мапперов (схем управления памятью), которые иногда бывают очень сложные. Но, zx имеет более сложный процессор - Z80, хотя и здесь есть интересный момент - по количеству тактов комманды Z80 гораздо длиннее, чем комманды 6502 (процессор nes) и, соответственно, за один кадр их будет выполняться меньшее количество, но это не факт - нужен более глубокий анализ.

В качестве рабочей платформы я выбрал моб. телефон Sony Ericsson K700 (который есть у меня). Он обладает типичными для большинства телефонов ограничениями ресурсов но в то же время имеет более-мение быструю виртуальную машину Java (быстрее, чем на тех же семёнах). Первоначально я планирую обеспечить в эмуляторе следующую функциональность:
- поддержка систем 48/128K;
- загрузка SNA файлов для конфигураций 48/128K;
- отсутствие звука;
- отсутствие TR-DOS;
- масштабируемость экрана Speccy до размеров экрана телефона;
- поддержка управления CURSOR, QAOPSp, SINCLAIR2, KEMPSTON.

Приглашаю всех заинтересованных людей к сотрудничеству. Мне нужна помощь в следующих вопросах:
- концепция проекта, новые идеи;
- железо спектрума, особенности его работы;
- процессор Z80, особенности его работы;
- оптимизация по скорости алгоритмов работы эмулятора;
- написание отладочного кода для Z80 и другого железа Speccy;
- тестирование на разных реальных мобильных телефонах;
- популяризация проекта на просторах интернет.

На данный момент проектом занимается только один человек из нашей группы RSM - это я. Поэтому, жду с нетерпением ваших откликов и предложений! Мои контакты: ICQ - 347279524, МЫЛО - [email protected] (общаюсь так же через mail.ru agent). Чаще всего я на связи в понедельник/вторник с утра до вечера или в другие дни вечером.

jerri
22.05.2006, 01:10
у мяня мото mpx200 и ни одного jar я так на нем и незапустил, ибо оно хочет midp2.0... но ругаецца на все но чем могу помогу

Trantor
22.05.2006, 06:19
На данный момент я написал эмулятор nes для мобильника

Какой именно? Их тьма клонов.

Может быть Z80 машину ты еще и сделаешь а вот полноценная эмуляция спектрума едва ли возможна. Даже самые лучшин PCшные эмуляторы совместимы не на 100%. Поэтому придется смириться, что работать будут только простейшие игрушки.

SMT
22.05.2006, 07:01
Даже самые лучшин PCшные эмуляторы совместимы не на 100%. Поэтому придется смириться, что работать будут только простейшие игрушкип$%^ж. какие не самые простейшие игрушки не работают на PCшных эмуляторах? ;-)

Trantor
22.05.2006, 07:15
Уже все работают? Большой прогресс :v2_clapp:

Значит все же удалось написать ZX80-машину, которая полностью эмулирует этот процессор.

demon_zx
22.05.2006, 08:54
у мяня мото mpx200 и ни одного jar я так на нем и незапустил, ибо оно хочет midp2.0... но ругаецца на все но чем могу помогу

попробуй обработать jar'ы программой FullJava, в 50% случаев начинает работать

Dr.Lion/RSM
22.05.2006, 10:45
у мяня мото mpx200 и ни одного jar я так на нем и незапустил, ибо оно хочет midp2.0... но ругаецца на все но чем могу помогу
По поводу mpx200 ничего не могу сказать, я с ним не работал. А эмулятор планируется писать под midp2.0 без использования специфичных классов разработчиков моб. телефонов.

Может быть Z80 машину ты еще и сделаешь а вот полноценная эмуляция спектрума едва ли возможна. Даже самые лучшин PCшные эмуляторы совместимы не на 100%. Поэтому придется смириться, что работать будут только простейшие игрушки.
Я перед собой не ставлю задачу написать навороченый полноценный эмулятор спека, но я все же постараюсь выжать максимум из ограниченых ресурсов мобильника. Первоначально я собираюсь написать именно игровую модель спека (без клавиатуры, возможно с другими ограничениями).

Trantor
22.05.2006, 14:00
А где-то есть открырые библиотеки эмулятора Z80? Там ведь придется все делать на уровне ассемблера. Или как? Интересно посмотреть.

SMT
22.05.2006, 20:33
если бы оно тебе действительно было надо, ты спросил бы у поисковых машин и накопал штук 20 разных реализаций ядра Z80, от ассемблерных до java/visual basic

Уже все работают? Большой прогресспопробуй найди хотя бы одну игру, которая не работает из-за неточностей в эмуляции Z80. через пару дней/недель эмуляторописатели исправят ошибку и ты снова останешся ни с чем ;-)

Dr.Lion/RSM
22.05.2006, 22:58
Итак, видимо интересующихся данным проектом людей оказалось меньше, чем я думал. Со мной связался только один человек и предложил свою всяческую помощь. Огромное ему спасибо за это! Работа над эмулятором стартонула, сейчас пишуться основные процедуры. когда все будет написано, перейду к компиляции, первому запуску и отладке. Жду новых откликов и предложений.

Кстати, пища для ума: подумайте, как в проекте Мобильный Спектрум реализовать клавиатуру. Свои предложения высказывайте здесь или лично мне.

Trantor
23.05.2006, 02:49
если бы оно тебе действительно было надо,

Да вобщем-то действительно не надо. А искать конечно можно, только зачем тогда этот форум? Вижу, что на некоторые эмуляторы есть исходники. Странно, что каждый сам что ли изобретает велосипед. На первый взгляд недокументированные команды поддерживаются. Ну а незначительные ошибки аппаратного уровня наверное для эмуляции не имеют значения.

По поводу оперативности разработчиков большие сомнения. Большинство проектов просто заброшено. Хотел обновиться, смотрю как лежала версия н-цать лет назад, так и лежит.

Alexey Ivanov (500:95/100)
24.05.2006, 21:51
Здравствуйте, Dr.Lion/Rsm!

23 Май 06 01:15, Dr.Lion/RSM -> All:



Итак, видимо интересующихся данным проектом людей оказалось
меньше, чем я думал. Со мной связался только один человек и
предложил свою всяческую помощь. Огромное ему спасибо за
это! Работа над эмулятором стартонула, сейчас пишуться
основные процедуры. когда все будет написано, перейду к
компиляции, первому запуску и отладке. Жду новых откликов и
предложений.

Кстати, пища для ума: подумайте, как в проекте Мобильный
Спектрум реализовать клавиатуру. Свои предложения
высказывайте здесь или лично мне.

А ты возьми любой готовый эмулятор для мобильника и посмотри... ;)
...хотя я пока только под Symbian видел...

С уважением, Alexey

---

Alexey Ivanov (500:95/100)
24.05.2006, 21:51
Здравствуйте, Dr.Lion/Rsm!

23 Май 06 01:15, Dr.Lion/RSM -> All:

http://www.worldofspectrum.org/emulators.html
раздел J2ME - для мобильников

С уважением, Alexey

---

Eltaron
27.05.2006, 21:32
Кстати, пища для ума: подумайте, как в проекте Мобильный Спектрум реализовать клавиатуру. Свои предложения высказывайте здесь или лично мне.
в спектриане на series60 смартах сделано так - есть два режима работы клавы, один - обычная клава телефона, нажатие любой кнопки эмулируется многократным нажатием какой-нить цифры, второй режим(переключаются вроде по #) - это запрограммированная клавиатура, то есть в настройках есть диалог, в котором любой кнопке трубы мона назначить клавишу реального спека, для игр очень удобно, любое управление, будь то синклер-джойстики, курсор или qaop переназначается на телефонный джойстик
а вот с системными программами работать, мягко говоря, невозможно..

DimkaM
30.05.2006, 13:51
Мне нравится как в DosBOX'е клава сделана.(Это я про PocketPC)

Dr.Lion/RSM
31.05.2006, 23:25
Мне нравится как в DosBOX'е клава сделана.(Это я про PocketPC)
А можно поподробней, а то я не видел DosBOX'а?

DimkaM
02.06.2006, 12:43
А можно поподробней, а то я не видел DosBOX'а?
На телефоне этот номер не пройдет, нужен сенсорный экран.
Там есть выбор либо всплывающая клава, либо с прокруткой(видно только три ряда кнопок)
Ещё в поккетписишных играх делают огромные экранные кнопки чтоб пальцем тапать.

А если в тему, то надо делать Redefine Keys любая кнопка телефона на любую кнопку клавы(а также джойстиков) спека
+ возможность переключения на стандартный телефонный режим(чтобы тексты вводить по телефонному принципу)