Автор Тема: Prince of Persia (NES) генератор паролей  (Прочитано 7451 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн angrylion

  • Пользователь
  • Сообщений: 141
  • Пол: Мужской
    • Просмотр профиля
Наваял генератор паролей для Prince of Persia(NES). Вроде, такого ранее в инете не появлялось. Встроен также анализатор существующих паролей: он расскажет, какому уровню и количеству минут соответствует пароль.
Комментируем.
Также нуждаюсь в вашем тестировании на предмет багов.
Также можете мне задавать вопросы о системе паролей в Prince of Persia(NES), ибо я кое-что об этом знаю.

Оффлайн Spirit

  • Пользователь
  • Сообщений: 91
  • Пол: Мужской
  • Jumpin' Hype
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #1 : 25 Июль 2008, 04:43:31 »
Ну круто... че то вроде там генерирует... только зачем это все ? я в эту игру на приставке играл тока, а на эмуляторе даже рома нету, зачем... как то прошло уже

Оффлайн angrylion

  • Пользователь
  • Сообщений: 141
  • Пол: Мужской
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #2 : 25 Июль 2008, 04:57:52 »
Не знаю, что сказать. Писал я, конечно, ради удовольствия, а не для того, чтобы узнать пароли к уровням :)
Стыжусь признаться в этом пороке :blush: , но нахожу в программировании некую дозу fun'а :).
« Последнее редактирование: 25 Июль 2008, 05:05:42 от angrylion »

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1509
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #3 : 25 Июль 2008, 07:40:33 »
angrylion, Молодец! Так держать! И не слушай никаго!
Цитата
Ну круто... че то вроде там генерирует... только зачем это все ? я в эту игру на приставке играл тока, а на эмуляторе даже рома нету, зачем... как то прошло уже
Зачем тебе вообще нужна эмуляция??? Скачай ром и вспомни былое.

Оффлайн Йобан Матич

  • Emu-Land Team
  • Сообщений: 2593
  • Пол: Мужской
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #4 : 25 Июль 2008, 14:20:11 »
Цитата: angrylion
Также можете мне задавать вопросы о системе паролей в Prince of Persia(NES)
Объясни как работает. =)

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #5 : 25 Июль 2008, 17:21:01 »
Ну ты намудрил. ;) Скопировать кусок асма в сях каждый сможет. ;) А вот расчет то пароля там совсем простенький на самом деле.

    pass2 = random()
    pass5 = random()
    pass1 = ((level & 3) + pass2) % 10
    pass7 = ((level >> 2) + pass5) % 10
    pass0 = ((time % 10) + pass2) % 10
    pass3 = ((time / 10) + pass5) % 10
    sum = pass0 + pass1 + pass2 + pass3
    sum += (sum % 10)  + pass5
    sum += (sum / 10)  + pass7
    pass4 = sum % 10
    pass6 = sum / 10

Если генерировать случайные числа в диапазоне от 0 до 7, а значение уровня в диапазоне от 0 до 13 (время, соответственно от 0 до 99), получим все возможные варианты паролей идентичных генерируемым игрой.
Пароли с random() значениями 8 и 9 будут работать точно также, но игра таких никогда сгенерировать не сможет.
Пароль не проверяет максимальное значение уровня, так что 14 и 15 будут вести в никуда, в несуществующие уровни.
Еще несколько уникальных паролей можно выжать, если для pass1 использовать диапазон значений от 0..9, это тоже будут пароли, которых оригинальный код генерировать не умеет.
« Последнее редактирование: 25 Июль 2008, 17:25:52 от CaH4e3 »

Оффлайн goukiX

  • Пользователь
  • Сообщений: 459
  • Пол: Мужской
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #6 : 25 Июль 2008, 21:00:14 »
удерживаем вниз+влево+старт на экране newgame и password и получаем 90 мин вместо 60.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #7 : 25 Июль 2008, 21:38:00 »
Это, кстати, не намеренный "чит", а глюк. Когда вбегаешь в комнату с зажатым вниз и старт, еще до того, как персонаж остановится перед бутылкой, происходит набор одного символа в пароле на девятку и сразу его проверка. Первый разряд пароля как раз отвечает за десятки минут, и хотя такой пароль неверный, но... Процедура проверки пароля пересчитывает контрольную сумму и кладет ее точно на то место в памяти, где она должна быть, правильную. Сравнив с изначально неправильной, которая там была (нули), она отбрыкивает пароль как неверный, но... Принц то еще не добежал, и флаг верности или неверности пароля просто не проверяется, смерти не происходит. В итоге получается, что при вбегании в комнату пароль с одной девяткой был скорректирован на правильный (90009010). Как только принц останавливается, повторное срабатывание проверки пароля дает уже положительный результат и соответственно 90 минут вместо 60. Собственно, финт может работать даже если после вбегания в комнату с зажатыми вышеназванными кнопками их отпустить до того, как принц остановится, а потом просто неспеша нажать старт, эффект будет такой же.
« Последнее редактирование: 25 Июль 2008, 21:44:08 от CaH4e3 »

Оффлайн angrylion

  • Пользователь
  • Сообщений: 141
  • Пол: Мужской
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #8 : 26 Июль 2008, 22:53:42 »
Да, у тебя гораздо кошернее. Только не
pass0 = ((time % 10) + pass2) % 10
pass3 = ((time / 10) + pass5) % 10
, а
pass0 = ((time / 10) + pass2) % 10
pass3 = ((time % 10) + pass5) % 10

« Последнее редактирование: 27 Июль 2008, 03:58:44 от angrylion »

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #9 : 27 Июль 2008, 09:03:40 »
Ага, в жавовском пасгене уже исправил, а тут забил. ;)

Оффлайн Zephyr

  • Пользователь
  • Сообщений: 544
  • Пол: Мужской
  • coder
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #10 : 29 Июль 2008, 12:07:31 »
Молодца!  :)

Оффлайн Crash Nicker

  • Пользователь
  • Сообщений: 1507
  • Пол: Мужской
  • Пришли из ниоткуда чудовища рогатые
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #11 : 29 Июль 2008, 13:00:37 »
Что ж, даже если ген писался "для галочки", то он получился очень даже неплохой. Молодцы (если ещё и Санчеза следует иметь в виду... :))

Оффлайн Spirit

  • Пользователь
  • Сообщений: 91
  • Пол: Мужской
  • Jumpin' Hype
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #12 : 30 Июль 2008, 10:43:30 »
angrylion, Молодец! Так держать! И не слушай никаго!Зачем тебе вообще нужна эмуляция??? Скачай ром и вспомни былое.

Я не говорю что эта вещь плоха, просто именно эта игра... ну как сказать... там со старта все нормально проходиться, нету ничего интересного, и пароли не дают ничего интересного, я скачаю ром поиграю, вспомню ) просто не вижу жуткой необходимости в генерации паролей, лучше сделай генератор паролей на метал геар, вот это будет очень интересно и полный руль

Оффлайн angrylion

  • Пользователь
  • Сообщений: 141
  • Пол: Мужской
    • Просмотр профиля
Re: Prince of Persia (NES) генератор паролей
« Ответ #13 : 30 Июль 2008, 17:42:19 »
Для Metal Gear есть два онлайн-генератора:
http://www.math.purdue.edu/~dbabcock/personal/vg/metal-gear.php
http://unoriginal.org/people/cybern/metal_gear.html

Также есть текстовое описание того, как работает пароль:
http://www.math.purdue.edu/~dbabcock/personal/vg/mg-passwords.txt