Я использую эмулятор i8080 от begoon, на гитхабе указано. Современные RISC-процы крайне навороченные и сравнивать их производительность с тактами не совсем правильно. Та же xtensa, на которой работает ESP8266 многоконвеерная, т.е. разные конвееры занимаются выполнением различных операций паралельно. Еще и отдельный конвеер раскладывает задания. Т.ч. в зависимости даже от порядка выполняемого кода, он может выполняться быстрее или медленнее. К примеру, 1-я инструкция может помещать в память какое-то число, а 2-я инструкция может использовать эту же ячейку памяти. Так вот, без специальной команды синхронизации такое работать не будет, т.к. эти команды скорее всего будут выполняться параллельно на разных конвеерах, 1-й будет заниматься записью, второй - чтением, но при этом запись еще не будет завершена и вторая команда будет еще использовать старые данные. В общем там все сложно, просто так по тактам выполнения команды не подсчитаешь
Проц работает на 160МГц, остальная переферия на 80МГц. Это разрешенный штатный максимум. Видео генерируется не совсем и программно. Программно генерируются буфера для каждой строки. Я делал профайлинг в реальном времени - генерация строки видео занимает порядка 6мкс процессорного времени. При длительности строки 64мкс - это менее 10% загрузки процессора. А при учете, что есть еще пустые строки и строки кадровой синхронизации, которые лежат готовые в ОЗУ и на их генерацию проц не тратится, то фактически это число уже 7-8%.
Эти буфера выкидываются через DMA на выход I2S, что дает битовый поток на скорости 40 МБит. Сигнал синхронизации выдается по таймеру, для точности смешивается с видеоданными как раз с помощью 74HC00. Т.ч. на вывод графики тратится не так уж много ресурсов.
Многие спрашивают про цветную графику. Дам развернутый ответ.
Текущая аппаратная реализация цвет никаким образом получить не сможет, т.к. вывод графики 1-битный. Аппаратных интерфейсов для вывода цвета на ESP8266 нет (имеется в виду без дополнительной внешней логики).
Что касается работы @cnlohr и вывода цвета через 3-й канал NTSC - я такого делать не буду, т.к. это не более, чем хак для конкретных случаев. К тому же качество графики отвратительное.
У меня есть идея для отдельного цветового процессора, которому буду передавать только данные цветности, а он будет модулировать ЧБ-сигнал от ESP.
Если убрать вывод графики и оптимизировать HAL, то можно получить частоту эмуляции 10-12 МГц, думаю. Ресурсов хватает с запасом.
Его легко можно эмулировать на каком-нибудь STM32 в корпусе LQFP48 там и портов достаточно и флэша для эмуляции того же ПЗУ.
Со звуком как раз проблем нет никаких. Просто на ESP-01 нет свободных пинов. Я сделаю проект на чем-нибудь типа ESP-03 (у него портов побольше), тогда и звук будет.
Адекватного ничего не сделаешь, да и зачем ? USB-видеовход на Али стоит 300р.
Информация для тех, кто хочет повторить этот проект.
Чтобы не ждать, ESP-01 (как и 74HC00, разъемы, платы итд) можно купить на http://chip-nn.ru/
У них они всегда в наличии и всего по 175р (на Али в районе 100р).