овременная игровая индустрия приучила нас к тому, что для запуска стандартного шутера вам нужен накопитель размером с небольшую планету и пара сотен гигабайт свободного места. Сегодня разработчики соревнуются в лени оптимизации, предпочитая не ужимать текстуры и код, а просто рассчитывать на то, что вы докупите еще один быстрый SSD. Пока индустрия наращивает гигабайты и заставляет обновлять железо ради каждого патча, энтузиаст под ником Throaty Mumbo решил вспомнить девяностые самым извращенным способом — и собрал игровую систему, которая загружает игры с обычной VHS-кассеты.
Тезис простой: на кассете записаны сразу и программный код игры, и несколько видеороликов, а в демонстрации участвуют версии Doom, Super Mario Bros и культовой FMV-игры Night Trap. Как справедливо отмечают скептики, за этим гаражным безумием стоит вполне трезвый диагноз современному софту, который давно разучился умещаться в разумные рамки и дорожить системными ресурсами пользователя.
От провального раритета к железному Франкенштейну
История вопроса уходит корнями в 1987 год, когда компания Worlds of Wonder выпустила старую приставку Action Max, работавшую через видеомагнитофон. Идея была мертворожденной: игрок стрелял из светового пистолета по экрану, а датчик на присоске считал попадания, хотя интерактивности в такой схеме почти не было. Самодельный эксперимент Throaty Mumbo едва не повторил судьбу предка, когда первая попытка провалилась. Видеомагнитофон Panasonic, подключенный к плате захвата на микроконтроллере, выдавал всего 3 кадра в секунду, а цвета передавал с ошибками.
Ситуацию спасло только жесткое железо, когда выручила плата Terasic DE1-SoC с программируемой логикой Intel Cyclone V. Она расшифровывает аналоговый видеосигнал с кассеты, выводит картинку на VGA-монитор и позволяет переключателями настраивать цвет, оттенок и эффект строчной развертки. За логику отвечает вторая плата, Pimoroni PGA2350 на чипе RP2350, а управлять всем этим безобразием можно обычным контроллером от Nintendo 64.
Как заставить кассету думать

Техническая механика процесса выглядит издевательством над здравым смыслом, но работает безупречно. Код игры записан на ленту в виде своеобразного «видео-QR-кода»: это быстрая вспышка черных и белых пикселей, которую система считывает и превращает в исполняемую программу. В одном видеосигнале Throaty Mumbo уместил восемь независимых видеопотоков, а звук закодировал в виде волны на левом краю кадра.
Для дальних переходов плата через инфракрасный передатчик сама командует видеомагнитофону перемотать ленту в нужное место.
В итоге картинка и звук получаются аутентичными до боли в зубах, хотя проект унаследовал главную беду старых интерактивных видеоигр. Вариантов действий мало, а при каждой развилке сюжета приходится ждать, пока мотор физически перемотает кассету в нужное место. Проект пока помечен как незавершенный, но всю прошивку Throaty Mumbo выкладывает в открытый репозиторий GCVHS на GitHub для тех, у кого дома завалялся старый видеомагнитофон.
Главное: энтузиаст доказал жизнеспособность формата, где видео и код живут на одной аналоговой ленте. Это наглядный урок индустрии, которая забыла про вес, забила на оптимизацию кода и заставляет нас покупать терабайтные SSD под простые скрипты.
