Никто не эмулит систему в реальном времени живой системы. Задача эмуля отрендерить железо с соблюдением внутренних таймингов и вывалить в виде видео/аудио/инпутов.
В случае спека примерно такое алго:
1. Выполняем машцикл проца.
2. Проверяем меняет ли он состояние системы, наблюдаемое извне (например пишет в экран, меняет цвет бордера).
3. Если да, вызываем обработчик соответствующего девайса с тем, чтоб отрендерить его в том состоянии, которое было ДО изменения (дорисовываем экран до "луча" в том месте, где сейчас находится проц по своим тактам).
4. Повторяем с 1 до конца фрейма.
5. Дорендериваем что осталось.
6. Выпихиваем фреймы видео и аудио примерно как это делает виндовсмедиаплеер.