PDA

Просмотр полной версии : Panama Joe. Запасной путь обхода.



Yuri80
04.04.2016, 22:56
Panama Joe. Запасной путь обхода.

Об этой игре слышали многие. Играли тоже. Кто полностью проходил лабиринт Panama Joe, тот знает – налево пойдешь, клад найдешь. Направо пойдешь – терпение и время потеряешь. Если пойти вправо по лабиринту, то в конечном итоге, вы наткнетесь на экран, который будет как-бы бесконечно повторяться. В картах лабиринта, которые я нашел где-то в интернете, так и говорится, что он бесконечный. А так ли это на самом деле? А может все-таки какой-то тайный аварийный выход там есть? А что тогда там за ним?
Если поверхностно ознакомиться с игрой, то видно, что процедура идентификации смежных экранов расположена по адресу 35698. Если не ошибаюсь, то работает она так:

-------------------

35698: LD B,03 ; количество циклов прохода для записи смежных экранов на 4 стороны (1+3)
LD IY, (24833) ;ячейка размещения адреса вертикальных экранов сверху и снизу от текущего -1
LD HL, 28796 ;начало ячеек для записи номеров экранов (лево-право-верх-низ)
LD A, (24832) ;загружается номер текущего экрана
DEC A ;вычитается и получается левый соседний экран
LD (HL), A ;заносится в рабочую ячейку (28796)
INC A
INC A ;прибавляется 2 и получается номер правого экрана от действующего
35714: INC HL ;переходим к следующей ячейке (точка входа в цикл)
INC IY ;перейти к номеру вертикальных экранов (повторно после цикла)
LD (HL), A ;записать правый/верхний/нижний экраны
LD A, (IY+00) ;извлечь номер верхнего/нижнего экрана
DJNZ 35714 ;повторить цикл 3 раза для записи всех значений на 4 стороны от текущего

-------------------

Таким образом, процедура формирует в ячейках:

28796 – номер экрана слева от текущего
28797 – номер экрана справа от текущего
28798 – номер экрана сверху от текущего
28799 – номер экрана снизу от текущего

Зная это, давайте пройдем в левую сторону лабиринта, и остановимся перед зацикленным уровнем на предыдущем:

http://savepic.net/7971806m.jpg (http://savepic.net/7971806.htm)
Рис 1. Panama Joe. В шаге от аномального уровня.

Мы видим, что дальше расположен тот самый загадочный уровень и его идентификационный номер 40. Попробуем в него войти:

http://savepic.net/7978974m.jpg (http://savepic.net/7978974.htm)
Рис 2. Первый аномальный зацикленный уровень.

Мы видим, что ячейка, отвечающая за правый экран показывает, что за ним стоит следующий уровень под номером 41. Пройдите до противоположного прохода и загляните дальше. Вы окажетесь в следующем точно таком-же экране:

http://savepic.net/7964638m.jpg (http://savepic.net/7964638.htm)
Рис. 3. Panama Joe. 2-й повторившийся уровень.

Как видим из рисунка, теперь номер будущего уровня установился 42, предыдущего 40, а текущего 41. Таким образом, проходя этот лабиринт снова и снова, номер экрана будет приращиваться, а графика лабиринта оставаться неизменной (о структуре уровней как-нибудь потом). Через какое-то время номер уровня справа станет 255, что будет пределом значения однобайтовой переменной. Как вы понимаете, после переполнения произойдет сброс обратно в 0.
А что это за таинственный уровень 0, предлагаю проверить любителям игры. Для многих результат окажется неожиданным :)
Кто желает попробовать, для начала включите игру с бесконечной жизнью. Дойдите и войдите, в так называемый «зацикленный» уровень, и через Debugger в ячейке 28797 (правого смежного экрана) поставьте значение 255. Пройдите текущий повторяющийся, и войдите в следующий такой-же уровень. Только при этом нельзя разбиваться, иначе придется выставить значение заново.
Карта смежных экранов поменяется и теперь вы уже в 255 уровне. Предыдущим станет 254, а следующим обещает быть таинственный уровень номер 0. Осталось за малым - пройти несколько шагов вправо. Может там и есть выход на свободу из этого душного лабиринта? Но нет, там нолик, а уровень все тот-же. Зато следующим стоит уровень 1
В последний раз пройдите этот экран, и ваши мучения в лабиринте окончатся достойно… ))))))))
Вот такой эпический финал с сюрпризом может ожидать упорного геймера, который отважится пройти этот экран 218 раз подряд в правую сторону. Для сохранения интриги, что будет я пока не скажу, а ответ с результатом может опубликовать ниже любой желающий.

* Felix *
04.04.2016, 23:56
Похоже на обычный глюк, западники вообще любили выпускать глюкавые коммерческие игры, и продавать их английскому народу за хорошие деньги :)

goodboy
05.04.2016, 18:32
Yuri80, будет время - посмотри ROM версии
(они явно отличаются между собой и тем что на-кассете)

как вариант ещё можно `выключить` гибель при падении с-высоты

http://savepic.ru/9272441.png

null_device
06.04.2016, 08:14
как вариант ещё можно `выключить` гибель при падении с-высоты

Дохлый номер. Через несколько секунд, нахождения на заставочном-экране, персонаж "проваливается" сквозь пол, в "первый" игровой экран.

yuriy
10.04.2016, 00:03
Если кому интересно: Montezuma's Revenge, Remake version (september 2004 PC): Bartosz Duzy (http://rghost.ru/67cmt4NgL)

* Felix *
17.04.2016, 02:32
Ну и все, тишина, кто ни будь покажет картинку этого таинственного нулевого уровня?

null_device
17.04.2016, 04:52
* Felix *, "нулевой" уровень - это титульный экран. В который вы падаете сверху и разбиваетесь (в случае "бессмертия" этот процесс - зацикливается).

* Felix *
17.04.2016, 11:37
* Felix *, "нулевой" уровень - это титульный экран. В который вы падаете сверху и разбиваетесь (в случае "бессмертия" этот процесс - зацикливается).
Так я подозревал, сенсации не получилось :)

transman
17.04.2016, 12:02
Есть возможность в самом начале падения отпрыгнуть назад в бесконечный экран

TomCaT
17.04.2016, 13:52
Кто полностью проходил лабиринт Panama Joe, тот знает – налево пойдешь, клад найдешь. Направо пойдешь – терпение и время потеряешь.

Кстати, так понимаю, имеется в виду не стартовый экран, а тот, что на первом скриншоте в теме? Потому что со стартового пройти к кладу можно и через левую, и через правую двери.

zxlogin
01.07.2021, 13:45
А где можно почитать ещё про программные коды этой игры?