PDA

Просмотр полной версии : Эмуляция ZX на J2ME



Dr.Lion/RSM
29.04.2007, 00:32
Здравствуйте, товарищи. После бурной работы над эмулем Dendy на J2ME (Nescube v1.2) я решил паралельно с написанием новой версии этого эмуля потихоньку уделять время своей другой мечте - сделать достойный эмуль ZX для телефонов с J2ME.

К новому эмулю у меня есть несколько ключевых требований:

- эмуляция памяти 48/128 Кб;
- поддержка TR-DOS (работа с файлами trd и scl);
- эмуляция AY в виде простенькой пищалки через MIDI-устройство телефона;
- эмуляция двух экранов конфигурации 128 без поддержки бордерных/мультиколорных эффектов (так будет быстрее работать);
- различные джойстики спековского стандарта + клава (пока еще не знаю, как реализовать наилучшим образом).


Что есть на данный момент:

1.Когда-то была написана мной альфа spectrum 48 (грузит sna). Время было протрачено на нее уйма, однако быстродействие невероятно низкое. Сейчас я взялся второй раз за эту работу, имея за плечами ценнейший опыт по написанию самого быстрого эмуля денди на J2ME.

2.Найден эффективный (по предварительным оценкам) алгоритм работы с памятью, который при минимальном количестве операций по доступу к памяти обеспечивает возможность реализовать работу ПЗУ TR-DOS (именно с этим самая большая заморочка при желании организовать максимально быстрый доступ к памяти). Так же этот алгоритм без проблем позволяет организовать страничную память.

3.Сейчас взялся за написание основы эмулятора - высокоэффективной эмуляции процессора Z80 + управления памятью (это 90% всего кода эмулятора).

Опыт подсказывает, что все таки реально получить эмулятор ZX-Spectrum с достаточно неплохой производительностью (не мение 25 FPS). Но насколько я прав - покажет только время.

Всвязи со всем вышеупомянутым прошу у вас помощи. Я давно отошел от спектрума и неплохо подзабыл его железо. Не хочется тратить время в пустую и искать какие-то материалы по железу, поэтому прошу вас - если у кого на примете есть приличная дока по железу спека (в формате html, doc, txt) или ссылки на ресурсы по теме - поделитесь, поможете поекту. Я когда-то здесь видел такую доку, но не могу вспомнить, что это было и где.

Если у вас есть предложения или соображения по теме, высказывайте их здесь, я готов вести диалог.

проф
01.05.2007, 09:21
предложения конечно есть например побольше автоматизации(если это ваще возможно) т.е типа щёлкешь на скл и сразу появляется бут. есть и вопросы. где скачать твой эмулятор денди? и наконец третье хоть может оно чуть не в тему. нигде не встречал караоке плейера на яве который файлы кар поддерживает

Sinus
02.05.2007, 19:49
если у кого на примете есть приличная дока по железу спека
когда писал свой муль, задавался точно таким же вопросом, но в нете ничего нормального не находил, а по дискеткам (реальным) рыться лень очень.

по z80 проще посмотреть код boo_boo с его z80ex (есть на сорсфоржде, не помню точно где, и у меня в эмуле тоже в архиве лежит).
эмуляция точная на 100% (ладно, может чего не протестили до конца, 99.999% :) )
код простой и понятный.

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

ВГшка опять же, самая лучшая у SMT. но код ужасный - без пол-литра не разобратсо.

Dr.Lion/RSM
02.05.2007, 23:30
когда писал свой муль
Извини за необразованность, но как называется твой эмуль и где можно посмотреть его исходники?

AY - там вроде всё просто. тем более что если реальный звук не генерить, а как-то через midi изголяться, то наверное никто тебе не помощник.
Естетсвенно, здесь мне никто, кроме автора конвертера PSG > MIDI не поможет ибо нет нигде эмуляции AY через MIDI. НО! Сейчас я дописываю новую версию Nescube, в которой эмуляция APU через миди звучит очень даже хорошо, а при подборке специальных инструментов MIDI, даже лучше и естественней оригинала. Впрочем у дендиевского APU есть один существенный плюс - на логическом уровне его каналы не смешиваются и не влияют на звучание друг-друга, чего не скажешь про AY. Но думаю простейшую пищалку для звуковых эфектов в играх сделать можно.

Плохо что никто не может подсказать литературы. С таким положением дел эмуль будет писаться очень долго.

Sinus
03.05.2007, 12:05
как называется твой эмуль и где можно посмотреть его исходники
ZEmu, тема про него и ссылка на сорсы тут ->
http://zx.pk.ru/showthread.php?t=2480&page=17
вот точная линка на скачивание -> http://zx.pk.ru/attachment.php?attachmentid=3029&d=1144451087


Плохо что никто не может подсказать литературы. С таким положением дел эмуль будет писаться очень долго.
ну имхо lib_z80ex/opcodes/*.* будет понятнее любых доков.
только с ВГшкой наверное придётся разбираться и всё.

Dr.Lion/RSM
03.05.2007, 23:41
ну имхо lib_z80ex/opcodes/*.* будет понятнее любых доков.
Вообщем-то вопросов по эмуляции процессора z80 у меня пока нет, я уже когда-то написал одно ядро (кстати, очень короткое и классное получилось, кому интересно обращайтесь, поделюсь. Там декодирование комманд происходит на основе конкретных битов опкода, не case'ом). Вопросы именно по архитектуре спека, какие порты есть, какие биты в них за что отвечают и т.д. и т.п.

P.S. Подскажите, как связаться с key-jee. Хочу пообщаться с ним по поводу AY и MIDI. В аську написал - не отвечает!

Vitamin
03.05.2007, 23:45
я уже когда-то написал одно ядро (кстати, очень короткое и классное получилось, кому интересно обращайтесь, поделюсь. Там декодирование комманд происходит на основе конкретных битов опкода, не case'ом).
А по скорости как? Имхо выборка по таблицам процедур (как в Unreal) самый быстродействующий вариант.

Dr.Lion/RSM
04.05.2007, 00:27
А по скорости как? Имхо выборка по таблицам процедур (как в Unreal) самый быстродействующий вариант.
Я писал (и пока пишу) на яве. Там нет указателей, поэтому таблица процедур не возможна. По скорости так себе. Просто я пересмотрел уже кучу ядер Z80 и ни одного не видел, которое разбирает комманду Z80 по битам, тем самым декодируя ее и задействуя нужные для комманды узлы. Фактически напоминает аппаратную модель z80. Но это мое мнения, это же я его писал :)

Sinus
04.05.2007, 20:34
Вопросы именно по архитектуре спека, какие порты есть, какие биты в них за что отвечают и т.д. и т.п.
какой именно спек собираешься эмулировать?
есть обычный 128kb, то вроде и так всё ясно
out: #7FFD, #FD
in: #xxFD
+AY, +TRDOS

ZXMAK
04.05.2007, 23:54
AY - там вроде всё просто. тем более что если реальный звук не генерить, а как-то через midi изголяться, то наверное никто тебе не помощник.


По поводу AY на MIDI у меня была подобная разработка в одной из версий первого ZXMAK, еще до того как он появился в сети :)
Если нужно могу поискать. Код там был довольно небольшой и на удивление простые звуки проигрывались хорошо. Серьезная проблема с MIDI - огибающая, получался дрожащий звук, возможностей MIDI для нормальной имитации огибающей AY я так и не нашел :)

Еще когдато в инете видел софтину которая перегоняет файлы AY в *.MID, правда качество звука там не очень, а с огибающей еще хуже :)



ВГшка опять же, самая лучшая у SMT. но код ужасный - без пол-литра не разобратсо.

По поводу ВГ, можешь посмотреть ZXMAK.NET, я искал оптимальное и красивое решение на основе реализаций ZXMAK и Unreal. В версии 1.0.6.8 движок ВГ очень близок к движку Unreal, классы DiskImage и Track отличаются, они больше похожи на ZXMAK, но по смыслу сходство с Unreal есть.
Класс WD1793 - практически полная копия Unreal, с модификациями того что касается DiskImage и Track ну и размеется с рефакторингом. Заняться этим классом я планировал позже (рефакторинг, переработка алгоритма - взять лучшее из ZXMAK и Unreal и т.п.), но т.к. код в ZXMAK сложный, а текущая реализация от Unreal вполне работает я его пока не трогал :) В коде ВГ Unreal'а есть нехорошая штука, CRC считается без учета маркеров, если маркеров будет не три, то скорее всего работать будет неправильно, детально не изучал, но отметил что этот вопрос нужно проработать.

P.S.: т.к. код ZXMAK.NET на C#, думаю переделать на Java можно быстро ;)

Sinus
05.05.2007, 02:09
писал (и пока пишу) на яве. Там нет указателей, поэтому таблица процедур не возможна.
я вот думаю...
switch и 256 case-ов конечно будут тормозно работать, и никакой jit кэш их в себя не впихает, и что-то мне кажется что компилер это не сможет заоптимизить до таблицы переходов, т.е. будет тормозно по-очереди всё приверятся.

а вот есть ли в джаве делегаты функций? в .NET есть, и можно все обработчики комманд заделегировать и сделать массив делегатов.
и тогда почти указатели получаются.

статья в тему -> http://www.onjava.com/pub/a/onjava/2003/05/21/delegates.html

не окажется ли это быстрее твоего метода?

ZXMAK
05.05.2007, 02:37
Я писал (и пока пишу) на яве. Там нет указателей, поэтому таблица процедур не возможна. По скорости так себе.


Я пишу на C#, для реализации дешифратора опкодов указатели мне не понадобились, для этого есть делегаты. Уверен что в Java они тоже есть, только возможно по другому называются. Делаешь массив делегатов и вперед :v2_wink2:




Просто я пересмотрел уже кучу ядер Z80 и ни одного не видел, которое разбирает комманду Z80 по битам, тем самым декодируя ее и задействуя нужные для комманды узлы. Фактически напоминает аппаратную модель z80. Но это мое мнения, это же я его писал :)

В первых версиях ZXMAK (C++) я тоже пробовал делать дешифрацию по битам, в результате отказался от этого, т.к. после реализации недок. префиксов дешифрация стала очень-очень медленной, а код дешифрации жутко запутанным.

Добавлено через 2 минуты

Извини за необразованность, но как называется твой эмуль и где можно посмотреть его исходники?

Естетсвенно, здесь мне никто, кроме автора конвертера PSG > MIDI не поможет ибо нет нигде эмуляции AY через MIDI. НО! Сейчас я дописываю новую версию Nescube, в которой эмуляция APU через миди звучит очень даже хорошо, а при подборке специальных инструментов MIDI, даже лучше и естественней оригинала.

я когдато делал эмулятор AY через MIDI (на C++), звучал не то чтобы очень хорошо, а по другому, приятнее, но не так как настоящий AY :biggrin:
С MIDI проблема реализовать огибающую AY'ка :v2_neutr:

Dr.Lion/RSM
05.05.2007, 14:21
какой именно спек собираешься эмулировать?
Собираюсь эмулировать Pentagon 128 + TR-DOS (очень упрощенно) + AY (через миди) + Kempston Joystick + Keyboard (как нибудь извращенно). Но речи о мультиколорах пока быть не может, да и бордер не собираюсь эмулировать.

По поводу AY на MIDI у меня была подобная разработка в одной из версий первого ZXMAK, еще до того как он появился в сети
Если нужно могу поискать. Код там был довольно небольшой и на удивление простые звуки проигрывались хорошо. Серьезная проблема с MIDI - огибающая, получался дрожащий звук, возможностей MIDI для нормальной имитации огибающей AY я так и не нашел
Поищи пожалуйста исходники. Я C++ пока только изучаю, но при желании разберусь, все таки уже работал с MIDI. Про сложности с огибающей я прекрасно знаю. Причем не столько сложно подобрать инструмент для огибающей, сколько сложно повторить "наложение огибающей на тон и шум".

По поводу ВГ, можешь посмотреть ZXMAK.NET... код ZXMAK.NET на C#, думаю переделать на Java можно быстро
Если не сложно, дай ссылку на исходники. В C# не соображаю, но раз ты говоришь, что есть сходство с явой, то возможно разберусь.

В коде ВГ Unreal'а есть нехорошая штука, CRC считается без учета маркеров, если маркеров будет не три, то скорее всего работать будет неправильно, детально не изучал, но отметил что этот вопрос нужно проработать.
Я собираюсь поддерживать только TRD и SCL. На сколько я знаю, там заморачиваться с CRC и всякими маркерами не нужно. просто читать сектора через сэмулированные порты. Соблюдать временные параметры и тактировку для ВГ93 тоже считаю излишним, думаю должно работать и так.

switch и 256 case-ов конечно будут тормозно работать, и никакой jit кэш их в себя не впихает, и что-то мне кажется что компилер это не сможет заоптимизить до таблицы переходов, т.е. будет тормозно по-очереди всё приверятся.
У меня в Nescube эмулится проц 6502. Там около 150 комманд. Я б не сказал, что там CASE работает медленно. К тому же, в будущем эмуле спека есть одна хитрость. например основной набор в 256 комманд разбивается на три набора в соответствии с длиной комманды в байтах (1-3 байта). Таким образом 256 комманд уже деляться на три SWITCH. Для однобайтной комманды срабатывает один SWITCH, для двухбайтной - два SWITCH и т.д.

а вот есть ли в джаве делегаты функций? в .NET есть, и можно все обработчики комманд заделегировать и сделать массив делегатов.
и тогда почти указатели получаются.
Ничего подобного я в яве не видел. Я пересмотрел очень много разных интерпретирующих эмулей (в том числе и ZX) на яве и везде используется (в той или иной форме) SWITCH...CASE.

В первых версиях ZXMAK (C++) я тоже пробовал делать дешифрацию по битам, в результате отказался от этого, т.к. после реализации недок. префиксов дешифрация стала очень-очень медленной, а код дешифрации жутко запутанным.
Скорость действительно не самая быстрая. Когда я писал это ядро, я хотел именно сократить длину одного большого SWICH'а,и думая что скорость перехода в нужную ветку зависит от количества CASE. Как оказалось, я ошибался. Скорость не зависит. А мое ядро оказалось даже медленнее, чем построенное на SWITCH...CASE и функциях ядро MobileZX. Поэтому я оставил это ядро для лучших времен. Его алгоритм можно будет применить в тех проектах, где важен размер кода и не так важно быстродействие. Но ядро именно крассивое, не какой-то там безконечный SWITCH.

Sinus
05.05.2007, 19:00
Ничего подобного я в яве не видел. Я пересмотрел очень много разных интерпретирующих эмулей (в том числе и ZX) на яве и везде используется (в той или иной форме) SWITCH...CASE.

тут http://www.onjava.com/pub/a/onjava/2003/05/21/delegates.html написано про делегаты на яве

psndcj
05.05.2007, 20:31
у моего бро key-jee новая аська - правда он ее редко читает =( стукнись ко мне в аську - я тебе скажу номер (у меня не получается стукнуться в твою из-за нового движка форума). ну и при встрече ему скажу о твоем проекте...

проф
13.06.2007, 17:33
и чёто тема заглохла а хоцца на своём сонерике к 750 хороший эмуль иметь

Dr.Lion/RSM
28.06.2007, 16:06
Сейчас дописываю ядро эмуляции Z80. Как показывает жизненный опыт, завести такое достаточно объемное и сложное ядро с первого раза врятли получится, где-то все равно будут ошибки. В связи с этим, хочу спросить "бывалых" эмуляторщиков как и на чем лучше всего отлаживать ядро Z80, чем можно проверить правильность исполнения инструкций процессора? Я слышал о такой вещи, как zexall, но понятия не имею, где его взять и как им тестить ядро. Подскажите кто что знает!

P.S. По первым моим поверхностным прикидам имею смелость заявить, что будущий эмуль ZX (текущее название PocketZX) будет работать не медленнее моего эмуля денди, т.е. расчитываю получить скорость в 30-50 FPS (железо у ZX, не смотря на Z80, проще чем у денди, а сложность Z80 заключается, в основном, в его большем количестве комманд, которое, однако, практически никак не влияет на скорость эмуляции).

Dr.Lion/RSM
01.07.2007, 00:11
Да, похоже здесь я помощи не дождусь! Очень жаль, что все такие безразличные!

P.S. Собрал простейшую версию эмуля, видео работает, проц на каких-то коммандах вылетает в нирвану, zexall на белом экране ничего не показывает.

проф
02.07.2007, 13:07
обратись в личку к кому нибудь, например к Кладову

Error404
02.07.2007, 14:22
Некоторые эмуляторы умеют сохранять дамп выполненных Z80 команд (и регистров). IMHO простейшим способом отладки был бы режим аналогичного дампа в Вашем эмуляторе и просто сравнение по содержимому (например, в ТоталКомандер) двух текстовых простыней: полученных при выполнении zexall (или другого кода) на Вашем и на эталонном эмуляторах.

Dr.Lion/RSM
02.07.2007, 23:30
Некоторые эмуляторы умеют сохранять дамп выполненных Z80 команд (и регистров).

Не мог бы кто-нибудь подсказать названия этих эмуляторов?

psndcj
03.07.2007, 22:49
касаемо кода выполняемого - я мог бы подсказать чтонить... хотя вроде вся информация давно открыта...

Error404
04.07.2007, 17:43
Не мог бы кто-нибудь подсказать названия этих эмуляторов?

Либо Unreal, либо эмулятор Кладова. Не помню точно который из них, запомнилось только, что с полгода назад кто-то из авторов оного эмуля проявился здесь на форуме и сказал про отладку в подобной ситуации то, что я и предложил Вам (мол, "мой эмулятор умеет сохранять простынь команд - берите и сравнивайте").

Dr.Lion/RSM
20.07.2007, 22:39
PocketZX - эмулятор домашнего 8-ми битного компьютера ZX-Spectrum, некогда имевшего бешенную популярность, под который написаны тысячи разнообразных программ игрового и прикладного характера. Данный эмулятор позволит ваше J2ME-устройство (телефон) превратить на время в некий "карманный" вариант легендарного компьютера.

В эмуляторе реализованы следующие узлы и компоненты компьютера ZX-Spectrum:

- центральный процессор Z80 (с некоторыми упрощениями *);
- видеосистема конфигурации ZX-128 (две экранные области, 192x256);
- память по стандарту ZX-128 объемом 48-128Кб (поддерживается неполная дешифрация порта 7FFD);
- постоянная память: 2 банка по 16Кб (Basic48 и Basic128);
- различные стандарты джойстиков: Kempston, Sinclair I, Sinclair II, QAOPSp, Cursor, Dizzy series **.
- цветная рамка вокрук экрана (Border), однако не поддерживаются различные бордерные и мультиколорные эффекты.

Сайт проекта: http://rsm.pud.ru

Sinus
21.07.2007, 01:36
я только вчера купил телефон с явой, так что ещё не совсем в курсе как да что надо делать.
заливаю туда jar - пишет "Invalid Application".
может ему ещё что-то надо?

проф
26.07.2007, 08:43
Погонял ,тормозит , и главное блин звука нету (но в общем то тормозит не сильно) эх ему бы звук бы хотя бы и 48К

John North
26.07.2007, 10:00
PocketZX - эмулятор домашнего 8-ми битного компьютера ZX-Spectrum
на SE k790i работает на ура !!!


эх ему бы звук бы хотя бы и 48К
полностью согласен.

проф
26.07.2007, 12:23
у меня К750 но вообщето считается что у К790 ява быстрее кстати сам создатель его на К700 тестил

Dr.Lion/RSM
27.07.2007, 21:09
Какого 48к вам не хватает? эмулятор реализует как конфигурацию 128к так и 48к. в чем проблемы? снапшоты версий 48к и 128к открываются без проблем. а вообще я поражен тем фактом, что люди, сидящие на этом тематическом форуме безразлично относятся к этому эмулятору. разве есть нормальные аналоги на j2me? или у всех смарты и кпк? ну да ладно, буду развивать этот эмуль чисто для себя, для личного пользования. а вы ждите "нормального" эмулятора.

Drew
28.07.2007, 19:11
отличное начало, долго ждал когда появиться нормальный эмуль

Dr.Lion/RSM, надеюсь, что несмотря на такие отзывы в начале работы, ты не забьешь на PocketZX, и будешь его делать не только для личного пользования ;-)

да, забыл уточнить тестил на SE W810, скорость при Frame skip = 4 колеблется около 40 fps, что вполне достаточно

буду ждать новую версию

Sinus
29.07.2007, 03:48
Я так и не получил ответа на свой вопрос.
Можно ли (и если можно, то как) запустить эмуль на Nokia 6080 ?

psndcj
29.07.2007, 06:34
Dr.Lion/RSM - молодец!!! то, что ты делаешь - круто!!! (наверно)
просто у мну Nokia N-Gage - там ява только первая и какая-то неполная (имхо) - поэтому посмотреть никак не могу (а жена телефон свой не дает =) )...

John North
29.07.2007, 12:26
Уже который день этот эмуль гоняю! Рулеззз! Приходится иногда маленько его притормаживать:). Спасибо!!!

Dr.Lion/RSM
29.07.2007, 18:28
Sinus, я понятия не имею что это за нокия, о которой ты говоришь, как она выглядит и тем более почему на ней не запускается эмулятор. Этих нокий как го..на развелось. Я еще в N-серии немного разбираюсь, а в этих 4-хзначных индексах...

daniel
30.07.2007, 12:50
на Motorola С650 будет работать (128*128, Java 2.0)?

Striker
30.07.2007, 13:43
на Motorola С650 будет работать (128*128, Java 2.0)?


Я пробовал поставить - тормоза и абсолютно нечитаемо/ Хотя эт телефон такой, тут автор не виноват. А ему мегареспект ваще то.. Вот если б он ещё и 3бит 2 доделал ;)

проф
30.07.2007, 17:48
да звук 48к я имел в виду, эмуль то крут (скорость я думаю от явы зависит), звук охота и всё пучком будет

проф
14.09.2007, 14:16
и чё то ничего и тишина

Dr.Lion/RSM
17.09.2007, 11:01
Над PocketZX я работаю потихоньку, есть изменения и нововведения, однако они не такие уж значительные. Хочу реализовать TR-DOS, однако я уже напроч забыл как он работает. Инфа по коммандам ВГ'шки у меня есть, однако я не помню, как сам контроллер взаимодействует с системой, вчастности при каких условиях ROM TR-DOS подключается, а при каких отключается. Смотрел исходники других эмулей - там все накручено, сложно и не понятно, для моей простенькой реализации работы с *.trd дисками оно не подходит. Так что если кто знает, где можно почитать и восполнить мои пробелы - не поленитесь, укажите мне на источник.

P.S. А вообще, вероятней всего PocketZX не будет существовать, как отдельный продукт, а будет входить в состав моего мультиплатформенного эмулятора для J2ME.

Sinus
18.09.2007, 01:07
при каких условиях ROM TR-DOS подключается, а при каких отключается. Смотрел исходники других эмулей - там все накручено, сложно и не понятно

не те значит исходники смотрел :)



bool C_TrDos::OnReadByte(Z80EX_WORD addr, bool m1, Z80EX_BYTE &retval)
{
if (m1)
{
if ((addr & 0xFF00)==0x3D00 && (dev_mman.port7FFD & 0x10)) trdos = true;
else
if (addr > 0x3FFF) trdos = false;
}
....


т.е. в цикле M1 при чтении байта (т.е. когда читается код комманды) если старшая половина адреса == 0x3D то TRDOS включается.
если комманда читается не из пзу, то TRDOS выключается.
важно не забыть, что если активна страничка 128-го бейсика, то TRDOS не включается.

Dr.Lion/RSM
18.09.2007, 11:18
важно не забыть, что если активна страничка 128-го бейсика, то TRDOS не включается.
Вот это и есть мой пробел. Спасибо, Sinus, доступно объяснил, буду внедрять. И еще у меня такой вопрос: Будет ли работать прошивка TR-DOS, если контроллер beta128 будет не реализован (фактически будет отсутствовать), или будет происходить зависание компьютера? Вопрос конечно немного не корректный, т.к. схема управления включением прошивки TR-DOS относится к самому контроллеру beta128, но все же?

Sinus
18.09.2007, 13:32
т.е. поставим вопрос так - будет ли работать прошивка TRDOS-а если не реализована ВГшка (т.е. запись в порты 0xFF 0x7F 0x1F 0x3F и 0x5F не приводит ни к чему, а чтение из них даёт например 0)
да, будет.

проф
18.09.2007, 18:02
а как со звуком то уж очень хоцца

sq/skrju
29.11.2007, 22:47
dr.lion, огромное спасибо за отличный эмулятор. всё замечательно, если бы не одно "но" - почему-то очень сильно тормозит на samsung'ах (может быть это действительно проблема тела, которую софтово никак не решить - я не знаю). конкретно проверялся на d780 и d700.

mooncats
20.12.2007, 13:02
Ну что, когда там ждать новой версии эмулятора, и какие конкретно продвижения будут в ней? На аську мне не ответили, с сайтом у вас что-то, того. А так хочется побыстрее :) Стоит ли расчитывать на новогодний подарок в виде свежего PocketZX? ;)

Alex_kapfa
21.12.2007, 18:15
Доброго всем времени суток. Сайт автора описываемого здесь эмулятора сейчас на реконструкции, поэтому обращаюсь к автору эмулятора или тем, кто его уже скачал, с просьбой выслать эмулятор мне на e-mail

Dr.Lion/RSM
30.01.2008, 17:50
Привет всем! Я обновил эмулятор PocketZX! Исправлены некоторые глюки, есть доступ к ФС телефона, возможность работать с ZIP/GZIP архивами, теперь в эмуляторе можно открывать z80-снапшоты. http://rsm.hocom.by - здесь написано подробнее!

Dr.Lion/RSM
08.09.2008, 19:07
Давно от меня не было новостей :) , но эта новость всем новостям новость!

Сегодня за пол-дня портировал с C# на Java контроллер BetaDisk из эмулятора ZXMAK.NET (огромное спасибо автору) и прикрутил к своему PocketZX и оно ЗАРАБОТАЛО! Тестировал на своем журнале 3BIT, каталог диска показывается, boot загружается, загружается журнал, открываются статьи - вообщем пока все вроде работает!

Я серьезно опасался на счет скорости низкоуровневой эмуляции ВГ'шки в своем эмуле, но ее вполне достаточно! Теперь необходимо решить две проблемы: очень долгий старт эмуля во время инициализации объекта BetaDisk и нехилый расход памяти на все это дело (все же эмуль для мобилок). Что же, есть что пооптимизировать...

Так что эмуль теперь потихоньку обретает серьезные возможности ;)

daniel
09.09.2008, 06:28
Запрошенная страница http://rsm.hocom.by не найдена на этом сервере, потому что домен rsm.hocom.by не указывает ни на один виртуальный сервер. Если Вы являетесь владельцем этого домена, то Вы можете узнать, как настроить Ваш Хостинг Обыкновенный, в разделе FAQ. Пожалуйста, обращайтесь к администратору по адресу [email protected].

Dr.Lion/RSM
09.09.2008, 11:18
daniel, ну и? Сайта уже три месяца нет по тому адресу, к чему ты тут цитируешь сообщение хостера? Разве я говорил "айда ко мне на сайт, новая версия эмуля вышла!"? На платформе J2ME сейчас насчитывается приблизительно три эмуля спека, и один из них "подружился" с TR-DOS'ом - об этом и было сообщение.

WtrDos
09.09.2008, 11:36
Если проблемы с хостингом, могу дать место на trdos.ru, всё равно пока пустует.

Dr.Lion/RSM
09.09.2008, 12:06
WtrDos, проблем нет. У меня есть оплаченый хостинг. Просто сайт еще не готов. Эмуль тоже, впринципе, еще далеко не готов. Сейчас вот пытаюсь связаться с автором ZXMAK.NET, надо переговорить по некоторым вопросам.

Mad Killer/PG
16.09.2008, 01:38
Dr.Lion/RSM, С нетерпением жду пробной версии ! Спасибо за разработку,этого эмулятора очень не хватает моей моторолке!

daniel
17.09.2008, 05:36
daniel, к чему ты тут цитируешь сообщение хостера? извини, а где-то проскакивало что сайт не работает? может здесь выложишь последнюю версию?:v2_conf2:

Dr.Lion/RSM
17.09.2008, 11:19
Последняя версия - 0.2, и она есть в инете. Новая версия, о которой я здесь веду речь, пока не готова. Сейчас усиленно работаю над ней, есть определенные баги, которые пытаюсь исправить, тестирую движок (не все открывается с дискет), оптимизирую, дописую новые возможности... так что работа кипит!

daniel
17.09.2008, 13:08
а звук будет?

Dr.Lion/RSM
18.09.2008, 17:29
Люди! Не могу нигде найти zexdoc для теста эмуляции Z80! Нужен именно zexdoc! Если у кого есть возможность, выложите здесь, буду признателен! Желательно в формате sna. Но если не будет в sna, то можно и в z80, scl или trd.

daniel
19.09.2008, 06:13
значит не будет. понял. отстал.

WtrDos
19.09.2008, 11:13
daniel, вот выложил для тебя.
Если с телефона, то wap.trdos.ru, снизу ссылка "PocketZX 0.2 alpha".
Если с компа - pocketzx02_alpha.jar (http://wap.trdos.ru/pocketzx02_alpha.jar)

Raydac
19.09.2008, 12:24
а как там с выводом графики работаешь? просто пиксели отрисовывешь на Graphics или хитрыми методами? а то глянул на Nokia эиуляторе, че то очень медленно

Mad Killer/PG
19.09.2008, 13:41
Запуск прошол успешно,даже скорость была в районе 25 фпс.ТырДос тоже пашет.Как думаеш реализовать ввод с клавы?

Dr.Lion/RSM
20.09.2008, 19:52
Mad Killer/PG, ты кому пишешь и о чем? Если мне и о эмуляторе PocketZX 0.2, то там нет ТырДоса, ты что-то путаешь!

Mad Killer/PG
20.09.2008, 20:29
Dr.Lion/RSM, тебе конечно ;-) ты же автор ну ТырДос имеется ввиду заход в меню ТРДоса с курсорчиком;)И ещё какие нормальные(для комфортной работы ФПС 50 ?).

Dr.Lion/RSM
23.09.2008, 17:29
а как там с выводом графики работаешь? просто пиксели отрисовывешь на Graphics или хитрыми методами?
Все рисую в ARGB массив, потом через Graphics.drawRGB() вывожу на экран. Это, пожалуй, пока самый быстрый способ для J2ME.


Как думаеш реализовать ввод с клавы?
Пока точно не знаю, хотелось бы услышать здесь ваши идеи.

Реализовал поддержку часов, 32 Кб кеша (кстати, в какой из двух банков кеша происходит переход по MAGIC'у???), подправил некоторые мелочи, взялся делать звук... это ужас! И звучит очень хреново, и скорость эмуляции сильно падает, и невозможно реализовать нормально... Вообщем, сижу жду, когда мне товарищ Макеев пришлет обещанные им исходники эмуляции AY на MIDI. Обещал прислать еще на прошлой неделе...

Raydac
23.09.2008, 19:30
скачал renegade и запустил на Nokia 6230 (128 на 128 точек дисплей). игра идет где то 2-3 fps , игра визуально смотрится весьма странно (если не играл то понять что к чему нереально) и начинается почему то не с начала а с мотоциклистов.

проф
23.09.2008, 20:07
а она и есть с мотоциклистов этож таргет ренегат

Raydac
23.09.2008, 20:09
а она и есть с мотоциклистов этож таргет ренегат

тогда понятно, а то там на экране такая мешанина что всё что связано с меню и стартовой картинкой - вообще не читабельно

daniel
24.09.2008, 05:28
скачал renegade и запустил на Nokia 6230 (128 на 128 точек дисплей). игра идет где то 2-3 fps , игра визуально смотрится весьма странно (если не играл то понять что к чему нереально) и начинается почему то не с начала а с мотоциклистов.

на 6230i (208x208) вполне нормально, экран бы побольше, да звук... короче мобила нужна с очень быстрой явой и 320 на 240 экраном.

Dr.Lion/RSM
24.09.2008, 12:11
всё что связано с меню и стартовой картинкой - вообще не читабельно
Пробовал изменить масштаб картинки? Подвигать туда-сюда, повернуть (хотя на квадратном экране поворачивать без толку)? А вообще, ты нашел не лучший телефон для запуска эмуляторов (с экраном 128х128 и слабым процессором результат можно было предугадать), я удивляюсь, как эмуль на нем вообще запустился.


игра идет где то 2-3 fps
Можно, например, сравнить с MobileZX или ReadPlayZX, здесь мои комментарии излишны.


начинается почему то не с начала а с мотоциклистов
Мало того, игра может начаться с последнего уровня. Ты же запускаешь снепшот, где его записали, оттуда и продолжится работа программы! Могу лишь посоветовать найти более "удачный" снепшот. В будущей версии будет TR-DOS, так что там таких вопросов не возникнет.


экран бы побольше, да звук... короче мобила нужна с очень быстрой явой и 320 на 240 экраном.
На счет экрана и явы ты прав. На счет звука я писал выше. Ввиду его (звука) дерьмовости, возможно, его вообще не будет.

проф
24.09.2008, 13:46
а звук то нуууужен.... Хочууууу......

Mad Killer/PG
24.09.2008, 14:29
У меня мото е2,линукс стоит,экран 240 на 320,проц на штатных частотах в среднем от 100 до 300,могу гнать до 600 мгц,в общем звук как отключаемый параметр должен быть.
1.Клавиатура,думаю.Разбить по групах на 10 кнопок по решотке,плюс эмуляция всех джойстиков и мыши на джой телефона или кнопоки(у кого как).Остальное- стандартное окно ввода.

Raydac
24.09.2008, 15:06
мне кажется, что звук врядли на j2ME удастся выдать, так как прямого доступа нет к проигрывателям, а на лету формировать MIDI и играть конечно можно, но если учесть что на той же Motorola проигрыватель где то через полсекунды врубался, то неочень прикольно будет

Mad Killer/PG
24.09.2008, 15:59
Raydac, согласен на 100 процентов,но почитать журналчик как0й-то подойдёт, насчёт демо то да,уж извините, тут на Компе с этим проблемы,не говоря уже о телефоне.И вообще это второстепенная задача,по мере сил так сказать.Имхо.

Dr.Lion/RSM
24.09.2008, 23:17
мне кажется, что звук врядли на j2ME удастся выдать, так как прямого доступа нет к проигрывателям, а на лету формировать MIDI и играть конечно можно, но если учесть что на той же Motorola проигрыватель где то через полсекунды врубался, то неочень прикольно будет
Советую ознакомиться с эмулятором Nescube, там реально работает звук через миди. Для доступа к миди-устройству использую компонент MIDIControl (однако, его поддерживают не все телефоны). Так что никакие миди-композиции не формируется, комманды поступают на midi в реальном времени. На нескубе это звучит более-мение сносно, на PocketZX - пока отвратительно.


Raydac, согласен на 100 процентов,но почитать журналчик как0й-то подойдёт, насчёт демо то да,уж извините, тут на Компе с этим проблемы,не говоря уже о телефоне.
Я на эмуле уже пересмотрел все демки с Enlight'96/97, Funtop'98, большинство из них работают вполне корректно (за исключением мультиколорных эффектов). В эмуле есть такая фишка - Double screen filter - которая убирает мелькание "двуэкранных" картинок, с ней нормально можно смотреть демки на большом Frame Skip'е.
Читать журналы, играть в игрушки, даже программировать вполне реально (конечно надо реализовать нормальную работу с клавиатрой). Именно на это и нацелен данный эмуль. Т.е. 100% совместимости не будет (на это просто не хватит быстродействия телефона), но самые главные моменты zx-hardware эмулятся на уровне, достаточном для нормальной работы основной массы софта.

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

Mad Killer/PG
25.09.2008, 01:06
Дай затестить хоть,чи шо ,скинь куда нибудь,а ссылку можно в личку,порядочность гарантирую;-)Ну бо гаплик,я таки думав,що це неможливо,феноменально !

проф
26.09.2008, 13:46
Говорят что в сонерике К850 есть ещё более усовершенствованная ява ? Если это так , то никаким ли боком нельзя ли начать ориентироваться на неё при написании новых версий эмуля ? ЗВУК БЫ НЕ ГРЕХ.....

Mad Killer/PG
03.10.2008, 17:23
Есть ли новости? Я тут подумал,если у тебя выйдет ау звук может сделаеш мидлет ау трекер,как бы отдельный ?

PhoeniX
01.11.2008, 14:49
Dr.Lion/RSM,как успехи в разработке данного эмуля?

Dr.Lion/RSM
05.11.2008, 10:54
Пока отложил этот эмуль и переключился на Nescube (именно на этом эмуляторе я развиваю свою платформу - J2ME Emulation framework - и потом под нее перестраиваю движки других эмуляторов).

Raydac
05.11.2008, 22:53
именно на этом эмуляторе я развиваю свою платформу - J2ME Emulation framework
вроде как Sun озвучивал тему что будет закрывать Java2ME, которую заменит JavaSE, так как девайсы сильно выросли в возмложностях и теперь могут работать и на SE версии

проф
06.11.2008, 09:46
дык и я о том же выше писал. На SE К850 вроде уже она.

Dr.Lion/RSM
06.11.2008, 12:04
вроде как Sun озвучивал тему что будет закрывать Java2ME, которую заменит JavaSE, так как девайсы сильно выросли в возмложностях и теперь могут работать и на SE версии
Бред сивой кобылы! Зачем же тогда тот же Sun сейчас разрабатывает Java ME SDK (основанный на Netbeans + PhoneME)? Для работы SE версии необходимы девайсы на порядок быстродействинней! KVM вон на единичных девайсах работает быстро (и то с приминением AOT или Jazelle), а для полноценной VM нужен нехилий комп! Так что мобильные девайсы пока нервно курят в сторонке :)


дык и я о том же выше писал. На SE К850 вроде уже она.
На сайте Sony Ericsson есть документация по Java на их девайсах. Следуя тому, что там написано, в SE K850 и не пахнет J2SE!

проф
06.11.2008, 12:46
Про К-850 возможно, но чем то он вроде именно в ЯВЕ от остальных отличается.

abelenki
27.01.2009, 12:26
раньше пробовал этот эмулятор на Motorola V3x. работал, но очень медленно.

недавно купил телефон Motorola V9, у него процессор - более 500Mhz. думал, протестирую PocketZX на этом телефоне.

эмулятор загружается, даже сбрасывается в режим BASIC 128, курсор и меню работают. но!! при нажатии на левую софт-клавишу (видимо, там меню, через которое можно выбрать загрузку sna/z80-файлов), эмулятор намертво виснет.

p.s.: количество FPS - 20-22 в BASIC 128.

подскажите пожалуйста, как с этим бороться.

Dr.Lion/RSM
28.01.2009, 11:19
abelenki, по поводу зависания на Motorola V9 ничего сказать не могу, надо смотреть на реальном устройстве, которого у меня нет под рукой. Что касается FPS, то для телефона с процессором 500 МГц он весьма низкий, на уровне SE K700, у которого процессор 112 МГц (!). Это говорит лишь о том, что моторола так и не научилась делать нормальные Java Virtual Mashine.

Raydac
28.01.2009, 11:22
Это говорит лишь о том, что моторола так и не научилась делать нормальные Java Virtual Mashine.
мотороловские еще относительно неплохие JVM, но SE конечно в этом плане лучше всех.. но видать твои слова прочитали в моторе и они уволили весь свой мобильный отдел (85 человек) в питере

abelenki
28.01.2009, 11:53
abelenki, по поводу зависания на Motorola V9 ничего сказать не могу, надо смотреть на реальном устройстве, которого у меня нет под рукой. Что касается FPS, то для телефона с процессором 500 МГц он весьма низкий, на уровне SE K700, у которого процессор 112 МГц (!). Это говорит лишь о том, что моторола так и не научилась делать нормальные Java Virtual Mashine.

ясно, спасибо за информацию. а вообще, какой клавишей вызывается меню в PocketZX?

Dr.Lion/RSM
29.01.2009, 11:42
но видать твои слова прочитали в моторе и они уволили весь свой мобильный отдел (85 человек) в питере
Не думаю, что мои слова для них так авторитетны :)


какой клавишей вызывается меню в PocketZX?
Этой версии уже больше года и я не помню что там и как, но вроде меню вызывалось по нажатии какой-то из софт-клавиш. Возможно, с новой версией эмуля на твоем телефоне дела будут получше, там весь интерфейс рисуется програмно.

abelenki
29.01.2009, 11:45
Этой версии уже больше года и я не помню что там и как, но вроде меню вызывалось по нажатии какой-то из софт-клавиш. Возможно, с новой версией эмуля на твоем телефоне дела будут получше, там весь интерфейс рисуется програмно.

ясно, спасибо. с нетерпением жду новой версии. :) а то в данный момент дома компьютера нет, единственное развлечение - мобильный телефон.

Zidann
09.02.2009, 12:40
Motorola Z6 (532мгц процесор) BASIC 128 - 45 фпс
Back to the future 3 45-70фпс
Не у всех моторол проблемы с явой =)

Dr.Lion/RSM
10.02.2009, 11:16
Не у всех моторол проблемы с явой =)
Перефразирую. Только у моторолы Z6 нет проблем с явой. Хотя мой СЕ К800 с процессором 220 МГц выдает фпс повыше, так что Z6 далеко не показатель.

Zidann
10.02.2009, 12:20
Ну при небольшом тестировании сони эрриксоны выдавали меньший фпс чем з6...
Ну да ладно , всеравно огромное человеческое спасибо за ваши труды :)
зы: а работа над nescube все еще ведется? )

Mad Killer/PG
10.02.2009, 12:34
Не только в Z6,мой разогнанный до 635 мгц E2 нормально себя чуствует:)
но вот SE конечно в яве бест.

Dr.Lion/RSM
11.02.2009, 11:16
а работа над nescube все еще ведется?
Да, ведется. Пару недель назад давал своим тестерам бета версию nescube 3.0.

ZX_NOVOSIB
19.02.2009, 14:03
Dr.Lion/RSM, огромное спасибо тебе за твои творения! ) Как я понял не исключена вероятность появления новой версии PocketZX?) Если это возможно сделай пожалуста поддержку кнопок которые у к790/800 и т.п. над дисплеем, поддержку кнопок регулировки громкости и еще поддержку кнопки камеры )) Все эти кнопки как я понял можно задействовать, например в модах миниоперы задействованы и кнопки над дисплеем и боковые кнопки громкости. В джиме от хатаба кнопкой камеры запускается всевидящее око.. Это очень актуально! Особенно если дисплей поворачиваешь и телефон боком держишь, и играешь в игру в которой надо иногда одновременно 2 и более кнопок нажимать. А джой мало того что глючит, дак еще 5-ти позиционный :-( И еще может сделаешь так чтобы клавиши програмировать можно было? Пусть даже для этого надо будет джар-архив распаковать и что-нибудь где-нибудь вручную изменить. А то например в Елите уже не поиграть.. Хотя блин, один фиг сохраняться нельзя, а Елите без сохранения это не то.. Ну короче есть много других игр где управление не стандартное..

проф
22.02.2009, 08:48
Присоединяюсь к предыдущему посту ! У самого К790...

Dr.Lion/RSM
24.02.2009, 11:12
Ваши пожелания будут учтены. Осталось только найти время и сделать все это.

USERHOME
11.03.2009, 23:38
Господа! У меня вопрос???? на сотовом телефоне JAVA эмуляторы есть? ZX-Spectrum. Посмотрите пожайлуста ссылки
http://www.i-on.ru/LabArticle/8731/ProductID1_9845/
http://ideawidgets.ru/
Первая телефон (но с клавой) экран как 240х320 ,так и 320х240 , а вторая на виджеты для этого телефона (и не только).
Так вот приурочить для начала новости от сайтов по тематике ZX (типа RRS)
используя этот ideaWidget сайт ,как конструктор.А то обидно знакомства,пиво, сиськи.... и т.д. есть ,а про ZX нет ничего. Пройдя по ссылочкам ,сразу голова сообразит,что надо делать.

Dr.Lion/RSM
14.03.2009, 19:57
USERHOME, ты темой не ошибся?

abelenki
18.03.2009, 07:11
Господа! У меня вопрос???? на сотовом телефоне JAVA эмуляторы есть? ZX-Spectrum. Посмотрите пожайлуста ссылки
http://www.i-on.ru/LabArticle/8731/ProductID1_9845/
http://ideawidgets.ru/
Первая телефон (но с клавой) экран как 240х320 ,так и 320х240 , а вторая на виджеты для этого телефона (и не только).
Так вот приурочить для начала новости от сайтов по тематике ZX (типа RRS)
используя этот ideaWidget сайт ,как конструктор.А то обидно знакомства,пиво, сиськи.... и т.д. есть ,а про ZX нет ничего. Пройдя по ссылочкам ,сразу голова сообразит,что надо делать.

откуда, интересно, берутся такие аутисты на этом форуме??

abelenki
21.04.2009, 09:53
хочу обратить ваше внимание на ещё один эмулятор для J2ME - MobileZX-0.8.60:

http://mobilezx.sourceforge.net/

* эмулирует только ZX Spectrum 48K
* без звука
* поддерживает только снэпшоты в формате .sna

по всем параметрам он конечно уступает PocketZX, но зато я смог запустить его без проблем на своей Motorola V9 (в отличие от PocketZX), что не может не радовать. ;) перед установкой подписал его сертификатом, чтобы появился доступ к файловой системе. работает неплохо, правда, некоторые игры не запускаются. скорость - 50-60%.

Uporot
10.04.2010, 00:09
А я попробовал собрать эмулятор Qaop для j2me, получилось так: http://rghost.net/1348161 - если кому-то не лень, то потестируйте на своих телефонах. Покажет число после sleep, которое мне и надо, отпостите его мне. Если оно в плюсе - значит хорошо, система успевает, если в минусе - часы спектрума идут медленней реальных часов и аппарат не тянет нагрузку.

Скажу сразу, вы тут не поиграете, так как я выстрег практически все, включая обработку портов и отрисовку экрана с бордюром. Проблема в том, что на моей нокии даже это будет тормозить, поэтому на дальнейшее пока забил. Если у кого-то будет результат в районе 200, то можно продолжить извращение

ReDmit
10.04.2010, 00:31
эмулятор Qaop для j2me, получилось так: http://rghost.net/1348161
Nokia N95: при попытке установки QaopMobile.jar выдал "Приложение не совместимо с телефоном". ((

Uporot
10.04.2010, 01:21
ReDmit, старые телефоны не знают профиля MIDP2.1, от чего и отказываются ставить приложение, но оно и не нужно в данном случае, вот с другим профилем: http://rghost.net/1348576

ReDmit
10.04.2010, 12:14
Uporot, запустил.
redraw стал расти от 0 до пока устанешь ждать (вырубил приложение на ≈5000);
x=0,y=0,w=0,h=0
info аналогично redraw (примерно те же показания)
not sleep скачет от -18 до -35

Uporot
11.04.2010, 03:35
> not sleep скачет от -18 до -35

Аналогично и у меня. Если бы был 0, то значит часы спектрума == часам телефона, если бы больше - спектрум можно отправлять на некоторое количество микросекунд в спячку, дабы часы выровнять, а если в минусе... Ну не осиляет оно

ReDmit
11.04.2010, 10:12
В догонку, Nokia 6303: not sleep от -7 до -45 - тоже в пролёте ((
К сожалению, нет под рукой сонерика на A100/A200 - там ява сильно пошустрее должна быть...

Dr.Lion/RSM
12.07.2010, 20:55
Открыл исходники PocketZX 0.2, вдруг кому будет интересно на их основе создать нечто свое, пока у меня нет времени заниматься ZX тематикой. Адрес сайта - http://rsm.org.ua

Uporot
17.07.2010, 09:58
Открыл исходники PocketZX 0.2, вдруг кому будет интересно на их основе создать нечто свое, пока у меня нет времени заниматься ZX тематикой. Адрес сайта - http://rsm.org.ua

Укажи лицензию на использование кода, можно ли закрывать патчи, использовать в коммерческих проектах и так далее. Если предоставляешь свободное использование, то посмотри на лицензии GPL и BSD, а то "При полном или частичном использовании кода ссылка на мое авторство обязательна!" оставляет много неясного, даже непонятно, достаточно ли добавить ссылку на твой сайт в исходники, или надо будет вывести всю твою биографию на сплеш-заставке.

Я вот пилил эмулятор QAOP в качестве виртуальной машины своего проекта, дабы можно было подгружать левый код в обход подсистемы безопасности jvm, заюзал qaop так как он под GPL и меня оно устраивает