Автор Тема: Редактирование и хакинг Chip and Dale: Rescue Rangers  (Прочитано 6037 раз)

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

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #30 : 07 Апрель 2012, 21:06:09 »
evgeny, быстро посмотрел, как устроен выбор фона под тайлом, который можно собрать или взять. это явно указать нельзя, зависит от младших четырех бит номера объекта. они являются указателем в массиве из 16 номеров (вроде бы уникальный для каждого уровня, для первого хранится по адресу 1E909).
Действительно, сложно подобрать под объект подходящий фон, пожелание принимается :)

Добавлено позже:
Rocket вон в своем левеле это грамотно обошел, и не заметно проблемы :)

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #31 : 08 Апрель 2012, 00:21:39 »
Доделываю новую версию по чуть-чуть. основное сделал, надо тока всяких защит от ошибок навешать, чтобы редактор не вис, если бесконечный уровень собрать захочется с зацикленными дверями :) может к следующим выходным выложу.

Пока тестил, пофиксил хак evgeny с уровнем из черного плаща, чтобы там скроллинг как надо работал.

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #32 : 08 Апрель 2012, 04:57:35 »
Цитата: spiiin
зависит от младших четырех бит номера объекта. они являются указателем в массиве из 16 номеров (вроде бы уникальный для каждого уровня, для первого хранится по адресу 1E909).
Вот этот массив хотябы править и видеть как-нибудь какому блоку какой будет соответствовать.

Оффлайн feos

  • Пользователь
  • Сообщений: 785
  • Пол: Мужской
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #33 : 11 Апрель 2012, 18:15:28 »
feos, я не разбирал формат C&D 2, шарик случайно обнаружился :)
А вот если я хочу сделать скрипт, который будет показывать характеристики блоков, чтобы найти этот шар в других местах, и притом я не знаю асма, чо мне делать? Могу только собственно писать скрипты и искать в РАМ методом больше-меньше.

И вообще, как этот шар там есть, если его не видно? Что за фокус?

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #34 : 11 Апрель 2012, 18:44:44 »
Вообще без знания асма сложно раскодировать тип объектов, разве что очень сильно повезет.

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

Теоретически, есть другой подход, который не требует дизассемблирования, но потребует знания какого-нибудь языка программирования и немного математики, чтобы составить скрипт перебора вариантов. На практике я его пока не проверял :)
Выписываем список всех объектов, которые встречаются на уровне по порядку (важно не пропустить скрытые). Например, "цветок, цветок, пчела, цветок, мышь". Дальше надо написать программу, которая будет искать в памяти цепочку байт XXYXZ, где X,Y и Z могут быть любым значением от 0 до 255. Основная сложность в том, что такая программа может работать очень долго - даже для трех типов объектов потребуется перебрать 256*255*254 = 16581120 вариантов.

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

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

Оффлайн feos

  • Пользователь
  • Сообщений: 785
  • Пол: Мужской
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #35 : 11 Апрель 2012, 19:12:29 »
Ты имеешь в виду надо найти в РАМ список адресов, хранящих ID загруженных в данный момент объектов? А в первой части это какие адреса?

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #36 : 11 Апрель 2012, 19:31:07 »
ага, в RAM, а потом тот же список в ROM.
Для первой части, начала описаний объектов в ROM:
уровень 0 - 10388-103D3
уровень А - 10456
уровень B - 105A1
уровень C - 106D1-10709
уровень D - 10890-108F0
уровень E - 10A1D-10A66
уровень F - 10B0E-10B36
уровень G - 10C88-10СDA
уровень H - 10DB3-10DE7
уровень I - 10EA1-10ECD
уровень J - 10FED-11033

Добавлено позже:
не загруженных в настоящий момент, а вообще всех на уровне

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #37 : 11 Апрель 2012, 23:07:07 »
Про беки описывал чуть, как устроено. можно объекты попереставлять просто местами на 16 соседних позициях - там 16 вариантов бека будет доступно разных. Можно попробовать подобрать такие 2 позиции, чтобы подходили, если повезет :)

Оффлайн Lomax

  • Ушел с форума
  • Сообщений: 3191
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #38 : 11 Апрель 2012, 23:09:19 »
Про беки описывал чуть, как устроено. можно объекты попереставлять просто местами на 16 соседних позициях - там 16 вариантов бека будет доступно разных. Можно попробовать подобрать такие 2 позиции, чтобы подходили, если повезет :)
ну менять бэк я умею, но на всем уровне все равно же будет под ними один и тот же бэк? Не получится же сделать что под одними будет желтый, а под соседними - синий? Оп, есть идея, щас проверю...

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #39 : 11 Апрель 2012, 23:11:36 »
получится. можно сделать до 16 объектов ящиков и у каждого свой бек будет. какой именно из 16 - зависит от 4х младших бит номера объекта

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #40 : 14 Апрель 2012, 02:58:15 »
Тока что сам пытался поправить ситуацию с ящиками, но случайно создал ящик в том месте, где еще не кончились тайлы Lomax'а, испортил уровень, блин :( Не могу визуально найти, какой из тайлов последний занятый.
Lomax, или напиши мне номер первого тайла свободного или сам пофикси беки за ящиком и цветком.
Это можно сделать так - создать еще один объект-ящик и еще один объект-цветок и исправить фон для тех что уже есть. Фоны записаны по адресу 1E919 и далее (для того ящика и цветка что есть сейчас нужные байты это 1E91A и 1E91B).
Ну и потом в макротайлах указать какой из двух ящиков или цветков использовать.

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #41 : 14 Апрель 2012, 11:27:10 »
Цитата: Lomax
spiiin, открыл наш уровень последней версией редактора - уровень вообще не виден, одна каша из блоков) Какой из редакторов показывает правильно?) я пока буду продолжать в четвертом делать)
Просто там для просмотра банк графики нужно вручную подбирать. Но проблема в том, что каждый раз практически при любом действии кроме непосредственного редактирования сбрасывается установленная комната на первую. Каждый раз нужно заново выбирать комнату.

Оффлайн sneyk

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #42 : 15 Апрель 2012, 12:33:38 »
Здраствуйте,а как вообщее редактировать эту игру  при добавлении обектов   пишит что типа Too many objects in level(70).Maximum:64 что за не подскажите  .... ;)

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #43 : 15 Апрель 2012, 13:04:00 »
sneyk,Добро пожаловать! :)
 Объектов нельзя больше добавлять в игру, чем их есть на данном участке уровня, только использовать имеющиеся ;). Если хочешь чего добавить, удаляй имеющийся в уровне объект и добавляй в игру другой. ;)

Оффлайн sneyk

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #44 : 15 Апрель 2012, 15:35:43 »
Извините ещё незаятый вопрос как удалять обекты имеющиеся на уровне?

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #45 : 15 Апрель 2012, 16:52:52 »
sneyk, внизу под списком объектов есть функция - это удаление все объектов в пределах экрана. Если надо удалять по одиночке, кликать по объекту и нажимать кнопку delete.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #46 : 16 Апрель 2012, 01:32:15 »
sneyk, на второй вопрос есть ответ в описании в первом посте :) или потыкай все имеющиеся кнопки, тоже действенный способ. запасная версия рома специально в архив добавлена

Добавлено позже:
Roket проблема с непоявлением врагов на экранах со скроллом вверх в редакторе, я неправильно сделал. И оно и будет неправильно сохраняться каждый раз, как ты его не двигай, эх. Ща не могу быстрый фикс сделать пока. Так что пусть пока появляются посреди экрана, не мучайся! Это потом само вылечится!

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #47 : 20 Апрель 2012, 17:51:02 »
Кстати, в роме чипа и дейла есть еще неиспользуемый спрайт большого пузыря в карте спрайтов неподалеку от маленького и краба, который пускает(бросает) эти маленькие пузыри. Видимо задумывалось, что краб и большие пузыри будет использовать для какой-то цели. (А может он используется но я этого не знаю?)

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #48 : 22 Апрель 2012, 23:24:03 »
Вообще надо заранее продумать схемы всех уровней и дверей. Потому что если мы перетасуем экраны и двери, то может выйти, что нам их не хватит или наоборот, много лишних останется.
Lomax, давай ты их спроектируешь и нарисуешь схематично, а я по ним в редакторе "вылеплю" всё и сам рассчитаю все нужные параметры для дверей и скроллов. Просто мне получается реально проще в текущей версии редактора это самому сделать, чем объяснить, как делать или почему какую-то конкретную штуку делать ни в коем случае нельзя. Позже я редактор надеюсь подогнать, чтобы карты уровней было просто делать человеку, который не ковырялся в коде движка :)

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

Оффлайн Lomax

  • Ушел с форума
  • Сообщений: 3191
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #49 : 22 Апрель 2012, 23:40:31 »
Вообще надо заранее продумать схемы всех уровней и дверей.
К сожалению, не могу, т.к. это будет зависеть от самих уровней, которые я еще пока не придумал, т.к. идем по порядку. Сейчас я хочу посмотреть на то, что сделал Рокет, мой ли это косяк или нет. Если мой, то придется тогда всю игру продумывать, до самого конца)

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #50 : 22 Апрель 2012, 23:45:27 »
например:
для первого нашего уровня рисуешь карту условно, с пронумерованными экранами (или скрин из редактора, так проще).
и подпись будет такая:
начало - бек "стройка", набор врагов "собака-мышь-пчела"
дверь 1 ведет на экран 16 - бек "пещера", набор врагов "собака-мышь-пчела"
дверь 2 ведет на экран 1C - бек "пещера", набор врагов "собака-мышь-пчела"
дверь 18 ведет на экран 1D - бек "босс1", набор врагов "босс1" (или "собака-мышь-пчела", я забыл :))

ну или местами можно будет, например так - [бек "собака-мышь-пчела", но с измененной палитрой]

Добавлено позже:
ну тогда не для всех уровней, а по одному, а я буду по чуть-чуть делать. можно с B и начать. а то ведь и в редакторе могут косяки обнаруживаться, а не у Roket'а :)

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

Оффлайн Lomax

  • Ушел с форума
  • Сообщений: 3191
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #51 : 22 Апрель 2012, 23:50:38 »
Ну я вообще постараюсь укладываться в уже существующее количество комнат и дверей, чтобы не путаться. Меняться будет только планировка уровня. Например, сейчас я поменял только расположение стрелок и пары дверей, больше ничего) В общем, ждем Рокета с ромом)

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #52 : 23 Апрель 2012, 00:02:09 »
Глянул на выложенный ром, там да, как раз та ситуация, о которой я говорил - в редакторе такую карту уровней с развилкой вылепить можно. Но движку игры от нее легко может разнести башню :)

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

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #53 : 23 Апрель 2012, 00:59:18 »
на будущее просьба к моим версиям с суффиксом beta относиться как с недоверием и подозрением и не выкладывать ссылки на них - они для теста больше (это для автора новостей с ромхакинга :))

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

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

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

Lomax, между стадией разработки архитектуры уровня и начала разработки экранов консультируйся со мной на всякий случай теперь лучше, пожалуйста. Либо в виде схемы, как я предлагал выше, либо выкладывай ром просто и маячь сначала не рокету, а мне. Как тебе удобнее. А потом после отмашки, что всё круто, уже по старой схеме - лепка комнат уровня и расстановка врагов. Так устраним риск выполненной зря работы
« Последнее редактирование: 23 Апрель 2012, 01:01:26 от spiiin »

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #54 : 23 Апрель 2012, 13:59:31 »
Цитата
Но та секретная комната, которую ты изобрёл Лом, контактирует с частью первого подьёма, то есть если я на первом подъёме изображу цветок - то поднявшись нверх, я опять увижу его и ещё часть нижнего уровня если она там есть.

Это тоже баг движка какой-то. Возникает оттого, что координата Y экрана не успевает обновиться. Если сначала чуть пройти вперед, а только потом начать возврат в секретную комнату, то бага не будет :) Надо как-то заставить игрока пройти сначала чуть вперед (например, спроектировать туннель вправо, по которому надо чуть пройти, а затем подняться наверх уже и решить, в какую сторону идти дальше, или же просто подобрать для этой глючной границы такой бек, чтобы не было видно разницы, хоть это и нехорошо )

Добавлено позже:
а блин, список врагов не ломается, не все так плохо, это просто свободные остались между первой и второй частью уровня, неиспользанные :)

Добавлено позже:
По поводу архитектуры уровня B, она в принципе допустима. Только при условии, что в левом коридорчике до секретной двери не будет никаких объектов [то есть цветочки и блоки из бэка можно, а вот другие нет, потому что тогда если игрок двинет вправо, предметы перестанут появляться, ожидая появляения левых] . после входа в дверь уже можно в следующих трех комнатах ставить, там действуют другие правила, которые мне влом все расписывать :D
Автоматическую сортировку я подправлю еще, чтобы она развилки поддерживала такие, ну и в среду сделаю простой апдейт редактора, чтобы можно было порядок появления объектов вручную составить для тех случаев, когда снова вы придумаете штуку, которая не поддерживается в редакторе :))) .
« Последнее редактирование: 23 Апрель 2012, 14:03:37 от spiiin »

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #55 : 25 Апрель 2012, 08:31:21 »
Lomax, комнаты отображаются из-за того, что архитектура уровня хитрая. Я пытаюсь честно подобрать нужные беки для комнат, согласно тому, как составлена раскладка уровней. А это может быть произвольный направленный граф с циклами. Но я что-нибудь придумаю :)

Nemesis_c, в ходе делания хака одновременно редактор тестируется. Это удобно. Важные сообщения и ответы на возникающие вопросы я потом все равно в ридми к редактору добавлю, не потеряются.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #56 : 25 Апрель 2012, 20:46:02 »
Придумал алгоритм заполнения комнат с хитрыми развилками Lomax'а :D. Будет что-то типа поиска пути A*. Первым проходом "засеять" карту номерами комнат и всеми возможными дорогами, вторым пройтись по комнатам снизу вверх и в зависимости от направления выхода врагов либо справа налево либо слева направо.
Всё, скоро запрограммирую).

Надеюсь, движок всё это потом схавает, а то уж больно хитрая дорога выходит. Ну да если даже не выйдет, то просто можно будет вместо подъема наверх из левого коридора в B-2 сделать еще одну дверь.
Кстати Lomax, там скролл должен быть не просто вверх а влево вверх (движок проверяет бит, с какой стороны можно подняться)

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #57 : 30 Апрель 2012, 14:53:40 »
Lomax, а что там за скрытая дверь к боссу на 3-м этаже?

Я могу сделать только один тип развилок из 2х. Либо работает правило "если на экране есть дверь, то дальше идти нельзя" (как на втором этаже слева - там скролл показывает что можно идти влево, но есть дверь). либо работает правило "если можно скроллить, то смотрим в первую очередь на скролл, даже если есть дверь", тогда можно будет сделать дверь, в которую можно войти или не войти, как на 3-м этаже, но тогда на втором этаже надо отделить ход слева пустой комнатой, иначе редактор будет думать, что можно пройти сквозь стену там.
Движок игры-то поддерживает оба типа, но вот сортировку сделать правильно выйдет только с одним. проще и лучше будет удалить такие скрытые двери.

Добавлено позже:
а чем плохо брать врагов из других известных игр? :) лично мне нравится идея кроссоверов

Оффлайн Roket

  • Пользователь
  • Сообщений: 3324
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #58 : 08 Май 2012, 18:07:05 »
spiiin, я тут случайно грохнул босса уровня D твоей мануал сортировкой. Я так и не понял, что она делает?  o_0
Когда я её использую всё не так отображается, враги ящики пропадают, а потом когда подходишь, резко появляются из ниоткуда. Мануал сортировку убираю и вновь всё стаёт на свои места.
  Сейчас на данный момент я этим грохнул босса уровня D. Чтобы его исправить, нужно -1 на конце его объектов написать, а сами его объекты располагаются за фоном из которого выезжает его изображение. Если их поставить обычно, то есть непосредственно в арену-то они некорректно будут располагаться.
Проверить можешь сейчас в том роме, что я выложил.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
Редактирование и хакинг Chip and Dale: Rescue Rangers
« Ответ #59 : 08 Май 2012, 18:20:36 »
Roket, ну она же MANUAL, то бишь ручная  :lol: Она ничего не делает, если ты ее включаешь, то всех врагов сам должен по порядку расставить. Лучше пользоваться автоматической, в 99% случаев она правильно работает.

по поводу босса уровня D, процитирую readme к редактору
Цитата
(!!!) из-за хака разработчиков на уровне D объекты невозможно правильно отсортировать. В текущей версии редактора НЕЛЬЗЯ редактировать врагов на этом уровне. Это возможно только в версии 0.4.

мне не совсем понятно, что значит "-1 на конце его объектов дописать". Если ты после сохранения в редакторе можешь ром таким образом пофиксить, то возможно так и сделать - сначала расставить все объекты на уровне в последней версии редактора, а потом уже руками "вписать" последнего босса, куда надо, и больше не пересохранять на этом уровне врагов

Добавлено позже:
P.S. обычная сортировка я уже описывал как работает несколько страниц назад :) фишка в том, что не обязательно знать, как она устроена для пользователей - расставляй себе врагов по экранам, об остальном позаботится редактор.