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

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


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

    image

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



    Оригинал 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, но я обязательно дополню эту статью исходниками и другими деталями ближе к субботе!

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

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

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

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

    image

    ---EOF---

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

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

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

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

    Комментарии 9

      +2
      Спасибо деду за на наше счастливое детство ;)
      Locomotion действительно очень крутая работа на Speccy! Не смотря на то, что для неё надо было выделить целую ДИСКЕТУ ;) она того стоила. Смотреть видео на персональном компьютере — у себя дома в далёком 1999 году, наблюдая при этом как разрывается дисковод во время показа — бесценно.
      После Locomotion уже ведь были и другие приличные видео ролики на Spectrum'e, помню еще было цветное видео в аттрибутной области, как оно там называлось? Или еще может что-то?
        0
        да была работа из Кемерово по мотивам фильма The Gate to the Mind's Eye (1994) www.imdb.com/title/tt0167176

        надо ее искать в архивах спектрумизма, оцифровывать, публиковать на Pouet — спасибо что напомнили. Делал Daniel.
          0
          вот она https://zxart.ee/rus/soft/demoscene/the-gatethe-/qid:113948/

          URL копируйте в буфер
            0
            а это или ее дубль в архиве (тогда Мороз поправит) или продолжение:

            https://zxart.ee/rus/soft/demoscene/the-gate-last-editionthe-/qid:113948/

            Они свою работу сделали по мотивам нашей. Я переписывался с ними и они получили диск с Locomotion по обычной Почте РФ одними из первых, в марте 1999 года.
            +1
            Угу, спсибо за линк с видео.
            Я вспомнил, что цветное видео в атрибутной области было из игры Worms, в разрешении Спектрума 32х24 в 80 цветов чтоли, через flic.
            Её делали кто-то из Украинских коллег, по моему, еще у них была статья в одном из ZX журналов того времени, рассказывающая принцип создания и кодирования видео, было интересно.
              0
              это может быть… аттрибутное видео нас тогда уже не интересовало… после открытия chunky мир на Спектруме поменялся лет на 5 примерно
              +1
              Да, в те махровые времена, я пробовал дискету рассматривать как носитель для записи звука, видео и даже виртуальной памяти (постраничной, вместо имеющихся 128К). Было весело, но всё так тормозило в момент переключения, это сейчас можно нацеплять всяких железок и на кодить на эмуляторах, в реальности всё не так радужно.
                0
                детальнее опиши это, особенно про звук — что и как делал?
                  0
                  Детальнее — это уже статья получится (да и давно очень было дело, лет так больше 20).
                  Про звук: вся запись тогда велась через туже дырку как и загрузка программ (одно битовый порт, компаратор), принцип записи был известный (из порта бит записывался в байт с постепенным сдвигом на один бит, как только байт заполнялся, счетчик памяти/ячейки увеличивался и так до заполнения памяти, некое подобие ШИМа), у меня свой был придуман алгоритм, который обеспечивал выше качество записи (линейность, скорость заполнения памяти). Вначале я игрался с постраничным заполнением (128К), затем пробовал разгружать её всю на диск и продолжать записывать, т.к. запись на 5.25 шла ну очень долго, то скатился эксперимент в итоге до записи по секторно (на диск). К сожалению буфера и никаких DMA нет, как не играйся пропорциями блочной записи, всё равно оно «заикается» (запишется/прочитается блок данных, затем пишется/воспроизводится). Но по факту можно было утверждать, махая дескетой перед носом, что это Audio FDD. :)
                  Ещё помню на асме писал для 286 писюка код похожего плана, только на воспроизведение видео CGA, там как ща помню, записывали раскадровку с DOOM-а 486 процессора (VGA)…
                  Да, были времена…

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое