Энтузиаст разрабатывает проект Wine-NX для запуска приложений Windows на консоли Nintendo Switch

от aadmin

Разработчик под ником dantiicu представил экспериментальный проект Wine-NX, созданный для запуска приложений Windows формата ARM64 PE на портативной консоли Nintendo Switch. На текущем этапе автору удалось запустить стандартную программу Блокнот с поддержкой базового сенсорного ввода.

Проект Wine-NX представляет собой адаптированную версию Wine для операционной системы Horizon, которая работает на Nintendo Switch. Основная задача разработчика заключается в обеспечении возможности выполнения исполняемых файлов Windows ARM64 непосредственно в среде NRO-приложений консоли. Для этого используются встроенные службы консоли, отвечающие за управление процессами, памятью, вводом, файлами и выводом изображения.

На текущем этапе разработки проект уже способен запускать текстовый редактор Notepad. Программа запускается на консоли в разрешении 1280×720 пикселей, отображая основное окно, рамку приложения, строку меню, всплывающие окна и текстовые шрифты. Сенсорный экран консоли используется для управления курсором, транслируя нажатия в координаты мыши Windows, что позволяет взаимодействовать с элементами интерфейса.

С технической точки зрения проект собирается с помощью инструментария devkitpro в контейнерах Docker. Дисплейный драйвер winnx_drv.c обрабатывает вывод графики, а системные шрифты и библиотеки Windows переносятся на карту памяти в специальный каталог. Загрузчик среды инициализирует целевой исполняемый файл, связывает необходимые библиотеки DLL и запускает процесс на процессоре устройства без необходимости эмуляции архитектуры процессора, так как чип консоли изначально базируется на архитектуре ARM64.

Рекомендую посмотреть
Триколор анонсировал собственную ОС для телевизоров и перезапуск видеосервиса

Несмотря на успешные тесты, текущая версия программы имеет ряд ограничений. Вывод изображения происходит с использованием программного рендеринга на центральном процессоре, что создает высокую нагрузку из-за постоянной перерисовки кадра при любых изменениях интерфейса. В проекте пока не реализована поддержка физических кнопок консоли и клавиатуры, а также отсутствуют звуковая подсистема, сетевые функции и работа с реестром.

В качестве следующих шагов разработчик планирует внедрить графический рендеринг через API Vulkan и драйвер NVK, чтобы перенести нагрузку на графический процессор консоли. После этого планируется улучшить систему ввода и приступить к тестированию более сложных программ Windows, не требующих сложной трехмерной графики.

Связанные посты