Author: grf

09
Апр
2023

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

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

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

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

06
Апр
2023

Формат лабиринта

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

 

27
Мар
2023

Корпус для БК

Идея перенести БК в десктопный корпус возникла у меня еще в 90-х годах, после приобретения дисковода. Контроллер дисковода, сам дисковод, блок питания к нему, шлейфы — все это лежало на столе. Потом добавился винчестер — еще одна коробка, к которой шли кабели. Я не отношусь к адептам «исконно-сермяжных БКшек  исключительно в родных корпусах, с тем самым шильдиком той самой шероховатости и  с тем самым отпечатком волоса, попавшего в форму корпуса». Так что мысль «собрать все это кубло со стола в один корпус и снабдить нормальным блоком питания» напрашивалась сама собой. И мысль была реализована. Загвоздка была с клавиатурой, но она тоже была разрешена, пусть и не очень удобно — на корпус был вынесен разъем, родная клава БК стала внешней, в отдельном корпусе. Подключалась многожильным кабелем. Но та БКшка канула в лету вместе с корпусом (самодельным, кстати).

По прошествии лет у меня снова появилась БК, на этот раз это был новодел БК-0011М от Voland. К нему был куплен контроллер СМК-512.  А потом Yellow Rabbit придумал контроллер, позволяющий подключить к БК клавиатуру PS/2 и разработал новый корпус для БК, в котором СМК был подключен через «елку» к МПИ, что позволяло разместить СМК вторым этажом над платой БК. Также в корпусе помещался адаптер GBS для подключения БК к современным мониторам. Корпус был шикарный, все было суперкомпактно, что и оказалось ошибкой — появился контроллер AZ, который уже нельзя было разместить в этом корпусе.

И тут мне попался на авито довольно компактный корпус от Kraftway Popular 4l51, в который по ширине как раз входила плата от БК:

Я купил его, добавил блок питания помощнее:

и собрал все в одном корпусе:

Дисководы пока не подключены, так как AZ пока не поддерживает их в прошивке. Кнопка Reset задействована та, что установлена на самом корпусе. Светодиод AZ «выведен» на переднюю панель световодом с али, диаметром 3мм.

Клавиатура была подключена через адаптер Yellow Rabbit, но сама клава оказалась некачественной, кнопки на ней перекашивались и нажимались через раз. Я искал клавиатуру получше, но был ограничен в выборе тем, что адаптер поддерживал именно PS/2, а сейчас подавляющее большинство клавиатур USB. И вот на днях Yellow Rabbit сделал еще один мегадевайс (ссылка на сайт автора),

который позволил мне подключить уже любую USB-клавиатуру. Что я немеделенно и сделал 🙂

Огромное мерси, Братец Кролик! 🙂

22
Мар
2023

Быстрая ходьба, часть 2

Итак, перебрал я 4 варианта ускоренной ходьбы. В оригинале Балбес начинает смещаться между спрайтами то на одну, то на две точки, при этом в цикле быстрой ходьбы у него 12 фаз, а не 16, как при медленной ходьбе. Проходит он в итоге 18 точек за 12 фаз. Мне нужно было добиться такого же результата, но используя только имеющиеся спрайты, которые я не могу выводить поточечно, а только с шагом в 4 точки. Пришлось изрядно их потасовать, чтобы движение было более-менее плавным и при этом Балбес проходил именно 18 точек за 12 фаз, а не тормозил и не носился как угорелый. От этого зависит его способность убежать от определенных врагов, а это немаловажно 🙂

Вроде бы получилось:

21
Мар
2023

Утерянная демка

На образах дисков нашлось «звуковое письмо» ребятам из Сочи, которое мы склепали за 5 минут, заюзав АЦП, сделанный Евгением Пашигоровым для создания 1-битных звуков на БК0011М. Сочинцы спрашивали нас, как продвигается работа над «Prince of Persia» для БК, вот мы и послали им в ответ тогдашний вариант Принца и эту демку. Звук воспроизводился на встроенную пищалку БКшки и был вполне узнаваем.

Датировано 02.06.1997

А вот сам АЦП, до сих пор цел:

 

А вот его схема:

19
Мар
2023

Продолжаем подключать джойстик

Итак, я распаял оба кабеля джойстика, в итоге задействовал все кнопки, которые на нем есть. Распайка получилась такая:

Контакт разъемаБит портаКлавиша джойстикаМаска
Б240Вверх1
А241Вправо2
Б232Вниз4
Б173Влево10
Б204Start20
А205Квадрат40
Б226Круг100
А237Select200
Б318Треугольник400
А319R21000
Б3210Крест2000
А3211R14000
А2913L120000
Б2914L240000
Б19общий

Да, бит 12 я пропустил, да и фиг с ним.