Посмотри, книги/курсы по разработке интерпретаторов.
Есть куча примеров, как, например, ту же JVM с нуля реализуют по спеке, чтобы понять внутреннюю архитектуру жавы и архитектуру самой JVM.
Разработка эмулятора консоли не сильно далеко уходит от интерпретаторов (ну за исключением того что тебе ещё нужно эмулировать всякие специфичное железо типа тех же мапперов для консолей на картриджах, ведео и что нет нормальной спецификации на это всё).
Поизучай архитектуру уже существующих эмуляторов - это будет хороший пример.
А так если прям с нуля без оглядки на уже существующие решения, то это надо половину университетской программы по computer science читать, это явно не одна какая-то книга.
Тут и архитектура/проектирование ПО, и архитектура железа, и операционные системы, сам язык, теория по интерпретаторам/компиляторам, работа с графикой (ибо кроме процессора ещё нужно и видеочип эмулировать)