Эмулятор ZX Spectrum

...
  • В архиве sna файлы, 3д танк дуэль, наркопол и симсити
    Attachments
    SNA.7z (52.41 KiB)
    Downloaded 653 times
  • Можешь в др. архив заталкать? (tgz, tbz2, zip, rar.)

    ..bw
  • Странно, архив почемуто поврежден, вечером перезалью.
    Простите.
  • Ко всему добавил еще дандар2
    Attachments
    gamessna.rar (82.27 KiB)
    Downloaded 636 times
  • Ой, как хорошо то!
    Спасибо за эмуль!
    Albom, расскажи немного подробнее о проекте - что хочешь еще сделать, на чем делаешь и т.д. Мне интересно, т.к. сам я эмуляторщик
  • OMGWTF, зачем пустышки выкладывать?
    в будущем за такое буду закрывать тему.
  • ALLiGaToR
    Почти всё это есть в архиве, в файле readme.txt, но всё же повторюсь, ведь не все этот файл скачивают. Я хочу сделать минимальный эмулятор ZX Spectrum 48. Эмуляция процессора Z80 (опкоды в файле z80sean.txt), без поддержки звукового процессора AY, загрузка только файлов SNA (состояние регистров и образ памяти). Пишу его на fasm (писал на C, потом на С--, но потом решил, что на ассемблере будет лучше). У меня есть много исходников эмулей спектрума на С, паскале (делфи), асме, java, но просто портировать их, а тем более сдирать чужой код я не хочу. С платформой спекки я уже разобрался, составил алгоритм эмуляции, осталось лишь набрать реализацию основных команд и начать отлаживать эмуль, доводя его до работоспособного состояния. В принципе, любой может мне помочь, реализовав какие-нибудь команды. Авторство будет сохранено.
  • Тема интересная, есть и некоторый личный опыт (знаю у многих тут есть опыт отношений с Z80/i8080), если есть вопросы - спрашивай, чем сможем - поможем. Но не стоит выкладывать пустышки, с таким же успехом можно было выложить example.asm

    Кроме того не думаю что стоит зацикливатся только на 48ом и SNA образах, если только на первых порах.
  • Ghost
    Извини, что так получилось с архивом. Просто я хотел, чтобы понимающие люди могли оценить то, как я начал писать код. Будет очень обидно, если алгоритм в самом начале окажется неправильным. Дело-то для меня новое. Но если здесь принято выклатывать только 100% работающий код, то буду это правило соблюдать.

    У меня есть пока три вопроса:
    1) как лучше организовать триггеры (по 1 биту каждый) IFF1 и IFF2?
    2) как организовать задержки, чтобы запускать на процессорах с различной частотой?
    3) что это за опкоды 0x10, 0x18, 0x20, 0x28?
  • Ну не 100% но хотябы както работающий.
    1) по твоему желанию, но ИМХО байтами и быстрее и кода меньше (хотя не всегда опятьже удобно...)
    3) смотри опкоды здесь а описания здесь

    0x10
    DJNZ e
    Dec., Jump Non-Zero
    B=B-1 till B=0

    0x18
    JR e
    безусловный переход (PC=PC+e)

    0x20
    JR NZ,e
    условный переход, если ne (не равно)

    0x28
    JR Z,e
    условный переход, если z (ноль)
  • 1) Наврное быстрее все же двойными словами (32 или 64 бита :-). Сделай макросами и для работы используй только их. Если что, то не придется вносить изменения по всему коду, ограничешься 2-3 макросами (процедурами).
    2) Можно попробовать использовать rdtsc.

    ..bw
  • rdtsc не зависит от частоты, поэтому это не самая лучшая идея
  • Ну так давайте наконец-то сделаем таймеры в ядре :-P
    in code we trust
  • Как-то ведь работают платформенно-независимые эмуляторы приставок. Значит есть способ решить проблему скорости эмуляции...
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • Who is online

    Users browsing this forum: No registered users and 1 guest