Под впечатлением от безумного и весёлого хака управления Черного Плаща захотелось устроить исследование формата уровней этой игры.
Проверка брейкпоинтами по тому же методу, что и для Chip and Dale - куски кода идентичны, только располагаются немного по другим адресам.
Но адреса проецирования описаний блоков, макро-блоков и байт цвета из палитры остаются неизменными, так что получить их можно из дампов памяти игры по тем же смещениям:
def makeTileBlocks(data): |
Так можно получить описания экранов, макротайлов и тайлов.
Указатель на активный объект также хранится в байте 70, так что можно от него вычислить расположение описания врагов.00 - Стрелок
01 - Летучая мышь
02 - Краб
03 - Каталка
04 - Балка
05 - Каталка(1-я)
06 - Каталка(2-я)
07 - Прыгающий стрелок
08 - Балка
09 - Кидатель ножей
0A - Слизняк
0B - Каталка(3-я)
0C - Висячий слизняк
0D - Пушка
0E - Чих. черепаха
0F - Резиновый робот
10 - Бриллиант
11 - Слитки
12 - Жизнь
13 - Аптечка
14 - Баночка здоровья
15 - Большая батарейка
16 - Маленькая батарейка
17 - Газ стрелок
18 - Газ тяжести
19 - Газ молний
1A - Банановая кожура
1B - Бонус на крыше
1C - Бонус в канализации
1D - Бонус крыша
1E - Пищалка?
1F - Высовывающийся робот с молотом
20 - Рыцарь бегающий
21 - Терминатор
22 - Джинн
23 - Катящееся колесо
24 - Катящееся колесо влево
25 - Яйцо-десант
26 - Огнеметчик
27 - Бомбист-вертолетчик
28 - Ворона
29 - Собака-ищейка
2A - Кенгуру-баскетболист
2B - Насос
2C - Воздушный шарик
2D - Прыгуны-кидалки
2E - Собака с конурой
2F - Древесный ползун
30 - Платформа вниз
31 - Платформа вверх-вниз
32 - Сова
33 - Ускоренная сова
34 - Бронерыцарь
35 - Надутая птица
36 - Подвес-кольцо
37 - Цепь
38 - Платформа влево-вправо
39 - Крокодил
3A - Котик-бейсболист
3B - Лет. ковер
3C - Бочкометатель
3D - Включалка
3E - Включалка
3F - Включалка
40 - Включалка платформы
41 - Платформа из канализации
42 - Платформа из канализации влево
43 - Лампа (и темнота)
44 - Каталка средняя
45 - мерцание палитры (водопад)
46 - Что-то колючее
47 - босс-крот
48 - стрелялки у бушрута и крота?
49 - Кидалка бананов
4A - Квага
4B - Волфдак просто ходит
4C - Волфдак дышит
4D - босс-водяной
4E - босс-мегавольт
4F - босс-бушрут
50 - босс стальной клюв
51 - Лет. тарелки
52 - Лет. тарелки
53 - Лет. тарелки
54 - механизмы крота
55 - механизмы крота
56 - цепи (3)
57 - цепи (1)
58 - цепи (2)
59 - бонус 2-го уровня (между черепахами)
5A - бонус 3-го уровня (конец)
5B - бонус 3-го уровня (начало)
5C - бонус 6-го уровня (начало)
5D - бонус 6-го уровня (возле 1-й черепахи)
5E - бонус 4-го уровня (в тайнике-водопаде)
5F - бонус 4-го уровня (слева от фонаря возле первого бриллианта)
60 - бонус 5-го уровня (над первой мышью)
61 - бонус 5-го уровня (между двумя каталками)
62 - бонус 7-го уровня (возле двух метателей ножей)
63 - бонус 7-го уровня (в начале этапа с терминаторами)
64 - терминатор
65 - начало уровня
66 - вторя дорога (3 уровень, бонусы)
67 - часть мегавольта
68 - вторая дорога(4 уровень, спуск в водопад)
Адреса описаний объектов:1 уровень - 10315-10347
2 уровень - 10438-10473
3 уровень - 10584-105C7
6 уровень - 106A0-106D5
4 уровень - 10816-10865
5 уровень - 10962-109A0
7 уровень - 10A89-10AC2
перед описаниями объектов по 4 массива с парами координат X и Y объектов.
Уровни описываются двумя двумерными массивами - в одном хранятся номера экранов, в другом совмещенные значение скроллов и дверей (5 бит на дверь, 3 на значение скролла), которые находятся на выбранном экране.
Массивы экранов начинается с 1DFAO, массивы скроллов - примерно с 1E1AD, длины массивов хранятся в 1DEE7.
описание уровней.
Мост |
В целом устройство намного проще и логичнее, чем в Chip and Dale
. На один уровень - один блок видеопамяти, тайлов и макротайлов и в среднем по 2 палитры, в отличие от C&D, в которой эти наборы определялись сочетанием двери и номера уровня, причем было много переключений с целью сжать 2 уровня в один набор.
Типов блоков тоже оставлено только 5 (пустой, платформа, крюк, шипы, дверь), вместо 16 чипидейловых.
Сами уровни геометрически сделаны проще, геймдизайн направлен на борьбу с врагами в большей степени, чем на решение загадок и обход препятствий, количество уровней изначально проектировалось так, чтобы уместиться в доступную на картридже память.
Из-за такой простоты достаточно легко добавить поддержку игры в редактор уровней Chip and Dale, рассчитанный на более замудренных бурундуков.
скачать : emu-land или dropbox
UPDATED v0.8, добавлены редакторы врагов и раскладок скачать :
emu-land
dropbox