Spiiin's blog

Система паролей и секреты Best of the Best. Championship Karate [NES]

Чтение дизассемблированного листинга процедуры генерации (расположена по адресам $9449-$94F4) заставляет задуматься о том, что у разработчиков были какие-то генерирующие код инструменты, либо код писался просто не очень аккуратно, так как выполняется много лишних действий.

Пароль сохраняет параметры бойца игрока и побежденных соперников (по биту на каждого), а также пройденных соперников в кумитэ (открывается после победы над Ivanoff).

Процедура генерации пароля, переписанная на Python:
http://www.everfall.com/paste/id.php?tiqnj0fqdev7
Последний пароль : 4$KW\_\_\_39

Функция проверки правильности сделана более защищенной, игра не позволяет указывать пароли с запредельными значениями параметров игрока.

Значения все равно остаются в диапазоне 0..99 и прокачаться сильнее не удастся. Но это еще не все.

Просматривая оперативную память во время боя можно найти имена и соперников бойцов по адресу $804D.

Тут можно посмотреть параметры бойцов кумитэ, которые обычно игра не показывает (расположены на 3 байта раньше имени):

Имя     Реакция Сила Защита
Bear        50  70  40
Puncher     60  75  60
Doc Jump    70  80  70
Crasyleg    80  85  80
Hammer      90  90  90
Warrior     95  95  95

По адресу $D6F1 расположены очень странные строки LAYER и OLRAC.

AND WE NEED TO GO DEEPER!
Я решил, что нашел секретных бойцов наподобие Ермака в самом первом Мортал Комбате.

LAYER показалось очень похожим на имя игрока 1, после вычеркивания оттуда ненужных символов (P и 1) ничего особого не происходит, но после начала боя оказывается, что у соперника остается только один почти потухший фонарик жизни.

Видимо это код, введенный разработчиками для тестирования нокдаунов и не убранный в финальной версии игры.

Если же ввести в качестве имени игрока вместо LAYER OLRAC (два пробела в начале и 3 в конце), то перед началом боя получаем секретное сообщение от девелопера.

А вот и этот парень в фейсбуке: http://www.facebook.com/carlo.perconti Bonjour Carlo!