Este documento trata sobre los emuladores. Explica que un emulador es un software que permite ejecutar programas diseñados para otras plataformas en un sistema operativo diferente, modelando de forma precisa el dispositivo emulado. Los emuladores se usan ampliamente para probar programas de otras plataformas, ejecutar videojuegos antiguos en PC, y ejecutar programas de ordenadores antiguos. Al emular una máquina, podemos encontrarnos con problemas derivados de las diferencias entre la máquina emulada y la má
2. Un emulador es un software que permite ejecutar programas o
videojuegos en una plataforma (sea una arquitectura de hardware o
un sistema operativo) diferente de aquella para la cual fueron
escritos originalmente. A diferencia de un simulador, que solo trata
de reproducir el comportamiento del programa, un emulador trata
de modelar de forma precisa el dispositivo de manera que este
funcione como si estuviese siendo usado en el aparato original.
3. El principal objetivo del emulador, es crear las condiciones
necesarias para poder ejecutar un programa diseñado para otras
plataformas distintas al PC, de modo que estos programas son
utilizados ampliamente para las siguientes actividades:
Probar programas de plataformas informáticas diferentes.
Ejecutar juego de plataforma en un ordenador.
Ejecutar programas de ordenadores antiguos.
Como podemos ver, los emuladores son ampliamente utilizados para
poder jugar juegos antiguos o de plataformas diversas desde la
comodidad de nuestro ordenador, utilizando para ello un programa o
archivo llamado ROM.
4. ¿ Y qué podemos hacer para solucionarlo ? Si construimos el siguiente programa en un PC
podemos hacer que las tres ordenes del chip gráfico "SNESgfx" sean comprendidas por el
"gfx4PC":
Si recibimos un 87 entonces envía un 12 al gfx4PC
Si recibimos un 50 entonces envía un 18 al gfx4PC
Si recibimos un 76 entonces envía un 27 al gfx4PC
Éste programa será ejecutado por el procesador principal, y es precisamente un emulador. El
programa irá leyendo los datos del fichero con el programa escrito para la SuperNintendo,
encontrará las instrucciones y las traducirá (por ejemplo, usando una tabla con las equivalencias)
y enviará las órdenes correctas al chip del PC. Obviamente, las cosas no son tan sencillas porque
típicamente el número de instrucciones para controlar un procesador sobrepasa la centena, y si
tenemos en cuentra que en una misma máquina podemos encontrar alrededor multitud de chips
diferentes, la cosa se complica bastante. Además hemos de tener en cuenta que hay cosas que
el chip gráfico de una SuperNintendo puede hacer y el PC no, por ejemplo rotar los colores de la
pantalla, o dibujar figuras transparentes. De esta forma, para traducir un sólo codigo de la
SuperNintendo que diga "dibuja esta figura transparente" debemos usar varios códigos para
provocar el mismo efecto en el PC.
5. Al intentar emular una máquina podemos
encontrarnos con distintos problemas,
derivados de las diferencias (en ocasiones muy
grandes) entre la máquina emulada y la
máquina que ejecuta el emulador