Como é que os emuladores funcionam num PC?
Assumindo que estamos a falar de emuladores de consolas...
Da forma mais simples que consigo pensar...
Um emulador é um programa feito para um computador que:
...ou simula 1 para 1 como o hardware de uma consola funciona através de software
ou...
... cria soluções elegantes ao traduzir as "operações" que uma consola faz e redireccionando-as para as "operações" mais rápidas possíveis que um PC normal pode fazer.
Na maioria das vezes, é uma mistura de ambos.
Uma das formas que gosto de pensar é esta:
Um emulador faz o jogo pensar que está a correr numa consola.
Quando se prime uma tecla (ou um botão do controlador) num computador, o emulador diz ao jogo para agir como se esse botão correspondente tivesse sido premido numa consola real.
Digamos que o botão faz o personagem do jogo pular.
O jogo então faz sua ação e diz ao emulador (novamente, "pensando" que está rodando em um console) para executar os comandos e desenhar o personagem pulando.
Onde um console responderia desenhando a imagem do jogo e enviando-a para uma saída de cabo de vídeo, o emulador diz ao sistema operacional (Windows, Linux, macOS, o que você tem...) como desenhar essa imagem.
Seu sistema operacional então desenha aquela imagem em uma janela.
Então você enxaguar-repetirá todas as entradas, processamento, áudio, efeitos e terá um emulador funcionando.
É um processo complexo, um processo que requer múltiplas soluções para todos os tipos de problemas diferentes.
Existe um monte de "adivinhações" envolvidas. Há muita engenharia reversa do hardware original. Há muitos "arranjos técnicos", ou "hacks".
Não há um único emulador é perfeito.
Porquê?
Porque é sempre uma adaptação.
É como usar um adaptador para ouvir discos de vinil em um CD player. Ou iPod... Ou Spotify... O que quer que as crianças estejam a usar hoje em dia.