에뮬레이션 대신 네이티브 이식입니다. Apple 커널이 요구하는 부분에서만 게임 코드를 고칩니다.
각 게임의 NSO 모듈을 고쳐 CPU에서 직접 실행합니다. 호스트 계층이 Switch OS인 Horizon을 대신해 스레드, 메모리, 파일 시스템, 오디오와 각종 서비스를 제공합니다.
NVN과 Vulkan 호출을 Metal 위에 구현했습니다. Maxwell 셰이더는 빌드할 때 SPIR-V로, 다시 Metal Shading Language로 변환됩니다.
어떤 게임의 내용도 들어 있지 않습니다. 패킹 스크립트가 Mac에서 여러분의 키로 NSP를 읽어 서명되지 않은 IPA를 만듭니다.
모든 게임은 dm/games/<title id>에 상수와 셰이더 테이블로 이루어진 작은 프로필을 가집니다. 코드는 프로필을 읽을 뿐 특정 게임을 하드코딩하지 않습니다.
d2r-mobile, Ryujinx의 셰이더 변환기, Atmosphère, yuzu, LibHac, SPIRV-Cross 등을 바탕으로 만들어졌습니다. 감사의 말을 참고하세요.
Mac에서 IPA를 만들고, 사이드로드한 뒤 플레이합니다. 첫 빌드는 30~60분, 이후에는 약 10분 걸립니다.
요구 사항. Xcode와 Homebrew가 설치된 Mac, NSP 크기의 약 2배 + 10GB의 여유 디스크, iPhone 15 Pro 이상(A17 Pro 이상) 또는 M1 이상의 iPad, iOS / iPadOS 26 이상(게임의 BC 압축 텍스처에 필요).
Mac에서 한 번만 하면 됩니다.
git clone https://github.com/seedds/nxnative.git && cd nxnative
brew install xcodegen zstd spirv-cross
brew install --cask dotnet-sdk
python3 -m pip install lz4 capstone fonttools "backports.zstd; python_version < '3.14'"본편(NSP 또는 XCI 덤프), 업데이트, 그리고 있다면 DLC.
~/Games/MarioWonder/
Super Mario Bros. Wonder [010015100B514000][v0].nsp
Super Mario Bros. Wonder [010015100B514800][v327680].nspIPA가 같은 폴더에 만들어집니다.
python3 scripts/build_ipa_from_nsp.py ~/Games/MarioWonder -k ~/keys/prod.keysAltStore, Sideloadly, LiveContainer 같은 도구로 IPA를 설치합니다. 앱은 게임의 이름, 아이콘, 버전을 사용합니다.
위쪽의 2D / 3D를 눌러 터치 배치를 바꿉니다. 컨트롤러를 연결하면 터치 버튼이 숨겨집니다. 3D에서는 화면 오른쪽 3분의 1을 스와이프해 카메라를 움직입니다. 폰을 흔들면 컨트롤러가 흔들립니다.
모두 iPhone에서 테스트했고 플레이할 수 있습니다. 눌러서 자세한 내용을 보세요.












































기본은 영어입니다. 패킹할 때 -l(예: -l ja)로 고르거나, Documents/env.txt에 DM_LANG=zh-Hans 같은 줄을 추가하세요.
파일 앱의 앱 이름 아래에 save/와 log.txt가 있습니다. 문제가 생기면 log.txt를 보내 주세요.
새 장면이 처음 나올 때의 잠깐의 끊김은 정상입니다. 그래픽은 한 번 컴파일되고 이후에는 기억됩니다.
일부 사이드로드 도구는 재설치하면 새 데이터 폴더를 줍니다. 이전 폴더의 save/와 pso_user.tsv를 복사하세요.
Documents/env.txt에 적습니다: DM_OPMODE=0은 휴대 모드, DM_FPS_TARGET=30은 배터리 절약, DM_SHOW_FPS=1은 프레임 표시.
amiibo와 온라인 기능은 없습니다. 다른 게임은 분석 보고서와 실행되지 않을 수도 있는 최선의 IPA가 만들어집니다.