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

На платформе GitHub состоялся неожиданный релиз проекта ounce-core, представляющего собой независимый движок эмулятора консоли следующего поколения Nintendo Switch 2. Разработчик под псевдонимом hffgzktbcc-blip опубликовал исходный код полностью на языке Rust, применив метод чистой комнаты без использования закрытых библиотек или защищенных файлов японской корпорации.

Архитектура программы воспроизводит параметры аппаратной платформы 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 при указании ключей пользователем.

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

Источник: www.playground.ru

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев