В общем, разобрался. В игре используется навороченный маппер mmc5.
У которого есть дополнительная память для name table.
Вот из документации:
Цитата:Expansion RAM ($5C00-$5FFF, read/write)
Mode 0/1 - Not readable (returns open bus), can only be written while the PPU is rendering (otherwise, 0 is written)
Mode 2 - Readable and writable
Mode 3 - Read-only
In Mode 1, nametable fetches are processed normally, and can come from CIRAM nametables, fill mode, or even Expansion RAM, but attribute fetches are replaced by data from Expansion RAM.
Each byte of Expansion RAM is used to enhance the tile at the corresponding address in every nametable (so the extended attributes are 1-screen mirrored):
7 bit 0
---- ----
AACC CCCC
|||| ||||
||++-++++- Select 4 KB CHR bank to use with specified tile
++-------- Select palette to use with specified tile
The pattern fetches ignore the standard CHR banking bits, and instead use the top two bits of $5130 and the bottom 6 bits from Expansion RAM to choose a 4KB bank to select the tile from.
Just Breed, Yakuman Tengoku, and the Koei games use extended attributes continuously.
Я то и думал, раньше почему карта распакованная два киллобайта размером. Оказывается во втором киллобайте и хранится эта дополнительная информация для тайлов.
Карта находится по адресу $D35E для первого экрана. Если вдруг захочешь вручную менять, то для второй буквы "е" в слове Приветствуем адрес банка $D5F9.
Для второго экрана адрес карты $D043.
|