Empezar

El repositorio trae el listado ya generado, pero lo que de verdad importa es que se puede rehacer entero desde el cartucho y que el resultado vuelve a ser la ROM byte a byte. Eso es lo que hace que las notas se puedan creer.

Lo que hace falta

El cartucho

No viaja con el repositorio. Hay que ponerlo en la raíz como soccer.rom, 32.768 bytes exactos:

b9536809a1784afb2e49a43d80ba9c6c8c15cd31ecbd6c284e9bf62c6927dcd4

Para comprobar que es el mismo:

make comprueba

Rehacerlo todo

make

Eso encadena las cuatro cosas que importan:

pasoqué hace
make listadotraza el flujo desde los puntos de entrada y escribe src/soccer.asm
make verifyreensambla con pasmo y compara el sha256 con el del cartucho
make sanitylo que el reensamblado NO puede cazar (ver abajo)
make testlos 39 tests

Por qué make verify no basta

El reensamblado demuestra que los bytes son los mismos, no que lo que decimos de ellos sea cierto. Un rango de gráficos leído como código sale idéntico al reensamblar —los bytes no cambian, cambia cómo se leen— y de paso infla la cobertura. Por eso make sanity corre otras tres comprobaciones:

comprobaciónqué vigila
check_trace.pyque las zonas del .nocode no se hayan trazado como código
check_datos_como_codigo.pyque ninguno de los 125 rangos de datos declarados salga como código
check_entradas.pyque ningún punto de entrada caiga dentro de una zona de datos
presupuesto.pyque código y datos sumen los 32.768 bytes, sin huecos

Lo demás

make densidad     # cuántas instrucciones llevan comentario, rutina a rutina
make imagenes     # dibuja las cinco láminas desde la ROM
make vram         # las coteja byte a byte contra la VRAM de openMSX
make web          # regenera esta web

Dónde está cada cosa

ficheroqué es
src/soccer.asmel listado, generado
src/soccer.noteslas anotaciones: nombres, comentarios y rangos de datos
src/soccer.entrieslos puntos de entrada que no se deducen solos, cada uno justificado
src/soccer.nocodelos rangos que el trazador no debe pisar
tools/el trazador, el generador de listado, el descompresor y los dibujantes
tests/los 39 tests, que corren sin el cartucho

Los tests no necesitan la ROM: reconstruyen los bytes de datos leyendo las filas defb del propio listado, que llevan su dirección en el comentario.