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

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:

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1542
  • Пол: Мужской
  • Ну-ка, от винта!
    • 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 »

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1542
  • Пол: Мужской
  • Ну-ка, от винта!
    • 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

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

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 198
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #187 : 13 Апрель 2022, 23:36:01 »
В общем взял я за основу версию 1.7.0 из шапки. Тыкаешь assemble.bat, собирается файл CHR.bin.

Чтобы поменять биты/байты, редактируешь asm файлы, сохраняешь и снова запускаешь батник. Для удобства я там номера комнат пометил.

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

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

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

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

Оффлайн Cyneprepou4uk

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

Оффлайн Cyneprepou4uk

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

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

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

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

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

  • Пользователь
  • Сообщений: 286
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #193 : 16 Апрель 2022, 11:52:27 »
Касячнул чутка с возвратом адресов из стека при открытии карты. Исправил, обновил. 1.7.1

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

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