Category: Баги

04
Июн
2023

Выходной. Лентяйство.

Поисправлял глюки:

  •  в таблице скоростей для глыб было всего 6 значений (почему-то), потому глыба со скоростью 8 застревала навсегда в нижнем положении
  •  таблица глыб очищалась неполностью, потому наблюдался хитрый глюк с внезапно возникающей второй глыбой там, где ее не планировалось
  •  не выводился лидирующий ноль в номере сцены. Когда пошли сцены с номерами больше 10 — это стало заметно.
19
Апр
2023

Продолжаем фиксить

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

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) байт. Теперь надо слегка помучаться с глюками, так как сходу эти команды не совсем правильно заработали.