Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
emulacion:introduccion-a-la-emulacion-i [20-03-2009 09:06] – creado sromero | emulacion:introduccion-a-la-emulacion-i [20-03-2009 09:23] (actual) – sromero | ||
---|---|---|---|
Línea 3: | Línea 3: | ||
Algunos de nuestros lectores nos han expresado una serie de dudas relacionadas con la emulación, especialmente dudas de base y de concepto. Estas mismas personas nos han comentado la posibilidad de que desde Magazine ZX se muestre a la gente nueva en el mundo de la emulación un tutorial sencillo que explique qué es y cómo funciona un emulador, focalizándolo finalmente en la emulación de Spectrum. | Algunos de nuestros lectores nos han expresado una serie de dudas relacionadas con la emulación, especialmente dudas de base y de concepto. Estas mismas personas nos han comentado la posibilidad de que desde Magazine ZX se muestre a la gente nueva en el mundo de la emulación un tutorial sencillo que explique qué es y cómo funciona un emulador, focalizándolo finalmente en la emulación de Spectrum. | ||
- | Figura 1 | ||
Los tiempos cambian y resulta cada vez más difícil encontrar en el mercado aquellos viejos ordenadores, | Los tiempos cambian y resulta cada vez más difícil encontrar en el mercado aquellos viejos ordenadores, | ||
- | Figura 2. Sinclair ZX81: difícil de encontrar | + | \\ |
+ | {{ :emulacion: | ||
+ | \\ | ||
No hay nada mejor que tener la máquina original y software de la misma para divertirse con ella, pero en ocasiones nos puede resultar imposible. | No hay nada mejor que tener la máquina original y software de la misma para divertirse con ella, pero en ocasiones nos puede resultar imposible. | ||
Los emuladores son programas destinados a recrear arquitecturas de ordenadores, | Los emuladores son programas destinados a recrear arquitecturas de ordenadores, | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | ;#; | ||
+ | //Sinclair ZX81: difícil de encontrar// | ||
+ | ;#; | ||
+ | \\ | ||
+ | |||
Los emuladores nacieron por diversos motivos: | Los emuladores nacieron por diversos motivos: | ||
Línea 20: | Línea 29: | ||
* Para desarrollar en estas consolas y ordenadores, | * Para desarrollar en estas consolas y ordenadores, | ||
+ | \\ | ||
===== Qué es un emulador ===== | ===== Qué es un emulador ===== | ||
Un emulador es un programa destinado a recrear internamente el funcionamiento de una arquitectura diferente a aquella en que se ejecuta. El emulador no es más que un programa, sin partes hardware, que utilizando los recursos de la máquina donde se ejecuta, simula el comportamiento de la CPU, memoria y demás elementos de una máquina determinada. | Un emulador es un programa destinado a recrear internamente el funcionamiento de una arquitectura diferente a aquella en que se ejecuta. El emulador no es más que un programa, sin partes hardware, que utilizando los recursos de la máquina donde se ejecuta, simula el comportamiento de la CPU, memoria y demás elementos de una máquina determinada. | ||
- | Figura 3. Emuladores de Spectrum, Megadrive, NES y Master System | + | |
+ | {{ : | ||
+ | ;#; | ||
+ | //Emuladores de Spectrum, Megadrive, NES y Master System// | ||
+ | ;#; | ||
+ | \\ | ||
Por ejemplo, Realspectrum es un emulador de Spectrum, ya que es un programa diseñado para emular un micro Z80 (que es el micro del Spectrum), una ULA (que es el "chip gráfico" | Por ejemplo, Realspectrum es un emulador de Spectrum, ya que es un programa diseñado para emular un micro Z80 (que es el micro del Spectrum), una ULA (que es el "chip gráfico" | ||
Línea 31: | Línea 47: | ||
Nótese un detalle muy importante: un emulador no es más que un programa como cualquier otro instalado en la máquina. La diferencia está en que es vez de editar un texto, hacer cálculos, dibujar, o jugar (como el resto de programas), lo que hace es comportarse tal y como lo haría el sistema emulado. Posteriormente veremos con más detalle cómo. | Nótese un detalle muy importante: un emulador no es más que un programa como cualquier otro instalado en la máquina. La diferencia está en que es vez de editar un texto, hacer cálculos, dibujar, o jugar (como el resto de programas), lo que hace es comportarse tal y como lo haría el sistema emulado. Posteriormente veremos con más detalle cómo. | ||
+ | \\ | ||
===== Arquitecturas emuladas ===== | ===== Arquitecturas emuladas ===== | ||
Línea 46: | Línea 62: | ||
* Spectrum, Amstrad, MSX, Commodore, Atari ST, Amiga... | * Spectrum, Amstrad, MSX, Commodore, Atari ST, Amiga... | ||
* Otros: | * Otros: | ||
- | *Consolas de una y dos pantallas HandHeld y Game& | + | * Consolas de una y dos pantallas HandHeld y Game& |
Si buscas un emulador que te permita emular alguno de estos sistemas, puedes encontrarlo fácilmente en Emulatronia, | Si buscas un emulador que te permita emular alguno de estos sistemas, puedes encontrarlo fácilmente en Emulatronia, | ||
Línea 54: | Línea 70: | ||
Debe quedar claro que los emuladores no son exclusivos de la plataforma PC. Es decir, no sólo hay emuladores de los diferentes sistemas para usarlos en PCs. Existen emuladores de Spectrum para Amiga, emuladores de Atari 2600 para Atari ST, o emuladores de NES para Playstation, | Debe quedar claro que los emuladores no son exclusivos de la plataforma PC. Es decir, no sólo hay emuladores de los diferentes sistemas para usarlos en PCs. Existen emuladores de Spectrum para Amiga, emuladores de Atari 2600 para Atari ST, o emuladores de NES para Playstation, | ||
+ | \\ | ||
===== Cómo funciona un emulador ===== | ===== Cómo funciona un emulador ===== | ||
Línea 72: | Línea 89: | ||
El emulador, como el Spectrum real, realiza la misma función. Éste emula un micro Z80 (y los demás componentes del Spectrum), y lo primero que hace el emulador es cargar desde fichero (como por ejemplo, rom48k.rom) el contenido de esta ROM del Spectrum, de forma que el emulador, al igual que el Spectrum real, pueda arrancar, ejecutando las instrucciones de la ROM del Spectrum mediante su " | El emulador, como el Spectrum real, realiza la misma función. Éste emula un micro Z80 (y los demás componentes del Spectrum), y lo primero que hace el emulador es cargar desde fichero (como por ejemplo, rom48k.rom) el contenido de esta ROM del Spectrum, de forma que el emulador, al igual que el Spectrum real, pueda arrancar, ejecutando las instrucciones de la ROM del Spectrum mediante su " | ||
- | Figura 4. Esquema básico de un Spectrum real | + | |
+ | {{ : | ||
La parte central es un micro Z80 el cual ve la ROM y la RAM de forma continuada como la totalidad de su memoria. Es decir, ve 64KB de memoria de los cuales los primeros 16K son el contenido de chip de ROM, y los siguientes 48K los del chip de RAM. Al encender el Spectrum éste se inicializa y muestra el BASIC porque comienza a ejecutar instrucciones desde la dirección de memoria 0, donde está el principio de la ROM de 16K, es decir, el intérprete BASIC. | La parte central es un micro Z80 el cual ve la ROM y la RAM de forma continuada como la totalidad de su memoria. Es decir, ve 64KB de memoria de los cuales los primeros 16K son el contenido de chip de ROM, y los siguientes 48K los del chip de RAM. Al encender el Spectrum éste se inicializa y muestra el BASIC porque comienza a ejecutar instrucciones desde la dirección de memoria 0, donde está el principio de la ROM de 16K, es decir, el intérprete BASIC. | ||
Línea 97: | Línea 116: | ||
La ROM es muy importante, ya que indica cómo debe de comportarse el microprocesador en todo momento, cómo debe atender las interrupciones recibidas por el teclado y los mandos, etc. Por ejemplo, un ordenador ZX Spectrum y un Amstrad CPC tienen el mismo microprocesador, | La ROM es muy importante, ya que indica cómo debe de comportarse el microprocesador en todo momento, cómo debe atender las interrupciones recibidas por el teclado y los mandos, etc. Por ejemplo, un ordenador ZX Spectrum y un Amstrad CPC tienen el mismo microprocesador, | ||
+ | \\ | ||
===== ¿De dónde sale el software para los emuladores? ===== | ===== ¿De dónde sale el software para los emuladores? ===== | ||
Línea 106: | Línea 126: | ||
* **ROMs del sistema**: como ya hemos visto, las ROMs de las máquinas se obtienen volcando el contenido de los chips de memoria de las mismas, donde están almacenados los programas en Código Máquina, mediante lectores de memorias o similares. | * **ROMs del sistema**: como ya hemos visto, las ROMs de las máquinas se obtienen volcando el contenido de los chips de memoria de las mismas, donde están almacenados los programas en Código Máquina, mediante lectores de memorias o similares. | ||
- | Figura 5. Una de esas pequeñas cucarachas negras (o varias, según el sistema) alberga la ROM del aparato. | + | {{ : |
+ | ;#; | ||
+ | //Una de esas pequeñas cucarachas negras (o varias,\\ según el sistema) alberga la ROM del aparato.// | ||
+ | ;#; | ||
+ | \\ | ||
* **ROMs de cartuchos**: | * **ROMs de cartuchos**: | ||
- | Figura 6. Cartucho de NES. En su interior sólo hay un pequeño circuito con una memoria ROM que contiene el juego grabado. En la captura podemos ver el circuito del juego Super Mario Bros 3 de Nintendo NES. Como puede verse, el juego está grabado en 2 chips de memoria y éstos vienen con la lógica necesaria para conectarse a la consola. Todos los chips están puenteados a las patillas del conector que se introduce en el cartucho. La carcasa gris de plástico tan sólo le da consistencia para su agarre e introducción en la consola, y para poner la portada del juego. | + | {{ : |
+ | ;#; | ||
+ | //Cartucho de NES. En su interior sólo hay un pequeño circuito\\ con una memoria ROM que contiene el juego grabado. En la captura\\ podemos ver el circuito del juego Super Mario Bros 3 de Nintendo NES.\\ Como puede verse, el juego está grabado en 2 chips de memoria y\\ éstos vienen con la lógica necesaria para conectarse a la consola.\\ Todos los chips están puenteados a las patillas del conector que se\\ introduce en el cartucho. La carcasa gris de plástico tan sólo le da\\ consistencia para su agarre e introducción en la consola, y para\\ poner la portada del juego.// | ||
+ | ;#; | ||
+ | \\ | ||
- | | + | En algunos sistemas sí que tenemos una ROM pregrabada en la máquina capaz de realizar tareas cuando no introducimos ningún juego. De esta forma, las consolas clónicas de NES podían llevar cientos de juegos grabados en un chip ROM interno, de forma que cuando la encendemos sin introducir un cartucho, ese chip se activa y se ejecuta su contenido. Cuando insertamos un juego, por contra, el chip que realmente se convierte en la memoria de la máquina (y que por tanto se ejecuta) es el ubicado en el interior del cartucho. |
- | | + | Para volcar los juegos a ficheros de disco de forma que se puedan usar en los emuladores, basta con desmontar el cartucho, sacar el chip de memoria con el código del juego grabado, y al igual que en el caso de las ROMs del sistema, volcarlo a fichero con un lector de chips de memoria. Otra opción sería utilizar alguno de los lectores de cartuchos que se insertaban en la máquina y permitían grabar a disquete los contenidos de las ROMs. Estos aparatos fueron principalmente utilizados como " |
- | | + | En general, en el mundo de la emulación, se le llama ROM a todo fichero volcado a disco desde una memoria. Los ficheros de ROM tendrán diferentes formatos según la arquitectura de la máquina. Por ejemplo, fichero.smc será una ROM de cartucho de SuperNES, fichero.smd de Sega MegaDrive, fichero.nes un juego de NES, fichero.gb de Gameboy, etc. Así mismo, existen ROMs en el Spectrum, obtenidas de los cartuchos del Interface 2 (un periférico de Spectrum que permitía cargar juegos en cartucho, realizando exactamente la misma función que la inserción del cartucho en una consola). |
- | | + | Las máquinas recreativas son placas con microprocesadores y circuitos propios (al estilo de una consola) donde los juegos suelen estar grabados también en chips de ROM, o bien se introducen como si fueran cartuchos. El procedimiento para extraer las ROMs de las recreativas es similar al de los cartuchos en la mayoría de los casos. |
* **Cintas**: Las cintas de Spectrum contienen software igual que los cartuchos de consola, sólo que en lugar de estar grabado el programa en un chip, lo está grabado de forma magnética en una cinta. La cinta contiene contiene audio grabado a una velocidad determinada y con un formato determinado para que el ordenador pueda leerlo (y grabar también software en cinta). El lector de cintas del ordenador lee este audio y lo interpreta, almacenando en memoria las instrucciones. Las cintas de Spectrum suelen ser ficheros con extensión .tap o .tzx, las cuales se han obtenido utilizando un programa de grabación de audio (con lo cual se guardan en disco en formato *.wav o *.voc). Un programa como Taper o Maketzx se encargará posteriormente de analizar este fichero wav/voc y convertirlo en un fichero de datos TAP o TZX con el programa en un formato perfecto y legible por los emuladores de Spectrum. Un fichero TZX contiene la cinta tal y como la tenemos grabada físicamente, | * **Cintas**: Las cintas de Spectrum contienen software igual que los cartuchos de consola, sólo que en lugar de estar grabado el programa en un chip, lo está grabado de forma magnética en una cinta. La cinta contiene contiene audio grabado a una velocidad determinada y con un formato determinado para que el ordenador pueda leerlo (y grabar también software en cinta). El lector de cintas del ordenador lee este audio y lo interpreta, almacenando en memoria las instrucciones. Las cintas de Spectrum suelen ser ficheros con extensión .tap o .tzx, las cuales se han obtenido utilizando un programa de grabación de audio (con lo cual se guardan en disco en formato *.wav o *.voc). Un programa como Taper o Maketzx se encargará posteriormente de analizar este fichero wav/voc y convertirlo en un fichero de datos TAP o TZX con el programa en un formato perfecto y legible por los emuladores de Spectrum. Un fichero TZX contiene la cinta tal y como la tenemos grabada físicamente, | ||
- | | + | Este formato de ficheros (TZX) es el más importante en el Spectrum. Esto es así porque al ser copias exactas de las cintas, y a partir de las cuales se puede regrabar una cinta original, al pasar a formato TZX todos los juegos disponibles, |
- | | + | Hay que destacar que los ficheros TAP y TZX no son ROMS. Son " |
Línea 136: | Línea 163: | ||
* **Snapshots**: | * **Snapshots**: | ||
- | | + | Los Snapshots (que tampoco son ROMs) se suelen obtener cargando cintas en los emuladores y grabando el contenido de la memoria a disco con un formato especial según el tipo de Snapshot. Tenemos ficheros .z80 (que empezó a utilizar el emulador Z80 para MS-DOS), ficheros .sp y .sna (usados por emuladores antiguos), y ficheros .szx (el futuro posible formato estándar de snapshots), entre otros. Este formato de fichero no es el ideal para preservar los juegos, ya que no permiten recrear las cintas, tan sólo jugar de una forma rápida y directa a los juegos. En general podemos grabar y cargar snapshots en los emuladores de una forma muy rápida (como ficheros) y en cualquier momento, de forma que pueden ser usados como método para " |
- | Figura 7. Obtención de software para los emuladores, visto de una manera simplificada | ||
+ | {{ : | ||
+ | ;#; | ||
+ | // | ||
+ | ;#; | ||
+ | \\ | ||
+ | |||
+ | |||
+ | \\ | ||
===== Aclaraciones ===== | ===== Aclaraciones ===== | ||
Línea 151: | Línea 185: | ||
Otra pequeña confusión para los neófitos es aquella entre emulador y remake. Un remake es un juego programado desde cero de forma que se parezca a un juego antiguo o clásico de otro sistema. Por ejemplo, un remake de Manic Miner es un juego que tiene las mismas pantallas que el Manic Miner original de Spectrum, que simula los mismos personajes, enemigos y estilo de juego, pero que no está recreado mediante un emulador y el juego original, sino que está programado desde cero por uno o más programadores que realizan el juego con diferentes gráficos (aunque a veces pueden usarse los mismos capturados para darle un aspecto más fiel al original), mejores melodías y sonidos, etc. Los autores de remakes están en realidad realizando un juego como el original, pero hecho por ellos mismos. Con los remakes se consigue (además de satisfacer un reto personal y honrar al programador del juego original) acercar juegos clásicos a arquitecturas actuales, sin necesidad de emuladores. | Otra pequeña confusión para los neófitos es aquella entre emulador y remake. Un remake es un juego programado desde cero de forma que se parezca a un juego antiguo o clásico de otro sistema. Por ejemplo, un remake de Manic Miner es un juego que tiene las mismas pantallas que el Manic Miner original de Spectrum, que simula los mismos personajes, enemigos y estilo de juego, pero que no está recreado mediante un emulador y el juego original, sino que está programado desde cero por uno o más programadores que realizan el juego con diferentes gráficos (aunque a veces pueden usarse los mismos capturados para darle un aspecto más fiel al original), mejores melodías y sonidos, etc. Los autores de remakes están en realidad realizando un juego como el original, pero hecho por ellos mismos. Con los remakes se consigue (además de satisfacer un reto personal y honrar al programador del juego original) acercar juegos clásicos a arquitecturas actuales, sin necesidad de emuladores. | ||
- | Figura: Manic Miner original (izquierda) y uno de sus innumerables remakes (derecha) | + | {{ :emulacion: |
+ | ;#; | ||
+ | //Manic Miner original (izquierda) y uno de\\ sus innumerables remakes (derecha)// | ||
+ | ;#; | ||
+ | \\ | ||
+ | \\ | ||
===== Ventajas y desventajas de los emuladores ===== | ===== Ventajas y desventajas de los emuladores ===== | ||
Línea 173: | Línea 213: | ||
La elección de una u otra postura es una cuestión personal, aunque el autor de este artículo puede decir sin tapujos que está a favor de la emulación, siempre que sea realizada de máquinas que actualmente no generen dinero en el mercado (es decir, recreativas antiguas, microordenadores y consolas de 8 y 16 bits). Estoy personalmente en contra de la emulación de recreativas modernas de última generación y sistemas actuales todavía a la venta (venta al por mayor, ya que el hecho de que todavía se vendan Atari 2600 en algún bazar no quiere decir que no se deban emular). | La elección de una u otra postura es una cuestión personal, aunque el autor de este artículo puede decir sin tapujos que está a favor de la emulación, siempre que sea realizada de máquinas que actualmente no generen dinero en el mercado (es decir, recreativas antiguas, microordenadores y consolas de 8 y 16 bits). Estoy personalmente en contra de la emulación de recreativas modernas de última generación y sistemas actuales todavía a la venta (venta al por mayor, ya que el hecho de que todavía se vendan Atari 2600 en algún bazar no quiere decir que no se deban emular). | ||
+ | \\ | ||
===== Resumiendo ===== | ===== Resumiendo ===== | ||
Línea 179: | Línea 220: | ||
Espero que este pequeño artículo sirva como introducción a la emulación para aquellos que tenían dudas sobre ella. | Espero que este pequeño artículo sirva como introducción a la emulación para aquellos que tenían dudas sobre ella. | ||
+ | \\ | ||
===== Enlaces ===== | ===== Enlaces ===== | ||
Línea 185: | Línea 227: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | * Cualquier utilidad de Spectrum como [[http:// | + | * Cualquier utilidad de Spectrum como [[http:// |
* [[http:// | * [[http:// | ||