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