NES TDD

256. Проверка: декодирование плитки CHR из крошечного iNES ROM

ТЕСТ ПРОВЕРКИ: декодируйте одну плитку CHR из крошечного iNES ROM через реальный путь.

Урок 256 из 356 · tests/chapter_03_ppu_memory_and_graphics_data/test_256_VALIDATION_decode_chr_tile_from_tiny_ines_rom.py

Этот файл не является шагом реализации студента.

Нет ничего нового для реализации в этом тесте. Он существует только для проверки того, что части графических данных, построенные до сих пор, работают вместе через их реальные границы:

iNES bytes
    -> Cartridge.from_ines_bytes(data)
    -> CpuBus(cartridge=cartridge, ppu=ppu)
    -> mapper connected to ppu.ppu_bus
    -> ppu.ppu_bus.read($0000-$000F)
    -> decode_chr_tile(tile_bytes)
    -> 8x8 grid of color indexes

Почему эта проверка существует

Предыдущие тесты проверили чтение CHR ROM, маршрутизацию маппера PpuBus и декодирование плиток CHR отдельно. Этот тест доказывает, что байты CHR из фактического крошечного ROM iNES могут проходить через путь картриджа/маппера/шины PPU и декодироваться как графические данные.

Важно

Это всё ещё не рендеринг. Декодер возвращает индексы палитры 0-3, а не финальные цвета RGB и не буфер кадра экрана.

Известная первая плитка CHR, используемая этим тестом

low plane row 0:   1100_0011
high plane row 0:  1010_0101

Декодированная первая строка

[3, 1, 2, 0, 0, 2, 1, 3]

Вне области действия

  • рендеринг изображения таблицы шаблонов
  • рендеринг фона таблицы имён
  • поиск цвета палитры
  • синхронизация VBlank/NMI
  • спрайты

Запустить этот урок

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