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

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

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #60 : 11 Декабрь 2020, 02:33:08 »
(Ссылка на вложение)

Второй твой вариант конечно смотрится лучше с правыми засечками букв И и Н, но они не умещаются в 1 тайл 7х8 требуется 8х8. Прийдётся каждую последующую букву смещать на 1рх и вместо 9 тайлов уже 12 понадобиться под надпись, и полностью исключает возможность использования данной стилистики где либо ещё в игре. Я же всячески пытался уложиться в рамки 7х8 дабы в свободные 44 тайла одного банка 1кб попробовать написать нечто подобное данной стилистики весь алфавит под Ж и тому подобные используя по 2 тайла. Вобщем попытаюсь ещё немного поделать потом буквы укладываясь в тайл, пусть и слегка несоответствуя стилю местами, еже ли так и дальше будет плохо получаться, тогда откажусь от него в дальнейшем и использую твой вариант И, Н и К.

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #61 : 18 Декабрь 2020, 17:55:11 »
Castle Excellent (J)
Оригинальный ром взятый за основу для модификаций.
Маппер 003 CNROM
32кб PRG-ROM

32кб CHR-ROM
Переключение банков:
8кб х4

Castle Excellent (mmc3)
Переделанный ром под запуск игры на маппере MMC3, код игры не изменён.
Маппер 004 MMC3
32кб PRG-ROM
Переключение банков:
(8кб х 2)+16кб(фиксированный в окончании рома)

32кб CHR-ROM
Переключение банков:
8кб х4

Решил выложить пробный вариант того чем занят, возможности на данный момент в Hack.txt

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

Что касается алфавита всячески старался уложиться в рамки тайла 7х8 если есть предложения сделать буквы красивее не выходя за рамки тайла с радостью добавлю ваш вариант если ваш вариант будет больше подходить к общему стилю и вполне читаемо смотреться.
« Последнее редактирование: 22 Декабрь 2020, 19:07:27 от Миха42 »

Онлайн Sharpnull

  • Пользователь
  • Сообщений: 2514
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #62 : 18 Декабрь 2020, 18:54:06 »
Миха42, добавляйте все 3 три рома и описание в один архив 7z, для удобства и меньшего размер (37.2 КБ - все 3). Сами ромы тоже должны иметь правильное название. v1.0.0 - не понятно что значит, нужно дописать что это хак и т. п.
если есть предложения сделать буквы красивее
Этот шрифт для надписей, для большого количества текста, как у вас в настройках, выглядит так себе. Я бы выбрал обычный читаемый шрифт, можно сделать для главного экрана такой, а для настроек простой.

На счёт MMC3. Mirroring нужно ставить явно, с Horizontal точно. При запуске гарантировано будет стоять только последний банк, то есть Reset handler должен быть в пределах $E000-FFFF (в хаке нормально, а вот к "Castle Excellent (mmc3)" стоило это упомянуть). Также нужно отключать MMC3 IRQ (записать что угодно в $E000). Хотя в большинстве эмуляторов данные ромы будут нормально работать, про железо такого сказать не могу.

В вашем хаке не все значения памяти инициализируются правильно, если включить в эмуляторе случайные значения RAM, то иногда при нажатии start в игре, то код неверный стал выполняться (недокументированные инструкции), то какое-то меню с RESET вылезло.
UPD: Меню, которое появляется само собой иногда, это:
Цитата
* Режим Sub-command.
Во время игрового действия нажмите А или В на контроллере 2, чтобы вызвать экран Sub-command.
« Последнее редактирование: 18 Декабрь 2020, 19:08:32 от Sharpnull »

Оффлайн +Kinbeas+

  • Пользователь
  • Сообщений: 1979
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Castlequest/Castle Excellent
« Ответ #63 : 18 Декабрь 2020, 19:13:06 »
Шрифт хорош. Не менять. )

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #64 : 18 Декабрь 2020, 19:42:49 »
Миха42, добавляйте все 3 три рома и описание в один архив 7z, для удобства и меньшего размер (37.2 КБ - все 3). Сами ромы тоже должны иметь правильное название. v1.0.0 - не понятно что значит, нужно дописать что это хак и т. п.Этот шрифт для надписей, для большого количества текста, как у вас в настройках, выглядит так себе. Я бы выбрал обычный читаемый шрифт, можно сделать для главного экрана такой, а для настроек простой.

На счёт MMC3. Mirroring нужно ставить явно, с Horizontal точно. При запуске гарантировано будет стоять только последний банк, то есть Reset handler должен быть в пределах $E000-FFFF (в хаке нормально, а вот к "Castle Excellent (mmc3)" стоило это упомянуть). Также нужно отключать MMC3 IRQ (записать что угодно в $E000). Хотя в большинстве эмуляторов данные ромы будут нормально работать, про железо такого сказать не могу.

В вашем хаке не все значения памяти инициализируются правильно, если включить в эмуляторе случайные значения RAM, то иногда при нажатии start в игре, то код неверный стал выполняться (недокументированные инструкции), то какое-то меню с RESET вылезло.

По части всех трёх файлов в дальнейшем планируют работать лишь над одним хаком v1.0.0 обновляя лишь версию хака.

В дальнейшем обязательно установлю [h] учту ваше замечание.

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

В варианте mmc3 не планировалось дальнейшее расширение рома, в виду особенностей расположения подпрограмм оригинального кода игры, по тому и оставил всё без изменений, изменив лишь особенность смены CHR-ROM с одного мапера на другой.

Касательно IRQ, ссылается сразу на его закрытие и вреда особо не должен нанести, в дальнейшем так же учту замечание, Пользоваться IRQ прерываниями в планах нету.

Что касается зеркалирования, согласно инструкций ММС3 умеет их переключать по ходу игры. Или есть опасения что может на железе произвольно запустить другое зеркалирование?

Если так же имеются опасения что произвольно могут включиться на железе произвольные настройки мапера относительно расположения банков и их зеркалирования при старте, то прошу подсказать все возможные проблемы при старте мапера, по скольку возможности запуска на железе нету для тестирования, хоть и имеется старенький клавишный СЮБОР. Тестирую на эмуляторе FCEUX.

В хаке Reset ссылается на E000, а NMI на C000 банки, располагал указатели и код относительно свободного места что появляется по мере переноса кода в другие банки. Как освободится побольше места в банке E000 постараюсь и NMI на всякий случай туда перенести.

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

Добавлено позже:
Режим Sub-command.
Во время игрового действия нажмите А или В на контроллере 2, чтобы вызвать экран Sub-command.

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

Так же можете наткнуться на скрытое меню настроек, которое я пока не реализовал до конца, находится на стадии линка в никуда. Сделал его открывание путём чит кода, но не стал о нём говорить по причине недароботки, даже для простого нажатия на линк подпрограммы не существующей.
« Последнее редактирование: 18 Декабрь 2020, 19:58:37 от Миха42 »

Онлайн Sharpnull

  • Пользователь
  • Сообщений: 2514
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #65 : 18 Декабрь 2020, 22:13:31 »
Что касается зеркалирования, согласно инструкций ММС3 умеет их переключать по ходу игры. Или есть опасения что может на железе произвольно запустить другое зеркалирование?
Есть ромы, в которых установлен Horizontal в заголовке, но эмуляторы (Mesen, есть ещё) устанавливают всё равно по умолчанию Vertical для MMC3, поэтому нужно явно указывать. Это в пиратках было. В коммерческих игр вероятно все указывают.
Касательно IRQ, ссылается сразу на его закрытие и вреда особо не должен нанести
Да, вроде не должно. Но в инициализации на nesdev советуют все прерывания отключать.
По части случайных значений RAM
Про это уже ответил в ЛС. Просто значения в RAM на железе могут быть любыми. Некоторые игры это специально учитывают для вычисления случайных значений (Final Fantasy, River City Ransom, Apple Town Story, Impossible Mission II): http://wiki.nesdev.com/w/index.php/Tricky-to-emulate_games. Про начальное состояние: http://wiki.nesdev.com/w/index.php/CPU_power_up_state, там всё равно написано, что на состояние регистров и RAM рассчитывать нельзя.
На железе я сам никогда не проверял, видел на nesdev обсуждения, и опыта у меня мало.

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #66 : 19 Декабрь 2020, 01:50:31 »
Есть ромы, в которых установлен Horizontal в заголовке, но эмуляторы (Mesen, есть ещё) устанавливают всё равно по умолчанию Vertical для MMC3, поэтому нужно явно указывать. Это в пиратках было. В коммерческих игр вероятно все указывают.Да, вроде не должно. Но в инициализации на nesdev советуют все прерывания отключать.

Просто загоню биты по адресам E000 и А000 в функции первого включения и всё, а в заголовке уж точно зеркалирование указывать не буду, на то он и ммс3 чтоб менять по ходу игры )

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Re: Castlequest/Castle Excellent
« Ответ #67 : 19 Декабрь 2020, 21:06:57 »
Выкладываю обновлённый архив, сделал при запуске рома установку всех флагов мапера по умолчанию 0 как и должно быть взяв в учёт все замечания выше сказанные, лагов при старте с рандомом мапера в Mesen теперь не стало.

Что же касается лага с Sub command меню, то увы оригинал есть оригинал, разрабы постарались наделать лагов, в данной версии это даже искать н буду пусть остаётся оригиналом игры, да и свободной памяти в роме осталось всего 6 байт, что были несколько десятков байт свободных изначально пришлось потратить на изменение кода переключения CHR-ROM под мапер ммс3 и на установку настроек мапера при старте игры.

Если завтра время будет, то перепишу код первого старта в хаке.

P.S. нашол причину срабатывания SUB COMMAND меню, в мапере ммс3 почему-то функция F9AD срабатывает раньше чем в cn-rom, в результате байты RAM 07C7 и 07CC успевают обнулиться, а 0776 и 0778 нет, обнуляются лишь после первого чтения, что при рандомных значениях RAM иногда приводит к выводу меню. В то время как cn-rom успевает данные байты обнулить раньше их чтения, сколько бы при этом не старался перезапускать игру.
 С чем связана задержка обработки кода не ясно, но для преждевременного обнуления этих байт при старте игры увы уже нет места в версии (ммс3)
o_0

Вроде все замечания исправил в v1.0.1, обнулил и байты отвечающие за вызов Sub command меню.
« Последнее редактирование: 20 Декабрь 2020, 11:24:18 от Миха42 »

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #68 : 22 Декабрь 2020, 19:16:04 »
Доделал возможность переключения выбора игры.
Сделал возможность переключать сложность игры (пока влияет только на количество жизней при старте игры).
Теперь можно добавить или убавить количество жизней при старте игры, (минимальное количество жизней и максимальное ограничены установленными значениями мин. и макс. для соответствующей выбранной сложности в таблице банка игры).

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #69 : 06 Январь 2021, 18:33:40 »
v1.2.0 изменено:
Убран демо просмотр
Добавлена верия игры: Летун хак Миха (Увеличенное время прыжка с медленным опусканием и бесконечные ключи)
Исправил баг при выборе игры
Исправил баг при взятии бабочки с принцессой при частичном включении музыки в игре

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

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #70 : 07 Январь 2021, 16:16:36 »
Картинка из того что будет в следующей версии.  :)
Сложность будет влиять не только на количество жизней при старте игры как в прежних версиях, но и на количество врагов и расстановку предметов в локациях.

Оффлайн SavitarSvit

  • Пользователь
  • Сообщений: 800
  • Пол: Мужской
  • Хирург личности
    • Youtube
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #71 : 09 Январь 2021, 14:56:24 »
Изначально игра The Castle выходила на Mark3 и MSX и имела совсем другие комнаты. Порт на фамиком, как по мне, получился неудачный. Сильно отошел от оригинальной игры и во многом стал более непонятной игрой в плане прохождения. Было бы здорово если бы ты перенес все оригинальные комнаты с Mark3.

В оригинальном The Castle были бесконечные продолжения при нажатии сочетаний кнопок на game over экране. В famicom версии вместо этого добавили функцию сохранения через спец приблуду.  Если хак на ММС3, можно прикрутить к нему стандартную функцию сохранения к имеющемуся уже меню в игре.

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #72 : 09 Январь 2021, 17:19:16 »
Изначально игра The Castle выходила на Mark3 и MSX и имела совсем другие комнаты.
На Mark3 не в курсе, а вот про MSX я в курсе, самая первая версия была выпущена именно на нём The Castle, игра имела весьма простые лабиринты и головоломки, и не сильно шикарную графику для тех лет, но зацепила людей она именно своей идеей требования запоминать карту игры и логически думать как её пройти. И стали просить выпустить продолжение игры, после чего вышло продолжение The Castle Excellent  на той же MSX, уже с более усложнёнными лабиринтами и головоломками. Игра по прежнему получила успех в своей стране, но по скольку выпускалась игра на платформе пк который не получил широкого распространения за рубежом, тогда и выпустили уже The Castle Excellent (J) и The Castlequest (U) для большей аудитории на распространённой на тот момент NES, где по прежнему решили сделать игру столь же сложной, чтоб заставить над игрой по размышлять и потреннировать память, сделав игру похожей на игру The Castle Excellent на MSX но для большего развлечения дав возможность убивать мечом некоторых врагов как соответствует рыцарю спасающему свою возлюбленную, а не просто бегать убегая от всех и вся.

Добавлено позже:
Было бы здорово если бы ты перенес все оригинальные комнаты с Mark3.

Комнаты перенести будет проще, к этому постепенно и двигаюсь чтоб можно было менять расстановку предметов для начала, изменять сами комнаты. Но уже с предметами сейчас начинаю сталкиваться с проблемой работы с массивом информации, который уже сейчас более 4кб после его доработки под возможность устанавливать предметы для каждой сложности отдельно. Это свихнуться можно в ручную изменять массив в роме с целью переделки расстановки предметов. Уже сейчас требуется что-то думать над возможностью более удобного редактирования предметов, делать какой-нибудь редактор, а в первую очередь делать возможность тестировать комнаты уже в самой игре сразу выбирая комнату где появиться для тестирования.
Что же касается самой карты до неё ещё не дошли руки, к тому же переделка размеров комнаты из 20х20 nes под 15х20 мсх требует найти буквально всё что касается границ комнаты.
А сделать новых персонажей с новым ИИ как в МСХ это вообще необходимо изучить игру на 100%, по скольку ИИ персонажей различается.

Вобщем до полного воссоздания возможности совмещения игры с разных платформ и с разными ИИ ещё очень далеко и будет это ещё очень не скоро.

Добавлено позже:
Если хак на ММС3, можно прикрутить к нему стандартную функцию сохранения к имеющемуся уже меню в игре.

Об этом я уже думал, имеющееся меню планирую убрать полностью, и сделать другое через вызов с кнопки select на месте карты первого джойстика, а саму карту уже сделать в этом меню. И уже когда будет данное меню тогда и начинать работать над возможностью сохранений игры в RAM картриджа. Что в полне реально. Но тестировать работу сохранений на реальных картриджах увы не смогу за не имением таковых.

Что касается бесконечных продолжений, так об этом и речи быть не может! Это же не терминатор, сколько дали жизней, столько есть, в настройках всегда можно подкрутить теперь количество жизней, но опять же в меру, и для каждой сложности в каждом моде можно задавать свою таблицу макс. и мин. количества жизней. Если умер, значит умер, начинай с начала.
Саму игру делаю под принцип движка, где есть банк в котором можно самостоятельно крутить в настройках таблиц всё что вздумается на свой лад.
Вплоть до прикручивания нового банка в роме с собственными настройками и добавлением своих тайлов с указанием номеров своих банков тайлов в этих же настройках. В результате получив очередной мод в списке выбора игры в настройках игры.
 Возможности постоянно указываю в файле Hack.txt к каждой версии игры.
« Последнее редактирование: 09 Январь 2021, 17:54:44 от Миха42 »

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

  • Пользователь
  • Сообщений: 89
  • Пол: Мужской
    • Просмотр профиля
Castlequest/Castle Excellent
« Ответ #73 : 14 Январь 2021, 08:21:02 »
Поехал в командировку, заниматься игрой ближайшее время времени больше не будет. Многое ещё хотел доработать прежде чем выкладывать данную версию, с целью показать все возможности что можно изменять на 1.3.0 версии игры, но времени на всё это увы не хватило, по этому выкладываю данную версию как есть.
Если будет когда появляться время, буду понемножку заниматься игрой и выкладывать обновления, по мере возможности.

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

При желании любой желающий может сделать свою расстановку предметов в локациях.
В массиве предметов игры: FF указывает на окончание информации для данной локации, после FF начинается инофрмация для следующей локации, всего локаций hex 64(100)
1ый байт - ID предмета
2ой байт - положение предмета по горизонтали
3ий байт - положение предмета по вертикали
4ый байт - указывает в каких сложностях используется данный предмет (уровень сложности по возростанию от младьшего бита к старшему, 1 - используется в указанной сложности 0 - не используется в указанной сложности)

биты сложности:
d7 - нечеловечно
d6 - очень сложно
d5 - сложно
d4 - терпимо
d3 - нормально
d2 - легко
d1 - очень легко
d0 - проще некуда

ID предметов:
0E,0F бабочка
10 принцесса
11 акваланг
12,13,14,15 кот
16,17,18,19 гремлин
1A,1B,1C,1D цветок
1E,1F,20,21 рыцарь
22,23,24,25 маг
26,27,28,29 огонёк
2A кувшин
2B кирпич
2C сейф
2D бочка
2E куб со стрелками
2F свечка
30 синий ключ
31 красный ключ
32 розовый ключ
33 зелёный ключ
34 голубой ключ
35 жёлтый ключ
36 карта
37 жизнь
38 крест 200очей
39 шлем 400очей
3A мешок 800очей
3B бутыль 1000очей
3C бессмертие
41 бессмертие
42 зародышь рандомный

« Последнее редактирование: 14 Январь 2021, 08:31:05 от Миха42 »