Автор Тема: [NES] Prince of Persia Level editor  (Прочитано 87821 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #360 : 12 Апрель 2020, 23:40:43 »
Кто-то очень давно этого хотел... Патч-минутка на скорую руку, поэтому виден один графический глитч и неработоспособно со скелетом. Но если потратить еще минут 15, то можно полноценно заменить.

Оффлайн opr

  • Пользователь
  • Сообщений: 186
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #361 : 13 Апрель 2020, 02:15:47 »
Вопрос, принц с этим патчем не вытаскивает меч при каждой встрече с отражением (например, с обычным, не боевым)

И на уровне, как я понял, отражение не является одним видом врага. Просто такое уже делали, и там некоторые косяки были, включая такой же граф глитч

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 532
  • Пол: Мужской
  • Электролыбка
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #362 : 13 Апрель 2020, 08:00:04 »
opr, Об этой мелодии и речь. Вопрос в том, как ее в игру впихнуть? ХЗ

Оффлайн opr

  • Пользователь
  • Сообщений: 186
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #363 : 13 Апрель 2020, 09:16:56 »
opr, Об этой мелодии и речь. Вопрос в том, как ее в игру впихнуть? ХЗ
Будем узнавать, сам хотел это осуществить)

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #364 : 19 Апрель 2020, 05:56:00 »
Вопрос, принц с этим патчем не вытаскивает меч при каждой встрече с отражением (например, с обычным, не боевым)
Нет.
И на уровне, как я понял, отражение не является одним видом врага. Просто такое уже делали, и там некоторые косяки были, включая такой же граф глитч
Не думаю, что такое поведение возможно организовать правкой пары байт, как у меня.

Есть у тебя успехи в исправлении багов?

Оффлайн evgs

  • Пользователь
  • Сообщений: 1038
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #365 : 20 Апрель 2020, 18:34:46 »
Знакомая дрянь слева:
Рекомендую обновиться на последний автобилд FCEUX. Или юзать релизный 2.2.3.
Зеромус (админ ультры) сломал часть кода old-ppu, отвечающую за скрытие спрайтов
в первых 8 пикселях слева. Никто вовремя не заметил, и эта бага висела с 7 ноября 2018 (!)
Она затронула все игры, но на принце проявляется особенно заметно:
 
Исправлено в последних двух коммитах:
https://github.com/TASVideos/fceux/commit/fadb2008569f33ff6fe37e99706e9fb359388ac8
https://github.com/TASVideos/fceux/commit/16a965d15c45a938557700e0b763fef33a5f84d7

« Последнее редактирование: 20 Апрель 2020, 19:00:33 от evgs »

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #366 : 20 Апрель 2020, 23:14:24 »
Знакомая дрянь слева

Ага. Я еще думал, что разрабы забыли убрать 2-й бит в CR2. Но как-то забил на это, т.к. интересовало совсем другое. Но спасибо за наводку, покомпилю новую версию (сейчас 2.2.3-interim)
« Последнее редактирование: 20 Апрель 2020, 23:34:05 от ALXR »

Оффлайн evgs

  • Пользователь
  • Сообщений: 1038
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #367 : 20 Апрель 2020, 23:39:23 »
Если под винду - его и компилить не надо.
Автобилд же делается AppVeyor'ом.
(vc\fceux.zip) по ссылке.

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 532
  • Пол: Мужской
  • Электролыбка
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #368 : 20 Апрель 2020, 23:45:17 »
evgs, Напиши сюда по багу в моем хаке. Может кто поможет с этим глюком.

Оффлайн evgs

  • Пользователь
  • Сообщений: 1038
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #369 : 20 Апрель 2020, 23:55:29 »
Ром "Prince of Persia (U) (Hack By Greyson New Story 2) [!].nes"
CRC32: 155BF470
MD5: 4FAF4D78CD4DE17C363402012C10C8FA
SHA-1: D17D342318CE6E92C3FAFC5E0DB931AE568E011B
левел7 - 92004011

Одна из локаций состоит целиком из артефактов.
на нестопии и месене проверял.
Показать где?

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #370 : 21 Апрель 2020, 04:48:27 »
evgs, Напиши сюда по багу в моем хаке. Может кто поможет с этим глюком.

Ох, сорян, переключился на другое и забыл про то, что ты мне писал. :)
Да, бага знатная и я давно за ней гонялся: никак не понимал, почему графика в одних комнатах рушится от определенных изменений в других комнатах, вообще никак не связанных с этой (зачастую в предыдущих уровнях). И наконец-то ее нашел  :wow:

В своем роме по смещению 0x3DEE0 поменяй три байта [ 20 EF CF ] -> [ 4C 04 DF ] и (до кучи) по смещению 0x3DF4D [ 20 EF CF ] -> [ 4C 60 DF ], после чего (почти) все будет прекрасно.
Графика рушится точно не будет, а прочие эффекты никто никогда не увидит.

---
Кстати, об интересностях в игре.

Если кто замечал, то в оригинальном принце есть такие орнаменты на стенах:
221077-0
Так вот, в нашем дендевском они тоже есть:
221079-1
Но из-за досадной оплошности никогда не отображаются.

Еще одна особенность, но этого никто не замечает: в 5 уровне, в комнате с кнопкой открытия двери выхода (там, где отражение выпивает зелье вместо принца) всегда подгружается особенная графика.

Проблема с невозможностью спустится в месте, где была обваливающаяся плита. Так вот: спускаться все-таки можно, но строго в определенных местах. Судя по коду - это сделано специально для каких-то определенных мест. Не нашел каких-то особенных мест в оригинальных уровнях, где это было бы полезно.

По багу, на проявление которого наткнулся x.GREYSON.x: довольно занятный баг, который ВСЕГДА присутствует в игре, но по чистому везению в оригинале никогда графику не портит (видимо, поэтому разработчики так и не узнали, что он есть).

Графические баги (которые и не баги вовсе), которые видны если разместить определенные виды блоков рядом друг с другом: Для скелета в уровнях подземелья специально подргружается графика, которая портит его, если тот находится рядом с обычной плитой. Большинство блоков не подгружают подобное, и поэтому он не портится, если слева от него что-то разместить что-то, кроме обычной плиты (и еще пары блоков). По остальным блокам (например, в дворце) нет отдельной графики (она нужна в силу особенностей графики в NES) для большинства рядом стоящих блоков, поэтому после редактирования видно много графических артефактов. Разработчики поместили только такую графику там, которая требуется для игры, поэтому с графикой оригинального рома приходится придерживаться тех правил, которые соответствуют оригинальным уровням.

Конфигурация наборов фигур стражников (и скелетов, графика которых отличается простым смещением на определенное число) точно соответствует анимации принца (кроме изображения мертвого стражника), поэтому для стражника в схватке используются те же самые наборы анимаций, что и для принца и скелета. Но в наборе графики для противников есть только стражник и скелет. Скелета легко поменять на принца, поменяв всего несколько байт в роме, но будет артефакт графики после победы над противником (как в видео выше). Больше того: можно добавить туда и принца, но потребуется расширение рома.

Ну и наконец, для каждого уровня задаются отдельные три значения для сложности стражников:
* вероятность прямой атаки;
* вероятность атаки в ответ на атаку принца;
* вероятность того, что атака принца будет отражена.

Так вот, в 14 уровне стражника победить практически нереально (хотя и возможно при должном везении). Для уровней со скелетами вероятность отражения атаки принца завышена, поэтому они кажутся сложнее стражников. А в 7 уровне сложность сопоставима с 1 уровнем (хотя и немного выше).

Для 15 уровня (если бы он существовал) есть своя шкала здоровья и она равна 3.

Навскидку пока все. Может позже еще будет что добавить...
« Последнее редактирование: 21 Апрель 2020, 06:08:01 от ALXR »

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 532
  • Пол: Мужской
  • Электролыбка
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #371 : 21 Апрель 2020, 08:28:20 »
ALXR, немного поковырялся со своим багом на 7-м уровне. Я так понял, что краш комнат в такие артефакты зависит от объемной загруженности рома + на это влияет количество связей кнопок-решеток. Я в 11 уровне убрал повторную связь с кнопки и этот баг в 7-м исчез (но не факт что в других уровнях все норм, это еще не проверил).

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #372 : 21 Апрель 2020, 08:36:35 »
ALXR, немного поковырялся со своим багом на 7-м уровне. Я так понял, что краш комнат в такие артефакты зависит от объемной загруженности рома + на это влияет количество связей кнопок-решеток. Я в 11 уровне убрал повторную связь с кнопки и этот баг в 7-м исчез (но не факт что в других уровнях все норм, это еще не проверил).

Загруженность никак не влияет. Влияет то, какое значение возьмет багнутый код. Если оно попадает в разумные пределы, то графика не ломается, а если не попадает, то ломается. А берет он это значение из области, где располагаются уровни. Когда ты их правишь, то и данные в них меняются (или двигаются), а дальше все зависит от того, какое число оказалось в определенном месте.
Читай выше: Баг есть ВСЕГДА, просто в большинстве случаев везет и графика не ломается. Я тебе дал указание, как убрать его влияние на графику.

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 532
  • Пол: Мужской
  • Электролыбка
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #373 : 21 Апрель 2020, 08:51:11 »
ALXR, Я не знаю как менять байты

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #374 : 21 Апрель 2020, 09:19:49 »
ALXR, Я не знаю как менять байты
Если у тебя FCEUX, то идешь в меню Debug -> Hex editor, в окне Hex-редактора переключаешься в ROM-файл (View -> ROM file), после чего переходишь по указанным смещениям (Ctrl+A, далее смещение без 0x) и меняешь значения. Как сделал, в этом же окне выбираешь File -> Save ROM.

Оффлайн evgs

  • Пользователь
  • Сообщений: 1038
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #375 : 21 Апрель 2020, 18:16:29 »
Я прально понимаю, что самая актуальная версия редактора - v1.2.2 от 17.08.2016:
http://www.emu-land.net/forum/index.php/topic,66532.msg1239625.html#msg1239625

Если (вдруг) он еще в разработке, то есть рациональные предложения:
1. Палитра в редаторе (palettes editor) меняется только при смене уровня
Если же мы в главном окне выбираем pal#1 - pal#7, редактор это игнорит.
2. Выпадающий список - не самый удобный вариант. Возможно лучшим решением будет
сделать кликабельный массив цветов (по аналогии с редакторами палитр Nestopia, VirtuaNES, nnnesterJ) с номерами?
 
Всего движку доступно не более семи пресетов палитры?
PS: Хочется добиться эффекта отражения огня от стен:

« Последнее редактирование: 21 Апрель 2020, 19:01:52 от evgs »

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 532
  • Пол: Мужской
  • Электролыбка
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #376 : 21 Апрель 2020, 20:32:20 »
Цитата
2. Выпадающий список - не самый удобный вариант. Возможно лучшим решением будет
сделать кликабельный массив цветов (по аналогии с редакторами палитр Nestopia, VirtuaNES, nnnesterJ) с номерами?

Лично мне для смены палитры не хватает только номера в таблице цветов (те номера, что в списке). И всех элементов, которые поддаются изменению палитры.
Цитата
PS: Хочется добиться эффекта отражения огня от стен:

Тут ты уж перегнул. Это NES и многое сделать нельзя из-за движка.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #377 : 21 Апрель 2020, 21:59:16 »
Я прально понимаю, что самая актуальная версия редактора - v1.2.2 от 17.08.2016:
http://www.emu-land.net/forum/index.php/topic,66532.msg1239625.html#msg1239625
Да.

Если (вдруг) он еще в разработке, то есть рациональные предложения:
Я бы сказал, что он в состоянии deprecated.

1. Палитра в редаторе (palettes editor) меняется только при смене уровня
Если же мы в главном окне выбираем pal#1 - pal#7, редактор это игнорит.
2. Выпадающий список - не самый удобный вариант. Возможно лучшим решением будет
сделать кликабельный массив цветов (по аналогии с редакторами палитр Nestopia, VirtuaNES, nnnesterJ) с номерами?
Согласен. В WinXP, кажется, там вообще цветов не видно - все черные :-)


Всего движку доступно не более семи пресетов палитры?
Шесть. Два из них совпадают. Там просто места нет для более, чем 6 наборов (плюс еще несколько наборов для различных титульников и прочего подобного).


PS: Хочется добиться эффекта отражения огня от стен:
Тут не очень понял.. :neznayu: Но думаю, что для этого нужна новая графика и какие-то кунштюки добавлять в движок для этого.

Оффлайн evgs

  • Пользователь
  • Сообщений: 1038
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #378 : 21 Апрель 2020, 22:08:57 »
Да я хотел палитру подобрать таким образом, чтобы казалось, будто свет на стены падает.
В принципе нечто подобное получилось:

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 532
  • Пол: Мужской
  • Электролыбка
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #379 : 22 Апрель 2020, 11:29:06 »
Всем привет. Подправил свой хак и кое-где добился минимального искажения графики.
Обновил архив в сообщении « Ответ #328 : 06 Апрель 2020, 01:14:40 ». Старые версии попрошу удалить.

Оффлайн opr

  • Пользователь
  • Сообщений: 186
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #380 : 22 Апрель 2020, 20:10:29 »
надо все же ром расширять. Кол-во сетов палитры слишком маленькое. Интересно на счет орнамента во дворце. Его отобразить в игре вообще нет возможности?

Цитата
Проблема с невозможностью спустится в месте, где была обваливающаяся плита. Так вот: спускаться все-таки можно, но строго в определенных местах. Судя по коду - это сделано специально для каких-то определенных мест. Не нашел каких-то особенных мест в оригинальных уровнях, где это было бы полезно.
Возможно, разрабы после теста, выявившего этот баг, хотели его поправить, путем точечного исправления, но править полностью почему-то не стали, а сделали это лишь для двух позиций оси X=(4 и 8), Y-значения не имеет. Который раз убеждаюсь, что игра Принц Персии для НЕС делалась в попыхах. На счет спуска - это легко проверить путем размещения в редакторе обвалочных плит на указанных выше позициях. (Возможно, часть кода, прописанного для этих плит в оси X, можно копировать и для других координат?) У себя в хаке я давно использовал этот момент в паре мест. Вполне возможно все остальные координаты оси X и не правились в последствии, из-за того, что этот момент не особо мешает геймплэю в оригинале НЕС версии.

Оффлайн opr

  • Пользователь
  • Сообщений: 186
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #381 : 23 Апрель 2020, 10:54:36 »
Кстати, давно хотел сказать. Думаю, всем известно, что в уровнях подземелья, отличить лекарство от яда очень просто: Справа от лекарства всегда графика кирпичей, в то время. как у яда ее нет. Этот момент как-то в новом редакторе можно исправить, чтобы графику кирпичей можно было втыкать или убирать у любой бутылке.


Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #382 : 23 Апрель 2020, 13:56:17 »
Кстати, давно хотел сказать. Думаю, всем известно, что в уровнях подземелья, отличить лекарство от яда очень просто: Справа от лекарства всегда графика кирпичей, в то время. как у яда ее нет. Этот момент как-то в новом редакторе можно исправить, чтобы графику кирпичей можно было втыкать или убирать у любой бутылке.



Здесь дело в том, что у всех блоков (за некоторыми, специально обозначенными исключениями) в пределах 0x20-0x3F рисуется этот орнамент и бутылка с лекарством находится именно в этом интервале. В редактор вставлять такое смысла нет никакого, потому что это редактор, а не "исправлятор" проблем. А вот над отдельным набором патчей подумать можно.

Кстати, в 6 уровне тебя не смущало то, что нельзя взобраться на уступ, если над ним установлена решетка, даже если она открыта?
Это сделано специально, чтобы принципиально не было возможности взобраться в конце уровне в том месте, где отражение закрывает решетку.

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 532
  • Пол: Мужской
  • Электролыбка
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #383 : 23 Апрель 2020, 20:40:29 »
Цитата
Кстати, давно хотел сказать. Думаю, всем известно, что в уровнях подземелья, отличить лекарство от яда очень просто: Справа от лекарства всегда графика кирпичей, в то время. как у яда ее нет. Этот момент как-то в новом редакторе можно исправить, чтобы графику кирпичей можно было втыкать или убирать у любой бутылке.
Вообще там есть другие бутылки с ядом. Но их графика сразу не исчезает после использования. (где-то выше писал список на все бутылки « Ответ #223 : 12 Август 2015, 11:03:46 »)

Цитата
Кстати, в 6 уровне тебя не смущало то, что нельзя взобраться на уступ, если над ним установлена решетка, даже если она открыта?
Это сделано специально, чтобы принципиально не было возможности взобраться в конце уровне в том месте, где отражение закрывает решетку.
Просто банально не допрыгивает. С кнопки, разбитой плиты принц не может зацепиться за 5-ю плиту (яма в 4).
« Последнее редактирование: 23 Апрель 2020, 21:08:09 от x.GREYSON.x »

Оффлайн xKos

  • Пользователь
  • Сообщений: 103
  • Пол: Мужской
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #384 : 23 Апрель 2020, 21:45:36 »
надо все же ром расширять
Ну как бы не все играют на эмуляторах. Конечно есть флешкарик, но в последнее время юзаю самодельные карики на втором маппере. 256 кб такой карик ещё понимает, а вот если размер увеличится, то пока нет идей, как такой ром запихнуть в него, так как микруха ровно на 256 кб.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #385 : 23 Апрель 2020, 23:20:35 »
Ну как бы не все играют на эмуляторах. Конечно есть флешкарик, но в последнее время юзаю самодельные карики на втором маппере. 256 кб такой карик ещё понимает, а вот если размер увеличится, то пока нет идей, как такой ром запихнуть в него, так как микруха ровно на 256 кб.

Размер оригинального - 128 кБ, расширенного (он же UOROM обычный) - 256 кБ. Так что все влезет.

Оффлайн xKos

  • Пользователь
  • Сообщений: 103
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #386 : 23 Апрель 2020, 23:23:18 »
256 кБ. Так что все влезет
Так я и говорю, что 256 влезают, а если ещё расширить, то уже не знаю как собрать карик тогда.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #387 : 24 Апрель 2020, 00:01:41 »
а если ещё расширить, то уже не знаю как собрать карик тогда.

как всегда, руками
кто не даёт использовать больше четырёх бит?
« Последнее редактирование: 24 Апрель 2020, 00:11:59 от megavolt85 »

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #388 : 24 Апрель 2020, 01:14:43 »
Так я и говорю, что 256 влезают, а если ещё расширить, то уже не знаю как собрать карик тогда.

А зачем ЕЩЕ расширять?  o_0 Там 256 кБ хватит за глаза

PS: Для справки. В старом редакторе нашел один недочет. Если 1-й или 2-й уровень сделать дворцом, то появится такой неприятный дефект графики
221200-0
Соответственно, в старом редакторе делать из первых двух уровней дворец не стоит...
« Последнее редактирование: 24 Апрель 2020, 01:56:13 от ALXR »

Оффлайн xKos

  • Пользователь
  • Сообщений: 103
  • Пол: Мужской
    • Просмотр профиля
[NES] Prince of Persia Level editor
« Ответ #389 : 24 Апрель 2020, 06:22:32 »
А зачем ЕЩЕ расширять? 
Не знаю. Вот было предложение выше.
надо все же ром расширять
Возможно я что-то не так понял.