Энтузиасты выпустили ounce-core — первый открытый эмулятор Nintendo Switch 2 на Rust
На GitHub появился проект ounce-core — независимый эмулятор Nintendo Switch 2, написанный на Rust с нуля. Он поддерживает прошивку 23.0.1 и эмулирует ключевые компоненты консоли.

На платформе GitHub состоялся неожиданный релиз проекта ounce-core, который представляет собой независимый движок эмулятора консоли следующего поколения Nintendo Switch 2. Разработчик под псевдонимом hffgzktbcc-blip опубликовал исходный код полностью на языке Rust, применив метод чистой комнаты без использования закрытых библиотек или защищённых файлов японской корпорации. Проект написан с нуля и способен запускать неизменённые нативные 64-битные бинарные файлы и захваченный машинный код из дампов официальной прошивки 23. 0. 1.
Архитектура и производительность
Архитектура программы воспроизводит параметры аппаратной платформы Ounce и однокристальной системы NVIDIA Tegra T239 с кодовым обозначением Drake. Программный комплекс эмулирует 64-битные инструкции ARMv8. 2-A, ARMv8. 3-A и ARMv8. 5-A с прямой реализацией специализированных систем безопасности, таких как аутентификация указателей Pointer Authentication и защита переходов Branch Target Identification. Для достижения стабильной производительности автор внедрил динамический JIT-кэш базовых блоков, обеспечивающий скорость свыше 7. 3 MIPS в тестовых сценариях.
В отличие от экспериментальных концептов, ounce-core содержит верификационные тесты на основе реальных дампов прошивки Horizon OS 23. 0. 1, полученных сообществом в рамках инициативы ns2jb. Программа успешно выполняет оригинальный 72-байтный исполняемый код файловой службы FS, а также без модификаций запускает полноценный системный модуль RO объёмом 4757 байт в формате NSO0, проводя регистрацию через протокол Tipc и возвращая подтверждающий ответ NS2ROEXE.
Графический стек эмулирует функциональность чипа NVIDIA Ampere с 1536 вычислительными ядрами CUDA. В систему заложены программный растеризатор с буфером глубины Z-buffer, декомпилятор микрокода SASS в шейдеры GLSL 450 и бинарный формат Vulkan SPIR-V 1. 5, а также алгоритм реконструкции разрешения на тензорных ядрах для апскейла DLSS 2x. Виртуальная среда моделирует оперативную память объёмом 12 ГБ LPDDR5, виртуальную файловую систему RomFS, аудиосервер формата 48 кГц и многопоточный планировщик для 8 процессорных ядер ARM Cortex-A78C. Встроенный загрузчик распознаёт образы картриджей XCI объёмом до 64 ГБ, пакеты NSP и расшифровывает контейнеры NCA3 по алгоритму AES-128-CTR при указании ключей пользователем.
В репозитории отсутствуют цифровые ключи и файлы операционной системы, что обусловлено стремлением избежать юридических претензий. Проект распространяется как открытое программное обеспечение, и его исходный код доступен для изучения и дальнейшего развития сообществом.




Обсуждение
Войдите, чтобы присоединиться к обсуждению.
Загружаем обсуждение…