Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - spiiin

Страницы: Назад 1 2 [3] 4 5 6 7 ... 26 Далее
61
В Wacky Races, вроде такая же система блоков. Вероятно, акты и остальное тоже похоже сделано.

62
В Wacky кажется иерархия из нескольких уровней макроблоков, как в Rokin Kat's. Котов я небрежно разобрал достаточно в плане склеивания актов подуровней вместе, но основе тех конфигов можно и для Wacky Race, скорее всего, сделать.

lancuster
Лучше в теме выкладывай конфиги, если у тебя вопросы по ним, то тоже (можешь просто архивы с недоделанными конфигами маркировать, например _broken/_unfinished/_test, или по другому как-нибудь). Aliens 3 и предыдущие из личных сообщений все сохранил у себя.

63
Забрал все конфиги, чуть позже разгребу их и добавлю в репозиторий

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

65
А исходники чёрного плаща ты в открытый доступ выкладывал?
Хочу взять какие-нибудь готовые для сборки (ты, если правильно помню, с помощью asm6 их собираешь?) и попробовать, насколько их сложно сконвертировать в синтаксис ca65.

66
Для использования скриптов необходимо в редакторе нажать Run script и выбрать один из заготовленных скриптов в папке Scripts. На скринах в примере показано, как выбрать и запустить скрипт экспорта текущего экрана в виде картинки.

67
RELEASE v5.0
https://github.com/spiiin/CadEditor/releases/tag/v5.0

- Улучшено окно открытия конфигах
- В редакторе раскладки вынесена часть параметров в конфиги
- Плагин редактора карт
  Поддержка карт шириной в две экранных страницы
  Фиксы отрисовки блоков
- Скрипты:
  Сохранение скриншота экрана в файл.
  Экспорт блоков 2x2 в формате выровненных массивов в файл
  Экспорт текущего экрана в бинарный файл
  Сохранение неиспользуемых на карте блоков в виде картинок для изучения
  Скрипт экспорта всех CHR-банков конфига в виде картинок
- Фиксы конфигов.
  Gun smoke (добавлены дампы отражённой памяти)
  Chip & Dale, Tale Spin, Darkwing Duck (редакторы раскладок, новые карты и кат-сцены в редакторе карт)
- Конфиги всех уровней (блоки/экраны):
  Shadow of the Ninja
  Ninja Crusaders
  Yo-Noid
  Robocop 2
  Jackal
  Low G Man
  Darkman
  Ghosts and Goblins
  Crystal Mines
  Zen Intergalactic Ninja
  Circus Caper
  Ninja Gaiden
  Ninja Gaiden 2
  Ninja Gaiden 3
  Final Mission

unlicened games by Hammerteam:
  Aladdin
  Donkey Kong 4
  Earth Worm Jim 3
  Super Mario World
  Titenic
  Harry's Legend
  Final Fight 3
  Sonic the Hedgehog
  Tiny Toon 6

- Конфиги блоков/экранов (по 1 уровню):
  Tiny Toon 2 (раздельные конфиги для верхней и нижней части уровня)
  Toxic Crusaders  (ограниченный редактор палитр)
  Mission Complete (много отдельных комнат)

Почти все конфиги игр - от lancuster'а (его же можно попросить добавить другие игры для NES)

Статистика по играм:
[NES]
12 игр - редакторы экранов, блоков и объектов; все уровни
57 игр - редакторы экранов и блоков , без редактора объектов; все уровни
20 игр - редакторы экранов и объектов, без редактора объектов; по 1 демо уровню
13 игр - редакторы экранов картинками, формат блоков не разобран.
[SEGA]
10 игр - редакторы экранов и блоков
5 игр - редакторы экранов картинками
[GBA]
1 игра - редактор экранов картинками, все уровни
Всего
1172 конфигов разных уровней для 118 игр.

Добавлено позже:
Также видеопример редактирования и вставки в игру босса-робота в Chip & Dale

И немного обновлённый список статей по работе с редактором:
https://spiiin.github.io/CadEditor/

68
На какой там стадии дизасм вообще? Когда исходники будут? :)

69
Nemesis_c,
для снеса модуля построения графики нету к редактору. Если только блоки картинками делать пока. Подскажешь эмулятор для отладки наиболее удобный? (минимально необходимый набор фич - нормальный отладчик, отображалка состояния видеопроцессора, хекс редактор, поддержка луа скриптования, опционально cdl-логгер и трейс-логгер).

lancuster,
поздравляю. ты уже больше конфигов сделал, чем я сам  :)

70
Можно просто функции getBlocks/setBlocks целиком из другого конфига копировать и заменять. Посмотри в посте выше апдейт, я же туда поправленный конфиг прицепил, который норм уже уровень отображает.

Добавлено позже:
По ninja gaiden'ам во всех 3х частях немного отличающийся формат блоков. Видимо, разработчики нашли для себя самый быстрый и удобный.

71
По front mission - посмотри внимательно на скрин с отмеченными цифрами
Из цифр 1-4 по порядку составляются правильные блоки, а между ними встречается цифра 5 - это значит что блок описан идущими подряд 5 байтами - 4 на тайлы блока и 5 на палитру (и возможно, физику). Ты взял конфиг от игры с блоками по 4 байта, отсюда и странности.
Такой же формат блоков был в Rokin' Kats, но там из этих блоков строились не экраны, а макроблоки.

Добавлено позже:
Вот поправленный конфиг для Final Mission

72
Поправлю. Ох ты их и наштамповал. Там есть способ перечислить смещения разных экранов просто, я их в один лучше соберу, тем более там общие блоки и графики на все. А то если понадобится вдруг один адрес поправить общий (или мне вдруг понадобится библиотечную функцию какую-нибудь изменить), то в 50 конфигах это будет сложно сделать.

Добавлено позже:
Можешь, кстати, заказы попробовать принимать от пользователей на добавление игр :cool:

73
Блин, задолбался я для Circus Caper добавлять отображения слоя палитры.

Там экраны, описанные в ROM, распаковываются в середину name table, и координатная сетка для слоя атрибутов (2x2 блока) не совпадает с координатной сеткой для блоков. Для основных уровней сделал отображение нормальное.
Из-за несовпадения сетки получается, что для 12 блоков высоту необходимо 7 блоков атрибутов размером 2x2 блока (1-й кодируется 2 верхних блока, 2-й 4-следующих и т.д., потом 7-й два последних оставшихся). Для ещё большей запутанности добавлен также 8 блок аттрибутов, который ничего не кодирует.

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

74
По поводу Crystal Mines, там блоки записаны в невыровненные массивы. Длина массивов по 62 байта, но они идут не последовательно друг за другом, а вразброс. Для такого тоже функция библиотечная есть, в dt2 так, только немного кода дописать для создания из этих массивов блоков. Пример конфига в аттаче, адреса массивов блоков и палитры задаются в коде:
 
  public int blockAddr1 = 0x432;
  public int blockAddr2 = 0x51b;
  public int blockAddr3 = 0x4dd;
  public int blockAddr4 = 0x559;
  public int getPalBytesAddr()          { return 0x597; }

75
В Зене изометрические уровни лучше сразу пропускай, там очевидного деления на экраны кажется нету.

76
Там у функции этой пятый параметр задаёт - если false, то читать 4 массива без аттрибутов или true - тогда сразу 5 массивов вместе с аттрибутами блоков. В это особо не вникай, главное конфиг рабочий, а аккуратным я его уже сделаю.

Я просто сперва не понял, что ты суммой показать хотел. На будущее запомни, что эти все +256*4 добавления к адресу делаются, если ты там хотел бы написать адрес 0x1DFF, как ты видимо и задумывал, то надо было добавления эти стереть (там вообще могут быть сколь угодно сложные формулы, и адрес может вообще не константой задаваться, а читаться из рома или другого файла :) ).
В этих конфигах строчка вообще ни на что не влияла просто, поэтому ошибка с добавлением числа к адресу не заметна оказалась.

Добавлено позже:
Насчёт скрипта для дампа, я тебе давал две версии. Одна дампит в конце кадра, другая прямо в середине, после вызова прерывания IRQ. Видимо, ты пытаешься использовать вторую в играх, где нет переключения банков посреди кадра.

Та, которая дампит в конце кадра, работает с абсолютно всеми играми. Убедись, что ты используешь её.
https://github.com/spiiin/CadEditor/blob/master/Stuff/nes_lua/dump_chr_and_pal/dump_chr_and_pal.lua

77
lancuster, смотрю в конфиги данки конга - а зачем ты оставляешь адреса атрибутов палитры в таком суммы двух чисел?
public int getPalBytesAddr()          { return 0x1dff + 256*4; }
Я так делал для других игр некоторых, просто чтобы показать, что массив байт палитры лежит за массивом блоков, у которого базовый адрес был бы 0x1dFF. Но тут-то у адреса 0x1dFF  я так понимаю, смысла никакого нет?

Если так, то лучше вычислить адрес и записать в более простом виде:
public int getPalBytesAddr()          { return 0x21FF; }
...
А, стоп там вообще не используется эта функция, в случае, когда адреса массива блоков считываются функцией Utils.readBlocksFromAlignedArrays (когда в игре блоки описаны раздельными массивами их 4 частей блоков и опционально 5 массивом с аттрибутами, выровненными по определенному количеству байт, 256 в данном случае) . Я тогда просто уберу эту строчку из конфигов, чтобы не смущала читателей, которую там полезные адреса могут посмотреть :)

78
lupus,
Название темы поправлено, с lancuster'ом проведена беседа. Просьба писать по теме составления конфигов и добавления новых игр в редактор.

79
Segaman, добавил. Надеюсь, ты когда-нибудь закончишь проект.

80
Целый подраздел для одной темы, вау!

Это пока для одной темы. Я скоро соберусь с силами и рассортирую немного сообщения из этой темы по разным. А то тут и про составление конфигов, и про хакинг конкретных игр, и про баги редактора, и новости про апдейты редактора. Например, информацию по редактированию чипа и дейла достать сейчас из середины темы нереально практически. Даже название темы составное.


81
spiiin, я уже выяснил. Там, как оказалось, всего по 3 банки на каждую зону. Переключение идёт во второй половине, 4 строчки тайлов. Я их и вручную смогу добавить. Так будет быстрее. Останется только переключение банок в конфиги добавить, и всё.
Хорошо, тогда добавлю переключение к конфигам, как будут готовы.

82
piiin, как хочешь. Я вот что спросить хотел. У тебя есть скрипт, который бы мог находить банки графики, связанные с конкретным уровнем? Я скоро закончу делать пиратского Соника, но там 64 экрана, и в середине каждого из них есть переключение банков, где-то по 4 на каждый уровень. А я уже подустал, да и игра долгая. Я добавлю только основную часть, чтоб видно было, что конфиги составлены верно, а там уже их поправишь, хорошо?
Хорошо, только запиши мне мувик прохождения игры, чтобы мне его промотать и скриптом сдампить банки.

83
К тому же, как оказалось, там разрабы явно планировали какой-то вертикальный уровень, бонусный, видимо. Если сдвинуть адрес на пару экранов влево и немного добавить число экранов для конфига 4-3 - можно увидеть этот самый уровень, как он должен выглядеть.

А вот это уже интересно. Больше похоже на подуровень, который вырезали из игры. Я оставлю его в конфигах.

84
Выглядит клёво.

Ссылки на сайт месена теперь выглядят так:
https://www.mesen.ca/docs/hdpacks.html

А можно линки на остальные hd-паки со скриншотов?, а что-то они не гуглятся

Добавлено позже:
А, собственно, нашёл основную тему
https://forums.nesdev.com/viewtopic.php?f=21&t=17110

85
lancuster,

Вот если бы ты не выдумывал, что конфиг Low G Man похож на конфиг Moon Crystal, а взял бы конфиг от Капитана Америки или Читаменов за основу, сделал бы и сам и без моей помощи  :lol:

Смотри - блоки размером 2x2, описаны линейно, биты атрибутов палитры лежат в отдельном массиве - по 1 байту на каждый блок. Размер одного экрана только отличается, 16x12. (для капитана америки есть ещё небольшое отличие, что вместе с битами палитра физика кодируется, поэтому там дополнительно маскируются биты, чтобы не затереть физические свойства блоков, но это никак не повлияло бы на Low G Man, можешь сравнить сам конфиги - там отличий минимум).

Добавлено позже:
А, в читаменах тоже маскировка битов физики есть же.

86
Переписал на луа свой старый скрипт по поиску блоков с помощью анализа содержимого PPU. Скрипт выдаёт вероятное расположение блоков - необходимо выбирать из его результатов те, где он находит наибольшее число блоков.
Пользоваться элементарно - загрузить нужный уровень любой игры и запустить скрипт.

Кнопки 1,2,3 - горячие клавиши для перезапуска скрипта в разных режимах (жалко, в луа использовать какие-либо специально назначаемые из GUI эмулятора произвольные клавиши в качестве хоткеев для скриптов)

Скрипт находит блоки практически во всех играх, где они есть.
(пока для игр с блоками, описанными 1 байтом в РОМ, потом может добавлю поиск полубайтовых и двухбайтовых блоков).

https://github.com/spiiin/CadEditor/blob/master/Stuff/nes_lua/lua_blockfinder/block_finder.lua

87
Там с этим порядок. Проблема с камнями, у которых разная архитектура (несколько мать их видов). Мало того, их ещё надо сочетать с кустами, а кусты с фоном. И их должно быть несколько угловых и краевых. Но последней каплей стало то, что вдруг мои камни стали анимированными, когда их переделывал под себя, хотя вместо водопада их нигде не ставил.
Мало того, что на каждый макроблок задаётся палитра и тип (фон, платформа, выступ и т.п.), что стандартно, так ещё отдельно где-то прописывается 4 вещи:
1. Подключение/отключение дополнительного банка графики.
2. Подключение/отключение дополнительной палитры.
3. Задаётся статичность, или анимация. (Ну эти три пункта стандартны в принципе, хотя вряд ли где-то ещё в играх один и то же блок может быть анимированным, а где-то не анимированным).
4. Также фон может быть обычным. А может рисунок закрывает спрайты игрока, но не закрывает спрайты других объектов. Либо наоборот, не закрывает спрайты игрока, а закрывает спрайты других объектов. И вот это реально шизофренизм разработчиков, что это не в типе макроблока запрограммировано, а ещё где-то в стороне.

Кинь ром в личку, попробую посмотреть, где эти вещи кодируются. Выглядит необычно, конечно.

Насчёт поиска неиспользуемых блоков - в последней версии редактора есть скрипт, который находит все неиспользуемые блоки на экранах - на скринах пример работы на втором уровне, пока документацию к скриптам не сделал ещё. Наличие таких блоков может означать один из следующих случаев:

- Набор блоков используется на каком-то ещё экране, не описанном в конфиге (например, бонус-сцене).
- Блоки подменяются игрой динамически (например, в super c есть "взорванные" версии некоторых блоков, изначально не присутствующие на карте)
- Разработчики действительно не использовали блок ни разу и его можно пустить "под нож".



Добавлено позже:
Emsi D
Сверил региональные версии черепах. Для японской все данные те же, кроме адресов палитр, можешь их в конфигах сам подправить, вот список:
https://gist.github.com/spiiin/07922546e9e9d43db06b5a339ce02eab

Ты просто открываешь не тот ROM редактором - в японских версиях ромы называются так:
первая часть - Gekikame Ninja Den (J).nes (она нормально открывается редактором)
вторая часть - Teenage Mutant Ninja Turtles (J).nes (я вначале тоже пытался её открыть - получил картинку как у тебя  :lol:)
третья часть - Teenage Mutant Ninja Turtles 2 - The Manhattan Project (J).nes

88
эм, так я тебе из Gun Smoke как раз развёртывание и добавлял, ты ж просил. Если оно не нужно, то просто в исходном конфиге убери строку getScreenVertical.

89
Ну, там не одну строку добавить.
  public GetBigTileNoFromScreenFunc getBigTileNoFromScreenFunc() { return getBigTileNoFromScreen; }
  public SetBigTileToScreenFunc     setBigTileToScreenFunc()     { return setBigTileToScreen; }
и текст самих этих функций скопировать из GunSmokeUtils. Прикрепляю пример.

// - это комментарий в коде, вся строка, которая идёт после него просто пропускается.
//public bool getScreenVertical() { return true; }
- так можно временно убирать построение экрана постолбцово вертикально, и включать обратно, если убрать символы комментария.

На скрине описанный построчно уровень, отражённый относительно оси Y, как в Gun Smoke (сначала описана нижняя строка, затем следующая и так до верхней), также пример конфига для такого отображения

90
Процесс разбора на исходники отдельный от процесса хака получается - кто-то может специализироваться на разборе игр до исходников и проверки валидности пересборки, а другие могут пользоваться готовыми исходниками для старта проектов по хаку разной направленности

Страницы: Назад 1 2 [3] 4 5 6 7 ... 26 Далее