230. Validación: una pequeña ROM escribe en los registros de la PPU

PRUEBA DE VALIDACIÓN: una pequeña ROM iNES escribe en los registros de la PPU.

Lección 230 de 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_230_VALIDATION_tiny_rom_writes_ppu_registers.py

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

No hay nada nuevo que implementar para esta prueba. Existe solo para validar que las piezas 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)
    -> CPU.reset()
    -> CPU.step()
    -> STA $2000 / STA $2001
    -> CpuBus.write(...)
    -> PPU.write_register(...)

Por qué existe esta validación

Las pruebas anteriores verificaron los registros de la PPU y el enrutamiento de CpuBus de forma aislada. Esta prueba demuestra que instrucciones de CPU reales, obtenidas de la PRG ROM del cartridge, pueden escribir en los registros de la PPU a través del bus.

Programa pequeño colocado en la dirección de CPU $8000:

A9 80       LDA #$80
8D 00 20    STA $2000
A9 1E       LDA #$1E
8D 01 20    STA $2001
EA          NOP

Resultado esperado

ppu.ctrl == $80
ppu.mask == $1E

Fuera de alcance

  • renderizado
  • temporización de VBlank
  • comportamiento de NMI
  • OAMDMA
  • comportamiento real del latch de PPUSCROLL/PPUADDR

Ejecutar esta lección

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