Category: Prince of Persia

21
Авг
2021

Настройка джойстика

Сделал настройку управления от джойстика (вызывается клавишами АР2+ J). Сначала определяется «нулевое» значения порта, в котором могут быть установлены какие-то биты, это значение сохраняется в качестве маски, по которой потом будут очищаться значения порта. Это должно помочь использовать джойстик даже с частично неисправным портом. Ну и, конечно, позволяет задать управление как удобно игроку.

20
Авг
2021

Допиливаем

Сегодня занимался мелкими доделками:

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

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

17
Авг
2021

Финалы

Сделал оба варианта финалов — когда время кончилось и Принц не успел, и когда он успешно спас Принцессу. С вводом имени в таблицу рекордов и т.д. Обнаружилось, что часы в игре идут немного быстрее, чем надо. Будем регулировать!

13
Авг
2021

Таблица рекордов

Прицепил музыку к финальному ролику (даже две), сделал внесение имени в таблицу рекордов и запись этой самой таблицы на диск. Причем запись происходит в той системе, из которой запущен Принц — ANDOS, MKDOS, CSIDOS. Для этого система восстанавливается по экспресс-методу (Илоны Давыдовой). С CSIDOS пришлось разбираться отдельно, потому как там не EMT 36, а EMT 115. И в каждой системе свой способ указать необходимость переписать существующий файл. Запись-то я сделал, только вот неприятный момент в том, что для этого придется вырубить музыку — прерывание по таймеру для дисковых операций приходится запрещать. Так как неясно, сколько времени игрок будет вводить свое имя — неясно  успеет ли доиграть музыка, она там довольно длинная. Ждать пока доиграет музыка и только потом записать на диск таблицу рекордов? Есть шанс, что игрок не дождется и тогда таблица не сохранится. Заткнуть музыку на ходу, записать таблицу и возобновить музыку? Криво как-то… Надо подумать.

Собственно, в оригинальном Принце тоже сделано не фонтан — если ввел имя быстро, то будешь до конца музыки смотреть на начальную заставку. А я планировал еще свой ролик титров вставить, которого нет в оригинале.

10
Авг
2021

Распаковщик внедрен, едем дальше

Упаковал картинки заставок, выяснил все вопросы с распаковщиком. Теперь картинки хранятся в сжатом виде и распаковываются в памяти только для использования, что позволило освободить 48К в ОЗУ SMK. При этом я еще и добавил одну полноэкранную картинку — нарисовал еще один экран финальных титров. Музыка финальная тоже написана. Теперь надо прицепить финальную музыку к финальному мультику. Еще нужно добавить вывод музыки в несколько особых моментов в игре — при появлении двойника и т.д. Что там еще осталось? Попробую прикинуть:

  1. Вывод проигрышного варианта финала
  2. Вывод выигрышного варианта финала
  3. Ввод имени в таблицу рекордов и сохранение ее на диск
  4. Отслеживание проигрыша по истечению времени
  5. Задание управления от джойстика (еще и ввод маски порта наверное надо сделать)
  6. Сделать «блеск» на лежащем мече
  7. Добавить звук «пустого удара» стражнику
  8. Попытаться сделать мигание при потере жизни палитрами (хотя на ЧБ это видно не будет)
  9. А, спрайты дворца попытаться переделать. Не нравится мне этот циан вместо белого…
  10. Добавить задуманные пасхалки
  11. Финальные титры от себя?

Вот вроде и все.

 

 

07
Авг
2021

Упаакуем-распааакуем!

Нашел, значит, я распаковщик LZ  в  исходниках нашей Color Lines, прицепил его к Принцу, упаковал картинки, сделал вызов распаковщика в нужных местах и….. получил кучу мусора на экране вместо заставок. Попробовал подсунуть упакованные файлы этому распаковщику прямо в отладчике — тот же самый результат. И тут, конечно, мне стало ясно, что архивы он хочет не совсем такие, какие выдает наш упаковщик LZ. Естественно, ведь LZ делает архив ГРУППЫ файлов, а значит сохраняет туда заголовок с именами файлов, их адресами запуска и т.д. Все это программе распаковки, используемой в игре, вообще не нужно. Значит, надо заголовок архива отрезать и все дела! Но не тут-то было. Мне так и не удалось заставить его распаковать полученные архивы. Видимо, подумал я, надо все-таки искать исходники самого архиватора. Снова, как и вчера, задал я поиск по всем БКшным дискам и нашел…. архиватор LZM. И где же я его нашел? А на том же диске с исходниками Color Lines, в каталоге Utilites. И вспомнил я (опять), что Женя написал модифицированный архиватор для использования в игрушках. Уж не помню в чем там дело было, но видимо в размере распаковщика. Заново сжал картинки уже этим LZM и вот тогда распаковщик согласился распаковать полученные новые архивы. Как бы ура!

07
Авг
2021

Склероз!

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

Потом я подумал, что можно поискать исходники LZ и попытаться приспособить его для распаковки сжатого массива в памяти. Поискал и нашел — оказывается, все это уже было сделано нами еще в 1995 году в Color Lines:

Склероз, граждане!

P.S.: сделал кнопку для быстрых рублевых донатов

05
Авг
2021

BKPACK

Попробовал БКшный архиватор BKPACK. И получилось сжать две полноэкранные картинки общим размером 32 килобайта в 12 килобайт. В ролике грузится один файл размером 12 килобайт, который выводит две картинки по 16 килобайт каждая.

Можно было бы хранить файлы и несжатыми, конечно, в наш век 32 килобайта или 16 — смешно.