247. Constantes de bits de PPUMASK
Define las constantes de bits de PPUMASK ($2001).
Lección 247 de 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_247_ppumask_bit_constants.py
Referencia
https://www.nesdev.org/wiki/PPU_registers#PPUMASKArchivo a actualizar
emulator/ppu/ppu.pyConstantes a añadir
MASK_GRAYSCALE
MASK_SHOW_BACKGROUND_LEFT_8
MASK_SHOW_SPRITES_LEFT_8
MASK_SHOW_BACKGROUND
MASK_SHOW_SPRITES
MASK_EMPHASIZE_RED
MASK_EMPHASIZE_GREEN
MASK_EMPHASIZE_BLUEPor qué existe este paso
PPUMASK es el registro de máscara de renderizado escribible por la CPU en $2001. Controla qué partes del renderizado son visibles y cómo se enfatizan los colores.
La disposición de los bits se suele escribir como
BGRs bMmGSignificado
B = emphasize blue
G = emphasize green
R = emphasize red
s = show sprites
b = show background
M = show sprites in leftmost 8 pixels
m = show background in leftmost 8 pixels
G = grayscaleAlcance importante
Este test solo requiere constantes con nombre. El comportamiento de renderizado usará estos nombres más adelante. No implementes la escala de grises real, el énfasis de color, el renderizado de fondo ni el renderizado de sprites en este paso.
Pseudocódigo de implementación sugerido
# PPUMASK ($2001) bits: BGRs bMmG
MASK_GRAYSCALE = 1 << 0
MASK_SHOW_BACKGROUND_LEFT_8 = 1 << 1
MASK_SHOW_SPRITES_LEFT_8 = 1 << 2
MASK_SHOW_BACKGROUND = 1 << 3
MASK_SHOW_SPRITES = 1 << 4
MASK_EMPHASIZE_RED = 1 << 5
MASK_EMPHASIZE_GREEN = 1 << 6
MASK_EMPHASIZE_BLUE = 1 << 7Valor común
$1E == 0b0001_1110Esto habilita
- fondo en los 8 píxeles izquierdos
- sprites en los 8 píxeles izquierdos
- renderizado de fondo
- renderizado de sprites
Fuera del alcance
- renderizado real de píxeles
- comportamiento de paleta en escala de grises
- comportamiento de énfasis de color
- comportamiento de recorte del borde izquierdo
Ejecutar esta lección
uv run pytest tests/chapter_03_ppu_memory_and_graphics_data/test_247_ppumask_bit_constants.py -v