Author: grf

22
Окт
2021

READY PLAYER ONE

 

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

Пока что табло пустует 🙂

 

22
Окт
2021

Релиз обновлен

Новый релиз, содержит фиксы и фичи:

  • BUG: по АР2+R сбрасывалось заданное управление
  • BUG: ждать конца звука перед музыкой
  • BUG: можно было хитро спрыгнуть без потери жизни
  • BUG: иногда пролетал сквозь решетку

Фичи:

  • сделано обнаружение отсутствия SMK и вывод надписи об этом
  • добавлена возможность записи игры

О записи подробнее.  Хоть я и прошел в свое время Принца без какой-либо записи, оказывается возможность такая была. И она описана в оригинальной доке:

Так я и реализовал ее:

  • запись доступна только начиная с 4 уровня
  • для записи нужно нажать клавиши АР2+W, при этом текущий лабиринт будет перезапущен
  • для чтения нужно во время начальной заставки нажать АР2+L, игра начнется с начала записанного уровня

 

17
Окт
2021

Да не 30 лет мы его писали!

Все почему-то думают, что Принца писали 30 (кто-то уже даже говорит «больше 30») лет. Ну конечно это не так. Что я, по-вашему, с 16 лет его пишу каждый день с утра до ночи? )) Специально прошерстил все исходники, по датам в них можно восстановить хронологию и сроки:

Самые ранние даты, которые мне попались:

; зеркальное копирование 8.4.92

; *** вывод спрайта *** 12.04.92 ;
; ANIMATOR

Само собой, это первые вещи, с которых все началось — без вывода спрайта никуда. Надо учитывать, что начал это все писать Женя, и случилось это после того, как я кучей демок типа «бегущий принц», «горящий факел» убедил его в том, что надо попробовать. Первой был факел, точно. Допустим, недели две я его этим мучал, потом он еще думал о том, с чего начать… значит март 1992 можно считать началом эпопеи.

Дальше видим такую метку:

; обработка клавиатуры 25.07.92 ;

Раз дошло дело до клавиатуры, значит потребовалось управление. Значит это тот период, когда Женя сделал демку с бегающим по экрану принцем. В это время я уже поступил в институт и участие в проекте принимать перестал. Но я нарисовал почти все спрайты, так что было с чем  работать. И дальше дат никаких нет до вот этой:

; таблица управления 01.94

Видимо, Женя решил отдохнуть, пока я учился в институте 🙂 Но через какое-то время отдыхать ему надоело и он взялся за дело (я уже был в армии в 1993-1994 годах). Дальше идут даты:

;редактор лабиринтов дизасс. 15.02.94
;22.02.94

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

Дальше дело пошло:

; определение препятствия 21.06.94 ;
;--------------------------------------11.07.94-;

Насколько я помню, где-то летом я как раз приезжал в отпуск и Женя показал мне, как принц бегает уже не по экрану, а по лабиринту, залезая и слезая во всякие ямы. Это уже было круто.

Потом был какой-то застой, видимо. В ноябре 94-го я вернулся из армии (знатно поучился в институте) и записи пошли кучно:

; GRF Обработка движущихся объектов 18.03.95
; GRF Вывод решеток в текущем положении 19.04.95
; GRF Вывод окна и инициализация массивов для обработки 10.05.95
; движущихся объектов 
; GRF Движение фрез 24.05.95 14:27
; GRF Считываем фон для видимых решеток 31.05
; GRF Дым на кувшинами 5.06.95 14:57
; GRF Нажатие плиты 8.06.95 16:56
; GRF Вывод двери в текущем положении 14.06.95 10:07
; GRF Составление списка видимых шипов 20.06.95 9:55
; GRF Считываем фон для видимых шипов 20.06.95 10:47
; GRF Движение шипов 20.06.95 13:55
; GRF конвертор лабиринтов 29.11.95
; GRF Взятие предмета 21.12.95 ;

Блоки мы помечали, чтобы видеть кто накосячил ))

Потом большой перерыв, аж на два года:

;==== управление стражником ========24.5.97===
; нач.14.02.97

;----------------------------------------------------;
;загрузчик 19.03.97 ;
;----------------------------------------------------;

Не помню, с чем это связано. Видимо как раз интерес к БК угас, появились у всех PC по домам. А в 97-м как раз получили письмо из Сочи, от Григория Останина. Оказывается, наша старая демка докатилась до Сочи. Он спрашивал, когда доделаем Принца. Вот тут энтузиазм снова появился и мы стали доделывать. И стало ясно, что памяти не хватит. Тут уже на одном энтузиазме продолжать было сложно. Я делал стражников и у меня не было места под код их АИ. Я видел, что еще надо научить стражников куче вещей — они должны сами бродить по лабиринту в погоне за Принцем, прыгать в неглубокие ямы и т.д., а не просто махать мечом в пределах одного экрана. Чтобы выбить место под код, приходилось оптимизировать уже написанное, как правило в убыток скорости. Нельзя было делать развернутые циклы, таблицы для скорости вычислений… Принц становился тормозным. Сделали мы и обмен на ходу в памяти неиспользуемых на данный момент спрайтов на другие, подгрузки всякие и при этом никакой музыки на AY еще и подавно не было, и звуков на AY тоже. Даже оцифровки для вывода звуков на спикер, которые мы сделали, влезли не все… В итоге снова все заглохло. Аж до 2016 года.

За это время Женя переехал в другой город и еще много чего произошло. В 2016 я достал старые исходники, еще немного их помучал, добился уже полного исчерпания памяти и снова бросил. Потом аж в 2018-19 я вернулся к Принцу уже с вариантом использования СМК, что позволило снять проблему памяти. Циклы развернулись, появились таблицы… В итоге Принц и был доделан.

Так что никаких 30 лет Принца никто не делал долгими вечерами.

 

16
Окт
2021

Релиз!

Внезапно оказалось, что Принц готов. Для теста я прошел его от начала до конца, по пути пофиксил пару косметических багов. И решил, что пора уже его и выложить 🙂

Скачать образ дискеты: "Prince of Persia" для БК-0011М

Запускать можно в эмуляторе, который поддерживает СМК-512, и на железе, конечно.

Клавиши управления (все можно переназначить по АР2+K):

  • Влево, вправо — бег влево и вправо
  • АР2+Влево/Вправо — шаг влево и вправо
  • Вверх — прыжок вверх, прыжок на бегу, зацепиться, блок при фехтовании
  • Вниз — присесть, слезть, сложить меч
  • АР2+Вниз — взять предмет
  • Пробел — прыжок с места, удар при фехтовании

Управление от джойстика (все можно переназначить по АР2+J):

  • Влево, вправо — бег влево и вправо
  • Вверх — прыгнуть прямо вверх, залезть, поставить блок при фехтовании, зацепиться в полете
  • Влево/вправо + вверх — прыжок с места, прыжок на бегу
  • Вниз — слезть, присесть, сложить меч
  • Кнопка 1 — удар при фехтовании
  • Кнопка 1 + влево/вправо — маленький шаг
  • Кнопка 1 + вниз — взять предмет
  • Кнопка 2 — прыжок с места, зацепиться в полете, удар при фехтовании
  • Кнопка 2 + влево/вправо — прыжок на бегу

Общие клавиши управления:

  • КТ — пауза
  • T — показать оставшееся время
  • S — выкл/вкл звука
  • АР2+A — начать уровень заново
  • АР2+R — начать игру заново
  • АР2+K — задать управление от клавиатуры
  • АР2+J — задать управление от джойстика
  • АР2+S — задать звуковое устройство (AY или встроенный динамик БК)
  • АР2+Q — выход из игры

Для работы требуется СМК-512.

В данной версии музыка на заставках играется только на AY. Т.е. звук на пищалку в самой игре выводится, а вот на заставках — нет. Связано это с тем, что в заставках используется переключение палитр по таймеру и в результате пищалка просто не успевает пищать музыку.

14
Окт
2021

Доделываю звук на спикер

Пришлось поизголяться со звуками на пищалку. Звукового редактора для таких звуков нет, так что создание недостающих звуков происходило в редакторе дампа, методом научного тыка 🙂  Ну и старые оцифровки не пропали даром, что самое главное.

Получилось вот что:

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

 

09
Окт
2021

Железо рулит!

В процессе работы над звуками для «пищалки» я думал немного подрезать эти самые однобитные оцифровки, сделанные еще в 90х, чтобы они были покороче и не особо тормозили движок. А потом решил проверить как они звучат на «железной» БК… И оказалось, что та самая разница в скорости между эмулятором и реальной БК+СМК с успехом компенсирует «спикерную» нагрузку на проц. На БКшке оцифровки звучат только в путь! Оставлю как есть.

Пока неясно что делать с музыкой на заставках — этот способ воспроизведения музыки (одновременно с игрой) не особо позволяет играться с длительностями нот, а в музыке от Принца те еще навороты. Короткие мелодии (при взятии меча или кувшина) мне еще удалось более-менее выправить, а вот что-то длинное наверное превратится в трешовый ремикс 🙂 Попробую набрать какой-нибудь музон и проверить.