Сначала всё шло подозрительно гладко, пишет Хабр. Несколько моделей провели ревью друг друга, спроектировали архитектуру, перенесли процессор Z80, видеоконтроллер ULA и клавиатуру — и уже через пару часов эмулятор ZX Spectrum выдавал корректную картинку.

Проблемы начались на дисковых контроллерах. Документация есть, готовые реализации тоже, написанные моделями тесты проходят. Но часть игр всё равно не запускается.

Разбираться пришлось вручную: подключать образы дисков, сверяться с другими эмуляторами, гонять код пошагово и разбирать поведение старого железа по тактам — включая механизмы защиты от копирования.

Именно на этом этапе, отмечает автор, проявилась разница между умением написать код и умением понять, почему он не работает. Тесты, придуманные самими моделями, не ловят расхождения с реальным железом: они проверяют то, что модели уже считают правильным.

Источник: Telegram: Хабр

Понравился материал?
Подписывайтесь — так вы не пропустите новые.
RSS-лента

Комментарии 6

Будьте вежливы — это делает обсуждение лучше
ИК
Ирина К.
два часа на Z80 с ULA — это, конечно, впечатляет. но без анализа по тактам против реального железа это пока скорее демо, чем эмулятор
A
alex88
Тесты, написанные моделями, проверяют то, что модели уже считают правильным — вот это в точку. У меня на работе ровно так же: тесты зелёные, а баг живёт.
МС
Марина Соколова
А примеры игр, которые не запустились, где-то перечислены? Хочу прогнать у себя и посмотреть, где именно расходится поведение с Fuse.
Р
РедакцияРедакция
Марина, в исходной публикации на Хабре автор упоминает конкретные образы, но полного списка не даёт — часть доступна в репозитории с тестами. Мы уточняем у автора детали.
DP
dmitry_p
Я как-то возился с эмуляцией RML-контроллера на Z80, и там защита от копирования — это буквально таймауты в пару тактов. Модель такое не угадает по документации, её надо ловить логическим анализатором на живом железе.
О
Олег
Статья хорошая, но вывод про "понимание" слегка натянут. По-моему, модели просто не видели нужных данных про защиту — тут скорее нехватка корпуса, чем нехватка понимания.