Exponer los datos actuales del framebuffer de fondo desde Console.
Lección 283 de 356 · tests/chapter_05_rendering_pipeline/test_283_console_background_framebuffer.py
Archivo a actualizar
emulator/console.py
Por qué existe este paso
El renderizador ahora puede extraer un framebuffer de fondo a partir de la memoria actual de la PPU:
ppu_background_to_framebuffer(ppu)
Console es el coordinador de la máquina de más alto nivel que posee la relación CPU/PPU. El código del frontend debería poder pedir eventualmente a Console el framebuffer de fondo actual sin conocer los detalles de la extracción de memoria de la PPU.
Console.step()
advances emulation time
Console.render_background_framebuffer()
observes current PPU memory and returns pure framebuffer data
No renderices dentro de Console.step(). Un fotograma real contiene muchas instrucciones de CPU; renderizar después de cada instrucción de CPU sería derrochador y mezclaría la temporización con la observación.
Ejemplo de implementación sugerida
from emulator.rendering.framebuffer import Framebuffer
from emulator.rendering.ppu_background_renderer import ppu_background_to_framebuffer
classConsole:
...
defrender_background_framebuffer(self) -> Framebuffer:
return ppu_background_to_framebuffer(self.ppu)
Regla de arquitectura
Esto sigue devolviendo datos de framebuffer puros. No importes pygame aquí.
Fuera de alcance
visualización con pygame
step_until_frame/run_frame
sprites
OAMDMA
entrada del mando
Ejecutar esta lección
uv run pytest tests/chapter_05_rendering_pipeline/test_283_console_background_framebuffer.py -v