NES TDD

251. Шина CPU подключает маппер к шине PPU

Подключите маппер картриджа к PpuBus.

Урок 251 из 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_251_cpu_bus_connects_mapper_to_ppu_bus.py

Файл для обновления

emulator/bus/cpu_bus.py

Почему этот шаг существует

CPU использует маппер для чтения PRG ROM. PPU также нужен тот же маппер для чтения CHR ROM в $0000-$1FFF.

Ожидаемая схема подключения

if cartridge is not None:
    self.mapper = create_mapper(cartridge)
    self.ppu.ppu_bus.mapper = self.mapper

Важно

Используйте один и тот же объект маппера для CpuBus и PpuBus. Более поздние мапперы могут иметь внутреннее состояние переключения банков, поэтому CPU и PPU должны видеть одно и то же состояние маппера.

Запустить этот урок

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