Category: Баги

03
Июл
2022

Монетизация

Долго искал причину глюков в передвижении монет по лабиринту. Проявлялись они хитро — вроде все работает, монеты создаются, а потом раз и за монетой потянулся запорченный фон. Или монеты просто через какое-то время переставали создаваться. Капли капают, а монет нет. Или монеты исчезали при первом же ударе об стену, вместо второго. У меня уже начал дергаться глаз! Оказалось, причина была не одна, а целая куча — начиная от порчи регистра в подпрограмме копирования фона монеты, заканчивая идеологией «динамического буфера фона под монеты». Но на данный момент все успешно починено:

30
Май
2022

Призрак и прочие жители

Сделал забивание Призрака. Он меняет цвет при получении урона и потом исчезает. Пофиксил накопившиеся баги — в таблице умножения на 300 отсутствовали строки для умножения на 25, 26, 27 (при падении через границу экрана такие умножения возникали), а также старый глюк с недоочищением списка «газовых выбросов».

05
Май
2022

Оптимизация

Переношу подпрограммы в расширенную память, авось удастся впихнуть музыку в нулевую страницу. Это позволит избежать лишних телодвижений при любом переключении страниц. Ведь таймер вызвать прерывание в любой момент и если музыка хранится в расширенной памяти, то возникает необходимость возвращать конфигурацию страниц после обработки прерывания. А в БК нельзя узнать, какие страницы ОЗУ подключены в данный момент, если только не делать все переключения через собственный «менеджер памяти». Это мы все уже проходили в Принце. При переносе процедур стрельбы вышел небольшой глюк:

27
Апр
2022

Оптимизация движка

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

24
Апр
2022

Кидание костями

Реализовал кидание костями. Попутно выяснилось, что скелет не совсем правильно ходил — слишком быстро. Это стало понятно, когда он кинул кость и, побежав, догнал ее в полете. Мне и раньше казалось, что он как-то неправильно ногами перебирает, теперь это исправлено. Займемся нотами!

07
Апр
2022

Правим баги

Исправил два знатных глюка. Они проявились при увеличении мобильности Шерифа — раньше он не бродил так активно между окнами. Один баг был связан с обменом буферов фона Шерифа при входе в активное окно, а второй со стиранием остатков Шерифа при покидании активного окна. Точнее, окно-то как раз и не было активным, это был переход из одного невидимого окна в другое, но «остатки» норовили стереться.

Между окнами еще бродят скелеты, но для них будет использоваться тот же самый механизм. Остальная нечисть вроде бы живет в пределах одного окна. Хотя, там есть еще Призрак, который вроде бы летает между окнами. Но тому вообще на все плевать, в том числе на стены.

03
Апр
2022

Прогуливающийся шериф

Шериф научился уходить в соседние окна. Пока что делает он это криво, иногда сквозь стены. Заодно он продемонстрировал умение кататься на глыбе. Это логично, ведь он пользуется подпрограммами Балбеса. Однако, есть какой-то глюк, который вызывает резкое падение скорости, когда шериф на экране одновременно с черепами. Будем искать…

16
Мар
2022

Обновление релиза Prince of Persia

Исправлен приоритет при фехтовании: если Принц и стражник одновременно бьют, то урон получает стражник. Раньше приоритет был у стражника. Теперь все как в оригинале и шансов победить стало больше. Релиз обновлен.

22
Окт
2021

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

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

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

Фичи:

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

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

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

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