230. Validation tiny rom writes ppu registers
ВАЛИДАЦИОННЫЙ ТЕСТ: крошечный 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 по отдельности. Этот тест доказывает, что реальные инструкции CPU, выбранные из PRG ROM картриджа, могут записывать в регистры 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