Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Сегодня темой выпуска ИЦБП будет… АНИМЭ. То самое, которое обычно обсуждают на irc-каналах про FreeBSD, в перерывах между патчами ядра. И вернемся мы назад во времени ажн к февралю 1999 года, то есть на двадцать один (!) год назад.
Перед нами видео-диск Locomotion для ZX Spectrum 128К + дисковый интерфейс. Авторы конверсии два простых самарских парня alkoro и unbeliever, а дело было так… После работы Blame для демопати Funtop'98 мы научились легко оперировать с видео-фрагментами из оперативной памяти Спектрума. Ролик с Биллом Гейтсом не являлся великим достижением, но он и сегодня смотрится вполне прилично, особенно если отойти от экрана и держать в голове, что все данные в момент видео находятся в ОЗУ 128К.
Спустя полгода после Funtop'98, в самый разгар экономического кризиса, мы освоили нестандартные способы работы с дисководом. Многое подглядели в работе Refresh, Condommed и других аналогичных релизах, загружающих данные с носителя без паузы в самой работе. Идея грузить данные с дисковода, под музыку, не прерывая показа работы, была настолько захватывающая, что хотелось немедленно ее попробовать. Именно так появилось это техническое демо, на основе оригинального видео:
Оригинал 1989 года от Pacific Data Images носил достаточно культовый статус в былые времена для пользователей PC. Этот ролик был у каждого на жестком диске и частенько использовался для бенчмарка производительности видеокарты, особенно после апгрейда. Главной целью было воспроизведение ролика на полный экран. Если твоя видеокарта S3 Trio «тянула» полный экран при проигрывании этого видео — ты был первым парнем на районе. Напомню, массовый выброс на рынок видео на основе DivX произошел летом 1999 года и на момент создания нашего релиза для ZX Spectrum на PC фактически нельзя было смотреть фильмы. Ну, разве что VideoCD закодированные легеньким MPEG-1 или чуть более тяжелым MPEG-2.
На стартовом экране Locomotion (ZX) дана исчерпывающая техническая информация. Работа занимает одну пятидюймовую дискету DS/DD, каждый кадр это 64x42 пикселя (точнее чанка), точка кодируется тремя битами в градациях серого, у видео 6 fps, а суммарное количество кадров — 778 штук. Мы были вынуждены использовать нестандартную разметку дискеты по двум причинам. Во-первых, все кадры не умещались в 640 килобайт стандартной разметки. Во-вторых, тут на порядок интереснее! Мы разметили дискету так, чтобы каждый сектор содержал один целый кадр видео и это позволило существенно поднять frame-rate вплоть до заветных 6 кадров в секунду, что для восьмибитной машины очень прилично…
Пока это все! У нас очень плотный график работ на ближайшие 24 часа в рамках подготовки к Revision Online 2020, но я обязательно дополню эту статью исходниками и другими деталями ближе к субботе!
Добавляем в закладки, возвращаемся, перечитываем позже…
UPD: Да, исходники кода сохранились у нас. Всё компилится, свежекомпиленный код запускается прямо из XAS, играет белый шум в 1/4 кадра, так как сектор диска 256 байт в эмуляторе. Потом всё корректно возвращается в главное меню, потом в XAS, а в главном исходнике закоментирован loop, специально для отладки. Так же нашелся исходник который кодирует видео из конвертированных с PC кадров — вот это настоящий монстр, раза в 4 больше самого locomotion по коду. Печально то, что потеряны исходные кадры LOCOMOTION c PC, из которых теоретически можно было бы собрать весь проект заново. Однако, у нас и не стоит такой цели.
Открытые вопросы к тем, кто умеет в ZX Spectrum:
Нужна помощь — как получить доступ к файлам внутри SCL/TRD на PC и сконвертить исходник XAS в plain text?
---EOF---
#FF — И целого байта мало… | Пилот)
#00 — ИЦБМ… | Приглашение на Revision Online 2020
#01 — ИЦБМ… | Какими бывают intro?
#02 — ИЦБМ… | The Cross of Changes
#03 — ИЦБМ… | 2B or not 2B
#04 — ИЦБМ… | Берем БК за рога
#05 — ИЦБМ… | Анимэ
Развлекательный канал деда в Телеграм: teleg.run/bornded
Рядом с каналом есть чат. В нем можно попробовать поднять вопросы за демосцену, ассемблер, пиксель-арт, трекерную музыку и другие аспекты процессы. Вам могут ответить либо отправят в другие, более тематические чаты.
ТАК ПОБЕЖДАЛИ — ТАК ПОБЕДИМ!
Перед нами видео-диск Locomotion для ZX Spectrum 128К + дисковый интерфейс. Авторы конверсии два простых самарских парня alkoro и unbeliever, а дело было так… После работы Blame для демопати Funtop'98 мы научились легко оперировать с видео-фрагментами из оперативной памяти Спектрума. Ролик с Биллом Гейтсом не являлся великим достижением, но он и сегодня смотрится вполне прилично, особенно если отойти от экрана и держать в голове, что все данные в момент видео находятся в ОЗУ 128К.
Спустя полгода после Funtop'98, в самый разгар экономического кризиса, мы освоили нестандартные способы работы с дисководом. Многое подглядели в работе Refresh, Condommed и других аналогичных релизах, загружающих данные с носителя без паузы в самой работе. Идея грузить данные с дисковода, под музыку, не прерывая показа работы, была настолько захватывающая, что хотелось немедленно ее попробовать. Именно так появилось это техническое демо, на основе оригинального видео:
Оригинал 1989 года от Pacific Data Images носил достаточно культовый статус в былые времена для пользователей PC. Этот ролик был у каждого на жестком диске и частенько использовался для бенчмарка производительности видеокарты, особенно после апгрейда. Главной целью было воспроизведение ролика на полный экран. Если твоя видеокарта S3 Trio «тянула» полный экран при проигрывании этого видео — ты был первым парнем на районе. Напомню, массовый выброс на рынок видео на основе DivX произошел летом 1999 года и на момент создания нашего релиза для ZX Spectrum на PC фактически нельзя было смотреть фильмы. Ну, разве что VideoCD закодированные легеньким MPEG-1 или чуть более тяжелым MPEG-2.
На стартовом экране Locomotion (ZX) дана исчерпывающая техническая информация. Работа занимает одну пятидюймовую дискету DS/DD, каждый кадр это 64x42 пикселя (точнее чанка), точка кодируется тремя битами в градациях серого, у видео 6 fps, а суммарное количество кадров — 778 штук. Мы были вынуждены использовать нестандартную разметку дискеты по двум причинам. Во-первых, все кадры не умещались в 640 килобайт стандартной разметки. Во-вторых, тут на порядок интереснее! Мы разметили дискету так, чтобы каждый сектор содержал один целый кадр видео и это позволило существенно поднять frame-rate вплоть до заветных 6 кадров в секунду, что для восьмибитной машины очень прилично…
Пока это все! У нас очень плотный график работ на ближайшие 24 часа в рамках подготовки к Revision Online 2020, но я обязательно дополню эту статью исходниками и другими деталями ближе к субботе!
Добавляем в закладки, возвращаемся, перечитываем позже…
UPD: Да, исходники кода сохранились у нас. Всё компилится, свежекомпиленный код запускается прямо из XAS, играет белый шум в 1/4 кадра, так как сектор диска 256 байт в эмуляторе. Потом всё корректно возвращается в главное меню, потом в XAS, а в главном исходнике закоментирован loop, специально для отладки. Так же нашелся исходник который кодирует видео из конвертированных с PC кадров — вот это настоящий монстр, раза в 4 больше самого locomotion по коду. Печально то, что потеряны исходные кадры LOCOMOTION c PC, из которых теоретически можно было бы собрать весь проект заново. Однако, у нас и не стоит такой цели.
Открытые вопросы к тем, кто умеет в ZX Spectrum:
Нужна помощь — как получить доступ к файлам внутри SCL/TRD на PC и сконвертить исходник XAS в plain text?
---EOF---
#FF — И целого байта мало… | Пилот)
#00 — ИЦБМ… | Приглашение на Revision Online 2020
#01 — ИЦБМ… | Какими бывают intro?
#02 — ИЦБМ… | The Cross of Changes
#03 — ИЦБМ… | 2B or not 2B
#04 — ИЦБМ… | Берем БК за рога
#05 — ИЦБМ… | Анимэ
Развлекательный канал деда в Телеграм: teleg.run/bornded
Рядом с каналом есть чат. В нем можно попробовать поднять вопросы за демосцену, ассемблер, пиксель-арт, трекерную музыку и другие аспекты процессы. Вам могут ответить либо отправят в другие, более тематические чаты.
ТАК ПОБЕЖДАЛИ — ТАК ПОБЕДИМ!