Ссылка дает больше общего ответа вместо специфики реализации, поэтому я хочу дать свои 2 цента.
Процессор обычно является основной частью вашего эмулятора и учитывает циклы. Каждый раз, когда ваш процессор делает что-то для любого количества циклов, вы передаете это количество циклов другим компонентам вашего эмулятора, чтобы они могли синхронизироваться.
Например, некоторые инструкции процессора читают и записывают память как часть одной инструкции. Это означает, что для завершения инструкции потребуется Gameboy CPU 4 (чтение) + 4 (запись). Итак, в эмуляторе вы выполняете чтение, передаете 4 цикла в GPU, делаете запись, передаете 4 цикла в GPU. Вы делаете то же самое для других компонентов, которые работают параллельно с процессором, как таймеры и звук.
На самом деле важно сделать это таким образом, вместо того, чтобы эмулировать всю инструкцию, а затем синхронизировать все остальное. Не знаю о реальных ПЗУ, но есть тестовые ПЗУ, которые проверяют это точное поведение. 8 циклов - это длительное время, и в середине нескольких обращений к памяти некоторые другие компоненты Gameboy могут внести изменения.