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

User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 45

Тема: Эмулятор "Вектор-06Ц" на "Dingoo A-320"

  1. #11
    Tim0xA
    Гость

    По умолчанию

    Работа над эмулятором успешно продолжается:
    1) прикрутил и допилил порты ВВ55А
    2) исправил скроллинг
    3) прикрутил клаву (пока без настройки клавиш)
    4) сделал бордюр правильной ширины (по 32 пиксела слева и справа) - и это оказалось очень удачно, т.к. вписавшись в родное разрешение динги 320 пикселов (32 + 256 +32), шустрее стал работать ресайз по вертикали и тормозов графики практически не стало
    5) прикрутил модернизированный квазидиск (пока без доступа через стек)

    Пока допиливал ВВ55А, возникли второстепенные вопросы, по которым есть противоречивая информация:
    1) Какое значение регистра РУС после RESET? (в разных источниках есть варианты 0x1B и 0x9B)
    2) Какое значение получим при чтении регистра РУС? (есть варианты 0x00, 0xFF, а у Файзуллина возвращается значение РУС, что вроде как совсем неправильно)

    Теперь по звуку - я пока совершенно не представляю, как к нему подступиться через имеющийся API dingoo_sdk. Листал исходники MAME, fMSX, A800, но подобного опыта работы совсем нет и с ходу не одевается на голову. Оттягиваю этот этап до последнего. Нужно прикрутить AY, ВИ53 и один канал ВВ55А.
    Понятно, что "там все очень просто, берешь это, пишешь так и всего-то делов", но мне бы хотелось какой-нибудь вразумительный сырец или подробное объяснение на пальцах для чайника (с дальнейшей поддержкой и помощью через приват).
    Последний раз редактировалось Tim0xA; 21.06.2010 в 15:19.

  2. #12
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tim0xA Посмотреть сообщение
    1) Какое значение регистра РУС после RESET? (в разных источниках есть варианты 0x1B и 0x9B)
    2) Какое значение получим при чтении регистра РУС?
    1. Правильнее 0x9B, т.к. команда 0x1B это будет управление битами порта С. Хотя старший бит всё равно не участвует в формировании режима.
    2. Нужно спросить реальщиков, возможно будет возвращаться состояние внутренней магистрали, т.е. последний записанный байт (неважно в какой порт или РУС).

  3. #13
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В Векторе-06цц -- 0x9B.
    Больше игр нет

  4. #14
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Нужно спросить реальщиков, возможно будет возвращаться состояние внутренней магистрали, т.е. последний записанный байт (неважно в какой порт или РУС).
    Придется как-нибудь свой вектор включить, чтобы узнать истину.

    Вообщем, издать звук оказалось совсем просто. Заполняем буфер и проигрываем. В SDK есть даже небольшой пример. Остается теперь самое главное - заполнить этот буфер корректными (и смикшированными) данными из эмулируемых аудиоустройств (AY,ВИ53,бипер).

  5. #15
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    В Векторе-06цц -- 0x9B
    В эмуляторе пришлось поставить по-умолчанию 0x88, т.к. некоторые программы при старте не инициализируют ВВ55А, полагаясь на то, что это сделает загрузчик. А так как программы грузятся непосредственно в память эмулятора, то ВВ55А оказывается неустановленным в правильный режим. Пока попалась пара таких софтин: "из старого" - Fuckbyk и одна из последних новинок "Lode Runner", в которой, похоже, палитра предустанавливается вне прерывания, до первой инициализации ВВ55А (ivagor, возьми на заметку).

    Наконец-то доделал квазидиск. Перечень запускаемых программ значительно расширился.

    Со звуком пока нет изменений.

  6. #16
    Tim0xA
    Гость

    По умолчанию

    1) "Зашил" в эмулятор загрузчик на 32кб. Осталась также возможность подключения альтернативного из файла vector.epr
    2) Добавил программирование палитры по out 0x0D-0x0F - заработал культовый АДСКОК и многое другое



    Да уж, писать свой эмулятор намного интереснее, чем наблюдать, как это делают другие (b2m, Ramiros, svofski). Хорошо, что многое обсуждалось на форуме. Перечитав некоторые темы можно почерпнуть массу полезной инфы.

    Воистину, если хочешь понять, как работает комп - напиши его эмулятор

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

  8. #17
    Tim0xA
    Гость

    По умолчанию

    Сделал загрузку из образа квазидиска *.EDD (запустил МикроДОС) и внешнего ПЗУ *.EMR, реализовал запуск *.R0M файлов (с 0-го адреса), синхронизировал обновление экрана, поправил скроллинг по результатам теста ivagora, в очередной раз подлатал ВВ55А (и подозреваю, не в последний - очень уж интенсивно используется в Векторе!), начал прикручивать контроллер дисковода - в загрузчике уже появляется дискета.

  9. #18
    Tim0xA
    Гость

    По умолчанию

    Начал лепить свой отладчик - без него дисковод никак не отладить.
    Заодно прикрутил сохранение скриншотов.

    Последний раз редактировалось Tim0xA; 26.06.2010 в 02:06.

  10. #19
    Tim0xA
    Гость

    По умолчанию

    Через полтора года после обсуждения http://zx.pk.ru/showthread.php?t=13201 пришёл и мой черед разобраться с вопросом эмуляции контроллера дисковода

    Цитата Сообщение от Ramiros Посмотреть сообщение
    с какого байта в файле распологается сектор 1 стороны 0 дорожки 0 ?
    Цитата Сообщение от b2m Посмотреть сообщение
    С нулевого.
    Между тем, в описании контроллера дисковода стороны разделяются на нижнюю и верхнюю. Причем, обращение к нижней стороне через порт 0x1C идет с индексом "1", а к верхней стороне - с индексом "0". И в образе диска с нулевого байта расположена "дорожка 0 - сектор 1 - нижняя сторона с индексом 1 (которую выше назвали нулевой). Это был очень важный нюанс

    Вообщем, в моем эмуляторе тоже заработал контроллер дисковода. Поддержка команды чтения адреса еще не доделана, но большинство образов уже грузится.

  11. #20
    Tim0xA
    Гость

    По умолчанию

    Сделал загрузку из образов *.FDD, а также автозапуск. Процессор пока ещё Z80A, но уже с растактовкой команд, соответствующей ВМ80А и с торможением согласно Векторовской системной шине. Быстродействие процессора по "Тесту устройств" уже соответствует реалу, но супертест "Vector Speed Test" ivagora выявил небольшие расхождения в 1-2 такта. Из-за этого мультиколор пока нестабилен.
    Раз пять переписывал фреймбуфер. Каждый раз кажется, что проще уже некуда, но всё-таки удается ещё оптимизировать. Хорошо, что не смотрел чужие реализации - разум не замутнен шаблонами.

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 67
    Последнее: 21.04.2021, 14:51
  2. Ответов: 95
    Последнее: 22.10.2019, 13:49
  3. Ответов: 21
    Последнее: 23.10.2009, 18:03
  4. Ответов: 18
    Последнее: 27.08.2008, 20:27
  5. Ответов: 6
    Последнее: 20.11.2007, 11:29

Ваши права

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