MappersLa NES por si sola, sin el uso de los mappers o chips de apoyo de la mayoria de los cartuchos, no seria capaz de tener juegos de mas de 32KB de datos y 8KB de video, esta configuracion más simple es la que se denomina NROM.
En el framework voy a dar soporte a los principales mappers (concentran mas del 90% de los juegos) de la NES, estos son:
NROM, CNROM, UXROM, MMC1 y MMC3
El mapper NROMMaximo: ROM: 32KB, CHRROM: 8KB
El "mapper" NROM o "no mapper" no lo comentare mas que lo que he dicho arriba, no tiene ninguna caracteristica extra.
Ademas el mirroring de las nametables esta fijo en la placa y no se puede cambiar desde el programa.
Juegos que lo utilizan:
Arkanoid, Balloon Fight, Battle City, Bomberman, Donkey Kong, Excitebike, Ice Climber, Kung-fu, Pac-Man, Super Mario Bros, etc
El mapper CNROMMaximo: ROM: 32KB, CHRROM: 32KB
Este mapper permite tener mas de 1 "pagina" de graficos, en concreto 4. Podemos cambiar entre las 4 paginas con un simple comando del framework:
Y cambiaremos los graficos a la pagina pageNum.
Ademas el mirroring de las nametables esta fijo en la placa y no se puede cambiar desde el programa.
Juegos que usan este mapper: Adventure Island, City Connection, Dragon Quest, Goonies, Gradius, Paperboy, Solomon's Key, Twinbee, etc
El mapper UXROMMaximo: ROM: 256KB, CHRROM: 0KB (8KB de CHRRAM para cargar los graficos)
En el caso del mapper UXROM ya no se usan graficos en CHRROM y hay que cargarlos en la CHRRAM antes de usarlos, este mapper no tiene mas que una pagina de graficos pero que podemos cargar a nuestro antojo los tiles que necesitemos (aunque es un proceso lento, mientras se esta jugando no se pueden cargar mas de 4-8 tiles por frame)
La ventaja de este mapper es que permite hacer bankswitching de las partes de la rom que vemos, la NES tiene 32KB de codigo visibles, que dividiremos en 2 bancos, el bajo, de $8000 a $BFFF y el alto, de $C000 a $FFFF.
Este mapper permite que en el banco bajo podamos hacer que la NES vea el trozo que nosotros queramos de nuestra ROM, por ejemplo si tenemos una ROM de 256KB, esto son 16 bancos de memoria, podemos decidir que banco se ve en $8000-$BFFF con la siguiente instrucción:
En el banco alto siempre se ven los ultimos 16KB de nuestra ROM.
Ademas el mirroring de las nametables esta fijo en la placa y no se puede cambiar desde el programa.
Juegos que usan este mapper: 1943, Blades of Steel, Bomberman 2, Castlevania, Contra, Ducktales/2, Final Fantasy 2, Ghosts N' Goblins, Goonies 2, Mega Man, Metal Gear, Prince of Persia, Probotector, Rainbow Island, Renegade, Robowarrior, Rush N' Attack, Rygar, etc
Ahora preguntas y proxima edicion: MMC1 y MMC3