El parche

parche/dunkshot_msx2.ips: 292 bytes, 164 bytes del cartucho cambiados en 24 tramos. En un MSX2 pone el juego en SCREEN 4, ocho sprites por línea, y enseña solo la tabla ordenada por profundidad (El parpadeo). En un MSX1 el mismo fichero se juega como el original.

Lo que cambia el V9938

SCREEN 4 (modo G3) es SCREEN 2 con los sprites en modo 2: mismas tablas de patrones, nombres y colores, así que los gráficos del juego no se tocan. Cambian tres cosas:

Bajo los 16 KB de un MSX1 el juego solo deja sin usar 0x3C00-0x3FFF (los patrones de sprite acaban en 0x3BBF), así que: colores en 0x3C00-0x3DFF, atributos en 0x3E00, y la segunda tabla que el MSX1 alterna en 0x3F00. En un MSX1, R5 = 0x7C o 0x7E señala esas dos tablas; en un MSX2, R5 vale siempre 0x7F y el VDP enseña 0x3E00 los dos cuadros, la lista ordenada por profundidad de 0xE7B0, de la que salen los colores. No se mueve ningún patrón.

Lo que cambia en el cartucho

TRADE en un MSX2: la figura de muestra conserva sus colores

Dónde vive el código nuevo

En el relleno a 0xFF de 0xBFD4-0xBFFD y en tres rutinas huérfanas del cartucho que no llama nadie (0x6EA0, 0x6F30, 0x7AAE), encontradas al trazar el desensamblado. Su listado es parche/parche_msx2.asm; el código original de alrededor de cada byte parcheado está en src/dunkshot.asm.

trozodirecciónbytes
gancho tras INIGRP0xBFD431
registro 5 según la máquina0xBFF311
tabla de colores de sprite0x6EA038
fin de lista, 0xD0 y 0xD80x6EC914
colores de la figura de muestra0x6F3022
segunda copia y colores0x7AAE9