Разработка и ромхакинг > Редакторы для консольных игр
[NES] Prince of Persia Level editor
<< < (2/31) > >>
ALXR:

--- Цитата: Salewa от 14 Июнь 2013, 16:25:50 ---ALXR,
Спасибо, получилось сделать переход на 2 уровень.

А зачем нужен Level layout? Это номера уровней?

--- Конец цитаты ---
Нет. Это размещение комнат в уровне. У каждой комнаты есть свой ID (он отображен внизу, в строке статуса), и в Level layout эти же ID размещены в соответствии с геометрией уровня. Т.е. можно менять расположение комнат, их количество (от 2 до 24). В первом сообщении я написал, как там с этим управляться.
Можно добавлять комнаты, но сперва надо почистить данные уровней от лишнего мусора (в диалоге Edit -> Memory usage).


--- Цитата: Salewa от 14 Июнь 2013, 16:25:50 ---А есть тайл с мечом, а то если не взял меч на первом уровне на 2 принц без меча?

--- Конец цитаты ---
Да. Это если переходит с 1-го на 2-ой. А если ввести пароль на 2-ой уровень, то там он появится с мечом.


--- Цитата: Salewa от 14 Июнь 2013, 16:25:50 ---Тайлы со знаком вопроса, это не нужные?

--- Конец цитаты ---
Они искажают отрисовку комнаты. Т.е. они действуют, как и обычные, но рисуются криво и могут исказить отрисовку всей комнаты в целом.

--- Цитата: Salewa от 14 Июнь 2013, 16:25:50 ---Кнопка со знаком бесконечности для чего ?

--- Конец цитаты ---
Обычные кнопки открывают дверь на определенное время. Эта кнопка открывает дверь и та больше не закрывается.
x.GREYSON.x:

--- Цитата ---А есть тайл с мечом, а то если не взял меч на первом уровне на 2 принц без меча?
--- Конец цитаты ---
Проверил. С мечем. Как на дос-версии. Вообще немного неудобно, когда не видишь край комнаты. в досе редактор удобнее, хотя там непонятно как решетки с кнопками совместить.
ALXR:
Выложил версию 1.0.1. Добавил возможность указать комнату, тайлами которых будут рисоваться потолки самых верхних комнат и левые стенки комнат с левого края. Без этого было бы невозможно построить нормальный уровень.

x.GREYSON.x
Я старался сделать минималистичный интерфейс. Если что-то неудобно - я поправлю. Все неудобство в данный момент только в отсутствии границ комнат?
Realsalewa:
ALXR,
ещё было бы удобно переносить курсор мышкой, а то приходится перегонять его стрелками.
x.GREYSON.x:
ALXR, почему предел в 5 косаний если можно до 10 набрать? Еще нужно поправить (подписать значения) настройки с бутылками. а то методом научного тыка выяснять какая за что отвечает - напряжно. нажимаем 5 видим маленькая с вопросом (хз что это), нажимаем Pg Dn видим мал.бут. на стене отображение кирпичей, далее большая с добавлением, далее большая с замедлением полета, далее маленькая, далее маленькая с ядом, далее большая +1, далее большая -1, далее с вопросом и по кругу. Зачем так много повторений? и еще, почему-то стражник, которого уже убил, при прохождении того же экрана снова живой?

Поправил неполадки 10 и 11 уровня
ALXR:

--- Цитата: x.GREYSON.x от 16 Июнь 2013, 14:29:38 ---ALXR, почему предел в 5 косаний если можно до 10 набрать?

--- Конец цитаты ---
Для уровня предусмотрены значения только от 1 до 5. Большие движок просто обрезает до 5, а при нуле все рушится.

--- Цитата: x.GREYSON.x от 16 Июнь 2013, 14:29:38 --- Еще нужно поправить (подписать значения) настройки с бутылками. а то методом научного тыка выяснять какая за что отвечает - напряжно. нажимаем 5 видим маленькая с вопросом (хз что это), нажимаем Pg Dn видим мал.бут. на стене отображение кирпичей, далее большая с добавлением, далее большая с замедлением полета, далее маленькая, далее маленькая с ядом, далее большая +1, далее большая -1, далее с вопросом и по кругу. Зачем так много повторений?

--- Конец цитаты ---
Каких повторений? Там тайлы зациклены по кругу: 0-255, далее опять с 0.


--- Цитата: x.GREYSON.x от 16 Июнь 2013, 14:29:38 ---и еще, почему-то стражник, которого уже убил, при прохождении того же экрана снова живой?

--- Конец цитаты ---
Это, видимо, такая особенность движка при заданном уровне здоровья в 1. Я про нее не знал. :)
x.GREYSON.x:

--- Цитата ---Еще нужно поправить (подписать значения) настройки с бутылками. а то методом научного тыка выяснять какая за что отвечает - напряжно. нажимаем 5 видим маленькая с вопросом (хз что это), нажимаем Pg Dn видим мал.бут. на стене отображение кирпичей, далее большая с добавлением, далее большая с замедлением полета, далее маленькая, далее маленькая с ядом, далее большая +1, далее большая -1, далее с вопросом и по кругу. Зачем так много повторений?



Каких повторений? Там тайлы зациклены по кругу: 0-255, далее опять с 0.
--- Конец цитаты ---
Я имел ввиду только бутылки. например 2-е мелких +1. Надо просто подписать все значения.
Realsalewa:
У меня не работает переход из комнаты. Наверно это связано с Level layout, я не понял что нужно сделать.
http://youtu.be/DcKiD8Nv7sg
ALXR:
Это связано с двумя рядом расположенными плитами с шипами. Если одну из них удалить - будет все в порядке. Еще, я бы не рекомендовал пользоваться тайлом 0x33, поскольку он вызывает глитчи (надо будет знак вопроса пририсовать к нему).
Кстати, интересно, что если правую плиту с шипами переместить на одну позицию вправо, то в комнате появляется атакующий принца двойник. Надо будет еще посидеть с дебаггером, выяснить причины его появления и поведения. :)

ps: Готовлю еще релиз с предложенными здесь исправлениями, плюс для уровней можно задавать комнаты, при входе в которые перемещаешься на следующий уровень (как в 6 уровне, когда, падая в пропасть, попадаешь на 7 уровень. Или как из 12 переходит в 13).
Realsalewa:

--- Цитата: ALXR от 18 Июнь 2013, 23:20:02 ---Это связано с двумя рядом расположенными плитами с шипами. Если одну из них удалить - будет все в порядке. Еще, я бы не рекомендовал пользоваться тайлом 0x33, поскольку он вызывает глитчи (надо будет знак вопроса пририсовать к нему).
Кстати, интересно, что если правую плиту с шипами переместить на одну позицию вправо, то в комнате появляется атакующий принца двойник. Надо будет еще посидеть с дебаггером, выяснить причины его появления и поведения. :)

ps: Готовлю еще релиз с предложенными здесь исправлениями, плюс для уровней можно задавать комнаты, при входе в которые перемещаешься на следующий уровень (как в 6 уровне, когда, падая в пропасть, попадаешь на 7 уровень. Или как из 12 переходит в 13).

--- Конец цитаты ---

А в игре же не было двойника?
Две плитки, кот обваливаются(0x0В) тоже рядом ставить нельзя, а то крашится?
ALXR:

--- Цитата: Salewa от 19 Июнь 2013, 00:57:37 ---А в игре же не было двойника?

--- Конец цитаты ---
Ну как же. В 4, 5 и 6 уровнях.


--- Цитата: Salewa от 19 Июнь 2013, 00:57:37 ---Две плитки, кот обваливаются(0x0В) тоже рядом ставить нельзя, а то крашится?

--- Конец цитаты ---
Там много чего зависит от обстоятельств. Чем меньше движущихся тайлов в комнате, тем лучше. В 11 уровне 3 падающих плиты подряд - и ничего.
Realsalewa:

--- Цитата: 3DSchumacher от 13 Июнь 2013, 21:59:15 ---турбо кнопка всегда выручает. Он там на долю секунды всегда зацепится и не коцнется

--- Конец цитаты ---
А как настроить турбокнопку(лучше на FCEUltra)?

В видеопрохождении плитка падает на голову и не наносит урон?
http://youtu.be/mv0F3CBQ_gc?t=22m39s

А при прохождении принц не заходит во все двери (проходит мимо выходов), в NES версии борется со своим отражением (а тол вроде просмотрел в видеопрохождении)?
Sprill:
А возможно сделать так, что бы двойник был на 12 уровней вместо скелета?
ALXR:

--- Цитата: Sprill от 19 Июнь 2013, 20:29:50 ---А возможно сделать так, что бы двойник был на 12 уровней вместо скелета?

--- Конец цитаты ---
Подозреваю, что без правки кода - вряд ли. Но, можно, наверное, вместо тайлов скелета поставить тайлы принца, и тогда он будет с ним драться (чтобы соединялся, как в оригинале, надо будет логику кода менять, скорее всего). С двойником еще предстоит разобраться.
Пока разобрался с demo-play. Если хочется прилизать конечный хак, то можно подстроить demo-play под свой уровень. Все это будет в следующем релизе.

В данный момент осталось разобрать две вещи: где и как открывается дверь на 13 уровне, а также появление и поведение двойника.
С двойником, боюсь, будет сложно, т.к. наиболее вероятно, что там какой-то хардкод. Но даже без последнего игру (логику уровней) можно вполне себе нарисовать полностью.
ALXR:
Выложил версию 1.0.2.

Пару слов о demo-play. Редактировать его при отсутствии сноровки сложно, поскольку необходимо достаточно точно выставлять время того или иного действия принца. Время выставляется в частоте обновления экрана (VBlank). Также, спуск и подъем на этаж ниже/выше следует разделять на несколько действий с паузами между ними, иначе он спустится/поднимется на один этаж и встанет как вкопанный.

PS: Если интерес к редактору еще у кого-нибудь остался, то продолжу исследования. :)
Realsalewa:
ALXR, у меня на Win8-x64 при нажатии на Demo-play - редактор закрывается.
x.GREYSON.x:

--- Цитата ---ALXR, у меня на Win8-x64 при нажатии на Demo-play - редактор закрывается
--- Конец цитаты ---
Такая же фигня и на х32 Win7. Если можно по-подробнее про Advensed. Что это и зачем?
Окошко выбора уровня сделай так, чтобы не было прокрутки.
Подрисуй к спрайтам все необходимые значки (особенно к бутылкам) при нажатии Pg Up/Pg Dn.
ALXR:

--- Цитата: x.GREYSON.x от 22 Июнь 2013, 16:23:55 --- Такая же фигня и на х32 Win7.

--- Конец цитаты ---
Любопытно. Из-за шрифта Courier, чтоли...


--- Цитата: x.GREYSON.x от 22 Июнь 2013, 16:23:55 --- Если можно по-подробнее про Advensed. Что это и зачем?

--- Конец цитаты ---
В игре есть "особые комнаты" в уровнях. В Advanced перечислены лишь три из них.
1. Комната, которая появляется в начале игры (где игрок выбирает - будет с начала играть или пойдет пароль набирать);
2. Комната из 6 уровня, в которую принц попадает при падении перед двойником в пропасть и попадает в 7 уровень (ее можно переназначить в любой другой уровень);
3. Комната из 12 уровня, при входе в которую происходит переход в 13 уровень (ее тоже можно переназначить).

Комнату из первого пункта нет смысла переназначать, потому что движок довольно чувствителен к строению той комнаты.
Если переназначить комнаты из 2 и 3 пунктов, то можно будет переходить в следующей уровень, если попасть в комнату из 2 пункта сверху (как в 6 уровне), а в комнату из 3 пункта слева (как в 12 уровне).


--- Цитата: x.GREYSON.x от 22 Июнь 2013, 16:23:55 ---Окошко выбора уровня сделай так, чтобы не было прокрутки.

--- Конец цитаты ---
Да, там еще обработка DblClick не помешает :)


--- Цитата: x.GREYSON.x от 22 Июнь 2013, 16:23:55 ---Подрисуй к спрайтам все необходимые значки (особенно к бутылкам) при нажатии Pg Up/Pg Dn.

--- Конец цитаты ---
Да, я это помню, но окончательное прилизывание я оставил на чуть-чуть попозже. Сейчас пока занимаюсь появлением "двойника". Правда, сделать что-либо будет с  ним, боюсь, будет сложно. Очень уж на многое там это завязано...
x.GREYSON.x:

--- Цитата ---Сейчас пока занимаюсь появлением "двойника". Правда, сделать что-либо будет с  ним, боюсь, будет сложно. Очень уж на многое там это завязано...
--- Конец цитаты ---
Кстати, в версии что Я выкладывал там он появляется при переборе спрайтов в комнате. в оригинале тоже, в 4 уровне когда нажмешь кнопку выхода и прыгнешь в зеркало вернись и снова нажми кнопку (это из-за появившегося зеркала).
ALXR:

--- Цитата: x.GREYSON.x от 22 Июнь 2013, 23:23:44 --- Кстати, в версии что Я выкладывал там он появляется при переборе спрайтов в комнате. в оригинале тоже, в 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 установил в стандартный, может заработает...
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии