Super Mario 64 запустили на Microsoft Zune HD 2009 года

Разработчик rsheldiii запустил Super Mario 64 на Microsoft Zune HD — портативном медиаплеере, представленном в 2009 году. Игра работает непосредственно на устройстве, без эмулятора, поддерживает звук и сохранения, а вместо физических кнопок Nintendo 64 использует виртуальные элементы управления на сенсорном экране.
Как игру адаптировали для старого плеера
В основе проекта лежит sm64ex — неофициальный порт Super Mario 64, созданный после декомпиляции оригинальной игры. Для работы на Zune HD разработчику пришлось адаптировать исходный код под возможности старого ARM-процессора и графической платформы NVIDIA Tegra APX 2600.
Microsoft Zune HD оснащён 3,3-дюймовым OLED-дисплеем с разрешением 480×272 пикселя. Управление перенесли на экран: поверх изображения отображаются виртуальный аналоговый стик, кнопки A, B, Z, R и Start, а также четыре кнопки C. Их внешний вид и прозрачность можно настраивать.
По словам автора проекта, в большинстве случаев игра работает на полной скорости, однако в отдельных сценах производительность снижается. Чтобы эти просадки не приводили к прерыванию звука, аудио обрабатывается в отдельном потоке с повышенным приоритетом.
Особенности запуска
Графический драйвер Zune HD не умеет компилировать необходимые игре шейдеры во время работы. Поэтому их нужно заранее подготовить с помощью старых инструментов NVIDIA для Tegra. Часть графических операций также пришлось перенести непосредственно в шейдеры.
Для запуска не требуется прошивать медиаплеер. Порт использует OpenZDK — неофициальный набор инструментов для выполнения нативного кода на Zune HD. На данный момент работу проекта проверяли только на версии прошивки 4.5.
Владельцу устройства понадобится собственный образ американской версии Super Mario 64. Сам порт необходимо собрать на компьютере с Linux, Docker и Git, причём для этого потребуется около 6 ГБ свободного места. После сборки файлы передаются на плеер через USB.
Zune HD задумывался как конкурент iPod touch, но Microsoft прекратила выпуск линейки спустя несколько лет. Несмотря на возраст устройства, вокруг него продолжает существовать сообщество энтузиастов, создающих самодельные приложения и порты. Запуск Super Mario 64 стал ещё одним примером такого использования старого медиаплеера.


