
Разработчик под ником 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, не требующих сложной трехмерной графики.
