Emulador es un término procedente del vocablo latino aemulātor que hace referencia a aquello que emula: es decir, que imita el funcionamiento o el accionar de otra cosa. El concepto puede emplearse como adjetivo o como sustantivo.
Programa informático
La noción de emulador suele usarse en el ámbito de la informática para aludir al programa que posibilita la ejecución de un software en una plataforma distinta de aquella para la cual fue creado. Los emuladores buscan que el software emulado funcione exactamente igual que en la arquitectura original.
Para lograr la emulación, es necesario acceder a la documentación del sistema que se pretende reproducir o apelar a la llamada ingeniería inversa. La finalidad del emulador es recrear la funcionalidad del software en un ambiente diferente.
Los emuladores más populares son aquellos que buscan llevar los videojuegos de las consolas o las máquinas recreativas a una computadora. Gracias a estos programas, el usuario de una PC puede disfrutar de los títulos de arcade, PlayStation, Sega Mega Drive o Super Nintendo, por mencionar algunas posibilidades.
Estos emuladores se encargan de ejecutar una imagen ROM. Se trata de un archivo que guarda una copia de la información de una memoria de solo lectura (en inglés, read only memory; es decir, ROM), correspondiente a la cinta, el disquete o el cartucho del videojuego original.
Ingeniería inversa
La ingeniería inversa es un proceso mediante el cual se descompone y analiza un producto, sistema o componente existente para entender su funcionamiento interno, diseño, estructura o código fuente. Se utiliza comúnmente en áreas como la ingeniería de software, la ingeniería de sistemas y la ingeniería electrónica.
El objetivo principal de la ingeniería inversa es obtener un conocimiento profundo de cómo funciona algo sin tener acceso directo a su documentación o diseño original. Esto puede involucrar la creación de diagramas, modelos, representaciones visuales o incluso la reingeniería del producto para mejorar o modificar sus características.
En la ingeniería de software, por ejemplo, la ingeniería inversa se utiliza para analizar el código fuente de un programa y comprender su lógica interna, especialmente cuando no se dispone de documentación detallada. De esta manera, es posible recrear la arquitectura de cualquier consola u ordenador.
Es importante mencionar que mientras que la ingeniería inversa puede ser una herramienta valiosa para el aprendizaje y la mejora de tecnologías existentes, en algunos casos puede entrar en conflicto con cuestiones legales relacionadas con la propiedad intelectual y los derechos de autor.
Emuladores más populares
A continuación listamos los emuladores más populares de videojuegos, que permiten a los usuarios jugar títulos de consolas antiguas en plataformas modernas, como computadoras y dispositivos móviles:
- Dolphin: un emulador de código abierto que permite jugar títulos de las consolas Nintendo GameCube y Wii en sistemas Windows, macOS y Linux;
- ePSXe: emula la PlayStation 1 y ofrece una experiencia fluida en diferentes plataformas;
- PCSX2: un emulador de PlayStation 2 para sistemas Windows, macOS y Linux;
- VisualBoyAdvance (VBA): permite jugar el catálogo de la popular Game Boy Advance en diversas plataformas;
- Project64: un emulador de Nintendo 64 para Windows;
- Citra: para los juegos de Nintendo 3DS en sistemas Windows, macOS y Linux;
- RPCS3: un emulador de PlayStation 3 que está en constante desarrollo para Windows y Linux;
- Snes9x: de los favoritos para disfrutar de los inigualables títulos de Super Nintendo (SNES);
- MAME: clásico emulador de Arcade Multiple Arcade Machine Emulator (MAME) que permite jugar a una amplia variedad de títulos de máquinas recreativas antiguas, las llamadas «fichines»;
- PPSSPP: para PlayStation Portable (PSP) en Windows, macOS, Linux y dispositivos móviles.
Es importante señalar que el uso de emuladores y ROMs puede suponer un delito en ciertos países. Algunos emuladores pueden requerir una copia legal del juego para ser utilizados legalmente. Siempre es recomendable verificar las leyes locales y los términos de uso antes de utilizarlos.