Разработка и ромхакинг > Редакторы для консольных игр
[NES][SMD] CadEditor - редактор игр Capcom и других
spiiin:
Door - двери (переходы от одной части уровня к другой). Можно включить галочку Show scrolls (она включает отображение байт, которые отвечают за направление движения на экране и номер двери, в которую перенесется игрок, если зайдёт в дверь на этом экране).
Более детально параметры каждой двери можно настроить в плагине Level Params - в частности, какой из банков графики будет использоваться, и на какой именно экран и в какое место телепортируется игрок после входа в дверь. Особенно с ними лучше не мудрить (теоретически, можно делать интересные развилки, закольцованные уровни-лабиринты, переключение палитр на уровне и другое, но надо очень хорошо понимать, как работает промотка списка объектов, чтобы не сломать их появление после прохода через дверь, вроде в самом простом случае, достаточно, чтобы дверь вела на экран выше и левее того, с которого осуществляется переход, не помню уже всех нюансов).
Музыку на уровнях также можно поменять в плагине Level Params. Параметр Music No - это номер трека, который будет играть на уровне.
lcczylchao:
https://www.youtube.com/watch?v=1gTHXOag-RU
This version is good.I don't know if they have them.I haven't found it for a long time. I hope we can share it.
Bugs:
Где скачать хак чип и Дейл 2 Ломакс атак? Тот, что показывали на этом стриме? Или это платный ром?
Ti_:
--- Цитата: Bugs от 23 Март 2019, 18:53:21 ---Где скачать хак чип и Дейл 2 Ломакс атак? Тот, что показывали на этом стриме? Или это платный ром?
--- Конец цитаты ---
Нигде. Он вроде не был доделан. Плюс он под меднафен думдей эдишен (256 спрайтов и поддержка mp3).
Bugs:
ОК
lcczylchao:
Hope to update chip dale 2 enemy modifier and improve terrain modifier :D
2nd Channel:
Отзеркаленный посредством Cad Editor-а первый уровень Jungle Book NES.
Автор левелхака: GhostDog (MASTERMAX)
СКАЧАТЬ
Ранее на стриме выяснили, что из врагов могут выпадать чекпоинты и кристаллы. Механика кристаллов практически полностью рабочая, как в версии на GB. Единственное что - могут, как и другие бонусы, пропасть, если не взять.
В Cad Editor-е заявлена возможность редактирования всех 10 уровней.
Но по факту их только 9. Отсутствует последний. И бонус-уровней тоже нет.
В курсе ли кто-то, был ли 10-ый уровень в прежних ревизиях редактора?
И можно ли в него импортировать файлы формата *tmx (редактировать карту тайлов в сторонней программе и потом вставить через Cad Editor в игру)? Стандартным функционалом редактора переделывать уровни довольно сложно.
Также в игре посредством чит-меню можно попасть в дополнительные, но, вероятно, программно, это не полноценные, уровни.
Записывал видео по секретам и наблюдениям в этой игре
Sharpnull:
--- Цитата: 2nd Channel от 24 Январь 2021, 19:05:01 ---И можно ли в него импортировать файлы формата *tmx (редактировать карту тайлов в сторонней программе и потом вставить через Cad Editor в игру)?
--- Конец цитаты ---
Хотя spiiin писал:
--- Цитата ---Обратный импорт карты из Tiled в редактор CadEditor невозможен, так как Tiled не поддерживает описание задание каких-либо огранений карты, необходимых для сохранения карт в ROM-файлы.
--- Конец цитаты ---
Карту тайлов можно импортировать из TMX, по крайней мере в некоторых играх. По-хорошему нужно писать внутренний код, но для простоты и для примера я написал как скрипт.
Инструкция
Скопировать Script-ImportTMX.cs в CadEditor\Scripts.
1. Сначала экспорт. Export > Export TMX, выбрать Layout с (1x1) на конце (уровни из нескольких экранов не поддерживаются), сохранить как CadLevel.tmx в папке с конфигом (например, CadEditor\settings_nes\jungle_book).
2. Редактировать CadLevel.tmx в Tiled.
3. Выбрать экран (Screen No), который нужно импортировать.
4. Нажать Run Script (иконка <> в панели инструментов), выбрать Script-ImportTMX.cs, нажать Run.
Из ограничений, на уровне (layout) должен быть только один экран как в [NES] Jungle Book, не подойдёт [NES] Duck Tales 2. Я не сделал поддержку нескольких экранов из-за чуть большей сложности, но вроде ничто не мешает добавить поддержку. Набор тайлов никак не учитывается при импорте.
Путь до файла .tmx можно отредактировать, строчку:
--- Код: ---string pathTMX = Path.Combine(ConfigScript.ConfigDirectory, "CadLevel.tmx");
--- Конец кода ---
заменить на такого рода:
--- Код: ---string pathTMX = @"C:\Folder\1.tmx"; // Абсолютный путь
string pathTMX = @"1.tmx"; // Относительно CadEditor. Тоже самое @".\1.tmx"
--- Конец кода ---
--------
Обновил скрипт (v1.1), теперь поддержка нескольких экранов на одном уровне, код в основном повторяется из ExportTMX.cs. Я не разобрался в разнице между group, layout, level, в коде разные структуры и данные с такими именами, в Duck Tales 2 количество group меньше на 1, чем layout/level, где есть ещё какой-то скрытый как уровень Bermuda, но я вычисляю номер именно group, который выбирается на главном экране и получаю нужный layout. Ещё как и экспорт, используется только нулевой слой, не знаю что на других.
Теперь заменяется весь уровень (Group), так что можно выбирать любой Screen No в пределах этого Group. Если выбрать Group, то в Screen No будет 1-й из этой Group, поэтому нужно выбирать между 1-м из Group и меньше, чем номер следующего Group. Проверял только на Duck Tales 2.
--------
Версия 1.2. Добавил GUI - диалог выбора TMX. По умолчанию открывается в папке с конфигом, это можно изменить в скрипте для удобства, заменить строчку:
--- Код: ---string defaultDir = Path.GetFullPath(ConfigScript.ConfigDirectory); // Normalization
--- Конец кода ---
на такого рода
--- Код: ---string defaultDir = @"D:\";
--- Конец кода ---
--------
Добавил скрипт на github: https://gist.github.com/infval/d3403dad72b7caaba001b98ee3c8f056.
dimidrol:
здравствуйте, редактировал я файл metatiles.bin из хака дюны. И заметил один момент в редакторе блоков галочка priority ставится, но сохраняется через раз, палитру например для тайла меняешь и нормально, vflip и hflip тоже, а вот priority иногда работает иногда нет.
Редактор 5.3 использовал
Sharpnull:
--- Цитата: dimidrol от 27 Январь 2021, 14:08:06 ---priority иногда работает иногда нет
--- Конец цитаты ---
Баг здесь, ошибка copy-paste, написано int val = cbVFlip.Checked ? 1 : 0;, а должно быть int val = cbPrior.Checked ? 1 : 0;. Вы можете исправить и скомпилировать сами, но замечу, что есть ветка development, где были обновлены конфиги игр, но изменения не добавлены в master и следовательно нет в последней версии 5.3. Скину исправленную сборку в ЛС позже, если сами не сможете.
Также вы можете менять с этой ошибкой: если нужно выставить 0/1 в Priority, то поставить 0/1 в VFlip и после нажать на Priority, позже вернуть нужное значение VFlip. Неважно какое будет значение в Priority после нажатия на него, так как значение берётся из VFlip, но установка при нажатии на Priority.
Zeriod:
При открытии игры в редакторе выходит вот такое объявление. Подскажите, как это исправить?
Sharpnull:
Zeriod, либо у вас папка с программной находится не локально, либо вы вероятно не разблокировали файлы после скачивания как здесь и написано https://github.com/spiiin/CadEditor (Important: if you download release archive from github, you must unblock it for correct running EXE and DLL files). Там же написано, что можно обойти проблему, если скачать CadEditorSetup53.exe, а не .zip, или разблокировать файлы (в свойствах файлов). Я правда не понимаю почему файлы заблокированы, если распаковывать через 7zip или WinRAR блокировка файлов не передаётся от архива в Win7, если только зачем-то используете архиватор от Windows или какой-то другой странный.
Zeriod:
Sharpnull, спасибо, разобрался. И правда, я распаковал архив архиватором от Windows. Теперь, когда я использовал WinRAR, игра в редакторе запустилась.
vasantomb:
PluginLevelParamsCad а где он находится в редакторе? не нашел, чтобы параметры изменять в chip and dale.
Cx4:
Есть ли в редакторе возможность экспортировать карту уровня в масштабе 1:1?
пофиг:
как зайди?
Guyver(X.B.M.):
Подскажите, как дописать код. У меня игра простая, в ней 100 уровней. Вот код:
--- Код: ---using CadEditor;
using System;
using System.Drawing;
public class Data
{
public OffsetRec getScreensOffset() { return new OffsetRec(0x90, 1 , 6*8, 6, 8); }
public string getBlocksFilename() { return "game.png"; }
public bool isBigBlockEditorEnabled() { return false; }
public bool isBlockEditorEnabled() { return false; }
public bool isEnemyEditorEnabled() { return false; }
}
--- Конец кода ---
У первого уровня адрес 90, у второго D0, у третьего 110. Т.е. адреса отличаются на 40. Как задать переключение уровней через Screen N, а то для каждого уровня создавать свой файл не хочется...
--- Код: ---(0x90, 100 , 6*8, 6, 8)
--- Конец кода ---
- так я сделаю 100 уровней, но они идут не друг за другом, между ними по 16 байт ненужной информации...
Sharpnull:
--- Цитата: Guyver(X.B.M.) от 30 Апрель 2024, 14:58:10 ---так я сделаю 100 уровней, но они идут не друг за другом, между ними по 16 байт ненужной информации
--- Конец цитаты ---
(0x90, 100 , 0x40, 6, 8) вроде как, 3-й аргумент задаёт размер записи. UPD: Исправил на "3-й аргумент", если считать с 1.
Guyver(X.B.M.):
Спасибо, написал (0x90, 100 , 64, 6, 8) и всё получилось!
Guyver(X.B.M.):
Сделал для пробы конфиг для игры Wrecking Crew (NES):
Можно редактировать все 100 уровней плюс 10 бонусных уровней.
Навигация
Перейти к полной версии