Emulacion y tipos de emulación

Introducción

Si tuvieramos que definir la palabara “emulacion” basicamente hablariamos de

Ejecutar programas o videojuegos en una plataforma diferente de aquella para la cual fueron escritos originalmente

Esto no es un concapto nuevo, ya en 1982 la Atari 5200 era capaz de emular los juegos de su predecesora, la Atari 2600, o en los 90 podiamos encontrar los primeros emuladores de consolas clasicas, ¿pero como funciona un emulador? Primero tendriamos que explicar los distintos tipos de emulación que existen.

Emulacion por Hardware

Podriamos considerarla la mas antigua y la mas facil de implementar. Basicamente consiste en utilizar los mismos componentes, u otros muy similares, para ejecutar el software en otra maquina.

Ejemplos de este tipo serian la anteriormente citada Atari 5200, la Sega Mega Drive/Genesis o la Nintendo Wii.

En este caso los juegos se ejecutan exactamente igual que en la consola original, lo que se traduce en una compatibilidad del 100%, pero por contra no es posible aplicar mejoras a los juegos (mejor framerate o aumentar la resolución interna)

Emulación por Software

Aunque comenzo su existencia poco despues que la emulacion por hardware, por ser mas barata que esta, tuvo su auge en los años 90 cuando los PC y consolas ya tenian la potencia necesaria para emular por software sistemas antiguos sin necesidad de conservar el hardware de estos.

La ventaja de la emulacion por software es que se pueden mejorar los juegos, ya sea cambiando texturas, aumentando la resolución interna de los juegos o permitir que se ejecuten con mayor framerate.

La emulación por software puede ser de alto nivel o de bajo nivel

Alto nivel

Aqui más que emular el sistema en sí, simularíamos el sistema operativo y las llamadas del sistema, así como la memoria y los programas. La ventaja de hacer esto es que esta técnica requiere de muchos menos recursos, pero es muy imprecisa y requiere de correcciones y configuraciones para cada programa, al no emularse el sistema en su totalidad.

Por ejemplo en 1999 el emulador UltraHLE permitia ejecutar en Windows con un Pentium III de 500 MHz y una tarjeta 3D VooDoo los juegos mas populares de Nintendo 64.

Bajo nivel

La emulación a bajo nivel nos lleva a emular todos sus componentes a nivel de instrucciones y ciclos.

Un ejemplo de esto es el emuladorHigan, un emulador de Super Nintendo 100% preciso a nivel de sincronización, requiere un procesador tipo dual core a 3 GHz, mientras que ZSNES, por contra, funcionaba relativamente bien en un Pentium MMX a 200 MHz.

Emulacion hibrida

Esta es la emulacion mas nueva ya que consiste en mezclar lo mejor de la emulacion por hardware (emulacion perfecta de una maquina conservando sus componentes) junto a caracteristicas de la emulacion por software (filtrado de texturas principalmente)

Aqui tendriamos por ejemplo PlayStation 2 y 3 que pueden aplicar antialiasing a los juegos.

FPGA

Un FPGA (Field-Programmable Gate Array o matriz de puertas lógicas programable en campo) permiten describir un circuito digital usando un lenguaje específico (los dos más comunes son VHDL y Verilog) y que tras cargarlo en el integrado, es creado físicamente en el chip. Gracias a esto es posible “reconstruir”, o si no existe crearlo, hardware especifico para lo que necesitemos.

Existen desde 1984, pero en los últimos años han aumentado su popularidad por un lado por el estancamiento de la “ley de Moore” (cada dos años se duplica el número de transistores en un microprocesador), pero también por el abaratamiento de sus costes de producción y que cada vez mas compañías incluso aceptan diseños personalizados para su creación, pero ¿Qué usos tienen en el mundo de los videojuegos?

Pues desde emular componentes de la consola (ya sea solo el lector de discos, o el cartucho de juegos) hasta emular la consola al completo, lo que vendria a ser una emulacion hardware del original, pero con piezas modernas que se comportan igual que las originales.

Pero no solo eso, tambien nos permite mejorar los diseños originales y aumentar los limites de los sistemas original, tal y como haria una emulación por software.

3 Me gusta