231. Constantes de flags de estado de la ppu
Define las constantes de flags de PPUSTATUS.
Lección 231 de 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_231_ppu_status_flag_constants.py
Archivo a actualizar
emulator/ppu/ppu.pyConstantes a añadir
VBLANK_STARTED (Will be used in next test)
SPRITE_ZERO_HIT (Will be used later...)
SPRITE_OVERFLOW (Will be used later...)Por qué existe este paso
PPUSTATUS es el registro de estado de la PPU legible por la CPU en $2002. Es un byte, y sus flags de estado de hardware importantes viven en los bits altos:
bit: 7 6 5 4 3 2 1 0
V S O - - - - -Significado
V = VBlank started
S = Sprite 0 hit
O = Sprite overflowPor qué usar constantes
Los números mágicos como 0x80, 0x40 y 0x20 funcionan mecánicamente, pero ocultan el significado del hardware. Las constantes con nombre facilitan la lectura del comportamiento posterior de la PPU:
self.status &= ~VBLANK_STARTEDes más claro que:
self.status &= ~0x80Alcance importante
Este paso solo nombra los bits de estado. Todavía no implementa el comportamiento de sprite 0 hit ni de sprite overflow. Eso requiere renderizado, evaluación de sprites, OAM y temporización de scanlines.
Pseudocódigo de implementación sugerido
VBLANK_STARTED = 1 << 7
SPRITE_ZERO_HIT = 1 << 6
SPRITE_OVERFLOW = 1 << 5Por qué 1 << 7:
Desplazar 1 a la izquierda 7 posiciones crea un byte con solo el bit 7 activado
1 << 7 == 0b1000_0000 == 0x80Ejecutar esta lección
uv run pytest tests/chapter_03_ppu_memory_and_graphics_data/test_231_ppu_status_flag_constants.py -v