Super Mario 64 портирована на Microsoft Zune HD
Классическая игра для Nintendo 64, Super Mario 64, теперь доступна на медиаплеере «Microsoft» Zune HD. Порт работает нативно на аппаратном обеспечении устройства благодаря использованию неофициального набора инструментов OpenZDK.
Проект, представленный в репозитории пользователя rsheldiii на GitHub, позволяет запускать игру на базе чипа «Nvidia» Tegra APX 2600, который был сердцем Zune HD в 2009 году. Технически порт базируется на sm64ex — форке декомпилированного порта Super Mario 64 для ПК. Важно отметить, что сам файл игры (ROM) не входит в состав проекта: пользователям необходимо использовать собственный дамп с оригинального картриджа.
Технические особенности и обходные пути
Поскольку графический драйвер Zune HD не поддерживает компиляцию шейдеров на языке GLSL, разработчик применил интересные инженерные решения. Для рендеринга используется OpenGL ES 2.0 на базе Fast3D с предустановленными вариантами шейдеров, подготовленными с помощью инструментов Nvidia (cgc и shaderfix). Кроме того, так как у GPU устройства отсутствует аппаратная поддержка смешивания (blending), эта функция была программно реализована внутри фрагментных шейдеров.
С точки зрения производительности, игра работает преимущественно на полной скорости. Логика игры привязана к 30 тикам в секунду, а аудиосинтез вынесен в отдельный поток с высоким приоритетом, что предотвращает заикания звука при падении частоты кадров. Разрешение составляет 480x272 пикселей в альбомной ориентации. Управление реализовано через сенсорный оверлей, имитирующий аналоговый стик и основные кнопки (A, B, Z, R, C-кнопки и Start), с возможностью настройки прозрачности и стиля интерфейса.
Контекст и возможности устройства
Zune HD был анонсирован Microsoft как конкурент iPod, оснащенный 3,3-дюймовым OLED-экраном. Несмотря на то, что производство устройства было прекращено в 2011 году, эксплойт, позволивший использовать OpenZDK, открыл путь для запуска стороннего софта (homebrew) на базе Windows CE. Данный порт работает на уровне нативного ARM-кода поверх операционной системы, не изменяя при этом саму прошивку устройства.
Разработчик подчеркивает, что использование порта сопряжено с рисками, и рекомендует использовать его на свой страх и риск. Стоит заметить, что в репозитории проекта упоминается использование ИИ (Claude Opus 5.5) в качестве соавтора при написании кода.