Кстати, в версии что Я выкладывал там он появляется при переборе спрайтов в комнате. в оригинале тоже, в 4 уровне когда нажмешь кнопку выхода и прыгнешь в зеркало вернись и снова нажми кнопку (это из-за появившегося зеркала).
Это глюк движка. Процедура проверки при определенных условиях выставляет флаг по адресу $0401 (в RAM) в 1, и тогда в комнате появляется двойник. По адресу $0402 лежит флаг, который определяет - выполняет двойник действие или нет (но не везде).
Например, если в роме (здесь и далее эксперименты с Prince of Persia (U) [!]) выставить по смещению 0x0A1E1) вместо 00 записать 01, то двойник будет во всех комнатах. Больше того, он будет стоять вместо всех стражников и скелетов на всех уровнях (правда, драться с ним нельзя будет). Между тем, игра станет непроходимой из-за 8-го уровня, где мышь должна нажать кнопку и открыть решетку.
К слову, по смещению 0x0A399 (до байта со значением FF) идет порядок действий двойника в 5 уровне (где он подбегает и выпивает бутылку, если нажать на кнопку, открывающую выход). Формат данных таков: XX1 YY1 XX2 YY2 ... XXn YYn FF, где XX - время, в течение которого выполнять действие, YY - код самого действия (всего допустимых значений от 01 до 5E включительно). Код задает адрес смещения в ROM в таблице указателей на данные, в которых описываются эти самые действия.
Все описанное, конечно, интересно, но редактировать, в сущности, нечего, т.к. это не дает возможности редактирования всех возможностей двойника (только частные случаи). Тут надо реверсить полдвижка для понимания процессов поведения спрайтов. Так что редактирование действий двойника пока откладывается.
Salewa,
x.GREYSON.xНиже выкладываю версию, где шрифт в диалоге Demo Play установил в стандартный, может заработает...