Category: Prince of Persia

24
Авг
2021

И все-таки палитры!

Решил все же отказаться от полноэкранного мигания. Во-первых, для подготовки такого мигания приходится весь скрытый экран заливать белым или красным, а он вообще-то используется. Т.е. надо содержимое скрытого экрана сохранить, потом залить его белым/красным, потом помигать экранами, а потом еще и восстановить содержимое скрытого экрана. Получается ощутимая задержка перед срабатыванием эффекта. Во-вторых, во время такого мигания не может работать движок игры, т.к. скрытый экран занят. Не движутся факелы во время мигания, не двигаются решетки. Это, может, никто и не заметит, но неприятно. С палитрами таких проблем нет – они включаются по таймеру. Все движется, никаких затыков для подготовки. Пусть будут палитры. Выглядит  это так:

И еще сегодня я сделал-таки вывод звука “пустого удара мечом” и стражнику. В оригинале и для принца и для стражника используется один и тот же звук, но мне показалось это однообразным. Завтра попробую стражнику выдать немного другой звучок.

 

23
Авг
2021

Баги и мигания

Сегодня исправил несколько ошибок:

  • при отключении звука стражники переставали слышать шаги Принца и вовремя разворачиваться к нему. Логично, звука шагов же нет))
  • при повторном просмотре заставки целиком портился один спрайт
  • вместо меча начинал бликовать один из элементов обстановки дворца – у них с мечом один код.

А так же продолжаю мучать мигание. Полноэкранное блымкание прикольное, но имеет задержку, обусловленную подготовкой скрытого экрана. Это не подходит для быстрого мигания при падении или получения удара в бою…

22
Авг
2021

Мигание экраном

YellowRabbit подсказал, как сделать мигание экраном более скоростным, чем я делал это до этого. Я все извращался с инверсией, а он предложил залить один экран полностью белым и переключать видимые экраны. Таким образом, мигание будет наиболее скоростным. Как мне это раньше в голову не пришло? Я все заморачивался тем, что в оригинале мигает только черный фон, сами спрайты обстановки остаются неизменными. На БК такой фокус провернуть непросто. Ну вот брат подсказал подходящий вариант. Заодно попробовал и вариант с красным миганием, для случаев, когда выпивается яд. Bandicam отказался правильно захватить кадры мигания, он их пропустил. Пришлось захватывать самим эмулятором, а это там не очень удобно, да и звук пишется отдельно, скрещивай потом этих ужей с ежами… В итоге мигание все равно выглядит не так, как в игре. Потому видео удалил )

 

 

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. Финальные титры от себя?

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