Category: Баги

15
Апр
2023

Потихоньку чиню сломанные механизмы

Чиню то, что поломалось при переходе на динамический размер сцены:

  • Шериф иногда стрелял “холостыми” – пули не летели. Потому что неправильно определялось смещение в лабиринте для пули. Было перепутано смещение на экране и в лабиринте.
  • Черепа иногда ходили по воздуху – древний баг, оказывается. В некоторых случаях некорректно искалась земля под черепом.
  • Прыгающий череп стукался о паровые трубы – ну, он впервые их увидел
  • Каменная глыба стирала сама себя – неправильно считалось смещение, опять же из-за смены формата

Все это пофикшено. Осталось добить прыгуна, в некоторых местах он находит не ту землю, что надо.

И просто для прикола: фоном слушал Quincy Jones и вдруг обратил внимание, что музыка как раз подходит под происходящее на экране 🙂

14
Апр
2023

Телепорты снова работают

Сегодня удалось-таки прицепить лабиринт в новом формате к игре и заставить его заработать. При переходе из сцены в сцену через телепорт нужная сцена распаковывается из сжатого вида и Балбес запускается в нее. Таким образом, весь уровень уже не занимает страницу 16К целиком. Теперь он занимает меньше 4 килобайт, из которых один килобайт – словарь. Но надо еще доработать напильником движок, а то местами стали черепа по воздуху летать и каменные глыбы ведут себя подозрительно. Все  это последствия перехода на динамические размеры сцен.

 

13
Апр
2023

Заработал новый упаковщик

Итак, новый упаковщик заработал – словарь на новом лабиринте (со всеми выставленными флагами и бонусами) составился успешно, лабиринт загрузился и даже распаковался. Правда, один прикол все-таки вылез – каменная глыба теперь почему-то падает не до земли. Но это связано не с содержимым распакованного лабиринта, а с тем, что сцены теперь переменных размеров и в этом плане я что-то пропустил в обработке поиска земли под глыбой при падении.

P.S. Альбом Quincy Jones “Smackwater Jack”  1971 года просто шикарен.

 

 

09
Апр
2023

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

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

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

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

03
Июл
2022

Монетизация

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

30
Май
2022

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

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

05
Май
2022

Оптимизация

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

27
Апр
2022

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

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

24
Апр
2022

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

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

07
Апр
2022

Правим баги

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

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