Сверхточный эмулятор Commodore 64

Люди говорят, что на этой неделе Commodore 64 отмечает 30 лет с момента релиза!

Молчат все эмуляционные сайты, бодро выпускающие шаблонные новости с копиями changelog’ов. Молчат тематические сообщества фанатов C64. Однако шило в мешке не утаить! Вот он, сверхточный, теплый и ламповый эмулятор Commodore 64: micro64

Сверхточный эмулятор Commodore 64

Прообразом проекта стала работа fr-051: brotkaestchen демогруппы Farbrausch выставлявшаяся в номинации Wild еще на Breakpoint 2006. Это была попытка сделать полноценный эмулятор для Win32 в рамках не более чем 64 килобайт кода. Посте demoparty проект расслоился на два: Hyper64 (самый быстрый эмулятор C64 для X86 архитектуры) и micro64 (самый точный эмулятор). Стоит отметитить, что обе ветки развиваются как SDL.

Собственно о какой же точности пытаются сказать нам авторы?

Того, кто включал настоящий C64 к настоящему телевизору, не обмануть новомодными эмуляторами с их яркой картинкой. Нужен тот самый, теплый ламповый цвет. Казалось бы иллюзия? Нет, британские ученые подтверждают математическими формулами — цвет был! История цветов VIC-II + документация по реверсу микросхем.

Вероятно, авторы стали обладателями инженерной документации на чип VIC-II в формате VHDL (язык для описания микросхем, в формате которого задание на производство передается на завод для получения кристалла). Наличие такого документа по ключевому чипу позволяет осуществлять сверхточную эмуляцию не только в пределах одного тактового цикла, но и на половине цикла, например. Не стоит конечно забывать, что в C64 есть еще один важный чип — SID и подобный подход в эмуляции ему бы тоже не помешал.

Каким образом документация на чип попала в руки авторам не уточняется. Возможно они самостоятельно реверсировали живой чип, что является затратной (от $10K), но вполне реальной для VIC-II задачей (чип не такой уж и «большой» по современным меркам).

Этот эмулятор минимум обладает эффектом плацебо. Немного детальной информации по ситуации есть здесь