ALKOSHA, немного дилетантских мыслей.
Здесь уже обсуждалось, если нужно 256x256 тайлов (2048x2048 пикселей), rescomp должен съесть как Image. После в начале уровня (этой карты) из Image подгружается TileSet, палитры. Когда персонаж движется, на границы 1-2 тайлов подгружается полоска карты впереди через VDP_setMapEx() и подобные. Я не знаю какое ограничение на размер Image, если используется сжатие, то всё упрётся в RAM, и кроме того будет медленный скроллинг.
Если хотите только уникальные тайлы на всю игру, то чтобы использовать сжатие для тайлов, можно загрузить их как TileSet. Карту придётся сгенерировать, как Map и использовать VDP_setMapEx() или как обычный массив u16 с VDP_setTileMapDataRectEx(). Эти функции позволят подгружать вертикальные полоски без лишних циклов. Отдельно придётся позаботиться о палитре.
Генерацию карты можно сделать из Tiled (там вроде свой формат есть). На каждый уровень (где, допустим, 256x256 тайлов) будет свой Map или массив u16. Сложность с TileSet: VDP_loadTileSet() подгружает все тайлы, а чтобы выбрать некоторые со сжатием, придётся самому распаковывать и подгружать через VDP_loadTileData(). По карте невозможно узнать какие тайлы нужны. Значит придётся хранить для каждого уровня данные об используемых TileSet'ах (будут трудности, если используется сжатие, если нет, то можно хранить один TileSet на все уровни). Фактически, для каждого используемого тайла на уровне нужен индекс в VRAM, который находится в карте (Map, u16), и где его брать. Например:
struct TileZ {
u16 indexTileSet; // Индекс/смещение из TileSet
u16 tileSetID; // Какой TileSet
};
TileZ level1[] = { {1, 0}, {3, 0} };
Будем считать индекс в VRAM индексом массива level1, тогда идём по массиву и подгружаем подряд в VRAM (начиная с какой-нибудь позиции, TILE_USERINDEX например). indexTileSet нужно умножать на 32 в байтах или 8 если по u32.
Если вы будете изменять карту, прежде чем загружать, это придётся делать во время скроллинга, что создаст доп. нагрузку. Это и не должно потребоваться, если сразу сгенерировать карту правильно.
Конечно, чтобы уровни были красочными, нужно умело жонглировать палитрами в разных областях.
Segaman, не знал, что спецификация от SMD есть на русском, забавно.