- PVSM.RU - https://www.pvsm.ru -

#05 — И целого байта мало… | Анимэ

Сегодня темой выпуска ИЦБМ [1] будет… АНИМЭ. То самое, которое обычно обсуждают на irc-каналах про FreeBSD, в перерывах между патчами ядра. И вернемся мы назад во времени ажн к февралю 1999 года, то есть на двадцать один (!) год назад.

Перед нами видео-диск Locomotion [2] для ZX Spectrum 128К + дисковый интерфейс. Авторы конверсии два простых самарских парня alkoro [3] и unbeliever [4], а дело было так… После работы Blame [5] для демопати Funtop'98 мы научились легко оперировать с видео-фрагментами из оперативной памяти Спектрума. Ролик с Биллом Гейтсом не являлся великим достижением, но он и сегодня смотрится вполне прилично, особенно если отойти от экрана и держать в голове, что все данные в момент видео находятся в ОЗУ 128К.

image

Спустя полгода после Funtop'98, в самый разгар экономического кризиса, мы освоили нестандартные способы работы с дисководом. Многое подглядели в работе Refresh [6], Condommed [7] и других аналогичных релизах, загружающих данные с носителя без паузы в самой работе. Идея грузить данные с дисковода, под музыку, не прерывая показа работы, была настолько захватывающая, что хотелось немедленно ее попробовать. Именно так появилось это техническое демо, на основе оригинального видео:

Оригинал 1989 года от Pacific Data Images носил достаточно культовый статус в былые времена для пользователей PC. Этот ролик был у каждого на жестком диске и частенько использовался для бенчмарка производительности видеокарты, особенно после апгрейда. Главной целью было воспроизведение ролика на полный экран. Если твоя видеокарта S3 Trio «тянула» полный экран при проигрывании этого видео — ты был первым парнем на районе. Напомню, массовый выброс на рынок видео на основе DivX произошел летом 1999 года и на момент создания нашего релиза для ZX Spectrum на PC фактически нельзя было смотреть фильмы. Ну, разве что VideoCD закодированные легеньким MPEG-1 или чуть более тяжелым MPEG-2.

image

На стартовом экране Locomotion (ZX) дана исчерпывающая техническая информация. Работа занимает одну пятидюймовую дискету DS/DD, каждый кадр это 64x42 пикселя (точнее чанка), точка кодируется тремя битами в градациях серого, у видео 6 fps, а суммарное количество кадров — 778 штук. Мы были вынуждены использовать нестандартную разметку дискеты по двум причинам. Во-первых, все кадры не умещались в 640 килобайт стандартной разметки. Во-вторых, тут на порядок интереснее! Мы разметили дискету так, чтобы каждый сектор содержал один целый кадр видео и это позволило существенно поднять frame-rate вплоть до заветных 6 кадров в секунду, что для восьмибитной машины очень прилично…

Пока это все! У нас очень плотный график работ на ближайшие 24 часа в рамках подготовки к Revision Online 2020 [8], но я обязательно дополню эту статью исходниками и другими деталями ближе к субботе!

Добавляем в закладки, возвращаемся, перечитываем позже…

UPD: Да, исходники кода сохранились у нас. Всё компилится, свежекомпиленный код запускается прямо из XAS, играет белый шум в 1/4 кадра, так как сектор диска 256 байт в эмуляторе. Потом всё корректно возвращается в главное меню, потом в XAS, а в главном исходнике закоментирован loop, специально для отладки. Так же нашелся исходник который кодирует видео из конвертированных с PC кадров — вот это настоящий монстр, раза в 4 больше самого locomotion по коду. Печально то, что потеряны исходные кадры LOCOMOTION c PC, из которых теоретически можно было бы собрать весь проект заново. Однако, у нас и не стоит такой цели.

Открытые вопросы к тем, кто умеет в ZX Spectrum:

Нужна помощь — как получить доступ к файлам внутри SCL/TRD на PC и сконвертить исходник XAS в plain text?

image

---EOF---

#FF — И целого байта мало… | Пилот) [9]
#00 — ИЦБМ… | Приглашение на Revision Online 2020 [10]
#01 — ИЦБМ… | Какими бывают intro? [11]
#02 — ИЦБМ… | The Cross of Changes [12]
#03 — ИЦБМ… | 2B or not 2B [13]
#04 — ИЦБМ… | Берем БК за рога [14]
#05 — ИЦБМ… | Анимэ [15]

Развлекательный канал деда в Телеграм: teleg.run/bornded [16]

Рядом с каналом есть чат. В нем можно попробовать поднять вопросы за демосцену, ассемблер, пиксель-арт, трекерную музыку и другие аспекты процессы. Вам могут ответить либо отправят в другие, более тематические чаты.

ТАК ПОБЕЖДАЛИ — ТАК ПОБЕДИМ!

Автор: Максим Мучкаев

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/demoscene/352025

Ссылки в тексте:

[1] ИЦБМ: https://habr.com/ru/search/?q=%5B%D0%B8%D1%86%D0%B1%D0%BC%5D&target_type=posts

[2] Locomotion: https://www.pouet.net/prod.php?which=83616

[3] alkoro: https://habr.com/ru/users/alkoro/

[4] unbeliever: https://habr.com/ru/users/unbeliever/

[5] Blame: https://www.pouet.net/prod.php?which=1902

[6] Refresh: https://www.pouet.net/prod.php?which=6148

[7] Condommed: https://www.pouet.net/prod.php?which=2118

[8] Revision Online 2020: https://2020.revision-party.net/start

[9] #FF — И целого байта мало… | Пилот): https://habr.com/ru/post/68984/

[10] #00 — ИЦБМ… | Приглашение на Revision Online 2020: https://habr.com/ru/post/492984/

[11] #01 — ИЦБМ… | Какими бывают intro? : https://habr.com/ru/post/495042/

[12] #02 — ИЦБМ… | The Cross of Changes: https://habr.com/ru/post/495408/

[13] #03 — ИЦБМ… | 2B or not 2B : https://habr.com/ru/post/495732/

[14] #04 — ИЦБМ… | Берем БК за рога: https://habr.com/ru/post/496212/

[15] #05 — ИЦБМ… | Анимэ: https://habr.com/ru/post/496512/

[16] teleg.run/bornded: https://teleg.run/bornded

[17] Источник: https://habr.com/ru/post/496512/?utm_source=habrahabr&utm_medium=rss&utm_campaign=496512