Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the cookie-law-info domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the disable-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ga-google-analytics domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the the-events-calendar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the jetpack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the aawp domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the backupwordpress domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php on line 6114

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/functions.php:6114) in /var/www/vhosts/enriqueortegaburgos.com/videojuegos.enriqueortegaburgos.com/wp-includes/rest-api/class-wp-rest-server.php on line 1893
{"id":67760,"date":"2021-06-01T12:31:23","date_gmt":"2021-06-01T11:31:23","guid":{"rendered":"https:\/\/enriqueortegaburgos.com\/?p=67760"},"modified":"2021-06-01T12:31:23","modified_gmt":"2021-06-01T11:31:23","slug":"emulador-de-videojuegos-como-funciona","status":"publish","type":"post","link":"https:\/\/videojuegos.enriqueortegaburgos.com\/emulador-de-videojuegos-como-funciona\/","title":{"rendered":"EMULADOR DE VIDEOJUEGOS – \u00bfC\u00d3MO FUNCIONA?"},"content":{"rendered":"

En esta nueva entrada vamos a hablar del funcionamiento de los emuladores de videojuegos.<\/strong><\/p>\n\n\n\n\n

Si quieres saber m\u00e1s sobre qu\u00e9 son los emuladores de videojuegos, su origen y su situaci\u00f3n actual, visita esta entrada.<\/p>\n\n\n\n\n

Emulador de videojuegos – \u00bfQu\u00e9 es?<\/a><\/h3>\n\n\n \n\n\n

\u00bfC\u00d3MO FUNCIONA UN EMULADOR DE VIDEOJUEGOS?.<\/strong><\/h3>\n\n\n[vc_separator color=\"custom\" border_width=\"2\" accent_color=\"#00d0ff\"]\n \n\n\n

Para saber c\u00f3mo funciona un emulador de videojuegos, debemos tener claro lo que es.<\/strong><\/p>\n\n\n\n\n

Se trata de un programa inform\u00e1tico<\/strong> que permite a un procesador (de un ordenador, por ejemplo) leer el c\u00f3digo en que est\u00e1 escrito un videojuego que est\u00e1 programado para ser le\u00eddo por otro procesador distinto (el de una videoconsola, por ejemplo).<\/p>\n\n\n\n\n

Sin embargo, este proceso de \u201ctraducci\u00f3n\u201d plantea varios problemas<\/strong>.<\/p>\n\n\n\n\n

El principal, es que hace falta saber c\u00f3mo se programan las instrucciones<\/strong> del videojuego para luego poder crear el programa que va a leerlas y a convertirlas en instrucciones para otro procesador. Sin embargo, esta informaci\u00f3n no es p\u00fablica.<\/p>\n\n\n\n\n

Posteriormente, una vez se tiene algo as\u00ed como un listado de las instrucciones, habr\u00eda que obtener<\/strong> las instrucciones de cada juego<\/strong>, para poder traducirlas. De nuevo, esta informaci\u00f3n s\u00f3lo est\u00e1 en poder de quien ha creado un juego.<\/p>\n\n\n\n\n

Pensemos en el caso de un juego de Super Nintendo al cual queremos jugar en el PC.<\/em><\/strong><\/p>\n\n\n\n\n

Supongamos que ya tenemos construido el emulador. Ahora, hay que darle unas instrucciones que leer. Otro problema que surge es el hecho de que los ordenadores no cuentan con puertos adecuados para insertar un cartucho<\/strong>, por ejemplo.<\/p>\n\n\n\n\n

Y, aunque puedas pensar que, en el caso de CDs o DVDs es m\u00e1s f\u00e1cil, lo cierto es que el lector de un ordenador no funciona como el de una consola.<\/strong><\/p>\n\n\n\n\n

Lo que habr\u00e1 que hacer, entonces, es extraer la informaci\u00f3n de un cartucho (o CD o DVD) y convertirla en un archivo legible por el emulador.<\/p>\n\n\n\n\n

Aqu\u00ed es donde entran en juego los archivos ROM e ISO de los videojuegos<\/strong>.<\/p>\n\n\n\n\n

EL ELEMENTO FUNDAMENTAL PARA EL FUNCIONAMIENTO DE UN EMULADOR DE VIDEOJUEGOS.<\/strong><\/h3>\n\n\n[vc_separator color=\"custom\" border_width=\"2\" accent_color=\"#00d0ff\"]\n \n\n\n

Una imagen ROM<\/strong> es un archivo que contiene los datos de una ROM (Read Only Memory<\/em>).<\/p>\n\n\n\n\n

Una ROM es un chip que contiene una informaci\u00f3n que solo puede ser le\u00edda, es decir, no puede modificarse su contenido.<\/p>\n\n\n\n\n

Por ejemplo, antiguamente, los sistemas operativos de los ordenadores estaban contenidos en este tipo de memorias y, para actualizarlos, hab\u00eda que sustituir el chip entero.<\/p>\n\n\n\n\n

Y este es, tambi\u00e9n, el mecanismo utilizado por los cartuchos de videojuegos<\/strong> para ser le\u00eddos por las videoconsolas.<\/p>\n\n\n\n\n

Por lo tanto, cuando se extrae el contenido de dicha memoria, se crea un archivo ROM<\/strong>, que es una reproducci\u00f3n exacta de ese contenido. De esta manera, se podr\u00e1 leer en otros dispositivos sin necesidad de tener el cartucho f\u00edsicamente.<\/p>\n\n\n\n\n

Por su parte, una imagen ISO<\/strong> es un archivo que contiene una copia exacta del contenido de un CD o DVD.<\/p>\n\n\n\n\n

Es decir, es igual que un archivo ROM, pero para contenido que estaba almacenado en una unidad de disco \u00f3ptico (CD, DVD, Blu Ray\u2026).<\/p>\n\n\n\"\"\n \n\n\n

LAS DIFICULTADES DE LA EMULACI\u00d3N DE VIDEOJUEGOS<\/strong><\/h3>\n\n\n[vc_separator color=\"custom\" border_width=\"2\" accent_color=\"#00d0ff\"]\n \n\n\n

Si bien ya vimos que existen ejemplos de emulaciones oficiales, vamos a centrarnos ahora, en el fen\u00f3meno de la emulaci\u00f3n m\u00e1s underground<\/em>.<\/p>\n\n\n\n\n

La mayor\u00eda de emuladores se centran en consolas que salieron al mercado hace ya algunas d\u00e9cadas<\/strong>.<\/p>\n\n\n\n\n

Por un lado, esto puede ser por la nostalgia de los jugadores que desean volver a disfrutar de juegos de su infancia. Pero, por otro, esto es debido a la menor complejidad para replicar estos sistemas. <\/strong><\/p>\n\n\n\n\n

Tal y como coment\u00e1bamos en la entrada anterior, adem\u00e1s de traducir las instrucciones de un videojuego para poder ser le\u00eddas por otro dispositivo, un emulador tambi\u00e9n recrea el resto de condiciones t\u00e9cnicas para poder hacer funcionar el videojuego en un soporte distinto para el que fue dise\u00f1ado.<\/p>\n\n\n\n\n

Las consolas m\u00e1s actuales<\/strong>, en cambio, adem\u00e1s de las medidas tecnol\u00f3gicas de protecci\u00f3n con las que cuentan, utilizan m\u00e9todos y componentes muy complejos<\/strong> que dificultan la creaci\u00f3n de un emulador que pueda reproducir esas condiciones.<\/p>\n\n\n\n\n

Por ejemplo, PS3 utiliza un sistema de instrucciones cuya traducci\u00f3n al sistema de un PC resulta en un proceso muy lento, por lo que la emulaci\u00f3n es imposible de jugar.<\/p>\n\n\n\n\n

\"\"<\/p>\n\n\n \n\n\n

LOS M\u00c9TODOS DE EMULACI\u00d3N DE VIDEOJUEGOS \u2013 LOW LEVEL EMULATION.<\/em><\/strong><\/h3>\n\n\n[vc_separator color=\"custom\" border_width=\"2\" accent_color=\"#00d0ff\"]\n \n\n\n

\"\"Sin embargo, no<\/strong> existe un \u00fanico m\u00e9todo para \u201ctraducir\u201d esas instrucciones.<\/strong><\/p>\n\n\n\n\n

En concreto, los desarrolladores de emuladores vienen utilizando dos m\u00e9todos, principalmente: LLE (Low Level Emulation)<\/strong> y HLE (High Level Emulation).<\/strong><\/p>\n\n\n\n\n

Veamos en qu\u00e9 consisten.<\/p>\n\n\n\n\n

El LLE (Low Level Emulation)<\/strong> consiste en recrear un hardware a trav\u00e9s de software. Por ejemplo, recrear el funcionamiento de una NES, exclusivamente, a trav\u00e9s de un programa inform\u00e1tico para PC.<\/p>\n\n\n\n\n

De esta manera, el<\/strong> emulador recrea virtualmente todos los elementos de la consola <\/strong>para leer el c\u00f3digo destinado a cada uno de ellos y, posteriormente, transmitirlo en se\u00f1ales legibles para el procesador del PC.<\/p>\n\n\n\n\n

De esta manera, se logra una emulaci\u00f3n pr\u00e1cticamente id\u00e9ntica al original, recreando hasta el \u00faltimo detalle.<\/p>\n\n\n\n\n

Esta ventaja es, a la vez, uno de sus principales inconvenientes<\/strong>, ya que, al tener que emular todos esos elementos y, luego, tener que convertirlo en algo legible, se necesita un dispositivo con gran potencia. De lo contrario, no ser\u00e1 posible ejecutar el emulador.<\/p>\n\n\n\n\n

Este es el m\u00e9todo utilizado por los primeros emuladores (y muchos actuales).<\/p>\n\n\n\n\n

Recordemos, que una gran parte de los emuladores est\u00e1n destinados a jugar a t\u00edtulos antiguos que corr\u00edan en consolas tambi\u00e9n antiguas.<\/p>\n\n\n\n\n

La menor complejidad de estos dispositivos hace posible emularlos mediante LLE.<\/strong><\/p>\n\n\n\n\n

El funcionamiento de LLE es tambi\u00e9n el motivo por el que es muy dif\u00edcil emular consolas modernas, ya que su hardware es mucho m\u00e1s potente y recrearlo mediante software y ejecutarlo es una tarea muy exigente.<\/p>\n\n\n\n\n

LOS M\u00c9TODOS DE EMULACI\u00d3N DE VIDEOJUEGOS \u2013 HIGH LEVEL EMULATION<\/em><\/strong><\/h3>\n\n\n[vc_separator color=\"custom\" border_width=\"2\" accent_color=\"#00d0ff\"]\n \n\n\n

La principal diferencia de este m\u00e9todo con el Low Level Emulation radica en que, en este (HLE), no se recrean mediante software los elementos de hardware necesarios para leer el\"\" c\u00f3digo<\/strong> (por ejemplo, el chip de sonido o v\u00eddeo de la consola).<\/p>\n\n\n\n\n

Este m\u00e9todo busca aprovechar los elementos y la potencia del dispositivo en el que se ejecuta el emulador (por ejemplo, un ordenador).<\/p>\n\n\n\n\n

Dentro de la HLE existen diferentes m\u00e9todos<\/strong> para \u201ctraducir\u201d el c\u00f3digo original en c\u00f3digo legible para el equipo donde se est\u00e1 emulando.<\/p>\n\n\n\n\n