Отрегулировал часы
Поправил внутренние «часы», теперь идут более-менее прилично 🙂
А вот и ролик «Ваше время истекло»:
Блог разработчика
Поправил внутренние «часы», теперь идут более-менее прилично 🙂
А вот и ролик «Ваше время истекло»:
Сделал оба варианта финалов — когда время кончилось и Принц не успел, и когда он успешно спас Принцессу. С вводом имени в таблицу рекордов и т.д. Обнаружилось, что часы в игре идут немного быстрее, чем надо. Будем регулировать!
Прицепил музыку к финальному ролику (даже две), сделал внесение имени в таблицу рекордов и запись этой самой таблицы на диск. Причем запись происходит в той системе, из которой запущен Принц — ANDOS, MKDOS, CSIDOS. Для этого система восстанавливается по экспресс-методу (Илоны Давыдовой). С CSIDOS пришлось разбираться отдельно, потому как там не EMT 36, а EMT 115. И в каждой системе свой способ указать необходимость переписать существующий файл. Запись-то я сделал, только вот неприятный момент в том, что для этого придется вырубить музыку — прерывание по таймеру для дисковых операций приходится запрещать. Так как неясно, сколько времени игрок будет вводить свое имя — неясно успеет ли доиграть музыка, она там довольно длинная. Ждать пока доиграет музыка и только потом записать на диск таблицу рекордов? Есть шанс, что игрок не дождется и тогда таблица не сохранится. Заткнуть музыку на ходу, записать таблицу и возобновить музыку? Криво как-то… Надо подумать.
Собственно, в оригинальном Принце тоже сделано не фонтан — если ввел имя быстро, то будешь до конца музыки смотреть на начальную заставку. А я планировал еще свой ролик титров вставить, которого нет в оригинале.
Упаковал картинки заставок, выяснил все вопросы с распаковщиком. Теперь картинки хранятся в сжатом виде и распаковываются в памяти только для использования, что позволило освободить 48К в ОЗУ SMK. При этом я еще и добавил одну полноэкранную картинку — нарисовал еще один экран финальных титров. Музыка финальная тоже написана. Теперь надо прицепить финальную музыку к финальному мультику. Еще нужно добавить вывод музыки в несколько особых моментов в игре — при появлении двойника и т.д. Что там еще осталось? Попробую прикинуть:
Вот вроде и все.
Нашел, значит, я распаковщик LZ в исходниках нашей Color Lines, прицепил его к Принцу, упаковал картинки, сделал вызов распаковщика в нужных местах и….. получил кучу мусора на экране вместо заставок. Попробовал подсунуть упакованные файлы этому распаковщику прямо в отладчике — тот же самый результат. И тут, конечно, мне стало ясно, что архивы он хочет не совсем такие, какие выдает наш упаковщик LZ. Естественно, ведь LZ делает архив ГРУППЫ файлов, а значит сохраняет туда заголовок с именами файлов, их адресами запуска и т.д. Все это программе распаковки, используемой в игре, вообще не нужно. Значит, надо заголовок архива отрезать и все дела! Но не тут-то было. Мне так и не удалось заставить его распаковать полученные архивы. Видимо, подумал я, надо все-таки искать исходники самого архиватора. Снова, как и вчера, задал я поиск по всем БКшным дискам и нашел…. архиватор LZM. И где же я его нашел? А на том же диске с исходниками Color Lines, в каталоге Utilites. И вспомнил я (опять), что Женя написал модифицированный архиватор для использования в игрушках. Уж не помню в чем там дело было, но видимо в размере распаковщика. Заново сжал картинки уже этим LZM и вот тогда распаковщик согласился распаковать полученные новые архивы. Как бы ура!
В процессе разбирательств с BKPACK выяснилось, что он слишком заточен на создание самораспаковывающихся архивов — при распаковке он затирает сам себя и второй раз этот сжатый массив уже не распакуешь просто так. Надо переделывать распаковщик. Тогда я вспомнил, что Жена Пашигоров в свое время написал архиватор LZ, но использовали мы его для массового сжатия файлов в архивы — чтобы сжать весь диск или каталог с играми. Я нашел этот архиватор и попробовал им сжать нынешние картинки заставок от Принца — получил почти такой же результат, какой дал BKPACK. Я стал читать доку от LZ, и увидел, что мы уже сравнивали его с BKPACK еще сто лет назад:
Потом я подумал, что можно поискать исходники LZ и попытаться приспособить его для распаковки сжатого массива в памяти. Поискал и нашел — оказывается, все это уже было сделано нами еще в 1995 году в Color Lines:
Склероз, граждане!
P.S.: сделал кнопку для быстрых рублевых донатов
Попробовал БКшный архиватор BKPACK. И получилось сжать две полноэкранные картинки общим размером 32 килобайта в 12 килобайт. В ролике грузится один файл размером 12 килобайт, который выводит две картинки по 16 килобайт каждая.
Можно было бы хранить файлы и несжатыми, конечно, в наш век 32 килобайта или 16 — смешно.
Реализовал восстановление системы при выходе из Принца. На данный момент это CSIDOS. При старте в SMK сохраняется содержимое страниц 6 и 7, при выходе — восстанавливается. Осталось сделать тоже самое с ANDOS и MKDOS. Дело тут не столько в выходе (можно было и тупо перезапустить БК), сколько в том, что мне надо все-таки записать таблицу рекордов на диск. А диски на БК бывают очень разные — куча разных форматов диска и каталогов. И при этом Принц на старте выкидывает из памяти ВСЕ, включая DOS 🙂
Добавил поддержку ANDOS и MKDOS:
P.S. Не понял прикола в CSI DOS — при выборе группы файлов их количество выводится в восьмеричной системе. Т.е. выбираешь 7 файлов — количество 7. Выбираешь еще один файл — количество уже 10. Зачем?
Набрал еще немного музыки и сделал вывод промежуточных роликов между уровнями. Показаны, конечно же, не все ролики 🙂
Итак, все демо-ролики собраны в единое целое и прикручены к начальным заставкам. При запуске первый ролик определяется случайным числом, далее они крутятся по циклу, все 5. Таким образом, если Принца просто запустить — каждый раз можно увидеть новый ролик. Если же оставить игру крутиться на начальной заставке — можно просмотреть их все, если не надоест 🙂
Теперь надо дописать еще немного музыки для уже готовых роликов типа «запуск мыши», и для финала. Сам видеоряд давно готов, надо только музыку добавить и прицепить все эти ролики (промежуточные и финальные) к игре.
Ах да, надо еще сделать ввод имени в таблицу рекордов.
Свежие комментарии