Category: Prince of Persia

21
Мар
2023

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

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

Датировано 02.06.1997

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

 

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

16
Мар
2022

Обновление релиза Prince of Persia

Исправлен приоритет при фехтовании: если Принц и стражник одновременно бьют, то урон получает стражник. Раньше приоритет был у стражника. Теперь все как в оригинале и шансов победить стало больше. Релиз обновлен.

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