Category: Баги

22
Окт
2021

Релиз обновлен

Новый релиз, содержит фиксы и фичи:

  • BUG: по АР2+R сбрасывалось заданное управление
  • BUG: ждать конца звука перед музыкой
  • BUG: можно было хитро спрыгнуть без потери жизни
  • BUG: иногда пролетал сквозь решетку

Фичи:

  • сделано обнаружение отсутствия SMK и вывод надписи об этом
  • добавлена возможность записи игры

О записи подробнее.  Хоть я и прошел в свое время Принца без какой-либо записи, оказывается возможность такая была. И она описана в оригинальной доке:

Так я и реализовал ее:

  • запись доступна только начиная с 4 уровня
  • для записи нужно нажать клавиши АР2+W, при этом текущий лабиринт будет перезапущен
  • для чтения нужно во время начальной заставки нажать АР2+L, игра начнется с начала записанного уровня

 

06
Окт
2021

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

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

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

 

04
Окт
2021

Автодетект

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

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

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

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

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

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

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

 

29
Сен
2021

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

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

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

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

 

28
Сен
2021

A Hard Day’s Night

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

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

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

 

26
Сен
2021

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

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

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

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

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

 

 

25
Сен
2021

Шумеры

Сделано:

  • по совету Yellow Rabbit сделал микширование шума поприличнее. Артефактов стало поменьше.
  • поправил некоторые лабиринты (в паре мест обрывался узор, а в демо-лабиринт закрался дворцовый кирпич)
  • пришлось править сценарии демо-битв, т.к. с новым RND стражники стали драться активнее
  • увеличил паузу в срабатывании пил, почему там было 6 кадров вместо положеных 8 — неясно. Теперь пила работает как в оригинале. Но в итоге в демо пришлось править сценарий прохода через пилу, т.к. вместо «как надо переходить через пилу» с новой пилой получилась демка «как Принц запиливается»

Что осталось сделать:

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

Звуки на спикер еще не выброшены из Принца, они вполне прилично звучат. Пробовал даже включать одновременный вывод звука и на AY и на спикер — прикольно. Наверное стоит их доделать, теперь они не тормозят принца. Неясно что делать с музыкой на спикер, правда. Попробовал несколько музыкальных редакторов («Маэстро», еще какой-то) — как-то фальшиво звучит в эмуляторе. Не знаю, может дело в эмуляторе, а может в тех демо-музонах, которые с ним идут. «Клавесин» на железе вроде звучал прилично, но та версия, что мне удалось найти, в эмуляторе виснет при старте.

 

24
Сен
2021

Пошумим?

Продолжаю чистить баги по списку. Одна из записей гласила «в 8м лабиринте, при работающих пилах нажатие плиты вызывает бесконечный дикий скрежет».  Вылез, думаю, как раз тот случай, когда несколько звуков, звучащих одновременно, содержат данные шума. А регистр шума-то всего один! Естественно, шум от трех каналов просто так не выведешь. Я надеялся, что шум из нескольких каналов не вызовет особого конфликта — шум да и шум. Нифига. Пришлось делать обработку этого случая. Сделал. Прихожу снова в то место, нажимаю плиту — опять тот же самый дикий скрежет. WTF?? Начинаю смотреть детально — причина диких звуков вообще не в этом. Никакие шумы не конфликтуют, просто плита там хитрая и не освобождается от Принца до конца, в итоге генерируя бесконечное событие «нового нажатия».  А система приоритета шума уже сделана. Хрен с ней, авось пригодится 🙂

А также:

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

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