Автор Тема: [NES] Duck Tales 2 Level Editor v1.1  (Прочитано 10688 раз)

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

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Duck Tales 2 Level Editor v1.1
« : 03 Ноябрь 2015, 01:53:35 »
Решив написать простенький и легковесный редактор для себя что-то увлекся и получилось...

Вобщем, выкладываю редактор (на мой взгляд, получившийся весьма продвинутым), который начинал с простой задумки "слегка подредактировать пару мест". Редакторы у spiiin и Ti_ прекрасные, но хотелось чуть реже залезать в РОМ и видеть бОльшую часть в редакторе. И, незаметно, вышел редактор, которым можно перекроить всю игру (за некоторыми исключениями, о них ниже).
Основная функциональность заложена в редактирование UOROM (расширенной) версии ROMа, в который можно конвертнуть прямо из редактора, и включает в себя ( ++ - функциональность доступна как в UNROM, так и в UOROM, -- - только в UOROM):
[++] - изменение раскладки уровня;
[++] - изменение блоков уровня;
[++] - редактирование тайлов (точнее "мини" блоков);
[++] - редактирование кода в Египте и загадки Острова (до двух позиций);
[++] - изменение положение моста в первом уровне (в пределах верхнего этажа);
[++] - изменение объектов (без перемещения, добавления и удаления);
[++] - изменение палитры (для некоторых уровней для редактирования доступны только первые два из 4 блоков палитры фона);
[++] - изменение названия уровней;
[++] - изменение звукового сопровождения уровней;
[++] - просмотр текста и диалогов;
[++] - Редактирование выпадающих из врагов призов, а так же изменение вероятности их выпадения;
[++] - Редактирование количества жизней боссов;
[++] - Редактирование стоимости призов;
[--] - полная функциональность в редактировании блоков уровня (добавление новых/удаление ненужных);
[--] - возможность выделить под блоки конкретного уровня отдельное место (иначе редактирование блоков в одном уровне будет отражаться на другом, т.к. уровни имеют общие блоки между собой);
[--] - редактирование текста персонажей на любых уровнях (кроме уровней Underground и Pirates ship);
[--] - создание полноценного ОТДЕЛЬНОГО уровня вместо Pirates ship на базе любого из первых 6 с выделенным отдельным пространством под все ресурсы уровня;
[--] - создание/удаление объектов;
[--] - Добавление/удаление комнат;
[--] - Добавление/удаление люков, открывающихся по нажатии на кнопки (те, которые в Египте, Замке и Подземелье);
[--] - Изменение количества позиций секрета Острова (до 8 позиций);
[--] - Размещение моста на уровне Водопадов в любом месте уровня;
[--] - Объекты любых уровней можно размещать на любых уровнях. Даже на последнем уровне можно разместить, к примеру, крота из Водопадов;
[--] - Редактирование загрузчиков графики (совмещать можно только совместимые в оригинале объекты);
[--] - Для каждого уровня свой набор скрытых люков. Нет необходимости делить их между уровнями;
[--] - Особая функциональность: переход между этажами можно совершать в любом месте. За это особая благодарность Ti_, т.к. он позволил использовать его идею и код в редакторе. Кроме того, от него же добавлен патч (пока в неизмененном виде) на ускорение работы со спрайтами.

Теперь ограничения. Основная их часть имеется по причине того, что соблюдался принцип минимально править код:
  • Редактор не проверяет доступное пространство под данные в режиме UOROM. Хоть места и достаточно для того, чтобы забить все и вся, все же лучше быть осторожным и сохранять резервные копии;
  • Количество этажей ограничено 6;
  • Нет возможности изменить стоимость товаров в магазине и призов на уровнях;
  • Нет возможности поменять палитру для объектов;
  • Нет возможности поменять количество ударов боссам;
  • Нет возможности редактировать некоторые диалоги в игре (вызвано тем, что они грузятся из отдельного места и списка их как такового нет. Хотя редактор их загружает и сохраняет в незименном виде, но не отображает);
  • Количество объектов на этаж ограничено 40 штуками движком. Однако редактор не ограничивает это количество. Соответственно, при превышении этого числа, могут быть коллизии (например, будут пропадать объекты на других этажах);
  • Нет возможности редактировать графику (доступно только редактирование "мини" блоков и обычных блоков);
  • Можно редактировать только U локализацию. Русская и японская не поддерживаются. Их поддержка планируется, но модуль патчера потребуется вынести в отдельную единицу от редактора;
  • Текстовый редактор не проверяет длину и количество строк в диалогах, поэтому об этом надо заботиться самостоятельно (проверяя в эмуляторе, что текст не "уполз");
  • Максимальное количество комнат - 255. Соответственно можно забить полностью почти целиком 5 уровней. Поэтому если хочется сделать полностью все уровни забитыми до отказа, придется использовать некоторые комнаты по нескольку раз для экономии;
  • Нельзя управлять появлением/исчезновением племянников на уровнях, а так же спрайт лица, от которого ведется диалог (последнее связано с коллизиями тайлов);
  • Нельзя размещать (точнее редактор позволяет, но в игре будет артефакт) скрытые сокровища на уровнях, где они не предусмотрены;
  • Немного глючит редактор блоков: при добавлении нового блока, если тот должен оказаться на новой строке, он не отображается (хотя создается). И наоборот: при удалении последнего блока в строке, он продолжает отображаться (хотя и удален);
  • В редакторе реализована функциональность "вертикального" размещения позиций секрета Острова, но пока скрыта до полной отладки GUI редактора;

Многие из этих ограничений, скорее всего, будут сниматься по мере появлений новых версий редактора, но не все.

По "горячим клавишам" редактора (помимо тех, что указаны в меню):
- В режиме редактирования блоков (Tiles layer):
  • Ctrl+Space -запомнить блок;
  • Space - вставить блок;
  • Insert - вставить блок из диалога списка блоков;
  • +/-, PgUp/PgDn - изменить номер блока;
- В режиме редактирования комнат (Rooms layer):
  • Ctrl+Space - запомнить содержимое комнаты;
  • Space - вставить содержимое комнаты в выбранную;
  • Insert - выделить место под новую комнату и вставить в выбранное место;
  • Delete - удалить выбранную комнату;
  • +/-, PgUp/PgDn - изменить номер выбранной комнаты
- В режиме редактирования объектов (Objects layer):
  • Ctrl+Space - запомнить и удалить объект;
  • Space - вставить удаленный ранее объект;
  • Insert - вставить объект из диалога списка объектов;
  • Delete - удалить выбранный объект;
  • +/-, PgUp/PgDn - изменить номер выбранного объекта
- В режиме редактирования моста в уровне Водопадов (Bridge layer):
  • Space - установить мост в выбранную позицию;
  • +/-, PgUp/PgDn - изменить длину моста;
- В режиме редактирования позиций Скруджа (Scrooge/Checkpoint/Boss respawn layers):
  • Установка курсора перемещает соответствующую позицию Скруджа в выбранное место;

- В режиме редактирования люков (Hidden slots layer):
  • Insert - вставить новый люк (или ранее удаленный);
  • Delete - удалить выбранный люк;

- В режиме редактирования загадки Острова (Mu secret layer):
  • Insert - добавить новую позицию;
  • Delete - удалить выбранную позицию;

F5 - запуск эмулятора (если есть ассоциация с файлами *.nes)

С позициями загадки Острова надо быть аккуратнее: плюс/минус пиксель от места попадания объекта (бочки) и ничего не сработает;

В режиме редактирования блоков и тайлов (мини-блоков) также работают кнопки "Ctrl+Space" и "Space", чтобы облегчить копирование редактируемых блоков.
Также в диалоге редактирования блоков и тайлов затенены те, которые не используются в выбранном уровне.

Отдельно расскажу по редактированию секрета Острова, т.к. там неочевидное редактирование.
Во-первых, позиции располагаются всегда на одной линии;
Во-вторых, отображаются только в случае совпадения размещения объекта 0x22 и координат самих позиций. Таким образом, чтобы разместить секрет в другой комнате, надо удалить позиции из имеющейся комнаты, удалить объект 0x22. Затем, добавить объект 0x22 в выбранную комнату, и уже теперь добавлять позиции там же.

Ну и про то, что для каждого набора объектов есть свой набор подгружаемой графики, особо говорить не буду: и так, вроде известно. Т.е. для корректного отображения того или иного объекта нужно разместить "где-то рядом" объект Graphics loader, иначе вместо изображения объекта будет невнятный набор пикселей.

Так как сухим текстом описать все возможности редактора все же сложно, чуть позднее попробую сделать обзорное видео, освещающее все возможности редактора.

Ну и поскольку полностью протестировать все меня не хватило, то возможны какие-нибудь несущественные "глюки" или даже падение программы. Если таковое обнаружится, буду разбираться отдельно.

ps: Редактор рождался почти месяц и имеет почти 100 ревизий в svn... o_0
« Последнее редактирование: 28 Ноябрь 2015, 06:48:27 от ALXR »

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3939
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #1 : 03 Ноябрь 2015, 09:23:43 »
"начинал с простой задумки "слегка подредактировать пару мест"

Так сам то ты что хотел подредактировать? )


"Количество объектов на этаж ограничено 40 штуками движком. Однако редактор не ограничивает это количество. Соответственно, при превышении этого числа, могут быть коллизии (например, будут пропадать объекты на других этажах);"
Ну раз решил создать мега редактор, мог бы вставить блокировку, чтобы больше 40 объектов на уровень не добавлялось, чтобы самому не считать и не следить за этим.

Как я понял, здесь врагов можно ставить в любом порядке и это не будет вызывать баги тайлов? Если это так, тогда действительно был смысл делать такой редактор. А если нет, тогда вся работа впустую по сути. )
« Последнее редактирование: 03 Ноябрь 2015, 10:02:49 от +Kinbeas+ »

Оффлайн Xerox

  • Ушел с форума
  • Сообщений: 1360
  • Стримы ретро каждый день
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #2 : 03 Ноябрь 2015, 09:29:37 »
Мне нравится, что визуально видно весь уровень - это позволить продумывать лучше загадки и секреты

Оффлайн Чайман

  • Пользователь
  • Сообщений: 245
  • Пол: Мужской
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #3 : 03 Ноябрь 2015, 09:43:07 »
"И узрел Охламон, что сие есть круть несусветная..." (с) БО

Хде ставить + овер 9000? :)

Раз уж есть "ps", где сказано про ревизии, то нельзя ли и на репо ссылку?
Всегда было интересно каким макаром пишутся редакторы. (Интерес на 99% праздный).

Оффлайн 2nd Channel

  • Пользователь
  • Сообщений: 909
  • Пол: Мужской
  • Разработчик TNU4
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #4 : 03 Ноябрь 2015, 09:44:07 »
А если нет, тогда вся работа впустую по сути. )
Решительно возражаю против такого заявления. Хоть я и не ромхакер (но самому интересно хотя бы почитать и сохранить подобный софт по мере появления), но сводить значимость редактора к нулю всё же неверно. Он будет альтернативным вариантом.
Xerox отметил, что уровень видно полностью - полагаю такой возможности нет в другом редакторе. Чем ни плюс? Сам прекрасно знаю насколько это упрощает кропотливую работу левелдизайна.
Почитал возможности - можно, сказать, рассчитан на облегчение создания новых локаций в первую очередь. Лично я "за" такие хаки, поскольку старое приедается,  и не хватает всего-то новых карт уровней без всяких наворотов.

Опять же, не спец в этом всём (может редактор дублирует большинство возможностей другого/-их редактор -ов), но писать, что такая работа была проделана зря, как минимум, простое неуважение к трудам автора.

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3939
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #5 : 03 Ноябрь 2015, 10:05:53 »
2nd Channel, да, этот редактор по многим аспектам лучше редактора Тая, хотя бы тем, что здесь уже вшит код на свободное перемещение между этажами, сразу можно выставлять выдвижные люки, перемещать обваливающийся мост и т.п. Но если он не решает одну из главных проблем - смысла в таком труде немного. Я сам редактор не скачивал, мне то он ни к чему. )
« Последнее редактирование: 03 Ноябрь 2015, 10:12:44 от +Kinbeas+ »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #6 : 03 Ноябрь 2015, 10:07:29 »
ALXR, держи плюсиков!=) Но, все таки, когда опенсорс будет?)
Желающие могли бы подправить чего.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #7 : 03 Ноябрь 2015, 10:29:49 »
+Kinbeas+, отвечу по порядку.

Цитата: +Kinbeas+
Так сам то ты что хотел подредактировать? )

Быть может, я неправильно выразился.  :) Мысль была не в создании своего мода, а просто поиграться перестановкой разного в разные места (для себя). Покуда редактор писался, уверяю, наредактировался в хвост и в гриву (как и в остальных своих редакторах).

Цитата: +Kinbeas+
Ну раз решил создать мега редактор, мог бы вставить блокировку, чтобы больше 40 объектов на уровень не добавлялось, чтобы самому не считать и не следить за этим.

Это было бы не совсем правильно. Если вдаваться в технические тонкости, то я увидел ограничение лишь в массиве, который хранится в RAM в размере 40х6 = 240 байт, и единственный смысл которого - запомнить: отображать объект на экране или нет (будь то племянник, или сундук с призом). Т.к. каждый элемента массива содержит всего два значения: 00 (не отображать) или 01 (отображать), то в случае необходимости его можно запросто расширить до 40х8 = 320 объектов на этаж (по биту в каждом байте в массиве), не меняя его размер. Но едва ли есть смысл напихивать столько объектов на этаж :)

Цитата: +Kinbeas+
Как я понял, здесь врагов можно ставить в любом порядке и это не будет вызывать багов тайлов? Если это так, тогда действительно был смысл делать такой редактор. А если нет, тогда вся работа впустую по сути. )

Это невыполнимое условие по двум причинам:
- Во-первых, количество объектов весьма велико, чтобы вместить все их тайлы + тайлы скруджа в массив 256 тайлов спрайтовой части PPU. Можно, конечно, путем включения/выключения соответствующих объектов их отображать поочередно, изменяя каждый раз таблицу тайлов, но игра, думаю, превратится в пошаговую стратегию. :)
- Во-вторых, ни редактор, ни даже сам движок понятия не имеют, какому объекту какую таблицу тайлов подгружать. Разработчики просто воткнули в уровни маркеры таблиц тайлов для подгрузки нужной таблицы в нужном месте и все. Как по мне, так очень удобно. В отличие, от, скажем SMB2, где таблица одна на весь уровень и не меняется.
Единственное, что можно (да и была такая мысль изначально) добавить редактору удобства, добавив для каждого объекта комментарий: какую таблицу рекомендуется использовать для конкретного объекта.
Между тем, для UOROM расширен массив таблицы маркеров, что позволило вставлять в старших уровнях объекты из младших. Впрочем, разработчики и не планировали вставлять объекты из других уровней, учитывая инструкцию ORA. Тут пришлось немного поправить код...

Цитата: Чайман
Всегда было интересно каким макаром пишутся редакторы. (Интерес на 99% праздный).

Это локальная репа :) Там нет ничего необычного, если честно: просто интерпретация байтов в объекты при загрузке и обратная трансляция при сохранении. Вся основная соль в отладчике и ковырянии кода игры. Мне не жалко, могу сбросить в ЛС код загрузчика, но там 100 кБ сишного кода, едва ли без контекста будет ясно.  :neznayu:

Цитата: DrMefistO
Но, все таки, когда опенсорс будет?)

Я и не ожидал, что найдутся желающие присоединиться к разработке. Но коли так, то причешу места, которые мне неловко выставлять на всеобщее обозрение и выложу в общий доступ. :)
« Последнее редактирование: 03 Ноябрь 2015, 10:40:12 от ALXR »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #8 : 03 Ноябрь 2015, 10:44:12 »
ALXR, благодарю!) Вообще, стоит выкладывать сорсы в любом случае)
Авторы оказываются не у дел порой, редакторы обрастают найденными багами, и поправить их ой как хочется. А обратиться не к кому. Да и вообще, мало ли в каком случае кому-то исходник может пригодиться.

Вот, к примеру, переводишь игру (при том, что криво переведенный пиратский перевод уже есть), а утилит, с помощью которых ее переводили, либо нету, либо без сорсов и с багами. Ну или встроить в свой редактор игры хочешь код пакера/анпакера, чтобы тулзы сторонние не использовать. Вариантов много.

В общем, нужно базу накапливать исходников (игр, утилит и т.д.), т.к. сказать "Public Domain".

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #9 : 03 Ноябрь 2015, 11:45:19 »
Глянул в лоадер, увидел пару неприятных багов. Поправил, выложил исправленную версию.
Все же, иногда, незамутненным взглядом полезно по коду пробегаться... <_<

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #10 : 03 Ноябрь 2015, 11:55:04 »
Классно ещё один редактор под дак тейлс 2. :)
По тексту и на загадки тоже добавлены объекты. Ну вот с объектами конечно да ограничение хорошее будет, да и вообще с размещением разных врагов, поскольку там врагов очень много которые между собой палитрой обмениваются, так что думаю там не только будут неправильные пиксели но и палитра.
Из предложений, раз уж смотрю добавил код на мост и на любые комнаты, ещё добавить кода на второго игрока.
Ну и парочки нововедений не помешало бы насчёт объектов, потому что там спрайтовый движок очень тормознутый, тай это тоже исправлял. Ну и некоторые там объекты ещё ограничены по использованию, например каталки нельзя ставить и спихивать между разбитыми камнями и двигать зеркало в Египте на сколько вздумается. Тай это тоже если что исправлял, можно будет добавить. ;)

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3939
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #11 : 03 Ноябрь 2015, 14:33:49 »
Roket, если даже ALXR дал понять, что он уже наредактировался вдоволь, то от других тем более не стоит ждать энтузиазма, что кто-то полностью станет всё переделывать даже на продвинутом редакторе. Поэтому есть ли смысл серьёзно дорабатывать - не знаю. А уж твои "идеи" по поводу второго игрока вообще улыбнули. Да и не вижу вообще смысла ставить, например, каталки на каждом уровне, или обваливающийся мост. Каждый уровень имел свои особенности, сейчас всё мешать в кучу - ну хорошо, если из этого получится что-то дельное и продуманное.

Лично ты, как я понял, собираешься делать уровни, раз вносишь предложения? Или просто "до кучи" написал?

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #12 : 03 Ноябрь 2015, 14:53:01 »
+Kinbeas+, это уже сделанно в новом хаке на базе хака со вторым игроком, который чп если ты помнишь такой хак. Ну пока у меня руки не доходят доделать его. Как нибудь стимул появится и даже застримим его.

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3939
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #13 : 03 Ноябрь 2015, 15:01:34 »
+Kinbeas+, это уже сделанно в новом хаке на базе хака со вторым игроком, который чп если ты помнишь такой хак. Ну пока у меня руки не доходят доделать его. Как нибудь стимул появится и даже застримим его.
Ты редактировал уровни на базе хака на двух игроков? Сейчас это увидеть нельзя? )

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #14 : 03 Ноябрь 2015, 15:13:22 »
Цитата
Ты редактировал уровни на базе хака на двух игроков? Сейчас это увидеть нельзя? )
Да. Но пока нельзя, хак на 128 спрайтов ещё будет в нём, для чип и дейлов 2 уже сделали правда поправить нужно некоторые места.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #15 : 03 Ноябрь 2015, 15:58:19 »
Цитата: Roket
Ну и парочки нововедений не помешало бы насчёт объектов, потому что там спрайтовый движок очень тормознутый, тай это тоже исправлял.

Вообще, я у Ti_ спрашивал разрешения только в отношении перехода между этажами, потому что это правда очень напрягает и одно неверное движение приводит к фатальному сбою. Конечно, если есть живой интерес добавить его наработки в редактор, то при его согласии, их можно добавить в патчер и это даст больше свободы действий.

Цитата: Roket
ещё добавить кода на второго игрока.

Я там выше писал, что хочу вынести патчер отдельной единицей от редактора, соответственно будет возможность опционально применять различные патчи к коду.
Цитата: Roket
каталки нельзя ставить и спихивать между разбитыми камнями и двигать зеркало в Египте на сколько вздумается

Про зеркало в Египте я знаю. Еще знаю про босса в Бермудах, где координата X вшита в код. А вот про каталки можно поподробнее? Речь про те, что в замке? Если в замке, то разбитые камни - это какие? Хочется посмотреть

Цитата: +Kinbeas+
если даже ALXR дал понять, что он уже наредактировался вдоволь, то от других тем более не стоит ждать энтузиазма

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

+Kinbeas+, вообще, было бы здорово, если бы ты все же внес здравую критику проекту, скачав, пощупав редактор: чего можно было бы еще добавить, помимо высказанного, т.к. ты действительно здорово задизайнил уровни и по мере работы над ними наверняка были какие-то интересные идеи. И интересна точка зрения именно творческая: по удобству, по, быть может, багам-глюкам каким. Левел-дизайн - тоже непросто. Я, например, пока пытался отделать пару комнат в водопадах, трижды чуть не сгрыз клавиатуру, выставляя фон с горами и водопадами... Пришлось сделать копирование содержимого комнат из одной в другую, чтобы можно было дублировать фон и надстраивать над ним свои локации (еще можно сделать Undo/Redo, кстати...)


« Последнее редактирование: 03 Ноябрь 2015, 16:06:40 от ALXR »

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #16 : 03 Ноябрь 2015, 16:12:12 »
ALXR, ну да каталки это бочки которые можно пинать. Есть в уровне underground. Но вся проблема в том если их разместить на камнях которые можно разбивать и скинуть такую каталку между ними, то там бесконечно будут появляться взрывы.

Добавлено позже:
Прост чисто случайно такой баг обнаружился.


Добавлено позже:
с зеркалом там скорее сложнее будет. Там код же прикручен к определённому месту.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #17 : 03 Ноябрь 2015, 17:19:14 »
Если я все правильно понял, то код зеркала там примерно такой:
if ( offsetX )
{
if ( offsetX == 0x10 )
call move_left_of_Scrooge();
else if ( offsetX == 0x20 )
call move_right_of_Scrooge();
}

offsetX = 0;
if ( posX != #90 )
goto _a641;

fNoMove = 1;
breaking_blocks_Y = #C0;

if ( !find_object(0x21) )
goto _a641;

break_blocks();

_a641:
out();

В сущности, тут лучше сделать так:
if ( offsetX )
{
if ( offsetX == 0x10 )
call move_right();
else if ( offsetX == 0x20 )
call move_left();
}

offsetX = 0;
// if ( posX != #90 )
// goto _a641;

// below code move down
// fNoMove = 1;
// breaking_blocks_Y = #C0;

if ( !find_object(0x21) )
goto _a641;

if ( posX != posX_of_object21 )
        goto _a641;

fNoMove = 1;
breaking_blocks_Y = #C0;

break_blocks();

_a641:
out();

По видимому, разработчики решили, что если не проверять posX, то частые вызовы find_object будут приводить к тормозам...
Не там тормоза искали.  :lol:
« Последнее редактирование: 03 Ноябрь 2015, 17:35:27 от ALXR »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #18 : 03 Ноябрь 2015, 20:24:59 »
Это невыполнимое условие по двум причинам:
- Во-первых, количество объектов весьма велико, чтобы вместить все их тайлы + тайлы скруджа в массив 256 тайлов спрайтовой части PPU. Можно, конечно, путем включения/выключения соответствующих объектов их отображать поочередно, изменяя каждый раз таблицу тайлов, но игра, думаю, превратится в пошаговую стратегию. :)

+Kinbeas+, это уже сделанно в новом хаке на базе хака со вторым игроком, который чп если ты помнишь такой хак. Ну пока у меня руки не доходят доделать его. Как нибудь стимул появится и даже застримим его.

Да в хаке на 2-их очень мощное сочетание объектов, тех которые нельзя сочетать было в оригинале. Причем именно в том, что не выкладывали, а есть у Рокета только (и у меня).



Добавлено позже:
В общем, нужно базу накапливать исходников (игр, утилит и т.д.), т.к. сказать "Public Domain".
На DT2 кстати думал выложить свой дизасм, там всё полноценно сделал.  Впрочем, пока бы скинул только ALXR'у, раз он так заморочился, пусть в ЛС отпишет если надо.
« Последнее редактирование: 03 Ноябрь 2015, 20:39:35 от Ti_ »

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #19 : 03 Ноябрь 2015, 20:47:07 »
Да забыл тоже вот сочетание объектов более вместительное по нескольку врагов может быть разных, ну при условии что они совпадают палитрой друг с другом.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #20 : 12 Ноябрь 2015, 13:11:50 »
Готовится следующая версия редактора, в которой анонсирую:
- Выгрузка данных в отдельный файл (т.е. уровни и объекты можно будет отдельно сохранить в файлик);
- Для каждого уровня свой набор скрытых люков;
- Переход на новый загрузчик;
- Редактирование параметров боссов;
- Редактирование цен на призы в уровнях;
- Редактирование загрузчиков графики (область PPU для них не меняется, но можно будет создавать свой набор).
Последний пункт будет скорее не для рядового пользователя, который захочет просто поиграться с ромом.

Заодно приступил к модхаку. В планах есть много интересных (и новых, которых нет в оригинале) загадок, часть из которых уже реализованы и работают. Кое-что особенное запланировано на последний уровень. Если кто захочет потестировать (как будет готова определенная часть), пишите в ЛС. :)

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor
« Ответ #21 : 23 Ноябрь 2015, 21:31:13 »
Готовится следующая версия редактора, в которой анонсирую:
- Выгрузка данных в отдельный файл (т.е. уровни и объекты можно будет отдельно сохранить в файлик);
- Для каждого уровня свой набор скрытых люков;
- Переход на новый загрузчик;
- Редактирование параметров боссов;
- Редактирование цен на призы в уровнях;
- Редактирование загрузчиков графики (область PPU для них не меняется, но можно будет создавать свой набор).
Последний пункт будет скорее не для рядового пользователя, который захочет просто поиграться с ромом.

Заодно приступил к модхаку. В планах есть много интересных (и новых, которых нет в оригинале) загадок, часть из которых уже реализованы и работают. Кое-что особенное запланировано на последний уровень. Если кто захочет потестировать (как будет готова определенная часть), пишите в ЛС. :)

Новая версия готова. Почти все заявленное добавлено и даже больше.
Пока небольшое обзорное видео.
dt2ed.zip (18.9 MB)
Это же видео на трубе (но почему-то плохого качества)
Чуть позже выложу редактор.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor v1.1
« Ответ #22 : 27 Ноябрь 2015, 23:12:49 »
Обновил версию редактора в шапке. Возможностей стало больше, редактировать стало проще. :)
Ну и, раз особого интереса не наблюдается, то это пока последняя (публичная) версия редактора.
Если кто-то захочет улучшить, дополнить, готов поделиться исходниками (за этим в ЛС).


Оффлайн DJ P0N3

  • Пользователь
  • Сообщений: 11
  • Unicorn!
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor v1.1
« Ответ #23 : 30 Декабрь 2015, 19:29:40 »
Пожалуйста нет, мне очень он нравится, не закрывай.
У меня столько вопросов, но ты явно уже не сделаешь.
Сначала мне было обидно, так как хотелось жизней у боссов больше, и ты сделал это!
Но тут столько вопросов, много.
В твоём видео такие классные штуки. А я как ставлю, то баги какие-то. Змею хотелось на первом уровне поставить. А она блин зомби племянники какие-то. Лодка глюченая, хотя она же принадлежит первому уровню.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor v1.1
« Ответ #24 : 31 Декабрь 2015, 17:26:52 »
Пожалуйста нет, мне очень он нравится, не закрывай.
Кроме интереса к нему дело еще в том, что я даже не знаю, что в него можно еще добавить.  :neznayu:
Он и сейчас-то во многих местах довольно тяжел для понимания тому, кто не знаком с внутренним устройством игры.

У меня столько вопросов, но ты явно уже не сделаешь.
Сначала мне было обидно, так как хотелось жизней у боссов больше, и ты сделал это!
Но тут столько вопросов, много.
Задавай. Я же не писал, что не буду отвечать на вопросы. :)

В твоём видео такие классные штуки. А я как ставлю, то баги какие-то. Змею хотелось на первом уровне поставить. А она блин зомби племянники какие-то. Лодка глюченая, хотя она же принадлежит первому уровню.
Это связано с графическими объектами. В ветке эта тема обсуждалась в части совместимости объектов. Совместимость я сделал настолько возможной, насколько это позволяет немодифицированный движок в части работой со спрайтами и PPU.

Для того, чтобы понять, как это работает для начала надо проставить все галочки в меню View->Canvas, тогда станут отображаться графические объекты (зеленые квадратики).
Каждый такой графический объект (gfx) подгружает определенную графику в память PPU и уже этой графикой рисуются враги и прочие объекты в игре. Соответственно, если ты хочешь, скажем, вместе с лягушкой разместить ту же лодку, то устанавливаешь gfx в этом месте и редактируешь его в Tools->Graphics Editor, пытаясь совместить объекты, которые хочешь поместить рядом.
Не все объекты можно совместить друг с другом (скажем, племянников и фонари-приведения из уровня замка). Но даже с такими ограничениями можно добиться неплохой совместимости объектов, которой нет в оригинальной игре.

Между тем, не стоит забывать, что при попадании "в кадр" другого gfx, будет загружена новая графика и враги, которые допрыгали, долетели, доскакали до этого места могут превратится в кашу из пикселей. Вобщем, это процесс творческий и нудный, но при желании можно сделать лучше, чем в моем видео.

ps: Впрочем, есть небольшая модификация, позволяющая использовать gfx из любого уровня в любом уровне, что значительно расширяет возможности.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
[NES] Duck Tales 2 Level Editor v1.1
« Ответ #25 : 02 Июнь 2016, 16:36:24 »
Версия 1.1.1

Внес небольшую правку для облегчения редактирования слотов.
Некоторые слоты могут находиться на месте несуществующих для текущего уровня комнат, что существенно затрудняло их правку. Кроме того, неудобно шариться по всему уровню в их поисках, чтобы удалить и наставить новых. Теперь можно одной кнопкой удалить ненужные и добавить свои.
ps: Появляется только в UOROM.

Оффлайн Гринька Отрепьев

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor v1.1
« Ответ #26 : 11 Декабрь 2016, 13:14:08 »
Во первых большое спасибо за удобный редактор.
Во вторых поясни за некоторые вопросы:
    1. Как пользоваться графическим редактором? У меня некоторые объекты выглядят как куча пикселей.
    2. Как сделать так, чтобы при перемещении между двумя этажами с новыми комнатами, была прокрутка, а не чёрный экран?
    3. Можно ли увеличить жизнь боссов в зависимости от уровня сложности?

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3939
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Duck Tales 2 Level Editor v1.1
« Ответ #27 : 11 Декабрь 2016, 15:42:08 »
2. Как сделать так, чтобы при перемещении между двумя этажами с новыми комнатами, была прокрутка, а не чёрный экран?
Раскатал губу.   :lol:

Оффлайн Гринька Отрепьев

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
[NES] Duck Tales 2 Level Editor v1.1
« Ответ #28 : 11 Декабрь 2016, 17:43:44 »
Раскатал губу.   :lol:
Как что-то плохое.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 337
    • Просмотр профиля
Re: [NES] Duck Tales 2 Level Editor v1.1
« Ответ #29 : 12 Декабрь 2016, 07:39:33 »
Во первых большое спасибо за удобный редактор.
Во вторых поясни за некоторые вопросы:
    1. Как пользоваться графическим редактором? У меня некоторые объекты выглядят как куча пикселей.
Для этого нужно в меню View -> Canvas щелкнуть по пункту 'Show special objects': отобразятся загрузчики графики (зеленые квадратики).
В меню Tools -> Graphics editor можно увидеть, графика каких объектов подгружается каждым загрузчиком. Соответственно, в зоне действия загрузчика (он действует с точки где он находится до момента появления другого загрузчика по ходу перемещения Скруджа по уровню) будут правильно отображаться те объекты, графику которых он загружает в PPU. Чтобы иметь возможность добавлять/удалять объекты в загрузчик графики, нужно конвертнтнуть игру в UOROM (Tools -> Convert to UOROM).

    2. Как сделать так, чтобы при перемещении между двумя этажами с новыми комнатами, была прокрутка, а не чёрный экран?
Для этого переходы на другой этаж нужно размещать по центрам четных экранов (считая с левой стороны), либо начиная от центра и до самого края крайнего правого экрана.
В противном случае будет черный экран (он предотвращает сбой в графике).

    3. Можно ли увеличить жизнь боссов в зависимости от уровня сложности?
Движком игры такого не предусмотрено. В патч такое тоже не закладывалось. Количество жизней босса задается в редакторе вне зависимости от опции уровня сложности.