Ремиксы
Примерно такие ремиксы получаются для вывода музыки на спикер 🙂
Блог разработчика
Сделал выбор устройства вывода звука по клавишам АР2+S:
Осталось добавить все эти самые звуки для спикера и музоны написать 🙂
Ну и все, собственно.
Решил все-таки сделать вывод звука на пищалку. По большей части потому что жалко готовые звуки, которые мы добывали выводом на принтер. Звуки, правда, были не все, пришлось доделать недостающие. А вот музыки для встроенного динамика вообще не было. Решил попробовать использовать редактор Савина «Клавесин». Но вот сам вывод музыки одновременно с игрой… Попытки воспроизводить музыку по прерыванию таймера провалились — в итоге звук был с явным фоном около 50Гц, что и понятно — таймер как раз 48Гц. В итоге я решил попробовать вывод музыки не квантами по таймеру, а все-таки нотами, с каждым кадром движка по одной ноте. Пришлось переписать музыку нотами минимальной длительности. Попробую, думаю, если будет фигня — ну и хрен с ним, пусть музыка остается на AY.
Попробовал и вдруг понял, что такое странное звучание музыки я уже слышал…. в видеороликах «Prince of Persia на Apple 2». Прикольно, конечно))
Вывод на спикер больше нагружает проц и с ним Принц бегает уже не так плавно. Лучше играть с AY 🙂
Вот что получилось у меня:
Вот как звучит на Apple:
Фиксим последние (надеюсь) баги:
Сделал новую динамическую задержку, по внутреннему таймеру. Старые расчеты размеров спрайтов и т.д. выброшены, теперь все считается автоматом, чтобы все было равномерно. Принц, конечно, может бежать и быстрее, но какой в этом смысл, если в нагруженных моментах он будет тормозить? Примерно подобрал задержку по PC-шному варианту Принца:
Начал разбираться с динамической задержкой и просто офигел )) Оказывается, она все-таки все еще встроена, с тех самых 90-х. И я вспомнил, как именно Женя ее реализовал — задержка вычисляется в зависимости от размера спрайта Принца. Женя тогда делал движок, который выводил только спрайты самого Принца. В каждом движении куча спрайтов и все они разных размеров. Чтобы фазы менялись с одной скоростью, Женя сделал расчет задержки на каждом такте именно относительно размера только что выведенного спрайта Принца. Так это все дело и осталось. Но потом-то добавились другие двигающиеся штуки — всякие там пилы, шипы, решетки и самое страшное — второй персонаж, стражник! Все это, конечно, внесло дополнительные тормоза, а вот их никто не учитывал и не вычитал из посчитанной задержки, которая продолжала вноситься лишь на базе размера спрайта Принца.
Выкинув задержку вообще (для теста) я получил вот такую скорость работы движка:
Сделал пример для фехтования. В начале ролика записано как работало раньше, потом идет запись работы опять без какой-либо задержки. Фехтование-то, оказывается, может быть куда живее!
Оказывается, был запас по скорости-то! Теперь осталось выровнять все с помощью новой динамической задержки, по таймеру.
А также, сегодня я исправил самый злостный глюк, который меня уже год бесил, наверное 🙂 Иногда, когда Принц падал вместе с двумя плитами одновременно, на экране оставался мусор. И теперь это пофикшено! Сегодня определенно удачный день.
Сделал настройку управления от клавиатуры по АР2+K. По АР2+J можно задать и джойстик. Если я еще и сделаю выбор устройства вывода звука (AY или пищалка), то наверное стоит сделать общее меню по клавише ПОВТ 🙂 Да, на видео видна новая «подвальная» решетка в интерьере 🙂
Перекрасил пилу в дворцовых лабиринтах, чтобы выделялась:
Так как скопилось много элементов, которые заменяются при переходах из подвала во дворец и обратно (шипы, пилы, решетки), пришлось их вынести в два отдельных массива и заменять при загрузке нового лабиринта. Раньше они были везде одинаковые и смены не требовалось.
К чему я подошел в итоге — собственно, все глобальное сделано, оказывается. Осталось внедрить пасхалки и поправить пару известных глюков. И все, как ни странно 🙂
Ах да, я ж решил добавить возможность конфигурировать управление от клавиатуры. Еще вопрос о выводе звука на спикер — не знаю, стоит ли восстанавливать его? Жаль конечно, наши однобитные оцифровки для спикера, которые мы перегоняли с PC с помощью принтера. Но во-первых, тогда еще и музыку надо делать на спикер, а она ведь по таймеру играется. А во-вторых некоторых звуков там не хватает, а я уже и не помню как мы их преобразовывали для воспроизведения на БК. Женя писал программу для этого и я ее даже нашел, но что-то неясно как ей пользоваться. Инструкции, как водится, нет. Нам ведь тогда «итак было все понятно».
Судя по всему, на днях отдам Принца на бета-тест.
Новые спрайты были нужны чтобы решить проблему с белым цветом. Принц бегает в белой одежде и при смене палитры, она должна была остаться белой. В тоже время, обстановка дворцов значительно отличается от уровней подвалов и подземелий, она значительно ярче и роскошней. Это логично, собственно. Но при этом цвета не должны быть вырвиглазными. Добавочная проблема еще и в том, что Принц должен быть достаточно контрастен на этом ярком фоне. Ноги-руки и одежда не должны сливаться с полом или боковыми стенами. Потому мне эти дворцы давно покоя не давали. И вот, вроде бы, мне удалось нарисовать обстановку, которая меня лично устроила и при этом примерно похожа на VGA-вариант оригинального Принца на PC.
Попутно я немного доработал спрайты решетки. Помимо добавленных теней и бликов, теперь решеток два вида — для дворца и для подвала. Решетка была такой:
Теперь они такие:
Свежие комментарии