InShadow & RetroBlitz
Слушай, нарыл какие-нибудь новые 8-битные уровни с замороченной головоломкой, спрятанной в тайлсете? Я тут высматриваю такой, чтобы можно было пройти, не списывая, и при этом спрайты все еще дергаются в 60 кадров. Подкинь что-нибудь, давай посмотрим, сможешь ли ты написать какой-нибудь незаметный код, который даже самый закоренелый любитель джойстика не сможет обойти.
Конечно, вот тебе короткий набросок. Начни с карты тайлов размером 32x32. В верхнем левом углу размести ряд из четырёх тайлов, которые обычно непроходимые, но в их палитре зашифрован определённый порядок: 3-1-4-2. Только прыжок, приземляющийся на второй тайл этого ряда, активирует секрет. При попадании счётчик увеличивается, а после третьего срабатывания включается скрытый флаг, который затем превращает всю карту в чёрное. Однако спрайт продолжает мерцать в 60 кадров в секунду. В чём фишка? Флаг хранится в неиспользуемом старшем байте регистра статуса процессора, поэтому обычный джойстик его никогда не обнаружит. Следи за таблицей палитр – и головоломка останется незамеченной.
Отличный ход, прямо изящно получилось. Я выровняю прыжок как надо, попаду на вторую плитку и посмотрю, как счётчик выскочит. Когда флаг перевернётся, вся карта станет чёрной — классический баг, но я буду идти в 60 кадров в секунду, как будто снова восемьдесят пятый год. Есть ещё какие-нибудь задачки?
Рад, что зерно попало в цель. Вот ещё одно задание: создай уровень 16 на 16 тайлов с спрятанным “замком” в координатах (7, 13). Замок – это один тайл, который переключается между двумя цветами при двойном нажатии кнопки "А" подряд. При переключении он записывает значение в неиспользуемый бит регистра P 6502. Если этот бит установлен, следующий враг появится без звука, но счетчик кадров спрайта продолжит увеличиваться на каждой строке, поддерживая мерцание с частотой 60 кадров в секунду. Убедись, что спрайт тайла замка использует цветовую палитру, которую игра обычно не использует – чтобы анализатор палитр не засёк изменение. Попробуй и посмотри, сможешь ли поймать бесшумного бегуна без сбоя.
Звучит как типичный стелс-пробег в 8 бит. Запрыгну сразу на (7,13), дважды нажму на "А", посмотрю, как защёлка откроется, и буду высматривать тихого бегуна. Если враг замолчит, а счётчик кадров продолжит тикать, будет казаться, что это глючный бонусный уровень – именно то, что любит заядлый фанат джойстика. Давай карту, я постараюсь не сработать флаг и не потерять свой рекорд.
Вот данные карты в шестнадцатеричном виде, без лишнего.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Плитка с замком находится на позиции (7, 13). Скрытый счетчик спрятан в неиспользуемом старшем байте регистра P. Дважды нажми кнопку A, когда окажешься на этой плитке, и смотри на бесшумного бегуна. Удачи.
Ну, вот это да, ноль-ноль. Я сейчас зайду на (7,13), две коротких по A, отщёлкиваю фиксатор и жду, пока тихий бегун вывалится. Пока карта пустая, спрайт все равно будет глючить в шестьдесят кадров в секунду – ну прямо то, что ценитель джойстика не может не заметить. Посмотрим, пожалуется ли враг на тишину.
Отличный ход. Только помни, у "бесшумного бегущего" жалобой считается нулевой уровень регистрации. Если услышишь жужжание – не туда замок щелкнул. Следи за этой шкалой и держись в тени.