212. Archivo iNES y constantes
define las constantes de disposición de iNES en
Lección 212 de 356 · tests/chapter_02_rom_loading/test_212_ines_file_and_constants.py
define las constantes de disposición de iNES en emulator/cartridge/ines.py.
Por qué existe este paso
El formato iNES pertenece a cartridge, no a la memoria genérica, porque estos valores describen el contenedor de un archivo de cartucho. Definir primero los tamaños compartidos ofrece a las siguientes lecciones de análisis (parser) una descripción coherente de esa disposición.
Implementación sugerida
INES_MAGIC = b"NES"
INES_HEADER_SIZE = 16
TRAINER_SIZE = 512
PRG_ROM_BANK_SIZE = 16 * 1024
CHR_ROM_BANK_SIZE = 8 * 1024Invariantes: la firma mágica ocupa exactamente cuatro bytes; la cabecera y el trainer tienen tamaño fijo; los bytes 4 y 5 de la cabecera cuentan bancos de PRG de 16 KiB y de CHR de 8 KiB, respectivamente. No confundas el número de bancos con longitudes en bytes.
Fuera de alcance para este paso
1. Lesson 213 adds `INesHeader`.
2. Lesson 214 adds `parse_ines_header`.
3. Lessons 215-216 add `INesRom` and `parse_ines_rom`.Ejecutar esta lección
uv run pytest tests/chapter_02_rom_loading/test_212_ines_file_and_constants.py -v