256. Validación: decodificar un tile CHR desde una ROM iNES mínima

PRUEBA DE VALIDACIÓN: decodifica un tile CHR desde una ROM iNES mínima a través del camino real.

Lección 256 de 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_256_VALIDATION_decode_chr_tile_from_tiny_ines_rom.py

Este archivo no es un paso de implementación del estudiante.

No hay nada nuevo que implementar en esta prueba. Existe solo para validar que las piezas de datos gráficos construidas hasta ahora funcionan juntas a través de sus límites reales:

iNES bytes
    -> Cartridge.from_ines_bytes(data)
    -> CpuBus(cartridge=cartridge, ppu=ppu)
    -> mapper connected to ppu.ppu_bus
    -> ppu.ppu_bus.read($0000-$000F)
    -> decode_chr_tile(tile_bytes)
    -> 8x8 grid of color indexes

Por qué existe esta validación

Las pruebas anteriores verificaron por separado las lecturas de CHR ROM, el enrutamiento del mapper en PpuBus y la decodificación de tiles CHR. Esta prueba demuestra que los bytes de CHR de una ROM iNES mínima real pueden fluir a través del camino cartucho/mapper/bus de la PPU y decodificarse como datos gráficos.

Importante

Esto todavía no es renderizado. El decodificador devuelve índices de paleta de 0 a 3, no colores RGB finales ni un framebuffer de pantalla.

Primer tile CHR conocido usado por esta prueba

low plane row 0:   1100_0011
high plane row 0:  1010_0101

Primera fila decodificada

[3, 1, 2, 0, 0, 2, 1, 3]

Fuera de alcance

  • renderizado de imagen de la tabla de patrones
  • renderizado de fondo de nametable
  • búsqueda de color de paleta
  • temporización de VBlank/NMI
  • sprites

Ejecutar esta lección

uv run pytest tests/chapter_03_ppu_memory_and_graphics_data/test_256_VALIDATION_decode_chr_tile_from_tiny_ines_rom.py -v