Голосование

Как лучше упростить написание конфигов для любых игр?

Добавить возможность писать их на любом языке
4 (11.4%)
Сделать программу для генерации конфига
14 (40%)
Написать документацию, как делать конфиги
17 (48.6%)

Проголосовало пользователей: 26

Голосование закончилось: 23 Декабрь 2018, 01:24:45

Автор Тема: [NES] Редактор уровней Capcom и других NES игр + их хаки.  (Прочитано 397998 раз)

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

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
-----------------------------------------------------------------------------------------------------------------------------
Редактор уровней CadEditor
Редактор уровней для игр NES и SMD.
Версия 5.3
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Поддерживаемые игры:
https://github.com/spiiin/CadEditor/blob/master/CadEditor/cad_editor_supported_games.txt
Также возможно подключение практически любых игр для платформ Nes, Snes или Sega Mega Drive.
-----------------------------------------------------------------------------------------------------------------------------
Хаки, сделанные с помощью редактора:

Darkwing Duck New Levels          http://www.romhacking.net/hacks/1382/
Darkwing Duck New Levels 2        http://www.emu-land.net/forum/index.php/topic,60286.msg1089366.html#msg1089366
Duck Tales Hardcore Revision      http://www.romhacking.net/hacks/1671/
Chip & Dale Lomax Attack (v2)     http://www.romhacking.net/hacks/1374/
Darkwing Duck In Edoropolis       https://www.emu-land.net/forum/index.php/topic,60286.msg1355612.html#msg1355612
Chip & Dale Alternative           http://www.emu-land.net/forum/index.php/topic,66546.0.html
Chip & Dale by VZIP               http://www.emu-land.net/forum/index.php?action=dlattach;topic=60286.0;attach=71489
Chip & Dale 3 by Lomax & Roket    https://www.emu-land.net/forum/index.php/topic,60286.msg1355378.html#msg1355378/52e7c89d%2F16fb8491bcf6a886b507abbee10ff4076da9c98c%2FChip+%27n+Dale+Rescue+Rangers+%28U%29+%5B%21%5D.zip?t=1344959250
Chip & Dale: Tale Spin Levels     https://www.romhacking.net/hacks/4287/
Duck Tales 2 No Gyro Без Винта    http://romhacking.net.ru/load/duck_tales_2/2-1-0-251
Duck Tales New Impressions        http://romhacking.ru/load/duck_tales_2_new_impressions/2-1-0-252
Duck Tales 2 by Dendymask         https://romhacking.ru/load/khak_prikol_duck_tales_2_na_nes_ot_dendymask/2-1-0-268
TaleSpin: Another shitty day      http://www.emu-land.net/forum/index.php?topic=73748.0
Remix of Tiny Toon Adventures     http://www.romhacking.net/hacks/2511/
Contra Super Hard Corps [SMD]     https://www.emu-land.net/forum/index.php/topic,79007.0.html

-----------------------------------------------------------------------------------------------------------------------------
Последняя на данный момент версия здесь:
https://www.emu-land.net/forum/index.php/topic,60286.msg1390753.html#msg1390753
Или здесь:
https://github.com/spiiin/CadEditor/releases/latest
https://spiiin.itch.io/cadeditor

-----------------------------------------------------------------------------------------------------------------------------
Документация по редактору:
http://spiiin.github.io/CadEditor/
Видеопример использования
https://www.youtube.com/watch?v=NfIWeDwu68w
-----------------------------------------------------------------------------------------------------------------------------
Если вы желаете поддержать развитие проекта (и бонусом предложить любую игру для добавления :) ):
WebMoney R122299008919
Bitcoin 12a26G6BxzYqx1D82ZNQvVJuzGSPETnd9r
Patreon https://www.patreon.com/CadEditor
« Последнее редактирование: 30 Январь 2019, 14:56:01 от spiiin »

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Самое главное неудобство в том, что каждый раз при редактирование больших блоков или малых нужно устанавливать графику палитру и.т.д. заново. Если бы все последние позиции и настройки запоминались это сэкономило бы половину времени как раз.
Не обращал внимания может эта функция уже есть, но было бы хорошо загружать свой вариант НЕС палитры, а то цвета какие-то не те.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Насчёт фич не понял. Куда добавил? И какие нужны.  :)
В CadEditor :) все, которые посчитаешь нужными. У него же исходники открыты. Писать можно на на любом из языков C++,C#,VB (можно луа или python прикрутить ещё).

Из фич я собираюсь добавить поддержку настройки вида и масштаба в редактор объектов, возможность двигать объекты мышкой/загружать большие иконки объектов вместо маленьких и возможность загружать списки объектов для игр с большим числом доп. параметров объектов (жизни, скорость, типы поведения и т.п.).
Дальше особенно нечего добавлять, всё можно с помощью конфигов описать уже и так. Только разве что баги доправлять.

Ну а в перспективе неплохо бы сделать ещё много чего (в зависимости от того, нужно ли это кому-то и будет ли на это время):
- менеджер игровых архивов например, с возможностью вставки их в игру или пережатия на лету более эффективными архиваторами (видеопамять Duck Tales 2 например, редактировать).
- возможность загружать хитро описанные типы игровых экранов (как в супер марио или контре первой, там Rle-сжатие экранов).
- хекс редактор допилить (чтобы, например, в утиных историях 2 можно было легко указатели на врагов править, хотя это можно и кодом описать в конфиге уже сейчас).
- визуальный редактор конфигов, чтобы можно было тестировать их (например, проверять, как загружается видеопамять и потом ей блоки отрисовывать, хотя на самом деле, имхо, достаточно предзаготовленные картинки просто использовать, как у тебя в редакторе).
- сохранение данных в какой-нибудь текстовый формат, чтобы можно было из одной игры в другую их легче конвертировать или в своих играх использовать, например.

Добавлено позже:
Цитата
Самое главное неудобство в том, что каждый раз при редактирование больших блоков или малых нужно устанавливать графику палитру и.т.д. заново. Если бы все последние позиции и настройки запоминались это сэкономило бы половину времени как раз.
Не обращал внимания может эта функция уже есть, но было бы хорошо загружать свой вариант НЕС палитры, а то цвета какие-то не те.

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

Про установку nes палитры - в конфигах есть 2 варианта изменения её:
можно поправить адрес, откуда будут читаться палитры - функция getPalOffset, или же написать свою функцию getPalFunc, которая будет устанавливать любую нужную тебе палитру (при этом из рома ничего читаться и писаться не будет, для примера посмотри любой конфиг TinyToon, там я руками вбивал нужные мне палитры).
« Последнее редактирование: 27 Январь 2014, 18:43:38 от spiiin »

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
spiiin, Я про отображение всех цветов палитры. В разных эмуляторах цвета разные, даже на разных приставках при pal либо ntsc цвета отличаются. И часто в эмуляторах можно загрузить свою палитру. Вот и в редакторе это бы не помешало.  Т.е. например цвет $17 в NTSC должен быть похож больше на охру, а в редакторе он ярко оранжевый. Короче говоря, чтобы можно было загружать цветовые профили.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
а, понял. сделаю, это тоже легко.

Оффлайн Roket

  • Пользователь
  • Сообщений: 3318
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
spiiin, 22 у меня. Или какую надо?

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
23 уже на прошлой странице. ща попрошу изменить текст в шапке :)

Оффлайн Roket

  • Пользователь
  • Сообщений: 3318
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
По поводу Чип иДейлов редактора. В редакторе макротайлов неправильно отобращаются макроблоки для всех уровней кроме первого. Залез в tileset4 чтобы просмотреть уровень F - результат каша в макроблоках. При том при всём что микротайлы нормальные рядом. :neznayu:
Добавлено позже:
Так 23 сейчас проверю.
Добавлено позже:
Ну понятно я не ту версию юзаю.
Добавлено позже:
Так врагов в Том и Джерри как уже говорил можно размещать как угодно. Нельзя только сочетать некоторых - капли + солдатики, челюсти
дым + солдатики, челюсти.
Добавлено позже:
Ti_ сделай ещё для бонусов уровней конфиги. Я уже нашёл врагов и для них но их самих редактировать нельзя.
« Последнее редактирование: 27 Январь 2014, 19:48:38 от Roket »

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Roket
та шо ж такое, всё время забываю чипидейлов тестировать после изменений.
держи фикс (заменить экзешник в папке с релизом редактора).

Оффлайн Roket

  • Пользователь
  • Сообщений: 3318
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Ну я слава богу не забываю. Просто нужно для поправки хака. :)
Добавлено позже:
spiiin, так по поводу остальных врагов для других уровней. Пока ищу но кое что уже нашёл. Там походу тип объекта дублируется каждый раз для определённого типа врагов. Меняются лишь поведение и графические данные.
Добавлено позже:
Это я к тому что редактор иконок даже не получится сделать потому что тип объекта дублируется. Я бы мог это сделать, да я думаю и ты смогёшь это сделать. поскольку я уже давно вырезал все спрайты из этой игры.

Добавлено позже:
http://www.spriters-resource.com/nes/tomjerrytuffy/

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
да можно прямо рядом с иконкой номер ляпнуть, чтобы было видно, что это другой немного объект.
ок, может займусь сам нарезкой иконок.

Оффлайн Roket

  • Пользователь
  • Сообщений: 3318
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Список адресов врагов со второго уровня

скорпион

12030602
25030602
0F0A0602
280A0602
04110602
0F190602
11240602
09310602
26310602
18380602
2C380602
0F3E0602
0A460602
0F4D0602
264E0602
09520602

улитка

1A0A0604
21140604
261D0604
071E0604
152A0604
043E0604
223E0604
1E460604
18520604

неходячий скорпион

2B140783
19240783
29240783
10380783

водосток

1A018005
12088005
21098005
0B0F8005
27138005
021D8005
0E298005

водосток другой

293E0606

Типы объектов

02 - скорпион
04 - улитка
83 - неходячий скорпион - к нему нужен ещё соответствующий тайл с уровня.
05 - водосток
06 - водосток


Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Roket
вот собранный конфиг для уровня 1-2.
посмотри изменения с предыдущей версией и сможешь для дальнейших уровней сам собирать.

нужно заменить строку:
public IList<LevelRec> getLevelRecs() { return null; }на 4 строки:
  public IList<LevelRec> getLevelRecs()    { return levelRecs; }
  public GetObjectsFunc getObjectsFunc()   { return getObjects;  }
  public SetObjectsFunc setObjectsFunc()   { return setObjects;  }
  public GetLayoutFunc getLayoutFunc()     { return getLayout;   }

и скопировать из моего конфига код самих 4 функции levelRecs, getObjects, setObjects и getLayout.

первая описывает запись об уровнях, в ней надо изменить начальный адрес первого объекта уровня в роме и количество объектов.
new LevelRec(0x825B, 37, 1, 1, 0x0), //0x825B - адрес первого объекта в роме, 37 - число объектоввторая и третья описывают, как именно сохранять объекты в ром и считывать из него, они одинаковые на всю игру, поэтому их нужно просто скопировать без изменений.
четвёртая функция описывает раскладку уровня, она для Том и Джерри простая - вся раскладка состоит из одного экрана. её тоже достаточно скопировать без изменений из второго конфига.

Оффлайн Roket

  • Пользователь
  • Сообщений: 3318
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
spiiin, для версии редактора 2.3 если что попробую сделать и как пример с третьего уровня тогда начну.
Добавлено позже:
Ты уже заметил что некоторые объекты дублируются типом. С этого не получится иконок с картинками нарезать. они сбиваться будут.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
---------------------------------------
Апдейт редактора v2.4
---------------------------------------
- Конфиги для игр (портировано с редактора Ti_):
  Tom & Jerry (уровни 2,3,4),
  Ninja Cats (уровень 11),
  Little Nemo (все уровни).
- Конфиги для редактора объектов:
  Flintstones - The Surprise at Dinosaur Peak! (уровень 1),
  Zombies Ate My Neighbors (уровень 1).
  Tom & Jerry (уровень 1-1, 1-2).
- Улучшения редактора объектов:
  перемещение объектов мышью,
  поддержка до 6 дополнительных полей объектов.
- Общие улучшения:
  настройки блоков из главного редактора передаются в дополнительные,
  файл глобальных настроек (настойки имени файла и глобальной палитры nes),
  редактор экранов - правой кнопкой выделение блока под курсором, отображение номера выбранного блока,
  исправление ошибок.
- Конфиги для раскладок для игр (автор teremochek):
  Argos No Senshi (все уровни)
  Fist of The Nortstar (3 уровня)
- Поддержка одновременной загрузки рома и дампа памяти (для редактора объектов сега игр).
- Возможность редактировать номер субпалитры для блоков Duck Tales 2.
- Конфиги игр разложены по отдельным папкам.

Пока что последняя версия редактора. Серьёзных обновлений в ближайшее время не планируется, разве что буду фиксить найденные ошибки.
По форматам объектов - для Tom & Jerry Roket выше расписывал, для Flintstones аналогично первой части (по байту на номер и координату X и Y), по ZAMN - редактор жертв по информации от Nemesis_c - http://elektropage.ru/forum/10-127-1.

Для запуска редактора с глобальным конфигом от Zamn (включена возможность одновременной загрузки дампа с описанием уровня и рома с описанием врагов) есть отдельный батник в папке с настройками игры.

Оффлайн Nemesis_c

  • Пользователь
  • Сообщений: 1318
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
5 минут, полёт нормальный  :)

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Апдейт редактора v2.5
- Конфиги и распакованные архивы с данными для Final Fantasy Tactics Advance (1 уровень).
- Конфиги для жертв, врагов и предметов для Zombies Ate My Neighbors (1 уровень).
- Параметры для конфигов - загрузка 16-битных данных экранов в прямом и обратном порядке (Big-Endian/Little-Endian).
- Загрузка стрипов-картинок из нескольких отдельных файлов.
- Режим рисования кистью в редакторе экранов .
- Опциональная отрисовка текущего блока на карте.
- Новый GUI для редактора экранов, подредакторы и опции перенесены на отдельную панель, более плотная расстановка кнопок и возможность отрегилировать ширину панели с кнопками.

Для Final Fantasy Tactics Advance отдельный набор утилит собрал для разбора и отрисовки карты - там сочетание из обычной тайловой карты и изометрической карты проходимости и высоты.
https://github.com/spiiin/FFTAUtils


Оффлайн Lomax

  • Ушел с форума
  • Сообщений: 3192
    • Просмотр профиля
Даже не знаю, какой маньяк будет переделывать FF Tactics Advance, игра и так достаточно длинна и разнообразна)

Оффлайн Слэйер Мун

  • Пользователь
  • Сообщений: 1019
  • Пол: Мужской
  • The Legend
    • Просмотр профиля
Вот было бы неплохо чисто для эстетической пользы перевести многочисленные папки софтины в одну подпапку, дабы глаза не мозолили в корне.

Оффлайн NakL3

  • Пользователь
  • Сообщений: 470
  • Пол: Мужской
    • Просмотр профиля
Что надо вставлять в поля запуска редактора, кучу вариантов перепробовал. Постоянно выдаёт ошибку.  В теме вроде не нашёл, в папке с редактором тоже.
Rom file name там понятно, нужно игру вставить
А вот Config file name что не вставлял постоянно ошибка
« Последнее редактирование: 23 Март 2014, 17:56:58 от Кнаклз »

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1542
  • Пол: Мужской
  • Ну-ка, от винта!
    • Steam
    • Youtube
    • Просмотр профиля
Цитата: spiiin
Последняя на данный момент версия здесь:
http://www.emu-land.net/forum/index.php/topic,60286.msg1011660.html#msg1011660
Версия 2.4

А как же версия 2.5? => http://www.emu-land.net/forum/index.php/topic,60286.msg1022238.html#msg1022238 Она же последняя.

Оффлайн Phil

  • Пользователь
  • Сообщений: 941
    • Просмотр профиля
Чего-то не понял, как через этот редактор изменить второй, третий и т.д. уровни в Duck tales 2 ? По умолчанию там же только первый уровень можно менять.

Добавлено позже:

А как же версия 2.5? => http://www.emu-land.net/forum/index.php/topic,60286.msg1022238.html#msg1022238 Она же последняя.

А там архив называется "cad_editor_v25.zip", но внутри каталог "cad_editor_v24".

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Кнаклз, в Config File Name надо вставить конфиг для конкретной игры :) конфиги лежат в папках settings_ИМЯ_ИГРЫ и называются Settings_ИМЯ_ИГРЫ.cs. В них указано, по каким адресам из рома и каким образом читать данные редактору.
Phil для редактирования долистываешь экраны первого уровня, пока не пойдёт "каша" из тайлов, дальше переключаешь чекбоксы VideoBlock, BigBlock, Block и Pallete пока не попадёшь на нужное отображение уровня. Для примера - параметры второго уровня на скришоте.
Последняя версия 2.5 уже, просто я забыл написать модерам, чтобы обновили верхний пост, сам этого сделать не могу.


Оффлайн NakL3

  • Пользователь
  • Сообщений: 470
  • Пол: Мужской
    • Просмотр профиля
spiiin,  Ну вот вставил я в Config name file вот это Settings_SegaTinyToon-1_layerA.cs А он мне ошибку выдаёт

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
ну тебе редактор пишет, что не хватает файла sega_tiny_toon_1.png в папке settings_sega_tiny_toon. видимо, почему-то его там нету у тебя. ты все файлы из архива с редактором распаковал?

Оффлайн NakL3

  • Пользователь
  • Сообщений: 470
  • Пол: Мужской
    • Просмотр профиля
spiiin, Конечно, там все файлы

Оффлайн Phil

  • Пользователь
  • Сообщений: 941
    • Просмотр профиля
Phil для редактирования долистываешь экраны первого уровня, пока не пойдёт "каша" из тайлов, дальше переключаешь чекбоксы VideoBlock, BigBlock, Block и Pallete пока не попадёшь на нужное отображение уровня. Для примера - параметры второго уровня на скришоте.
Последняя версия 2.5 уже, просто я забыл написать модерам, чтобы обновили верхний пост, сам этого сделать не могу.
spiiin, спасибо!

Оффлайн Tails Prower

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
Здравствуйте, а как мне редактировать уровни из игр про Соника на Sega Mega Drive 2?
Я плохо разбираюсь, но как я понял там нет файлов конфигов для Соника.
Эти конфиги можно где нибудь отдельно скачать?
Например мне нужны конфиги для 1, 2  и 3 Соника.
И возможно ли самому написать конфиг? Если да то какую литературу нужно вызубрить что бы понять?
Заранее спасибо.
« Последнее редактирование: 24 Март 2014, 08:04:16 от Tails Prower »

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Решение проблемы - Кнаклз, для операционной системы Windows XP нужно в конфигах указывать абсолютные, а не относительные пути к файлам картинок  :blush:
Почему, пока не знаю, поэкспериментирую и исправлю к следующей версии.

Tails Prower
Лучше всего возьми готовый редактор для серии игр Sonic :)
Конфиги написать можно, достаточно знать C# немного или переделывать готовые, и разбираться в ассемблере, ну или уметь использовать скрипт-корраптор ромов.
Видимо, возьмусь написать подробный мануал, как это делать, раз есть интерес.

В каком формате лучше, в текстовом или видео записать попробовать?
« Последнее редактирование: 01 Апрель 2014, 15:17:47 от spiiin »

Оффлайн Tails Prower

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
Лучше в текстовом, у меня просто 3G модем с мобильным инетом. Там после ограничения трафика сижу на 64кб/с видео качать придётся ну где то сутки :lol: . А текстовик скачать легко ну или прочитать сразу на сайте (только желательно что бы были скрины и пояснения). А где взять готовый редактор для серии игр Sonic? И он визуальный?

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Tails Prower
http://info.sonicretro.org/Sonic_Hacking_Utilities
http://info.sonicretro.org/SonED2

Про конфиги есть пока только из документации cad_editor_configs_manual.txt из комплекта редактора.
Смысл в том, чтобы найти в RAM описание игровых экранов (скорее всего 16-бит на один блок) и затем изменяя блоки, сделать их скриншоты. Скриншоты всех блоков собираются в один файл-картинку, которая и указывается в конфиге, вместе с описанием формата экранов - количества блоков в длину и в ширину на одном экране и т.п.

После редактирования описание экранов нужно запаковать (для соника запаковщики уже существуют) и полученный архив вставить в rom в нужное место (документация по адресам тоже есть, можно поискать на сайтах, посвященных хакингу соника).