Pull to refresh
35
0
Антоненко Артем @creker

Пользователь

Send message
Gameboy CPU manual содержит Pan Docs наряду с другими документами. Одними Pan Docs все таки не обойдешься.
Одно время я использовал паузы, но время исполнения отдельных инструкций измерять не требуется. Ядро эмулятора крутится в бесконечном цикле. На каждой итерации я жду, пока эмулятор не произведет полное обновление «экрана», что равняется строго определенному числу тактов процессора Gameboy. Мне достаточно измерить, сколько ушло времени на эмуляцию одного полного обновления «экрана» Gameboy, а там уже делаю паузу, чтобы уложиться в 60 Гц частоту обновления.

Когда я наконец-то сделал адекватную эмуляцию звука, то получилось отказаться от ручной синхронизации (так что правильно, что не смотрели исходники), но обо всем по порядку. Объяснять все сейчас, значит пересказывать куски будущих статей. О синхронизации тоже пойдет речь, это довольно существенная проблема, особенно, когда есть звук.
Конечно можно, все таки и там и там довольно похожие процессоры, но так мы получим только эмуляцию инструкций процессора, к тому же между Z80 и процессором Gameboy есть существенные отличия. Все остальное все равно придется писать самому. Я одно время хотел так же поступить, но моей целью было получение опыта в деле эмуляции, а тут уж лучше все самому.
Закончил ИТМО как инженер по специальности информационные системы и технологии
Несмотря на то, что в мои планы переносимость не входила (как и доведение эмулятора до презентабельного состояния), я обеспокоился об отделении ядра эмулятора от всего остального заранее. По сути, наружу торчать лишь три вещи — буфер кадра, буфер сэмплов, состояние кнопок, соответственно, видео, аудио, пользовательский ввод. А уж распоряжаться ими можно как угодно.
Сложно сказать. Начал я в где-то в начале этого года. Закончил буквально неделю назад. Естественно писал я его не целыми днями, а по вечерам. Иногда делал перерыв на пару недель. Большего всего времени отняли процессор и звук. Процессор долго писать сам по себе, да и отлаживать его то еще удовольствие. Звук — коварная штука со скудной документацией, один раз пришлось переделывать с нуля из-за неудачного подхода к эмуляции. О звуке я обязательно напишу в будущих статьях.
Спасибо. Да, я использую Direct3D 9, это как раз одна из его библиотек.
12 ...
141

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity