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 indexesPor 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_0101Primera 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