Páginas

14 abril 2016

Mapas de la VRAM de modos gráficos del MSX

He creado varios mapas de memoria correspondientes a varios modos de pantalla de configuraciones estándar utilizadas en los MSX

Utilizo colores para identificar los diferentes tipos de datos e indico la dirección en la VRAM y el tamaño de la tabla. 

Tenéis completa libertad sobre ellos. Podéis imprimirlos o publicarlos en vuestros documentos, ya sean impresos o electrónicos. 

Adjunto también los documentos en formato SVG por si los queréis modificar. Para su creación, he utilizado inkscape
  • Modo T1 (screen 0) (PNG) (SVG)
  • Modo G1 (screen 1) (PNG) (SVG)
  • Modo G2 (screen 2) (PNG) (SVG)
  • Modo MC (screen 3) (PNG) (SVG)
  • Modo G3 (screen 4) (PNG) (SVG)


NOTA: Actualizado el 24/2/2017. La tabla para el modo G2/G3 contenía un error: La tabla de la OAM no es la misma en los modos G2 y G3. Se han separado en dos tablas.

3 comentarios:

 Opinion Qviart one dijo...

Están muy bien!!! gracias por el esfuerzo!!! Un saludo.

Anónimo dijo...

Hola,

La forma de mapear la memoria que muestras en estos gráficos, responde a una especie de "estandarización" del uso de la VRAM o porque gestionando así se hace un uso más eficiente ? Lo digo porque sigo los cursos de ButVision y él también hace mención a este mapeo pero ayer trasteando con el openMSX y el debugger vi que algunos juegos de Konami segmentan la VRAM de otra forma, que si no me he equivocado es así;

Tileset Color Bank0 h0000 a h07FF (800h)
Tileset Color Bank1 h0800 a h0FFF (800h)
Tileset Color Bank2 h1000 a 17FF (800h)
Sprite Patterns h1800 a h1FFF (800h)
Tileset Pattern Bank0 h2000 a h27FF (800h)
Tileset Pattern Bank1 h2800 a h2FFF (800h)
Tileset Pattern Bank2 h3000 a h37FF (800h)
Map h3800 a h3AFF (300h)
Sprite Attribute Table h3B00

Luego de h3880h en adelante, no se muy bien a que lo dedican.

Un saludo!

mvac7/303bcn dijo...

Gracias @Qviart!

y la respuesta a la pregunta anterior:
Primero aclararé, para el que lea tu pregunta, de que el TMS9918 dispone de varios registros para definir la posición de las tablas.
Creo que no esta definido dentro del estándar del MSX las direcciones específicas de estas tablas, aunque a la práctica parece que así sea. Seguramente, en un manual del buen programador para el estándar MSX, no aconsejaría atacar directamente a estas tablas. Desde Basic o desde Ensamblador (si se utiliza la BIOS), no es necesario conocer la posición de las tablas ya que se pueden consultar desde la instrucción Basic Base(n) o desde las variables de sistema (GRPNAM, GRPCOL, GRPCGP, etc...).

No sé los motivos por que Konami utiliza un mapeado diferente. En screen 2 no le veo ninguna ventaja, pero en otros modos como el screen 1, al disponer de mucha memoria de vídeo libre, se puede utilizar esta para duplicar algunas tablas y crear efectos.