Важная информация

User Tag List

Страница 2 из 11 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 109

Тема: Эмуляция ZX на J2ME

  1. #11
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

    не окажется ли это быстрее твоего метода?
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  2. #12
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dr.Lion/RSM Посмотреть сообщение
    Я писал (и пока пишу) на яве. Там нет указателей, поэтому таблица процедур не возможна. По скорости так себе.
    Я пишу на C#, для реализации дешифратора опкодов указатели мне не понадобились, для этого есть делегаты. Уверен что в Java они тоже есть, только возможно по другому называются. Делаешь массив делегатов и вперед


    Цитата Сообщение от Dr.Lion/RSM Посмотреть сообщение
    Просто я пересмотрел уже кучу ядер Z80 и ни одного не видел, которое разбирает комманду Z80 по битам, тем самым декодируя ее и задействуя нужные для комманды узлы. Фактически напоминает аппаратную модель z80. Но это мое мнения, это же я его писал
    В первых версиях ZXMAK (C++) я тоже пробовал делать дешифрацию по битам, в результате отказался от этого, т.к. после реализации недок. префиксов дешифрация стала очень-очень медленной, а код дешифрации жутко запутанным.

    Добавлено через 2 минуты
    Цитата Сообщение от Dr.Lion/RSM Посмотреть сообщение
    Извини за необразованность, но как называется твой эмуль и где можно посмотреть его исходники?

    Естетсвенно, здесь мне никто, кроме автора конвертера PSG > MIDI не поможет ибо нет нигде эмуляции AY через MIDI. НО! Сейчас я дописываю новую версию Nescube, в которой эмуляция APU через миди звучит очень даже хорошо, а при подборке специальных инструментов MIDI, даже лучше и естественней оригинала.
    я когдато делал эмулятор AY через MIDI (на C++), звучал не то чтобы очень хорошо, а по другому, приятнее, но не так как настоящий AY
    С MIDI проблема реализовать огибающую AY'ка
    Последний раз редактировалось ZXMAK; 05.05.2007 в 02:40. Причина: Добавлено сообщение

  3. #13
    Member Аватар для Dr.Lion/RSM
    Регистрация
    08.04.2005
    Адрес
    Kharkov mega city
    Сообщений
    188
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    какой именно спек собираешься эмулировать?
    Собираюсь эмулировать 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.
    Автор эмуляторов Nescube, PocketZX.

  4. #14
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ничего подобного я в яве не видел. Я пересмотрел очень много разных интерпретирующих эмулей (в том числе и ZX) на яве и везде используется (в той или иной форме) SWITCH...CASE.
    тут http://www.onjava.com/pub/a/onjava/2...delegates.html написано про делегаты на яве
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  5. #15
    Banned Аватар для psndcj
    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #16
    Master Аватар для проф
    Регистрация
    30.07.2006
    Адрес
    Рязань
    Сообщений
    636
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    и чёто тема заглохла а хоцца на своём сонерике к 750 хороший эмуль иметь
    ПЕЙТЕ ДЕТИ МОЛОКО
    МУХА ТОЖЕ ВЕРТОЛЁТ

    http://professor61.narod2.ru/
    http://cruzworlds.ru/fans/

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Member Аватар для Dr.Lion/RSM
    Регистрация
    08.04.2005
    Адрес
    Kharkov mega city
    Сообщений
    188
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  9. #18
    Member Аватар для Dr.Lion/RSM
    Регистрация
    08.04.2005
    Адрес
    Kharkov mega city
    Сообщений
    188
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, похоже здесь я помощи не дождусь! Очень жаль, что все такие безразличные!

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

  10. #19
    Master Аватар для проф
    Регистрация
    30.07.2006
    Адрес
    Рязань
    Сообщений
    636
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    обратись в личку к кому нибудь, например к Кладову
    ПЕЙТЕ ДЕТИ МОЛОКО
    МУХА ТОЖЕ ВЕРТОЛЁТ

    http://professor61.narod2.ru/
    http://cruzworlds.ru/fans/

  11. #20
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Некоторые из моих поделок тут: https://github.com/serge-404

Страница 2 из 11 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Nescube 1.2 - J2ME эмулятор консоли NES(Dendy)
    от Dr.Lion/RSM в разделе Nintendo
    Ответов: 7
    Последнее: 14.12.2007, 11:46
  2. J2ME ZX Spectrum emulator for Siemens x65
    от cbn в разделе Эмуляторы
    Ответов: 4
    Последнее: 16.08.2006, 14:25
  3. Эмуляция ТУРБО
    от Vladimir Kladov в разделе Эмуляторы
    Ответов: 19
    Последнее: 15.04.2006, 22:23
  4. конвертация и эмуляция
    от jimon в разделе Эмуляторы
    Ответов: 12
    Последнее: 25.02.2006, 21:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •