Добро пожаловать на сайт, посвященный разработке эмулятора NES / Famicom / Dendy.
Для восприятия материалов сайта желательно иметь навыки программирования, понимания микроэлектроники и цифровых схем, а также иметь базовые представления об эмуляции.

Приятного просмотра :)

Мы на других сайтах:
   

Progress

  • 6502 schematics
  • 6502 simulation
  • compare 6502 core with 2a03 to find difference and simulate it
  • 2a03 schematics
  • 2a03 simulation
  • 2c02 schematics
  • 2c02 simulation
  • TV signal output
  • joypads simulation
  • some cartridge boards simulation
  • compare PAL versions of NES chips to NTSC
  • compare Dendy chips with NES to find difference
  • join all pieces together to have fun

10 apr 2016 - Переезд на Github

В связи с закрытием Google Code репозиторий переезжает на Github:

https://github.com/ogamespec/breaks/

Разработка проекта продолжается, но не так агрессивно, как раньше. В качестве целевой платформы окончательно выбран DotNet / C#

Из целей проекта были убраны тестирование ядра 6502 на фриварных эмуляторах (так как архитектура ядра не подходит ни для одного Open source эмулятора), а также собственный NSF player.


09 nov 2014 - Random logic

Завершена схема самой сложной части 6502 - рандомной логики и исполнительной логики (dispatch).

Схема работает в симуляторе и выполняет инструкции)

Следующий этап - проанализировать как 6502 производит управление нижней частью. Для этого нужно собрать данные какие он отправляет команды на каждом из циклов исполнения.

После чего можно объединить верхнюю часть с нижней и сделать полную симуляцию 6502.


26 oct 2014 - Полная логическая схема обработки прерываний

Завершил разбор схемы обработки прерываний. Схема включает в себя все механизмы.

Вкратце принцип работы : входные сигналы /NMI, /IRQ, /RES поступают на входные триггеры.

Для обработки прерываний дополнительно требуется схема генерации 6 и 7 циклов (так как они не поступают с декодера) (контрольные сигналы BRK6E и BRK7). Причём контрольный сигнал BRK6E начинается во время PHI2 6-го цикла и заканчивается во время PHI1 7-го цикла. Сделано это для того, чтобы определить фронт (edge) сигнала /NMI.

Определением фронта /NMI занимается классическая схема edge detect на базе двух RS-триггеров.

Сигнал /RES дополнительно сохраняется на RESET FLIP/FLOP, так как он требуется для других схем рандомной логики (в частности для особого управления контактом R/W).

Факт прихода любого прерывания отражается на флаге B, выход которого (B_OUT) принудительно заставляет процессор выполнить инструкцию BRK (код операции 0x00). Таким образом разрабочтики унифицировали обработку всех прерываний.

Последняя небольшая схема формирует адрес (или вектор) прерывания (контрольные линии 0/ADL0, 0/ADL1 и 0/ADL2), которые управляют младшими 3 разрядами шины адреса.



Архив новостей