Empezar

Para reproducir este desensamblado hace falta Python 3, GNU make y Pasmo. La imagen del cartucho no viaja en este repositorio: cada cual pone la suya.

qbert.rom    32.768 bytes
sha256       bd253f3285b3bf31501cd34f593f35ed3b9adfc6eb44c360c6fd59f8ab2c3684

Con el fichero en la raíz del repositorio:

make            # listado, verificación, coherencia y tests

Qué hace cada paso

ordenqué hace
make compruebacomprueba el sha256 de la ROM
make listadotraza el flujo y genera src/qbert.asm desde el binario y las notas
make verifyreensambla el listado y compara el sha256 con el de la ROM
make sanitycomprueba que ningún dato sale como código y que no queda un byte sin asignar
make testlos tests
make densidadcuántas instrucciones llevan comentario, rutina a rutina
make imagenesdibuja las imágenes de la web desde la ROM
make cotejacoteja esas pantallas con los volcados de openMSX
make webgenera las páginas HTML y comprueba los enlaces

make verify es el que decide: tiene que acabar con OK: reproducible byte a byte.

Dónde está cada cosa

ficheroqué es
src/qbert.noteslos nombres, los comentarios y los bloques de datos, anclados a dirección
src/qbert.entrieslos puntos de entrada que el trazado no puede deducir, cada uno con su porqué
src/qbert.nocodelas zonas que no son código aunque el trazado pueda entrar
src/qbert.asmel listado comentado, generado
tools/z80trace.py, tools/mkasm.pyel trazador y el generador del listado
tools/graficos.pylos dos formatos del cartucho: el RLE de la VRAM y los guiones de texto
tools/sonido.pyrecorre los datos de sonido tal como los lee el motor
tools/pantallas.py, tools/imagenes.pymontan cada pantalla desde las tablas y la pintan
tools/coteja.py, tools/coteja_todo.pyel cotejo con los volcados de openMSX
tools/omsx_*.tcl, tools/lanza_*.shlas sondas de openMSX: ver En el emulador

Las páginas: El juego, El cartucho, El código, Hallazgos, En el emulador y Preguntas abiertas.