В сообществе энтузиастов состоялся релиз специализированной программы NSP Box, созданной независимым разработчиком под ником smarkyie. Приложение, изначально зародившееся как Switch 2 Game Packager, предназначено для конвертации распакованных дампов игр в готовые к запуску образы а также для автоматической модификации сборок ПК-эмуляторов.
Основной функционал утилиты заключается в прямой упаковке файловых систем ExeFS и RomFS в несжатые контейнеры NSP без шифрования. Программа написана на языке Python и скомпилирована в единый исполняемый файл для 64-битных операционных систем Windows 10 и Windows 11, благодаря чему не требует предварительной установки библиотек или повышенных прав администратора. Обработка данных происходит в потоковом режиме, поддерживая пакеты объемом до 32 ГБ с автоматическим контролем целостности полученных файлов.
Главным стимулом для разработки такого инструмента стала нестабильная работа ранних эмуляторов при попытках запуска дампов нового формата. Энтузиасты выяснили, что даже при ручном выделении 12 ГБ оперативной памяти в настройках эмуляторы переходили на системные таймеры первого поколения Nintendo Switch с частотой 19.2 МГц вместо положенных 31.25 МГц. Это вызывало резкое падение производительности при отсутствии специального служебного файла main.npdm рядом с игровым контейнером.
Для устранения этой проблемы в утилиту встроили модуль бинарного патчинга поддерживаемых эмуляторов, позволяющий исполняемым файлам считывать параметры консоли следующего поколения напрямую из встроенных метаданных созданного пакета. Инструмент поддерживает модификацию сборок Eglantine nx2 версий 96 и 98, экспериментальной ветки AMD Experimental 77-2 под номером 99, а также PokeDinner версий 2.0.0 и 2.1.0a. Программа предварительно создает резервные копии оригинальных файлов, обеспечивая возможность полного отката изменений за 1 действие.
Помимо сборки базовых игр, инструмент содержит функционал для формирования отдельных пакетов загружаемого контента исключительно на основе структуры RomFS. Первые тесты уже подтвердили успешную установку и распознавание дополнения Bananza DLC в эмуляторе PokeDinner 2.0.0. Графический интерфейс программы также поддерживает перетаскивание файлов мышью через защищенную очередь системных событий Windows, исключающую аварийные завершения процессов при загрузке тяжелых каталогов.
Встроенный графический модуль позволяет масштабировать и обрезать пользовательские изображения до формата 256 на 256 пикселей для корректного отображения обложек в интерфейсах эмуляторов. Приложение автоматически извлекает идентификатор тайтла, позволяет вручную задавать отображаемое название проекта и генерирует базовый файл control.nacp в случаях, когда в исходном дампе отсутствуют заводские метаданные.
Исходный код программы открыт на платформе GitHub под лицензией MIT и не включает в себя защищенные авторским правом материалы Nintendo, дампы прошивок или ключи дешифрования. Для полноценного использования упаковщика требуются собственные легально полученные дампы и специальные файлы ключей совместимости, а автор подчеркивает сугубо исследовательский характер разработки, не предоставляющий гарантий стабильной частоты кадров в игровом процессе.
Источник новости: www.playground.ru

