CadEditor - редактор уровней для множества игр под разные платформы (NES, Sega Mega Drive, GBA).
Список форматов данных уровней в играх, поддерживаемых редактором.
Название игры | Формат блоков | Формат макроблоков | Формат экранов | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aligned(2x2 + palByte1) | Linear(2x2) | Linear(8x8) | ||||||||||||||
Mega Man 6 | Aligned(2x2 + palByte1) | Linear(2x2) | (-) | ||||||||||||||
Duck Tales | Aligned(2x2 + palByte1) | Linear(2x2) | Linear(8x8) прим.1 |
||||||||||||||
Duck Tales 2 | Aligned(2x2 + palByte1p) | Aligned(2x2) | Linear(8x8) | ||||||||||||||
|
Aligned(2x2 + palByte1p) | - | Linear(16x15) | ||||||||||||||
|
Aligned(2x2) | Aligned(2x2 + palByte4) | Linear(8x6) | ||||||||||||||
Tiny Toon Adventures 2 | Linear(2x2) + palByte1p | - | Linear(16x15); Linear(16x12) | ||||||||||||||
Juuouki | Linear(2x2) + palByte1 | - | Linear(10x16) | ||||||||||||||
SD Hero Soukessen - Taose! Aku no Gundan | Linear(2x2) + palByte1 | - | (-)T | ||||||||||||||
Flintstones RoD&H | Linear(2x2)T + palByte1 | Linear(4x4)T | (-)T | ||||||||||||||
Flintstones SaDP | Linear(2x2)T + palByte1 | Linear(2x4)T | (-)T | ||||||||||||||
Jungle Book | Aligned(2x2 + palByte1)x2 | Linear(2x2)x2 | - | ||||||||||||||
Crystal Mines | Unaligned(2x2 + palByte1) | - | - | ||||||||||||||
|
Aligned(2x2 + palByte1) | - | Linear(16x16) | ||||||||||||||
|
Aligned(2x2 + palByte1) | - | - | ||||||||||||||
|
Aligned(2x2 + palByte1) | Aligned(2x2) | Linear(8x8) | ||||||||||||||
Rockin' Kats | Linear(2x2 + palByte1) | Linear(1x4)-> Linear(4x1)-> Linear(2x1) |
Linear(3x2) | ||||||||||||||
|
Linear(4x4) + palByte4 | - | - | ||||||||||||||
|
Linear(4x4) + palByte4 | - | Linear(8x8) | ||||||||||||||
|
Linear(4x4) + palByte4 | - | Linear(8x6) | ||||||||||||||
Snake's Revenge | Linear(4x4) + palByte4 | - | Rle(Linear(8x8)) | ||||||||||||||
|
Linear(4x4) + palByte4 | - | Linear(8x7) | ||||||||||||||
|
Linear(2x2) | - | Linear(16x15), palByteX | ||||||||||||||
Dooly Bravo Land | Linear(2x2) | - | Linear(16x14), palByteX | ||||||||||||||
Asterix | Linear(2x2) | - | (-)T, (palByteX)T | ||||||||||||||
Driar | Linear(2x2) + palByte1 | - | Linear(16x14) | ||||||||||||||
|
Linear(2x2) | - | Linear(16x13), palByteX | ||||||||||||||
Challenger | Linear(4x4) + palByte4 | Linear(2x2) | - | ||||||||||||||
Felix the Cat | Aligned(2x2 + palByte1) | - | Comp(-) | ||||||||||||||
|
Linear(2x2) | - | Comp(-), palByteX | ||||||||||||||
Ninja Cat | Linear(2x2) | Linear(2x2) + palByte4 | Linear(8x5)T | ||||||||||||||
Shadow of the Ninja | Linear(2x2)T | Linear(mix(2x2, palByte4))T | Linear(8x8) | ||||||||||||||
Little Samson | const(2x2) | Linear(mix(2x2, palByte4)) | Linear(8x8) | ||||||||||||||
Banana Prince | const(2x2)T | Linear(2x2) + palByte4 | Linear(8x8) | ||||||||||||||
|
const(2x2)T | Linear(2x2)T + palByte4 | Linear(8x8)T | ||||||||||||||
|
const(2x2) | Linear(2x2 + palByte4) | (-)Iy | ||||||||||||||
Gaiapolis | Linear(2x2)+ palByte1 | - | Linear(16x16)Iy | ||||||||||||||
|
Aligned(2x2 + palByte1) | - | Linear(16x15) | ||||||||||||||
|
Linear(2x2) + palByte1 | - | Linear(16x15) | ||||||||||||||
|
Linear(2x2) + palByte1 | - | - | ||||||||||||||
|
Linear(2x2) + palByte1 | - | Linear(16x12) | ||||||||||||||
|
Linear(2x2) + palByte1 | - | Linear(16x13) | ||||||||||||||
|
Linear(2x2) + palByte1 | - | Linear(16x16) | ||||||||||||||
Bugs Bunny Birthdata Blowout | Linear(2x2) + palByte1 | - | Linear(4x15) | ||||||||||||||
|
Linear(2x2 + palByte1) | - | Linear(16x15) | ||||||||||||||
Dragon, The | Linear(2x2) | - | Linear(16x12), palByteX | ||||||||||||||
Shatterhand | Linear(2x2)T + palByte1 | Linear(2x2)T | Linear(8x8) | ||||||||||||||
|
Linear(2x2) + palByte1 | Linear(2x2)T | Linear(8x8) | ||||||||||||||
Mickey Mouse 3 | Linear(2x2) + palByte1 | Linear(2x2) | Linear(8x6) | ||||||||||||||
|
Linear(2x2) + palByte1 | Linear(2x2) | (-) | ||||||||||||||
Addams Family - Pugsley's Scavenger Hunt | Linear(2x2) + palByte1 прим.2 |
Linear(2x2) | (-) | ||||||||||||||
Raf World | Linear(2x2) + palByte1 | Linear(2x2) | Linear(8x8) | ||||||||||||||
Ninja Gaiden | Linear(2x2)T | Linear(2x2)T + palByte4 | (-)T | ||||||||||||||
Ninja Gaiden 2 | Linear(2x2)T | Linear(2x2) + palByte4 | (-)T | ||||||||||||||
Ninja Gaiden 3 | Linear(2x2) | Linear(2x2) + palByte4 | (-)T | ||||||||||||||
|
Linear(4x4) + palByte4 | - | (-)T | ||||||||||||||
Jackal | Linear(4x4)Iy + palByte4 | - | (-)Iy | ||||||||||||||
Monster in my pocket | Linear(4x4) + palByte4 | - | Linear(8x6); Linear(8x8) | ||||||||||||||
Quest For Qi | Linear(4x4) | - | - | ||||||||||||||
Batman | Linear(4x2) | - | Linear(8x15), palByteX | ||||||||||||||
Predator | Linear(4x2)T прим.3 |
- | (-)T, palByteX | ||||||||||||||
Ninja Crusaders | Linear(4x1) | - | Linear(8x24)T, palByteX | ||||||||||||||
Dragon Fighter | Linear(2x2 + palByte1)T | Linear(2x2 + palByte1)T | (-)T | ||||||||||||||
Castlevania | Linear(4x4 + palByte4) | - | (8x6)T | ||||||||||||||
Addams Family | Linear(1x20); Linear(1x6) | - | Linear(-), palByteX | ||||||||||||||
Abadox | Linear(4x30 + palByte30) | - | Linear(-) | ||||||||||||||
Captain Planet | Linear(4x8 + palByte8) | - | Linear(-) | ||||||||||||||
|
Linear(2x2)W2 | - | Linear(16x15), palByteX | ||||||||||||||
Takeshi no Chousenjou | Linear(2x2)T | - | Linear(15x2)T, palByteX | ||||||||||||||
Aliens | Linear(2x2)T | - | - | ||||||||||||||
Circus Caper | Linear(2x2)T | - | (-)T, palByteX | ||||||||||||||
|
Linear(2x2) | - | (-), palByteX | ||||||||||||||
Young Indiana Jones Chronicles | Linear(4x4)T + palByte1 | (-) | (-) |
Обозначения
(NxM) - структура из N единиц в ширину и M в ширину. Var вместо числа означает, что в разных местах игры используются разные размеры, в основном для описания экранов()T - структура хранится в транспонированном виде.
()Iy - структура хранится в инвертированном по оси Y виде.
()x2 - игра содержит по две копии наборов данных на уровень.
()W2 - индексы элементов кодируются с помощью слова длиной в 2 байта
Linear() - структуры хранятся последовательно, одна за другой.
Aligned() - структуры хранятся массивами из отдельных частей (отдельный массив из всех 1х элементов структуры, затем отдельный массив из всех 2х элементов структуры и т.д.).
Unaligned() - то же, что и Aligned(), но массивы хранятся в памяти не друг за другом, а раздельно (между ними может находиться переменное число других данных, не связанных с описанием блоков)
Const() - индексы элементов структуры не хранятся, а вычисляются из индексов самой структуры.
Aligned(NxM + palByteX) - массивы из отдельных частей структуры из NxM элементов, а затем массив из частей palByteX, в котором элементы означают доп. данные для соотвествующих индексу структур.
Linear(NxM)+ palByteX - последовательное описание структур размером NxM, а затем описание массива из частей palByteX, в котором элементы означают доп. данных для соотвествующих индексу структур
(NxM)->(PxQ) - структура PxQ, образованная из P элементов в ширину и Q элементов в высоту, где элементы структуры сами являются структурами из NxM элементов.
Linear(NxM), palByteX - описание бит палитры отдельным слоем от структур.
Comp() - данные в ROM сжаты каким-либо образом.
Linear(NxM); Linear(PxQ) - в игре используются и структуры размером NxM, и структуры размером PxQ элементов в разных местах.
mix(NxM, palByteX) - биты палитры хранятся в тех же байтах, что и индексы элементов структуры.
Rle() - данные хранятся в запакованном алгоритмом RLE виде.
Способы хранения бит палитры
palByte1 - биты палитры хранятся по 2 бита в байте. Дополнительные 6 бит байта в зависимости от игры могут использоваться для хранения доп. информации (тип физики блока) или не использоваться никак.palByte1p - биты палитры хранятся сжатыми по 4 штуки в одном байте для четырёх отдельных (никак не связанных между собой) блоков
palByte4 - биты палитры хранятся в одном байте по 4 штуки для 4х блоков, связанных в один макроблок или для блока в 4x4 тайла.
Примечения
прим.1 Отдельно хранятся старшие биты номеров блоков (игра поддерживает до 512 блоков на уровень)прим.2 Байты палитры хранят 2 варианта расцветки блока - для блоков стоящих на чётных и нечётных позициях
прим.3 Блоки пересекаются между собой (блок 1 размером 4x2 тайла состоит из субблоков 1 и 2 по 2x2 тайла, блок 2 состоит из субблоков 2 и 3 - (субблок 2 входит и в блок 1 и в блок 2)
прим.4 Формат слоя палитры не исследован. Предположительно один байт кодирует данные 2х блоков карты. Линии описаны вертикально прим.5 Блоки хранятся с шагом в 1 (по 5 байт на блок - 4 номера тайлов и 1 свойства блока). Индексы палитры хранятся отдельным массивом прим.6 Байт атрибута кодирует 4 возможных цвета блока (хранится перед тайлами блока) для разных вариантов размещения на экране (чётные и нечётные позиции по горизонтали и вертикали).
Todo
- Добавить описание игр на SMD
- Добавить описание способов кодирования физики блоков