Автор Тема: Castlequest/Castle Excellent  (Прочитано 11597 раз)

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

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« : 29 Март 2020, 16:08:26 »

Архив Old Version содержит все версии хака от Миха42 до 1.6.4 + Maps
Более новую версию, а так же информацию о всех изменениях в игре + карты замка для той или иной игры и их сложностей можно найти в данной теме.
Original
Unlimited Fly and Key
« Последнее редактирование: 19 Июнь 2022, 15:31:01 от Миха42 »

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Re: Castlequest/Castle Excellent
« Ответ #1 : 29 Март 2020, 16:11:06 »
Вариант для тех кто так и не прошёл игру, нужно ещё постараться чтоб не выйграть тут.  :biggrin: :biggrin:

Добавлено позже:
Зашол в тупик.

Отыскал спрайты, к спрайтам относятся ключи, очки, жизни, враги, лифты, ящики и пр. с ними проблем нет лежат в свободном доступе id предмета, координата горизонталь, координата вертикаль, можно с лёгкостью лепить спрайты по всем частям карты замка, из ограничений 24 спрайта на комнату (ограничено RAM памятью приставки) и 783 спрайта на весь замок (ограничено выделенным пространством в rom файле, что в принципе поправимо подключением дополнительного prg банка.

Но вот с картой, стенами, шипами, дверями, колоннами, водой и пр. зашол в тупик. Нашол часть кода в котором заложена вся карта замка, но разгадать алгоритм построения карты и уж тем более что-то изменить в нём не хватает ума. Любая попытка что либо изменить карается изменением всех стен во всём замке одновременно, при чём здесь же и блоки стен задаются 8х16 в этом же коде.

Help  :wall:  Нужна помощь разгадать его.  :( :(

« Последнее редактирование: 02 Апрель 2020, 08:18:59 от paul_met »

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #2 : 10 Апрель 2020, 01:07:23 »
Пока ковыряю изучаю код игры сделал мини хак:
1.Принцесса находиться в первой комнате, что при желании даёт возможность легко пройти игру быстро
2.Карта замка находится сразу у входа в замок, уже с начала игры можно её открыть и поглядеть где вы находитесь
3.Время прыжка увеличено, теперь можно длительное время летать в прыжке прежде чем персонаж начнёт падать в низ
4.Игру начинаете уже имея все ключи по 1-му кроме красных, красных в начале игры 0.
5.Ну и напоследок для тех кто любит побродить по замку, ключи теперь не кончаются. ;)

Оффлайн Еmsi-D

  • Пользователь
  • Сообщений: 555
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #3 : 10 Апрель 2020, 20:58:50 »
О, норм тему мутишь. Разве-что вот это убрать бы:
Цитата
1.Принцесса находиться в первой комнате, что при желании даёт возможность легко пройти игру быстро

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

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #4 : 10 Апрель 2020, 23:36:35 »
Лучше сделай вместо этого чтобы вода не убивала. А то там встречаются места, где воды всего по колено, и все равно дохнешь.
Еще ящики и акваланги не респавнятся и в некоторых комнатах из-за этого можно немилосердно встрять.

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

Когда хотел добавить места в роме для собственного кода, поизучав работу мапперов столкнулся с проблемой что данный маппер на котором написана игра не поддерживает банки PRG-ROM более 32кб есть возможность в нём лишь CHR банки менять переключать в большом количестве. Поэтому выделить место для написания карты с новым алгоритмом сжатия более простым становиться просто невозможным, по скольку ром очень плотно забит данными игры.  И чтоб писать какие-то изменения в игре по этой же причине невозможно, разве что просто меняя некоторые особенности кода немножко. Даже для элеманторного добавления ключей при старте игры пришлось делать вставку кода и писать код в отдельном месте, немножко свободного места освободилось при удалении ненужного кода в роме игры, там почему-то было при включении питания два повторяющегося одинакового кода игры, словно изначально планировали две игры писать  :?. Так же пока изучаю код нахожу понемногу мусор в коде который по сути можно было и не писать, да и адреса памяти RAM зачем-то дублируют частенько по 2-3 адреса используя для одной и той же задачи, пока тоже не пойму зачем, и в графике нашол спрайты не использованные в игре, есть даже полностью нарисованный моб в двух проекциях движущийся которого в игре нету.
Сейчас по выходным занят полностью переписыванием всего кода игры под маппер ммс3 сразу анализирую отдельно себе в блокноте пишу какой код как часто и чем используется чтоб разделить его и раскидать по разным PRG банкам, тогда и возможность будет менять в игре вдоволь всё, и места хватит под все задумки.  :) Нашол так же и ссылки на код музыки, могу выложить весь код музыки, отдельно подробно указав какая часть музыки для чего, и даже расписать подробно какая часть массива для какого канала APU, это на случай если кто надумает в дальнейшем поменять музыку в игре.  ;)

P.S. Если можно, скиньте плиз мануал с подробно разжованной работой каждой инструкции процессора 6502 для тех кто в танке,  :D а то что не найду в инете, везде простое обозначение что делают та или иная инструкция, а по факту что конкретно и как и при каких обстоятельствах что они делают с флагами некоторые инструкции не могу понять, со временем конечно методом тык всё равно всё узнаю, но хотелось бы пораньше чтоб быстрее разобрать весь код игры.
« Последнее редактирование: 11 Апрель 2020, 00:25:23 от Миха42 »

Оффлайн Еmsi-D

  • Пользователь
  • Сообщений: 555
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #5 : 11 Апрель 2020, 06:02:48 »
На счёт воды, думаю это будет маленько неправильно если она не будет убивать
Не, ну а чо. Вон Марево под водой не дохнет, а местный гг даже если по пояс зашёл в воду, то сразу кони двигает :lol:
Вобщем как дойду до данного кода погляжу что с ним можно сделать.
Угу, глянь, мож удастся что сделать с этим..
Нашол так же и ссылки на код музыки
Мож её отключить? А то задалбывает эта повторяющаяся без конца мелодия

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2161
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #6 : 11 Апрель 2020, 08:18:19 »
https://www.romhacking.net/hacks/4293/ - какие ограничения у этой версии в плане расширения рома?

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #7 : 11 Апрель 2020, 11:15:50 »
Не, ну а чо. Вон Марево под водой не дохнет, а местный гг даже если по пояс зашёл в воду, то сразу кони двигает :lol:Угу, глянь, мож удастся что сделать с этим..Мож её отключить? А то задалбывает эта повторяющаяся без конца мелодия

Попробовал заморозить таймер, акваланга и бессмертия, не прокатило, начинаются траблы с музыкой, видимо привязана к таймеру, прийдётся либо таймер циклить либо код рыть.

Музыку отключить можно без проблем. ) Но в тишине тоже скучно.

Добавлено позже:
https://www.romhacking.net/hacks/4293/ - какие ограничения у этой версии в плане расширения рома?

Не знал что есть уже в ммс3, у меня во всех сборниках лишь cnrom версия была, вот и взялся за переделку под ммс3.

Возможности ммс3 судя по литературе
До 512кб PRG
До 256кб CHR
И +8кб RAM в дополнение к имеющимся в приставке 2кб RAM

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2161
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #8 : 11 Апрель 2020, 11:41:33 »
Теперь будешь переделывать нормальную версию?

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #9 : 11 Апрель 2020, 14:06:35 »
Скачал глянул, это патч, он лишь делает возможным запуск игры на ммс3 маппере, распространённом для записи на железо, но он не переписывает весь код. В игре при эмуляции основной код игры находится в первой части 8х0 -AxF остальная часть Bx0 -Fx0  по большей части несёт в себе массивы информации игры, так вот маппер ммс3 может менять банки по адресам 8х0-9xF и Ax0-BxF, a Ex0-FxF неизменяемый. Так что как не крути, а переписывать весь код всё таки прийдётся чтоб заточить его нормально под данный маппер.

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #10 : 15 Апрель 2020, 19:29:19 »
Пока занят переписыванием кода игры под ммс3 и раскидыванием кода и массивов по prg банкам рома, для удобства переключения банок с нужным кодом и расширения места в роме.
На данный момент уже выкинул в отдельную банку всю музыку из игры, но возник вопрос, может для удобства стоило и код обработки массива музыки с воспроизведением выбросить в отдельную банку?    o_0
Так сказать на случай если со временем будет желание сменить музыку переделать.
Если я правильно понял, то во всех играх используется собственный код обработки массива музыки с собственными поинтами, а значит и уже имеющийся код обработки новой вставленной музыки будет не востребован и понадобиться другой код соответствующий под код новой музыки.

Так как сделать проще оставить данный код воспроизведения в неизменяемой банке рома в надежде что у кого-то получится переписать музыку под соответствующий оригинальный код игры или всё же выкинуть всё вместе в отдельную банку?  :neznayu:

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 2894
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #11 : 15 Апрель 2020, 22:07:40 »
Но с появлением эмуляторов вновь решил пройти её добавив себе ключей, чтоб наверняка.
Давно хотелось бы переделать уровни, так сказать состряпать новенькую карту.

Так ты сначала оригинал то пройди по-нормальному.  :facepalm:

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2161
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Castlequest/Castle Excellent
« Ответ #12 : 15 Апрель 2020, 23:11:08 »
В оригинале ещё много глюков. К примеру, можно читерить неслабо, когда тебя в стены вдавливает лифтом и ты не умираешь. Когда мигающий. Можно попасть в другие комнаты через стены, не беря ключи.

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

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #13 : 15 Апрель 2020, 23:49:39 »
Так ты сначала оригинал то пройди по-нормальному.  :facepalm:

Разумеется проходил. ;)
Ну или вернее почти, это была моя самая большая аплошность в то время, дошол до принцессы, открыв все двери к ней, но прежде чем её взять решил ещё побродить так сказать открыть до конца все комнаты на карте, но попал в западню после с ключами и не смог вернуться обратно к ней чтоб закончить.  :lol:
А после уже с кучей ключей прошол чтоб наверняка.  :)
Самый гемор был в двух локах с кучей ящиков и свечек в первый раз, и другого пути не было чтоб мимо пройти, на них уйму времени потратил в своё время пока разгадал как пройти.  ^_^

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

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

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

Кстати нашол глюк в игре по чему не удавалось красные ключи взломать при старте игры чтоб начать сразу с ними, из-за которых начинались глюки при взломе пропадали предметы в локациях, в новом коде уже исправил это.  ^_^

Осталось найти ещё как исправить баг с жизнями в игре, когда можно было подгодать взять жизнь, и за очки одновременно получить вторую, после откатить игру на автосохранение назад, жизнь снова появиться в локации и очки уменьшаться как были до входа в комнату, даже отнимут жизнь которую брал, НО ту что давали за количество очков не отнимали, в результате получал 2 жизни а ворачивал одну при откате, таким образом можно было набрать кучу жизней в игре без всяких взломов. Это я ещё раньше на стареньком денди так жизни добавлял себе.  ;)
« Последнее редактирование: 16 Апрель 2020, 00:03:09 от Миха42 »

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1482
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #14 : 16 Апрель 2020, 00:09:37 »
Если получится под mmc3 нормально переписать оригинальный ром, то скинь его, пжл. На ромхакинге куча таких заплаток для игр, где наставлено костылей. И потом куча мусора лишнего в роме и дублирования данных в новых банках.

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #15 : 16 Апрель 2020, 00:43:10 »
Разумеется скину, только вот дела продвигаются ппц как долго, приходиться в ручную каждый байт переписывать, каждое обращение к памяти в блокноте приписывать чтоб знать что и для чего, а так же всё дерево процессов jmp, jsr на листе расписывать разрисовывать чтоб потом накладок не вышло что к банку обратился из подфункции, а банк памяти в этот момент другой, да и банки лишний раз не дёргать постоянно, только для загрузки данных из массивов в момент прогрузки локаций, и смены палитры, и графики. Чтоб в основном банк с музыкой был подключен, к нему на много больше обращений идёт. Так же планирую разовый код что редко используется тоже закинуть в отдельный второй банк памяти, чтоб больше свободного места было в не меняющемся банке.

Но вот по поводу кода музыки сейчас загвоздка вышла, переписать уже переписал всё все поинты изменил, и массив выкинул в отдельный банк, вот и думаю что возможно зря оставил в несменном банке код музыки, его наверно тоже стоит выкинуть на всякий случай. А это блин опять весь его переписывать снова.  <_<
И так уже два раза переписываю весь код с начала, первый раз не с того прерывания начал код писать намудрил в итоге, а во второй раз условный переход прошляпил и после rts настрочил кучу того что не в своём порядке идёт в результате каша вышла, а смещать код и вставку делать это ппц сколько заметок переписывать и путаницы сколь, вот и начал уже в третий раз код переписывать, стараюсь внимательнее на этот раз быть. Но всё равно, то и дело после написания сталкиваюсь с кучей моментов которые можно было упростить и переделать, либо наоборот дополнить что-то местами, в результате опять не совсем гладко всё выходит, но теперь между всеми функциями оставляю свободное место чтоб потом легче было править ньюансы, и меньше лепить что попало.

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 2894
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #16 : 16 Апрель 2020, 10:36:33 »
на счёт прохождения сквозь стены пока бессмертный, так оно так и задумано.
Если это так, то минус разработчикам.

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #17 : 16 Апрель 2020, 21:36:49 »
Вопрос не по теме конечно, но подскажите плиз нормальный переводчик из 16еричной системы в 2ичную и обратно?

А то в инете переводчиков и калькуляторов куча, но в 2оичной не правильно считают. А нужно порой быстро переводить туда и обратно, чтоб быстро проверить результат ASL и шарить дальше по коду.

Желательно на комп готовый переводчик под win10
« Последнее редактирование: 16 Апрель 2020, 22:11:16 от Миха42 »

Оффлайн Rumata

  • Модератор
  • Сообщений: 23960
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #18 : 16 Апрель 2020, 21:46:20 »
А Калькулятор в Виндовс чем не угодил?

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4533
    • Просмотр профиля
Re: Castlequest/Castle Excellent
« Ответ #19 : 16 Апрель 2020, 21:55:56 »
А то в инете калькуляторов куча, но в 2оичной не правильно считают.
Это как можно неправильно считать?
Я пользуюсь консолью Python 3. bin(0xFF) выведет '0b11111111', hex(0b11111111) выведет '0xff'. Хотя стандартный калькулятор удобнее в чём-то.
--------
Да и в уме переводится несложно, потому хекс и используют.

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #20 : 16 Апрель 2020, 22:10:17 »
Мля, переводчик нужен на win10 не то написал в торопях
В моей винде вобще нет калькулятора, только в телефоне.
В инете перевести не могу числа в двоичную систему и обратно, и калькуляторы тупят тоже в инете в двоичной.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4533
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #21 : 17 Апрель 2020, 09:06:09 »
В инете перевести не могу числа в двоичную систему и обратно, и калькуляторы тупят тоже в инете в двоичной.
Пример напишите, что вы задаёте, что получаете и что ожидали получить.
В моей винде вобще нет калькулятора
Говносборка или удалили? Его можно восстановить: https://superuser.com/questions/978877/how-can-i-reinstall-windows-10s-calculator-app. Если не удалили Windows Store, то https://www.microsoft.com/ru-ru/p/windows-calculator/9wzdncrfhvn5.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1468
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #22 : 17 Апрель 2020, 10:30:40 »
В моей винде вобще нет калькулятора, только в телефоне.
Попробуй запустить калькулятор через эту программу. Пункт меню Soft->Calculator.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4533
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #23 : 17 Апрель 2020, 10:38:50 »
Попробуй запустить калькулятор через эту программу. Пункт меню Soft->Calculator.
Win+R, calc, Enter :)

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4323
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #24 : 17 Апрель 2020, 10:54:26 »
Sharpnull,
тихо, не видишь человек свой бесполезный мусор проталкивает?

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1468
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #25 : 17 Апрель 2020, 11:08:13 »
Не такой уж и бесполезный, раз смог тролю пердак подпалить. :rofl:

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4323
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #26 : 17 Апрель 2020, 11:36:37 »
Mr2,
ты бы хоть этимологию термина "[сетевой] тролль" для начала узнал, прежде чем пытаться ввернуть слово по теме и без. Причём, с ошибкой.

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #27 : 17 Апрель 2020, 12:51:37 »
Если не удалили Windows Store, то https://www.microsoft.com/ru-ru/p/windows-calculator/9wzdncrfhvn5.

Спасибо, как раз именно то что нужно.  :thumbup: , а главное всегда под рукой  :)

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #28 : 17 Апрель 2020, 16:54:02 »
Со вчерашнего дня голову ломаю, переписал в prg банку весь код генерирования карты и забивания её в RAM вместе со всеми массивами, всё вроде норм работает банки переключаются код исправно работает всё 1в1 исправно как в оригинале, но в оригинале она правильно генерируется, а у меня нет. Два дня голову ломал пока ненароком не залез в ppu, так оказалось что он ещё и оттуда код подгружает для генерирования карты, не даром в процессе загрузки карты chr банки меняет, на что я не обратил внимания даже.
До чего же хитрые блин зараза эти разработчики были ппц просто.  :furious:

Оффлайн Миха42

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #29 : 22 Апрель 2020, 07:39:45 »
Извеняюсь за назойливость, но может мне ктонить разжевать подробно инструкцию ORA в асм 6502?
На сколько я помню в том же MySQL и пыхе которые я раньше юзал or выполнял роль условия (в моём понимании) при котором если не соотвествовало одно значение значит проверяли другое и после получали результат либо ничего. А как обстоят здесь дела относительно А or M и флагов хотелось бы узнать подробно.

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