Разработка и ромхакинг > Редакторы для консольных игр
[NES] Prince of Persia Level editor
<< < (19/30) > >>
ALXR:
Кто-то очень давно этого хотел... Патч-минутка на скорую руку, поэтому виден один графический глитч и неработоспособно со скелетом. Но если потратить еще минут 15, то можно полноценно заменить.
opr:
Вопрос, принц с этим патчем не вытаскивает меч при каждой встрече с отражением (например, с обычным, не боевым)

И на уровне, как я понял, отражение не является одним видом врага. Просто такое уже делали, и там некоторые косяки были, включая такой же граф глитч
x.GREYSON.x:
opr, Об этой мелодии и речь. Вопрос в том, как ее в игру впихнуть? ХЗ
opr:

--- Цитата: x.GREYSON.x от 13 Апрель 2020, 08:00:04 ---opr, Об этой мелодии и речь. Вопрос в том, как ее в игру впихнуть? ХЗ

--- Конец цитаты ---
Будем узнавать, сам хотел это осуществить)
ALXR:

--- Цитата: opr от 13 Апрель 2020, 02:15:47 ---Вопрос, принц с этим патчем не вытаскивает меч при каждой встрече с отражением (например, с обычным, не боевым)

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

--- Цитата: opr от 13 Апрель 2020, 02:15:47 ---И на уровне, как я понял, отражение не является одним видом врага. Просто такое уже делали, и там некоторые косяки были, включая такой же граф глитч

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

Есть у тебя успехи в исправлении багов?
evgs:
Знакомая дрянь слева:

--- Цитата: ALXR от 12 Апрель 2020, 23:40:43 ---
--- Конец цитаты ---
Рекомендую обновиться на последний автобилд FCEUX. Или юзать релизный 2.2.3.
Зеромус (админ ультры) сломал часть кода old-ppu, отвечающую за скрытие спрайтов
в первых 8 пикселях слева. Никто вовремя не заметил, и эта бага висела с 7 ноября 2018 (!)
Она затронула все игры, но на принце проявляется особенно заметно:

--- Цитата: evgs ---Короче все мне теперь стало ясно:
Если спрайт попадает на любые первые 8 пикселей слева - он на них не должен отображаться.
Когда это сломали в 2018, никто не заметил, дорисовывает себе слева 8 лишних пикселей на объектах, и пусть дорисовывает - кто ж туда сморит. Глаз за эти мелочи не цепляется.

А с принцем оказалось всё интереснее.
Игра за каким-то хером рисует спрайты персонажа и других обьектов на первых восьми пикселах, но их там быть не должно.
Этого было не видно до тех пор, пока в ультре не появилась бага.
И вот тут-то все эти обрезки рук и ног повылазили
--- Конец цитаты ---


--- Цитата: CaH4e3 ---принц как-то криво клипит спрайты, не как все за пределы экрана выводит, а в левый верхний угол ставит.
видимо в какой-то момент времени вертикальная координата еще не обновляется для некоторых спрайтов, а горизонтальная - ноль.
вот такой спрайт частично попадает в левый столбец, где должен быть невиден, а он виден.
я щас проверил, да старая версия рисовала там спрайты, хотя не должна была бы. на контре форс видно, если врага поставить в крайне левое положение, он до края экрана рисуется.
ну чо, урок будет зеромусу в след раз говнокодить осторожнее лол
--- Конец цитаты ---
 
Исправлено в последних двух коммитах:
https://github.com/TASVideos/fceux/commit/fadb2008569f33ff6fe37e99706e9fb359388ac8
https://github.com/TASVideos/fceux/commit/16a965d15c45a938557700e0b763fef33a5f84d7

ALXR:

--- Цитата: evgs от 20 Апрель 2020, 18:34:46 ---Знакомая дрянь слева

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

Ага. Я еще думал, что разрабы забыли убрать 2-й бит в CR2. Но как-то забил на это, т.к. интересовало совсем другое. Но спасибо за наводку, покомпилю новую версию (сейчас 2.2.3-interim)
evgs:
Если под винду - его и компилить не надо.
Автобилд же делается AppVeyor'ом.
(vc\fceux.zip) по ссылке.
x.GREYSON.x:
evgs, Напиши сюда по багу в моем хаке. Может кто поможет с этим глюком.
evgs:
Ром "Prince of Persia (U) (Hack By Greyson New Story 2) [!].nes"
CRC32: 155BF470
MD5: 4FAF4D78CD4DE17C363402012C10C8FA
SHA-1: D17D342318CE6E92C3FAFC5E0DB931AE568E011B
левел7 - 92004011

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

--- Цитата: x.GREYSON.x от 20 Апрель 2020, 23:45:17 ---evgs, Напиши сюда по багу в моем хаке. Может кто поможет с этим глюком.

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

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

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

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

Если кто замечал, то в оригинальном принце есть такие орнаменты на стенах:

Так вот, в нашем дендевском они тоже есть:

Но из-за досадной оплошности никогда не отображаются.

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

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

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

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

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

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

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

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

Навскидку пока все. Может позже еще будет что добавить...
x.GREYSON.x:
ALXR, немного поковырялся со своим багом на 7-м уровне. Я так понял, что краш комнат в такие артефакты зависит от объемной загруженности рома + на это влияет количество связей кнопок-решеток. Я в 11 уровне убрал повторную связь с кнопки и этот баг в 7-м исчез (но не факт что в других уровнях все норм, это еще не проверил).
ALXR:

--- Цитата: x.GREYSON.x от 21 Апрель 2020, 08:28:20 ---ALXR, немного поковырялся со своим багом на 7-м уровне. Я так понял, что краш комнат в такие артефакты зависит от объемной загруженности рома + на это влияет количество связей кнопок-решеток. Я в 11 уровне убрал повторную связь с кнопки и этот баг в 7-м исчез (но не факт что в других уровнях все норм, это еще не проверил).

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

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

--- Цитата: x.GREYSON.x от 21 Апрель 2020, 08:51:11 ---ALXR, Я не знаю как менять байты

--- Конец цитаты ---
Если у тебя FCEUX, то идешь в меню Debug -> Hex editor, в окне Hex-редактора переключаешься в ROM-файл (View -> ROM file), после чего переходишь по указанным смещениям (Ctrl+A, далее смещение без 0x) и меняешь значения. Как сделал, в этом же окне выбираешь File -> Save ROM.
evgs:
Я прально понимаю, что самая актуальная версия редактора - 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: Хочется добиться эффекта отражения огня от стен:

x.GREYSON.x:

--- Цитата ---2. Выпадающий список - не самый удобный вариант. Возможно лучшим решением будет
сделать кликабельный массив цветов (по аналогии с редакторами палитр Nestopia, VirtuaNES, nnnesterJ) с номерами?
--- Конец цитаты ---

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

--- Цитата ---PS: Хочется добиться эффекта отражения огня от стен:
--- Конец цитаты ---

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

--- Цитата: evgs от 21 Апрель 2020, 18:16:29 ---Я прально понимаю, что самая актуальная версия редактора - v1.2.2 от 17.08.2016:
http://www.emu-land.net/forum/index.php/topic,66532.msg1239625.html#msg1239625

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


--- Цитата: evgs от 21 Апрель 2020, 18:16:29 ---Если (вдруг) он еще в разработке, то есть рациональные предложения:

--- Конец цитаты ---
Я бы сказал, что он в состоянии deprecated.


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

--- Конец цитаты ---
Согласен. В WinXP, кажется, там вообще цветов не видно - все черные :-)


--- Цитата: evgs от 21 Апрель 2020, 18:16:29 ---
Всего движку доступно не более семи пресетов палитры?

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


--- Цитата: evgs от 21 Апрель 2020, 18:16:29 ---
PS: Хочется добиться эффекта отражения огня от стен:

--- Конец цитаты ---
Тут не очень понял.. :neznayu: Но думаю, что для этого нужна новая графика и какие-то кунштюки добавлять в движок для этого.
evgs:
Да я хотел палитру подобрать таким образом, чтобы казалось, будто свет на стены падает.
В принципе нечто подобное получилось:
x.GREYSON.x:
Всем привет. Подправил свой хак и кое-где добился минимального искажения графики.
Обновил архив в сообщении « Ответ #328 : 06 Апрель 2020, 01:14:40 ». Старые версии попрошу удалить.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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