Провайдер потокового мультимедиа показал шуточное приложение для восьмибитной консоли
Netflix — это компания, которая предоставляет своим клиентам платную возможность стримить из Интернета фильмы и сериалы. Пользователи могут делать это либо с компьютера, либо с помощью приложения на множестве устройств: это консоли текущего и предыдущего поколений, смартфоны и планшеты, устройства для чтения электронных книг, «умные» телевизоры, различные приставки. В своём блоге компания показала, что приложение сервиса есть и для Nintendo Entertainment System (эта консоль хорошо известна на пространстве бывшего СССР своим клоном Dendy). Как же работает эта небольшая техническая шутка?
Работа над этим проектом проводилась в рамках внутреннего хакфеста компании Netflix. Остальные тоже неплохи, но именно хак NES привлёк внимание технических изданий. Создатели утверждают, что эта игровая приставка никоим образом не модифицировалась, в неё лишь вставлен картридж. Проект выглядит следующим образом: пользователь может рыться в интерфейсе «Нетфликса». В видеоролике демонстрируется, что при попытке проиграть серию «Карточного домика» начинается воспроизведение последовательности кадров с четырьмя цветами.
Подобное каким-то образом возможно на устройстве со скромными техническими характеристиками — 8-битный процессор, 2 килобайта ОЗУ. Есть несколько возможных вариантов, некоторые кажутся наиболее логичными, другие не так очевидны. В первую очередь нужно отметить, что сетевых возможностей у оригинальной игровой приставки нет и быть не может. Да, есть проект модема Teleplay, но он так и не был закончен. Получить экземпляр подобного модема было бы слишком затруднительно.
Авторы утверждают, что в консоль не вносили никаких изменений. Поэтому единственным вариантом вывода изображений на экран разрешением 256×240 пикселей является запись всех показываемых данных на картридж. Сообщество ромхакеров уже давно модифицирует игровые картриджи и создаёт новые игры, поэтому создателям этого небольшого проекта помогали различные ресурсы: NesDev.com, сайт Shiru и бесчисленное множество статей из поисковиков.
Вся последовательность данных, включая кадры в виде тайлсетов, уместилась на картридж объёмом 256 килобайт. Для воспроизведения кадры менял маппер памяти для того, чтобы избегать слишком сильной нагрузки на процессор. Времени до хакфеста оставалось не слишком много, поэтому авторы проекта иногда достигали пределов возможностей работы процессора игровой приставки. Но вместо кэшированных данных на картридже рассматривался и куда более экзотичный вариант, который являлся реальной работой с сетью, пусть в этом случае потребовалось бы куда больше усилий для его реализации.
Нет никакой возможности выполнять всю работу с сетью на основном процессоре приставки, поэтому возникла так и нереализованная идея использовать одноплатный микрокомпьютер (в частности, Raspberry Pi) в качестве эмулятора работы картриджа. Этот компьютер связывался бы с серверами «Нетфликса» для получения и декодирования видео. С процессором приставки картридж в таком случае общался бы в стиле прерываний MMC3. Но из-за временных ограничений (и зря, могла получиться отличная первоапрельская шутка) пришлось остановиться на создании готовых данных ограниченного объёма на картридже.
Автор: FakeFactFelis