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 也需要同一个映射器来读取 $0000-$1FFF 范围内的 CHR ROM。

预期的连接方式

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

重要说明

CpuBus 和 PpuBus 要使用同一个映射器对象。后续的映射器可能带有内部的存储体切换(bank-switching)状态,因此 CPU 和 PPU 必须看到相同的映射器状态。

运行本课

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