230. 验证微小 ROM 写入 PPU 寄存器

验证测试:微小的 iNES ROM 写入 PPU 寄存器。

230 / 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_230_VALIDATION_tiny_rom_writes_ppu_registers.py

该文件不是一个学生实现步骤。

这个测试没有新的内容需要实现。它的存在只是为了验证目前构建的各个部分能否通过它们真实的边界协同工作:

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(...)

该验证存在的原因

之前的测试分别独立验证了 PPU 寄存器和 CpuBus 路由。这个测试证明了从 cartridge PRG ROM 中取出的实际 CPU 指令,能够通过总线写入 PPU 寄存器。

放置在 CPU 地址 $8000 处的微小程序:

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

预期结果

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

范围之外

  • 渲染
  • VBlank 时序
  • NMI 行为
  • OAMDMA
  • 真实的 PPUSCROLL/PPUADDR 锁存行为

运行本课

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