в роме - 0x3AF0 - первый набор (0x3af0 - 1четверть, 0x3bf0 -2четверть, 0x3cf0 - 3четверть, 0x3df0 - 4четверть, 0x3ef0 - тип и 2 бита цвета).
0x7AF0 - второй набор
0xBAF0 - третий и т.д., всего 8 по-моему.
наборы маппятся по адресу:
маппятся по адресам [0xBAE0, 0xBBE0,0xBCE0,0xBDE0, 0xBEE0]
аналогично 8 блоков макротайлов (по 256 байт) лежат по адресам 0x36F0, 0x76F0, 0xBAF0 и т.д. и маппятся в оперативку по адресу 0xB6E0
по числу банков prg-rom - это ж у тебя в примерах кода всё есть.
далее - есть записи о том, какой уровень использует какой блок тайлов и макротайлов.
для уровней (no от 0 до 10):
res.objId = romdata[0x1E23D + no]; //номер тайлов
res.backId = romdata[0x1E24C + no];//номер chr
res.palId = romdata[0x1E25B + no]; //номер палитры, палитры по offset'у 0x1C354
res.palId2 = romdata[0x1E279 + no];
res.palBlink = romdata[0x1E288 + no];
res.bigBlockId = romdata[0x1E201 + no]; //номер блока макротайлов
также дверь может переключать эти параметры - кроме номера макроблоков (дверей 25 штук):
res.objId = romdata[0x1E6BB + no];
res.backId = romdata[0x1E6D3 + no];
res.palId = romdata[0x1E6EB + no];
res.palId2 = romdata[0x1E703 + no];
res.palBlink = romdata[0x1E71B + no];
то есть, чтобы гарантированно для каждого уровня и каждой двери был выделен свой уникальный номер - надо сделать 11 + 25 = 36 банков prg-rom (в которых будут описания тайлов) и 72 банка chr-rom (по 36 на беки и по 36 на спрайты врагов)
Добавлено позже:Банк перед этим выставляется либо 0 либо 1
от 0 до 7 наверно в оригинале, я не смотрел