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

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

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #180 : 11 Апрель 2022, 16:49:44 »
Congratulations! You've completed training mode by making it all the way to a dummy princess. Perhaps it's time to face a real challenge and save the princess?
Попробовал впихнуть, не влезает 1 символ 'time to face a real challenge'  :neznayu:

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1556
  • Пол: Мужской
  • Ну-ка, от винта!
    • Steam
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #181 : 11 Апрель 2022, 17:45:30 »
не влезает 1 символ 'time to face a real challenge'  :neznayu:
В смысле?

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #182 : 11 Апрель 2022, 17:54:39 »
В смысле?
29 символов выходит в строке учитывая пробелы, а по ширине доступно 28 тайлов.

Добавлено позже:
Вобщем выкинул "Congratulations!" чтоб уместить. В оригинальной финальной картинке тоже пришлось его выкинуть.  <_<

Добавлено позже:
Потестил, какие недочёты заметил, вроде исправил.
Обновил.

1.7.0
Всё что изменял особо уже и не помню. Из основного:
Попытался добавить ENG язык, как смог  :D
Дабавлена сложность Легко для оригинальной версии.  ;)
Добавил меню тестирования игры с редактированием ключей,  наличия карты, количества жизней, положения персонажа при старте игры, и комнаты старта.
Для открытия данного меню: выставить Музыку: 4 Повтор: да и в положении выход зажать Влево + Вниз + SELECT + A + B
при входе в данное меню все сохранения и рекорды очей стираются

Делать возможность перевода данного меню на другие языки не планирую, предназначено лишь для Рус языка.
« Последнее редактирование: 11 Апрель 2022, 21:53:57 от Миха42 »

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1556
  • Пол: Мужской
  • Ну-ка, от винта!
    • Steam
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #183 : 12 Апрель 2022, 03:34:25 »
29 символов выходит в строке учитывая пробелы, а по ширине доступно 28 тайлов.

Вобщем выкинул "Congratulations!" чтоб уместить. В оригинальной финальной картинке тоже пришлось его выкинуть.
Может, тогда написать "Congratulation!"? Будет поздравление, а не поздравления.

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #184 : 12 Апрель 2022, 05:37:32 »
Может, тогда написать "Congratulation!"? Будет поздравление, а не поздравления.
Весь текст делится на строчки по 28 тайлов, убрав даже 1 символ в первой строчке, он не поможет высвободить место под 1 символ в пятой строчке. Для этого нужно смещать слова целиком, а смещать некуда, каждая строчка заполняется полностью.
Изначально же финальные заставки делал под русский язык.
Из вариантов:
Либо переделывать текст подгоняя под ограничения,
Либо переделывать пространство заставок высвобождая ещё одну строчку,
Либо переделывать всё тайлы Рус 1 языка под стандартный 7х7рх и уплотнять текст выводя в жадой строчке как это было в оригинале

Но вариант с уплотнением текста мне не особо нравиться, изначально от этого ушол чтоб текст не сливался в строчках, а теперь обратно ворачиваться что-ли?!  :?

Добавлено позже:
Хотелось бы услышать мнения относительно нового уровня сложности, от тех кто его пройдёт до конца.
Старался сделать его более похожим на оригинал, урезал количество ключей относительно количества дверей в сравнении с уровнем Очень легко, перераспределил дополнительные ключи разбросанные по всему замку, изменил пути и порядок прохождения комнат замка, с целью предотвратить быстрое 15 минутное прохождение. Вроде норм получилось, пока всё доделал сам забыл порядок прохождения, в итоге лишь с третьего раза прошёл игру.  :)
В результате закрались сомнения по части отношения игры к уровню Легко, может стоит попроще сделать для данного уровня или переделать под Нормальный уровень сложности, учитывая сколько раз можно попасть в западню если потратить нужный ключ не в том месте?
« Последнее редактирование: 12 Апрель 2022, 06:25:04 от Миха42 »

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #185 : 13 Апрель 2022, 21:35:13 »
Разобрал таки код как устроен массив карты замка.
Вся карта замка как известно состоит из блоков 16х8, каждому блоку при этом присвоен свой номер
Все схемы всех комнат замка хранятся в CHR-ROM игры, в коде игры имеется массив адресов начиная с какого адреса PPU читать байты для загружаемой комнаты, далее все байты данной комнаты помещаются в RAM побитно записывая каждый бит в отдельный байт, после чего перебираются все биты по порядку в поиске соответствия порядка битов для соответствующего номера блока:
В результате получается что-то вроде
байты:|       10      |       92    |       36        |        A0    |         84    |
биты:  |00010|000|10|011010|001| 1|0110|10100|000|10|00010|0|
блоки:|   02   |   02    |        2F     |53|     30         |    02   |   02  |

Теперь вырисовывается задача как это всё редактировать, в ручную сидеть перебирать биты это полный бред. :-\
Если допустим сформировать даже карту в виде порядка номеров блоков в txt файл, то их нужно будет сперва преобразовать в биты, а после уже записать в виде байтов.
Без компилятора тут явно не обойтись.

Есть у кого какие идеи чем можно подобное сотворить?

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 214
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #186 : 13 Апрель 2022, 22:45:36 »
Миха42, есть у меня парочка скриптов, я могу разбить байты на биты в текстовых файлах, и чтобы они потом собирались обратно в бинарник через ассемблер ca65. Скинь ром и скажи какие байты надо "забитить".

Добавлено позже:
В общем взял я за основу версию 1.7.0 из шапки. Тыкаешь assemble.bat, собирается файл CHR.bin.

Чтобы поменять биты/байты, редактируешь asm файлы, сохраняешь и снова запускаешь батник. Для удобства я там номера комнат пометил.
« Последнее редактирование: 18 Февраль 2026, 00:06:24 от ghostdog3 »

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #187 : 14 Апрель 2022, 00:09:21 »
b]Cyneprepou4uk[/b], вытаскивать из рома байты и битить их нет смысла, ведь можно с помощью теста комнат в игре сразу грузить любую комнату, и в эмуле из RAM $0400 скопипастить уже готовый порядок блоков комнаты, и редактировать их на своё усмотрение. Нужно чтоб сперва блоки забитить, а после биты забайтить.  :)
Биты соответствующие каждому блоку известны, нужно чтоб программа читала блоки по порядку из файла и с помощью цикла писала соответствующие блоку биты в другой файл или ram, a после уже байтила их и выдавала готовый текст байтов.
Порядок редактирования карты:
Байты ---> биты --> блоки ---> редактируем блоки ---> биты ---> байты ---> меняем указатели комнат в зависимости от изменения количества байт на комнату

Каждый блок имеет разную длину в битах от 1 до 13бит, а значит просто поковырять биты не удастся. <_<

Добавлено позже:
Если ни чего подходящего не найдётся, то на выходных буду кумекать над алгоритмом обратного сжатия данных комнат.
« Последнее редактирование: 14 Апрель 2022, 00:20:48 от Миха42 »

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 214
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #188 : 14 Апрель 2022, 00:28:52 »
На твоем месте я бы код в игре переписал, чтоб с битами не ковыряться. Пусть читает 1 байт = номер 1 блока. Добавишь пару новых схр банков в игру чтоб все влезло.

Чтоб быстрее скопировать распакованные данные, ставишь в нужных местах бряки, настраиваешь автокликер (я юзаю Clickermann). Ставишь эмуль на паузу и сейвишься там, где уже только что прочитался индекс комнаты из адреса. С помощью калькулятора в hex режиме жмешь = (заранее подготовив +1), затем ctrl+c, в дебаггере ctrl+v в нужный регистр чтоб подменить индекс комнаты, прогоняешь по нужным брякам, параллельно копируя байты из оперативки в текстовый файл, в конце (или в начале) цикла грузишь сейв в эмуляторе. В автокликере счетчик на 100, запускаешь всю эту телегу и идешь ютуб смотреть на мобиле пару часиков.
« Последнее редактирование: 14 Апрель 2022, 00:48:32 от Cyneprepou4uk »

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #189 : 14 Апрель 2022, 07:00:09 »
Пусть читает 1 байт = номер 1 блока. Добавишь пару новых схр банков в игру чтоб все влезло.
Я уже думал о таком, тогда понадобится очень много места в роме, вместо занимаемых 10кб данных о комнатах, размер вырастет сразу до 40кб.
Учитывая что хочу МСХ версии игры впихнуть сюда же в ром со временем, то на одни только комнаты 100+кб понадобится. Как то жирно выходит в итоге. Но на крайний вариант придётся так сделать, если не придумаю как  и чем обратно сжимать данные.

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 214
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #190 : 14 Апрель 2022, 14:59:01 »
Да какая разница какой там размер получится, если маппер позволяет? У тебя PRG на 512кб, можно туда все перенести. Или волнуешься что карик подорожает?  :lol:

Чтобы разжимать и сжимать обратно, нужно полюбому скрипт писать. Еще и следить чтобы размер после редактирования не увеличивался, иначе поинтеры постоянно менять нужно. Гемор в общем.

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #191 : 14 Апрель 2022, 18:01:57 »
Cyneprepou4uk, поразмышлял маленько, может ты и прав, сделаю 1к1, хоть и места будет больше занимать, но зато в будущем будет меньше геморою чтоб какой-нибудь новый блок добавить в игру.  ;)

Добавлено 16 апреля 2022 года:
Касячнул чутка с возвратом адресов из стека при открытии карты. Исправил, обновил. 1.7.1
« Последнее редактирование: 18 Февраль 2026, 00:06:10 от ghostdog3 »

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #192 : 19 Июнь 2022, 15:37:50 »
Увеличил обзор комнаты, сместив спрайты с фоном левее на 1 блок, и уменьшил действие скроллинга увеличив обзор с правой стороны комнаты.
248482-0

Оффлайн dascratchSgt1@t23c_jjt90$

  • Пользователь
  • Сообщений: 1
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #193 : 17 Февраль 2026, 22:35:18 »
Увеличил обзор комнаты..
(Ссылка на вложение)

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

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5659
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #194 : 18 Февраль 2026, 13:34:18 »
ещё заметил баг в комнате с водой (если упасть за зелёную дверь со старта, потом под лифт и направо, комната с колоннами), открыв зелёную дверь справа-снизу там теперь зияет зелёный сплэш
После смещения фона левее, не была изменения установка палитры для дверей, поэтому для всех дверей была установка палитры для блока (16x16px) справа, это обычно не заметно, потому что дверь заменяется на блок цвета фона, а он у всех палитр одинаковый, но такое не работает с водой, у неё другой индекс в палитре.
Для исправления A7C1:02 (был 04). Прикладываю исправление для Castle Excellent [h][ntsc] by Miha v.1.7.2. Код, который был исправлен, Bank 5:
Интересно, что эта дверь открывается без ключа, если вернуться назад в левую комнату. Так было в оригинале, может я что-то не понял.