Category: Баги

21
Дек
2020

Все фигуры расставлены

Как заявляли в сериале «Тьма», все фигуры расставлены. Все стражники поставлены на свои места, все заимели полагающееся количество «жизней» и смотрят в нужные стороны 🙂 Попутно обнаружилась, конечно, кучка багов. Теперь буду бороться с ними. Два уже поправил — принц не мог достать меч, стоя на краю пропасти (падал в эту самую пропасть) и мог висеть на уже упавшей плите, нагло болтая ногами. Обнаружились неверно управляемые решетки, а одна и вовсе отсутствовала.

Неприятная новость — похоже, утеряны спрайты дворцовой обстановки в виде отдельных файлов. Придется выковыривать их из уже собранного блока данных palace, чтобы перерисовать.

17
Дек
2020

В башку сапог!

Сегодня сделал «в башку сапог» — падение плиты на голову.

Хотя в процессе было и  так:

Так-с, посмотрим на недавний список:

Что осталось сделать из обработки препятствий:

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

Неплохо! Переходим, значит, к этому:

  • новый формат данных о стражниках, т.к. все-таки надо изначально задавать в какую сторону смотрит каждый стражник
  • в 8-м лабиринте сразу ДВА разных по интеллекту стражника, а пока что подразумевался только один алгоритм боя на лабиринт
  • в третьем лабиринте скелет вернуть на место и сделать все, что связано с его подлым возникновением
  • распилить движение начала бега на два, т.к. принц в оригинале может остановиться быстрей, чем у нас
  • сделать «левитацию»
  • реализовать кровищу на пиле?
  • перерисовать спрайты дворцов для другой палитры
  • звук на AY
  • исправить маски обломков и арки

P.S.

14
Дек
2020

Вычищаем баги

Чистил мелкие баги:

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

Но багов, конечно, еще полно. Читал новости про уйму багов в Cyberpunk 2077 — чуваки не заморачивались))

 

13
Дек
2020

Стражник, летящий на крыльях ночи

Исправляя ошибки, иногда удивляешься, как оно вообще раньше работало. Вот и сейчас, при очередном бое со стражником, он улетел вниз и все зависло. Давно такого не было. Неужели последние переделки повлияли? Начал разбираться — оказывается, стражник-то верно пролетает через границу экрана, а вот меч стражника — нет. Исправил. И как же эти стражники раньше-то улетали в пропасти без проблем?

 

12
Дек
2020

Долой спагетти!

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

Новая система работает шустрей и куда проще отлаживается. «Спагетти» канули в лету.

 

08
Дек
2020

Да будет звук!

Задолбавшись обучать принца скучной науке падать в ямы и не лезть на стены, я решил отвлечься и попробовать добавить фоновое воспроизведение музыки на музыкальном процессоре AY-3-8910. Добрые люди на канале БКшников снабдили меня инфой и всякими исходниками проигрывателей, но застрял я на процессе загрузки этого самого файла с музыкой в память СМК-512. Все файлы данных принца читались отлично на нулевую страницу СМК, а вот музыку надо было уже грузить на другую. И тут при загрузке стало все виснуть, заполнять память и экран всяким мусором. Причем каждый раз приколы были разные. Пару раз даже загрузилось! Я уже и на эмулятор грешил, и на прошивку СМК и совместимость режимов памяти с БК10/11. оказалось все проще — грузить данные с винта можно только в нулевую страницу, потому что на ней и сам контроллер HDD хранит свою служебную область. А подключаешь другие страницы — все накрывается медным тазом. Так что надо грузить данные в какую-то БКшную область памяти,  а потом уже вливать уже в СМК.

Поборов проблему с СМК, я начал пытаться воспроизвести в принце музыку. Сначала, конечно, принц издавал нечленораздельные звуки, но Владимир ‘KUVO’ Кутяков подсказал в чем проблема и помог встроить свой блок воспроизведения, за что ему огромное спасибо!

Вопрос «насколько затормозится принц, если в фоне играть музыку», который периодически меня мучал, теперь прояснен 🙂 Можно возвращаться к всяким пилам, ямам и шипам…

07
Дек
2020

И животноводство!

Купил я как-то новые джинсы. Синие, классные. На рынке, в лихие 90-е. Оторвал от них всякие там бирки, нацепил и довольный пошел домой. Дело было часов в 11 утра, проходя мимо места работы Евгения Пашигорова, я решил зайти к нему, узнать новости из мира БК и попить чаю. Женя был на работе. Как всегда крутил ус, пил чай и делал вид, что работает как минимум над запуском ракеты с телетайпом на Марс, бурча под нос «Этой отверткой только жаб стрекать». Это его любимая фраза по поводу разных некачественных предметов, но чаще всего ее удостаивались отвертки и кусачки. Что такое «стрекать», я так и не выяснил, но однажды я его любимыми кусачками перекусил что-то типа мелкого гвоздя и узнал много нового о разных процессах, грозивших не только жабам.

Но к делу это не относится. В коридоре у него стоял велосипед «Турист», с системой переключения передач — круть. Женя на нем на работу ездил. Я же в последний раз катался на велике в детстве и захотелось мне заценить правдивость теории о том, что разучиться кататься на велосипеде невозможно.

Велосипед вынесли на улицу, я оседлал его, успешно тронулся и резво набрал скорость давя на все гашетки. заезд был недолгим — через 30 метров навстречу мне выехал уазик. Я попытался тормозить педалями, как в детстве — фиг там. Нажал на все ручки тормозов, что попались и совершил перелет через руль. Поднявшись с земли, я оценил потери — дыра на новых джинсах в районе колена и кровища на самом колене. Женя, конечно, угорал.

Так я в сжатые сроки обновил джинсы и навыки езды на велосипедах с передним тормозом. А к чему все это? Я починил в принце движение «пролезание под решетку» и теперь принц не скачет после приземления, как безумный плясун.

 

06
Дек
2020

Маленький шаг для принца…

Сегодня сделал несколько вещей:

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

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

04
Дек
2020

Прыжки

Обрабатывал напильником прыжок с места. Обратил внимание, что если прыгнуть через яму, тут же развернуться на месте и прыгнуть назад, то принц не долетает до старого места! Что за ерунда? Неужели прыжок вправо длиннее, чем прыжок влево?

Искал, искал ошибку — вроде все ок. Решил проверить длину прыжка в оригинале.

И вдруг:

Значит так и должно быть 🙂

P.S. AdamBazaroff подсказал, что так и должно быть — после прыжка принц делает шажок, потому в обратную сторону и не долетает. Что я могу сообщить по этому поводу? Ночью надо спать, а не править баги 🙂

28
Ноя
2020

И еще шаг

Немного ускорил процедуру, выдающую объект обстановки по координатам — теперь адрес в лабиринте определяется раз в 5 быстрее, благодаря табличке смещений. А процедура эта вызывается несколько раз на каждом кадре для определения объектов, окружающих принца.

Долго не мог понять почему принц не хочет цепляться руками за опору при прыжке. И так и сяк крутил — вроде и опору видит и летит рядом. Чего ж не цепляется? Оказалось, все дело в счетчике высоты — если принц пролетел больше двух этажей, то он уже не должен цепляться за попавшуюся опору.  А счетчик показывал неверные данные.

Теперь цепляется 🙂