prince of persia 1989 коды уровней
Prince of Persia: Скрытые уровни
Этот текст не про современные игры Prince of Persia. Этот текст про тот оригинальный Prince of Persia, который вышел в далёком 1989 г. А если конкретнее, то про версию игры для игровой приставки NES, которая была известна на территории СНГ под названием «Денди».
Версия Принца Персии для MS-DOS позволяла попадать на разные уровни запуская игру с ключом: prince.exe megahit номер_уровня или prince.exe improved номер_уровня для другой версии. В версии для NES для доступа к уровням используются коды.
Чтобы попасть на тот или иной уровень в версии NES, надо в самом начале игры зайти в левую комнату и набрать там нужный код. Коды выдаются после прохождения очередного уровня.
Уровней всего 14, значит необходимо знать 13 кодов. Однако, исследования игры выявило несколько интересных вещей.
Коды можно вычислять. После того, как вы пройдёте первый уровень, вам дадут код от второго. На его основе можно вычислить несколько кодов от других уровней. Для этого нужно прибавить к восьмизначному коду уровня число 1001.
Допустим, получен код от второго уровня игры: 73232535.
Очевидно, что номера уровней отличаются друг от друга на 4. Согласно этому правилу, если у нас, допустим, есть код 9-го уровня, то мы можем из него получить код 9 + 4 = 13-го уровня.
Путём вычислений можно получить коды скрытых уровней, в которые невозможно попасть обычным путём. Я обнаружил два таких уровня. Код одного из таких уровней, после прибавления 1001 превращается в код четвёртого уровня. А так как коды у нас различаются на 4, то я условно назвал этот скрытый уровень «нулевым».
Вот как выглядит нулевой уровень:
Выход из уровня находится прямо за вашей спиной, но попробуйте пройти этот уровень!
Код другого уровня у меня получился после того, как я прибавил 1001 к коду 11 уровня. Поэтому я назвал этот уровень «пятнадцатым».
Вот как он выглядит:
В самом начале вас в спину бьёт скелет, после чего вы, вдобавок, падаете с высоты. Пройти этот уровень ничуть не легче, чем «нулевой». Если играть в игру не в эмуляторе, а в настоящей приставке, этот уровень может не грузиться. Будет просто чёрный экран. А вот «нулевой» уровень работает и там и там.
Итак, коды всех уровней:
Эмулятор NES и ROM-файл игры Prince of Persia для него прекрасно находятся в поисковых системах.
Prince of Persia
Данные по игре | ||||||||||||||||||
| ||||||||||||||||||
Коды |
Запустите игру с параметром megahit (prince.exe megahit). Во время игры нажимаем: Генерирование паролей для серии игр Prince of PersiaДобрый день, уважаемые пользователи. Prince of Persia (Sega Master System/Sega Game Gear)ТеорияГенерацияКодированиеСимволы в позициях принимают значения «ABCDEFGHIJKLMNOPQRSTUVWXYZ», где A=0, B=1… Y=24, Z=25. 2) Теперь кодируем получившиеся значения: Интересный багВ игре есть баг, с помощью которого можно получить бессмертие. Но перед объяснением, я хотел бы обсудить архитектуру уровней. Условно разделим экран на 3 этажа. Если у принца жизни от 1 до 7, то при падении со 2 этажа на 1, жизни не тратятся. А при падении с 3 этажа на 1, тратится 1 жизнь. Если жизней 0, то происходит всё наоборот. При падении со 2 этажа на 1, принц умирает, а при падении с 3 этажа на 1, происходит баг: игра даст принцу 8 жизней (не забываем, что максимум равняется семи). Prince of Persia (Game Boy/Game Boy Color)ТеорияГенерация1 позиция = (4 позиция + 7 позиция + 8 позиция) mod10 КодированиеКо всем позициям применяется операция: XOR 5. Если после выполнения этой операции получилось двухзначное число, то надо вычесть 4. 2) Теперь кодируем получившиеся значения: Готовый пароль: 39820685 Prince of Persia (Sega Genesis)ТеорияПароль состоит из 6 позиций. Эти позиции сохраняют данные игровые параметры: ГенерацияУсловно разделим пароль на две части (каждая часть состоит из трёх позиций). Первая часть сохраняет время: Полученное число из 10 CC переводится в 26 СС (СС — система счисления). Вторая часть сохраняет время, количество жизней и уровень: Полученное число из 10 CC переводится в 26 СС. Потом полученное значение нужно зеркально отобразить. Если длина полученного «пароля» меньше 3 символов, то справа дописывается необходимое число нулей. КодированиеСимволы в позициях принимают значения «ABCDEFGHIJKLMNOPQRSTUVWXYZ», где A=0, B=1… Y=24, Z=25. Первая часть пароля: Вторая часть пароля: Теперь кодируем получившиеся значения: Интересный багВ игре есть баг, с помощью которого можно получить бессмертие. Чтобы его активировать, нужно в EU версии ввести пароль с нулевым количеством жизней. Теперь принцу не страшны враги (главное — не убирать оружие). Но с активацией бага, игрок получает одну проблему. Если упасть с большой высоты, которая грозит потерей всех жизней, то ничего не произойдёт. Но если упасть с высоты, при которой у принца должна потратиться жизнь, то игра зависнет, а экран окрасится в красные тона. Prince of Persia (SNES)Вот и настало время поговорить о самой лучшей реализации первого персидского принца (по моему скромному мнению). По сравнению со всеми предыдущими версиями, для SNES сделали более красочные локации, улучшили парирование, частично изменили начальные уровни и добавили много новых стадий (итого 20). А чтобы игрок не мучался, время увеличили до 120 минут (играй сколько влезет). ТеорияТеперь посмотрим из чего состоит сырой пароль:* в скобках указан номер бита. ОбозначенияS — номер уровня ((1-20)-1) в двоичной C.C. (время*7) + (5, если время mod60≠0) + (5*((время div60)-1)) + рандом (0-6 + ((5, если время mod60=0) или (14534, если время div 7200=1))) C1 = S(1) XOR S(4) XOR L(0) XOR L(1) XOR T(0) XOR T(1) XOR T(2) XOR T(5) XOR T(7) XOR T(8) XOR T(10) XOR T(13) XOR T(15) XOR U(0) XOR 1 C2 = S(1) XOR S(2) XOR S(3) XOR L(0) XOR L(2) XOR L(3) XOR T(1) XOR T(4) XOR T(5) XOR T(8) XOR T(9) XOR T(10) XOR T(12) XOR T(14) XOR T(15) C3 = S(0) XOR S(1) XOR S(3) XOR L(2) XOR T(2) XOR T(3) XOR T(5) XOR T(6) XOR T(7) XOR T(8) XOR T(9) XOR T(11) XOR T(14) XOR U(0) КодированиеUS/EU: «BTL3GY7Q9CVM4HZ8R+DWN5J12S!FXP6K». Вычисляем время: Вычисляем контрольные суммы: Записываем получившийся пароль в двоичной С.С.: Записываем получившийся пароль в десятичной С.С.: Теперь кодируем получившиеся значения: Prince of Persia 2: The Shadow & The FlameПервая часть обрела огромную популярность. Выход сиквела был лишь вопросом времени. И через четыре года появилось продолжение. Но новая часть не сыскала бурных аплодисментов, которыми наградили первую часть. И портировали её на небольшое количество игровых платформ. А жаль! Я считаю, что вторая часть получилась лучше первой. Теперь принц путешествует не по однообразным тёмным локациям, а по целой Персии. Но хватит лирики, пора переходить к делу. Игра обзавелась двумя портами, которые сохраняют игровой процесс с помощью паролей. Эти порты ужасны (лучше играйте в DOS версию). SNES версия получилась корявая: музыка дребезжащая, звуки противные, геймплей убит и ко всему этому, в игре вырезан 14 уровень, в котором должна состояться битва с Джаффаром. Версия для Sega Genesis не лучше. Так как эту игру официально не выпустили, то я её смог увидеть только с помощью пиратского картриджа на Сегу. И каково́ оказалось моё разочарование, когда я дошёл до 9 уровня и узнал, что из-за бага со статуей лошади, этот уровень непроходим. Игру можно пройти, но для этого нужен пароль на 10 уровень… а в книге паролей, этой игры не было. Prince of Persia 2: The Shadow & The Flame (SNES)ТеорияПароль состоит из 6 позиций, каждая позиция состоит из 4 битов, итого 6*4= 24 бита. Эти биты сохраняют данные игровые параметры: Теперь посмотрим из чего состоит сырой пароль:ОбозначенияS — (уровень — 1) в двоичной С.С. КодированиеСимволы в позициях принимают значения «BCDFGHJKLMNPRTVW», где B=0… W=15. Особенности сохранения времени и работоспособности пароля:Если подумать, то всё просто — одна позиция отвечает за время mod10, а другая за время div10 и максимальное количество времени равняется 99. Но не всё так просто. В пароле не проверяется максимальное значение единиц и десятков. Что это значит? В пароле можно установить количество десятков и единиц от 0 до 15. Если я создам пароль, где количество единиц равно 15, то единиц будет 5, а 1 перейдёт в количество десятков, анологично, если я создам пароль, где количество десятков равно 15, то десятков будет 5, а 1 перейдёт в количество сотен. Получается, максимальное количество времени равняется: Но выше, я уже описал, что максимальное значение = 164. А почему? Это происходит из-за контрольной суммы. Если С2≥16, то пароль не будет работать. Этот аспект я объясню чуть позже, а сейчас перейдём к генерации пароля (чтобы понять дальнейшее повествование, я советую прочитать пример генерации пароля). Переводим значения в двоичную систему счисления:Уровень = 2-1 =1 = 0001 Вычисляем время:163= 150+13 Записываем сырой пароль и вычисляем 2 контрольные суммы:C1 = 0001+0001+1101 = 1111 (0001) (0001) (1101) (1111) (1111) (1111) Записываем получившийся пароль в десятичной С.С.:Теперь кодируем получившиеся значения:Я создал пароль CCTWWW. Если увеличить уровень на 1, то пароль не будет работать, т.к. C2 станет равна 16. Неработающий пароль будет иметь вид: DCTWBB. А теперь проверим игру «на вшивость». Второй уровень очень короткий, поэтому его можно пройти без потери времени. Если я пройду уровень, какой пароль выдаст мне игра? Вдруг в системе паролей есть секрет, который я не раскрыл? А что если… … вот зараза. В игре не только геймплей ужасный, но и система паролей недоделанная. Prince of Persia 2: The Shadow & The Flame (Sega Genesis)ТеорияПароль состоит из 5 позиций. Эти позиции сохраняют данные игровые параметры: ГенерацияКодированиеСимволы в позициях принимают значения «HFMGRANBPWTEIZVQDLYSKCX», где H=0, F=1… C=21, X=22. Первый шаг: Второй шаг: Теперь кодируем получившиеся значения:
|