Category: Prince of Persia

08
Окт
2021

Пищалка

Решил все-таки сделать вывод звука на пищалку. По большей части потому что жалко готовые звуки, которые мы добывали выводом на принтер. Звуки, правда, были не все, пришлось доделать недостающие. А вот музыки для встроенного динамика вообще не было. Решил попробовать использовать редактор Савина «Клавесин». Но вот сам вывод музыки одновременно с игрой… Попытки воспроизводить музыку по прерыванию таймера провалились — в итоге звук был с явным фоном около 50Гц, что и понятно — таймер как раз 48Гц. В итоге я решил попробовать вывод музыки не квантами по таймеру, а все-таки нотами, с каждым кадром движка по одной ноте. Пришлось переписать музыку нотами минимальной длительности. Попробую, думаю, если будет фигня — ну и хрен с ним, пусть музыка остается на AY.

Попробовал и вдруг понял, что такое странное звучание музыки я уже слышал…. в видеороликах «Prince of Persia на Apple 2». Прикольно, конечно))

Вывод на спикер больше нагружает проц и с ним Принц бегает уже не так плавно. Лучше играть с AY 🙂

Вот что получилось у меня:

Вот как звучит на Apple:

06
Окт
2021

Добиваем баги

Фиксим последние (надеюсь) баги:

  • при спрыгивании с больших колонн нужно другое смещение, чем при спрыгивании со стены из висячего положения (баг оказался глубинным, я правил его два дня!)
  • при приземлении с ударом об решетку не сбрасывался высотомер
  • обнаружилось, что при выходе Принца из лабиринта вдруг исчезает труп стражника, если он валяется рядом

 

04
Окт
2021

Автодетект

Сделал автоопределение среды, в которой запущен Принц — эмулятор или реальная БК. Для эмулятора и железа используются разные задержки для смены палитр на лету и переключения экранов. Пришлось повозиться, т.к. процедура «записать в 177702 — прочитать из 177702» почему-то не всегда вызывает прерывание по вектору 4 на моей БК. Особо разбираться не стал, т.к. записанное значение из этого регистра все-таки не читается, а в эмуляторе читается. От этого факта и пляшем. Попутно пофикшены баги:

  • во время демо не блокировались управляющие клавиши, т.е. можно было включить задание управления, например
  • жуткий глюк, который мог приводить к вылетанию игры при перезапуске игры/лабиринта во время фехтования (при старте мог быть текущим профиль стражника, а не принца, а у того спрайты совсем не там….)
  • после задания управления от джойстика Принц делал прыжок — потому что игрок не успевал отпустить последнюю задаваемую кнопку (как раз прыжок). Теперь ждем, пока отпустит, а только потом выходим из процедуры задания управления.
01
Окт
2021

Джойстик, версия два

По совету Manwe задействовал вторую кнопку джойстика. В итоге управление от джойстика теперь выглядит так:

  • Влево, вправо — бег влево и вправо
  • Вверх — прыгнуть прямо вверх, залезть, поставить блок при фехтовании, зацепиться в полете
  • Влево/вправо + вверх — прыжок с места, прыжок на бегу
  • Вниз — слезть, присесть, сложить меч
  • Кнопка 1 — удар при фехтовании
  • Кнопка 1 + влево/вправо — маленький шаг
  • Кнопка 1 + вниз — взять предмет
  • Кнопка 2 — прыжок с места, зацепиться в полете, удар при фехтовании
  • Кнопка 2 + влево/вправо — прыжок на бегу

В виде текста выглядит громоздко, но на самом деле все интуитивно понятно (я надеюсь). Кроме того, джойстиком теперь можно пропускать заставки и выходить из режима «Пауза».

Все кнопки можно переназначить: режим настройки джойстика вызывается по комбинации АР2+J в любой момент игры (кроме заставок).

Клавиатуру, кстати, тоже можно переназначить (АР2+K).

 

30
Сен
2021

«Отберите у Теда желтый блокнот!»

Вычеркиваем:

  • нужно иметь возможность скипнуть заставку джойстиком
  • портится нажимающаяся плита, если справа падает пол
  • странный глюк  с игнорированием клавиш после смерти (повторить пока не удалось)

Хитрый глюк с игнорированием клавиш обнаружил Алекс Шестипалов, за что ему граненое мерси 🙂 Возникало это только в ситуации, когда Принц с пола вешался на стену, но залезать передумывал и спрыгивал обратно на пол. Причем именно на стену, а не на арку. И если после этого умудриться ни разу не упасть, не спрыгнуть с высоты хотя бы одного кирпича, а затем погибнуть в бою со стражником — вот только тогда не появлялась надпись «Press button to continue» и ожидание клавиши было бесконечным.  Просто при спрыгивании с кирпича (без залезания наверх) высотомер не сбрасывался (ошибочно, конечно). А вот ожидание обнуления высотомера я добавил только недавно, для того, чтобы дождаться полного падения Принца в пропасть, прежде чем перезапускать лабиринт по нажатию клавиши. И тут звезды сошлись… Принц считался летящим и ожидание было вечным.

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

 

29
Сен
2021

Только я подумал, что все…

Отдал Принца на тесты и уже получил несколько «приветов». Что ж, буду фиксить 🙂

  • неудобно прыгать на бегу на джойстике с крестовиной (типа Dandy) — ок, заюзаем вторую кнопку
  • нужно иметь возможность скипнуть заставку джойстиком
  • служебные клавиши работают только на латинском регистре (посыпаю голову пеплом)
  • портится нажимающаяся плита, если справа падает пол
  • меч мигал не там, где надо — это я сам нашел и уже исправил
  • странный глюк  с игнорированием клавиш после смерти (повторить пока не удалось)

Ну, не все так плохо, знавали мы глюки и похлеще ))

 

28
Сен
2021

A Hard Day’s Night

Сегодня исправил несколько багов, обнаруженных Yellow Rabbit и мной:

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

А также занимался грандиозным делом — подбирал на железной БК задержки для смены палитр «на лету». Занятие не для слабонервных. Но мне удалось их подобрать! Теперь надо сделать определение среды запуска «эмулятор/железо» и применять те или иные тайминги. Так как я весь вечер гонял Принца на железной БК, то могу сказать, что Принц на железе работает шустрее, чем в эмуляторе. Очень заметно 🙂 Прям радует.

 

27
Сен
2021

Совсем скоро!

Сегодня:

  • добавил маски для «отдыхающего» Принца
  • добавил «внезапный музон»
  • исправил баг «плита по голове не всегда отнимает жизнь»

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

26
Сен
2021

Славная охота

Итак, сегодня сделано:

  • иногда не выключался муз.проц, исправлено
  • исправлена плита у зеркала
  • приземление с большой высоты с ударом об стену проходило без анимации контузии
  • при падении с большой высоты и ударе о «ветхую» плиту Принц помирал, но продолжал падать (и это правильно) и при этом мог зацепиться и повиснуть, раскачиваясь как живой (вот это неправильно)
  • поправлены некоторые новые спрайты во дворцах
  • игровое время теперь считается по таймеру, так что на игру реально выделяется час

Осталось совсем немного:

  • разобраться с масками дохлого Принца
  • добавить внезапный музон в 6-м
  • исправить музон победы в бою (что-то там щелкает)
  • восстановить вывод звука на спикер
  • сделать выбор устройства вывода звука
  • настроить задержки для палитр на железе