El parche

Qué cambia, pantalla a pantalla, y qué se deja en paz a propósito.

Trabajo en curso: mira Lo que falta.

La regla sobre la que está montado todo

No se cambia ni una instrucción del juego. El parche toca dibujos, formas de carácter, tablas de color y las listas que colocan el texto — más un puñado de operandos de ld hl que reapuntan un bloque, y un jp para el tutorial. El reparto, el rival, la aritmética del recuento y la máquina de estados son las del cartucho, intactas.

Y la construcción lo obliga: parchea.py empalma los bloques nuevos en una copia del listado, lo ensambla y compara el resultado con el original fuera de esos bloques. Si se ha movido un solo byte donde no debía, la construcción para.

ROM modificada: 12103 bytes cambiados dentro de 46 bloques, 0 fuera
OK: fuera de los bloques sustituidos, la ROM es identica a la original

El título

De japonés, en la pantalla del título, sólo había una palabra: アマチュア, la transcripción de «amateur». Lo que cambia de verdad es el logotipo: los cuatro kanji 麻雀道場 dejan sitio a MAHJONG DOJO en el mismo lienzo de 144×24 píxeles.

Esos 54 caracteres van ordenados por columnas, no por filas —0xA0 es la fila 4 columna 7, 0xA1 la fila 5 columna 7, y 0xA3 vuelve arriba en la columna 8—, que no es como reparte los glifos grandes el generador. Por eso el logo lo trocea su propia herramienta y llega al parche ya cortado.

El título en kanji no se conserva. Se planteó y se descartó: es la portada del juego, no un texto que haya que leer para jugar, y no hay sitio para los dos.

El menú tiene una cuarta línea, 4-key TUTORIAL: el tutorial sin esperar al demo. Las tres entradas de encima suben una fila, y el bloque de rótulos, ya de 119 bytes para un hueco de 103, se reubica en la zona libre. Cómo funciona la tecla está en El tutorial.

La barra de la mesa

La franja central de la mesa, la que dice cómo va la mano: EAST 1, los indicadores de DORA y URA, el contador de HONBA, STICK para los palos de riichi que hay en la mesa, y la dificultad en rojo a la derecha.

Dos cosas hubo que medirlas en vez de suponerlas:

La pantalla de recuento

La que dice por qué has ganado o perdido, y la que más japonés tenía. Ahora se lee DEALER, FU, HAN, PAYS, SCORE, la lista de jugadas con sus han por la derecha, y la mano separada en figuras abajo con los fu de cada una. Debajo, el tipo de espera —RYANMEN / KANCHAN / PENCHAN / TANKI / SHANPON— y TSUMO o RON.

El truco que lo hizo barato: el tercio de arriba carga la fuente katakana del cartucho en las celdas 0x30-0x7F, así que el alfabeto latino va en las celdas que ocupaba la katakana y hereda su color. No hay que tocar la tabla de colores.

La caja, el menú y los avisos

Viven en el tercio central, que es donde menos sitio hay, y son la razón de que el parche use una fuente de 3×7 con dos letras por celda de carácter — cómo funciona eso. La caja pasa de 7 caracteres por línea a 14 y el menú de 6 a 12.

en inglés
el menú de llamadasWIN / RIICHI / PON / CHI / KAN
la caja, preguntandoCALL TSUMO / PON CHI KAN
la caja, en tu turnoCALL KAN OR / DISCARD ONE
la caja, negándoseNOT ALLOWED
los tres avisosFURITEN HAND · MISSED RON · NO YAKU HAND
el castigoPENALTY HAND
sin ganadorDRAW / GAME
fin de la partidaEND

NOT ALLOWED merece una nota: el mismo dibujo lo piden tres negativas distintas — cantar con la mano incompleta, pedir un riichi que no vale y hacer una llamada que no cuadra.

El rótulo del final

終局 se dibuja con dieciocho caracteres, y dieciocho dan exactamente para tres letras de 16×24 —END— con una celda en blanco entre cada par. Estrechar los glifos no separa lo suficiente; la celda en blanco sí.

Esa pantalla sólo sale al terminar una partida entera, así que se dibujó sin emulador, leyendo el rótulo del propio bloque del cartucho y no de una copia escrita a mano.

Y un tutorial que no estaba

Veinte pantallas enganchadas al final del ciclo del attract. Eso tiene su propia página.

Lo que se deja en paz a propósito