Category: Баги

09
Апр
2023

Хитрости упаковки

Придумал новую структуру уровня, для использования с упакованными лабиринтами. Начал реализовывать — делать таблицы шерифов, бонусов, связей телепортов и организовывать их по новому принципу. Собрал новый уровень, в нем содержатся все данные и 5 сжатых сцен. Ну, думаю, пора попробовать загрузить такой новодельный уровень, распаковать его в игре и запустить туда Балбеса. Так-с, где там наш распаковщик, надо его прицепить к основному коду…. Где же он?  А нигде! Распаковщик, оказывается, не написан! Значит я хотел прикинуть, насколько сожмутся лабиринты, чтобы знать как дальше организовывать работу с переходами из уровня в уровень и т.д. Написал упаковщик, сжал лабиринты, прикинул, порадовался.  И тут я приостановил работу над Goonies и начал делать Setup для AZ.

Ок, нет распаковщика — сейчас мы его напишем, там же все просто. Написал. Попробуем распаковать — ага, распаковалось. И что там распаковалось? Не совсем что-то совпадает с оригиналом. Детали не совпадают небольшие, нюансы. Точнее вообще какая-то ересь вместо распакованного лабиринта получилась. И почему же так? А потому что там и в упакованном ересь какая-то, не так должно выглядеть. В словаре одно, а в архиве другое. Значит и упаковщика тоже нет…

В итоге я нашел в чем был глюк в упаковщике и он стал упаковывать значительно быстрее. А распаковщик вообще за один проход все распаковывает почти мгновенно. Ну вот, теперь можно снова попытаться загрузить лабиринт нового формата в игру…

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

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