Чтение дизассемблированного листинга процедуры генерации (расположена по адресам $9449-$94F4
) заставляет задуматься о том, что у разработчиков были какие-то генерирующие код инструменты, либо код писался просто не очень аккуратно, так как выполняется много лишних действий.
Пароль сохраняет параметры бойца игрока и побежденных соперников (по биту на каждого), а также пройденных соперников в кумитэ (открывается после победы над Ivanoff
).
Процедура генерации пароля, переписанная на Python
:
http://www.everfall.com/paste/id.php?tiqnj0fqdev7
Последний пароль : 4$KW\_\_\_39
Функция проверки правильности сделана более защищенной, игра не позволяет указывать пароли с запредельными значениями параметров игрока.
Значения все равно остаются в диапазоне 0..99 и прокачаться сильнее не удастся. Но это еще не все.
Просматривая оперативную память во время боя можно найти имена и соперников бойцов по адресу $804D
.
Тут можно посмотреть параметры бойцов кумитэ, которые обычно игра не показывает (расположены на 3 байта раньше имени):
По адресу $D6F1 расположены очень странные строки LAYER
и OLRAC
.
AND WE NEED TO GO DEEPER!
Я решил, что нашел секретных бойцов наподобие Ермака в самом первом Мортал Комбате.
LAYER показалось очень похожим на имя игрока 1, после вычеркивания оттуда ненужных символов (P и 1) ничего особого не происходит, но после начала боя оказывается, что у соперника остается только один почти потухший фонарик жизни.
Видимо это код, введенный разработчиками для тестирования нокдаунов и не убранный в финальной версии игры.
Если же ввести в качестве имени игрока вместо LAYER OLRAC
(два пробела в начале и 3 в конце), то перед началом боя получаем секретное сообщение от девелопера.
А вот и этот парень в фейсбуке: http://www.facebook.com/carlo.perconti Bonjour Carlo!