En NES... ¿qué es exáctamente un mapper?

Hola,

esta mañana, leyendo un artículo sobre emulación de NES hablaban de los mappers.

Se que hay mappers que no están correctamente emulados/implementados y por lo tanto a algunos juegos no es posible jugar de forma correcta (cada vez menos).

Pero ¿qué es exactamente un mapper?

¿Qué los hace tan especiales?

Gracias
Emmmm, veamos si me explico: Un mapper (mapeador) amplía la memoria ROM de un videojuego de NES, pudiendo añadir bancos de memoria extras, tanto para PRG (el programa en sí) como para su CHR (los gráficos). Mediante bankswitch (cambio de banco al vuelo, mientras se ejecuta el programa) se cambia a un banco u otro y listo.

Luego hay mappers que, además, permitían ampliar la memoria RAM, otros añadían la opción de poder grabar partida, y otros añadían canales de sonido extra.
¿Y ese "motor" iba en el cartucho o lo tenía la propia consola?

Supongo que cada cartucho tendría el suyo propio y por eso es complicado emular algunas roms en algunos emuladores.

Por otro lado, ¿ese "motor" no se dumpea junto con el resto del código de la ROM? ¿O va aparte? ¿O no me estoy enterando de nada?

Por cierto, gracias por la respuesta. He tratado de buscar algún artículo en tu web pero no hay nada sobre mappers (idea, idea!).

Edito: He estado mirando en Wikipedia y por lo que pone, parece que son los famosos chips que llevaban algunos juegos como Kirby, Mario 3 y demás.

Pero en Wikipedia sólo hay 11 chips (entre MMC, VR y demás) y en cambio algunos emus hablan de 255 mappers ¬_¬
Mmh, según tengo entendido estos "mappers" son chips de apoyo que se desarrollaron para ampliar las capacidades de la NES, ya sea permitiendo nuevos efectos gráficos o haciendo que la máquina pudiera direccionar mas memoria en los cartuchos, puediendo asi hacer juego de mayor tamaño (utilizando bancos de memoria).

Imagino que debe de haber bastantes tipods distitnos, de ahi que aun no todos esten emulados a la perfección.

EDIT: Por lo que he estado leyendo el "mapper" no es el chip de apoyo en si, sino el código que se ha creado para para emularlo.
Cada mapper (mapeador) iba en el cartucho. Estos cartuchos estaban compuestos en su diseño básico (NROM) de un chip con el PRG (el programa), y otro con el CHR (los gráficos), y además, añadían un chip de bloqueo de región llamado 10NES para evitar la piratería y la compra de cartuchos fuera de las regiones establecidas por a cada país o conjunto de países que determinó la propia Nintendo en su momento con fines económicos y de marketing. Si se añadía un mapper, se añadía un chip correspondiente de control, e incluso su placa base donde iba montado todo.

Veamos: cuando apareció la Famicom/NES la diseñaron con una serie de limitaciones técnicas y de memoria. Gracias a la aparición de los mappers, estas limitaciones técnicas iban desapareciendo poco a poco.

Primero sacaron el mapper CNROM, que ampliaba los bancos de memoria PRG. Estos bancos simplemente añadían una rutina que permitía que el juego no se volcase enteramente en la RAM de la NES, sino que lo hiciese por partes. De este modo la NES al reproducir algo "cogía" del banco de memoria extra del cartucho lo que necesitaba en ese momento y el resto lo dejaba en el cartucho para cuando lo necesitase. Así luego se conseguía que los juegos pudiesen almacenar mas información y, por tanto, que fuesen más largos.

Los siguientes mappers añadían, también, ampliación de bancos CHR (donde se almacenan los gráficos) como el MMC1, y más tarde ya fueron apareciendo los que permitían grabar partidas, añadir canales de sonido extra, rutinas IRQ (interrupción por línea de escaneo en pantalla para hacer efectos de desplazamientos a distinta velocidad) como en el MMC3, más RAM, etc...

La mayoría de los juegos piratas usan mappers propios, con números desorbitados que no llevan ningún claro orden. De este modo, habrás podido comprobar que hablan de muchos mappers "oficiales" de Nintendo, Konami, Jaleco, Namco, etc... y luego hay otros tantos que compañías piratas.

Estas numeraciones de mapper se lo pusieron la comunidad de programadores de emuladores de NES para entenderse, basados en el estándar iNES.
Vale, me ha quedado claro.

Muchas gracias por la información ;)
Diskover escribió:De todas formas, lo de mapper creo que se lo pusieron los programadores de emuladores para entenderse, por que en muchos casos, como en SMB3 o Kirby, el mapper era un añadido fisico, un chip especial que hacia estas maravillas, y en otros casos era simplemente una eprom mas grande con el codigo modificado.


Yo diría que la palabra "mapper" es terminologia de la propia Nintendo.
Y por lo que he leído en diferentes sitios, el Mario 3 o el Kirby NO usan chips especiales como se comenta, sino que usan el mismo MMC que usan juegos como el Megaman 3, Tortugas 2, Mario 2, Double dragon 2, Buggs bunny... por citar algunos.
6 respuestas