251. El bus de la CPU conecta el mapper con el bus de la PPU

Conecta el mapper del cartucho con PpuBus.

Lección 251 de 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_251_cpu_bus_connects_mapper_to_ppu_bus.py

Archivo a modificar

emulator/bus/cpu_bus.py

Por qué existe este paso

La CPU usa el mapper para las lecturas de PRG ROM. La PPU también necesita el mismo mapper para las lecturas de CHR ROM en $0000-$1FFF.

Conexión esperada

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

Importante

Usa el mismo objeto mapper para CpuBus y PpuBus. Los mappers posteriores pueden tener estado interno de conmutación de bancos, así que la CPU y la PPU deben ver el mismo estado del mapper.

Ejecutar esta lección

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