3D-видеоочки — идея далеко не нового века, их неоднократно изобретали, реанимировали идею и снова изобретали. Sega была одной из технологических компаний 20-го века, которая собиралась ввести виртуальную реальность в массы.
В сентябре 1993 года она представила Sega Genesis VR — 3D-шлем, который позволял играть в объемные игры. Очки были очень похожи по принципу работы на современные — два ЖК-дисплея вместо линз, подключение к источнику «картинки», трехмерность. Все это обещало революцию в мире видеоигр еще в 1993 году. Но, к сожалению, она не состоялась — выпуск Sega VR отменили, и уже через полгода об устройстве никто не вспомнил. Но, как оказалось, тогда была разработана игра для 3D-очков от Sega, о которой стало известно только сейчас, четверть века спустя. И да, в нее удалось поиграть!
А еще удалось отыскать видео с презентации Sega VR — прямо из 1993 года.
Что представляли собой очки Sega VR?
Впервые о них стало известно в 1991 году. Компания заявила о том, что за $200 геймеры со всего мира смогут получить устройство для воспроизведения объемного контента. Разрешение ЖК-экранов линз составляло 300*200 точек, у девайса были также наушники для стереозвука и система отслеживания движений головы. Эту технологию, кстати, разработала компания Ono-Sendai, здесь можно изучить патент.
Датчики обновляли информацию о положении головы 100 раз в секунду, так что трекинг был точным. Дизайн видеоочков был разработан в соответствии с идеей из фильма 1951 года «День, когда Земля остановилась», устройствами из «Звездного Пути» и «Робокопа».
Тогда компания пообещала выпустить сразу четыре игры на старте, и даже показала геймплей. Но потом что-то пошло не так. После анонса на CES-1993 устройство так и не было выпущено. Насколько известно, девайс мало кого впечатлил, а 40% тестировщиков укачивало из-за трехмерности — к ней был никто не готов. В итоге, оценив риски, Sega решила закрыть проект.
В официальном заявлении говорилось следующее: «игроки настолько сильно вживались в виртуальную реальность, что могли нанести себе повреждения в процессе движения в реальности обычной». В целом, это весьма правдиво — достаточно посмотреть один из тысяч роликов с YouTube, где показаны люди, впервые надевшие 3D-очки. Но сейчас угроза того, что игроки могут споткнуться или удариться о мебель, находясь в 3D-реальности, уже никого из производителей не пугает. Пользователей предупреждают — и только.
Ну а теперь о главной находке — игре, которой больше 25 лет
Один из цифровых археологов, Дилан Мэнсфилд, узнал от экс-разработчика из команды Sega VR о существовании игры под названием Nuclear Rush (спойлер — действие происходит в 2032 году, электричество — дефицит, горючих полезных ископаемых почти не осталось. Вы — пилот и ваша миссия — получить атомное топливо).
Исходный код игры оказался на 26-летнем CD вместе с инструментами разработчиков из команды Sega. Эти инструменты использовались для создания игр, так что эта находка здорово облегчила задачу восстановления Nuclear Rush.
Тем не менее, в процессе восстановления цифровые археологи столкнулись с немалым количеством проблем, которые все же удалось решить.
Главная проблема — компиляция исходного кода. «Когда вы впервые получаете неизвестный исходный код, вы должны понять, как его создатели компилировали разработку. У вас далеко не всегда есть необходимые инструменты», — заявил Рич Уайтхаус (Rich Whitehouse), автор проекта по восстановлению игры.
Ему повезло — в исходном коде игры содержится немало подсказок о том, за что отвечают отдельные участки кода и каким образом реализуется взаимодействие с видеоочками Sega VR. Ну а раз известно, что должно происходить, то все это можно попробовать реализовать и на современных видеоочках.
Авторам проекта повезло еще и в том, что на упомянутом CD содержался код другой игры, Monster Hunter (это не Capcom), с подробными комментариями о работе с видеоочками. Оттуда тоже удалось почерпнуть немало полезной информации. Все эти данные вместе с инструментами разработчиков 1993 года позволили восстановить игру и адаптировать ее к современным устройствам — а именно к HTC Vive VR. Кстати, fps для игры от Sega — около 15 кадров в секунду. Для современных игр этот показатель составляет 100 fps.
Немного технических подробностей
Большая часть кода Nuclear Rush написана на С. Компилируется все это при помощи компилятора Sierra 68000 C.
Кроме того, для компиляции необходимо еще несколько проприетарных инструментов, которые позволяют добавить текстуры и другой игровой контент.
В ходе первой попытке сборки оказалось, что один из инструментов, DUMP.EXE, отсутствует. После изучения проблемы оказалось, что эта программа открывала файл и отправляла текст в стандартный вывод для каждого байта, чтобы двоичный файл мог быть принят ассемблером. Автор проекта смог написать аналогичную программу в Borland C++ 3.0 и все успешно скомпилировалось.
В итоге был сгенерировал файл COFF, причем важные части ROM были разбиты на несколько секций. В итоге автору пришлось написать еще одну программу в Borland для парсинга COFF и сборки ROM в единое целое.
Игру удалось запустить, и автор увидел вот что:
Понятно, что игра не видела 3D-устройство и не могла его увидеть. Поэтому пришлось добавить пару строк для того, чтобы пропустить проверку:
wptr++; /* Skip number of sprites in frame */
wptr++; /* Skip hotspot offset */
wptr++;
wptr++;
Как только все это было проделано, автор проекта, наконец, увидел саму игру.
Ну а дальше автор провел немало времени за дебаггингом, решением крупных и мелких проблем, кроме того, ему пришлось «научить» игру обнаруживать современные 3D-очки взамен отсутствующего аксессуара Sega VR. Эти увлекательные подробности автор раскрывает здесь.
Как поиграть
Самое главное, да. Поиграть могут все желающие, для этого нужны:
Эмулятор Sega VR:
Репозиторий
Готовый эмулятор (Windows)
А потом — игра:
Репозиторий
Сама игра (ROM для загрузки в эмулятор).