닌텐도 스위치 CFW 관련 용어

현재 스위치 커스텀 펌웨어에서 주로 사용하는 용어들을 한번 정리한 내용입니다.

관련한 모든 CFW 용어들을 달달 외울 필요는 없지만, 필요할 때 검색해서 찾을 수 있도록 가볍게 알고 지나가시면 되겠습니다.

주요 용어에 대해서는 강조해서 ⭐ 이모지로 표기해 드리겠습니다.

아래 목록 원문의 출처는 DC CFW 갤러리의 [정보] 닌텐도 스위치 커스텀펌웨어 개념 및 용어 와 Asap 가이드의 기초개념 및 용어 설명 이며 내용을 일부 수정하였습니다.

닌텐도 스위치의 종류

닌텐도 스위치의 모델은 크게 구형, 신형등으로 표현 하지만 실제로는 세부 항목까지 상세하게 구분하자면 총 5종이 출시되어있습니다.

모델명 코드명
닌텐도 스위치(런칭 ~ 18년 6월 제조모델) Erista Icosa
닌텐도 스위치(18년 7월 이후 제조모델) Patched Erista Icosa
닌텐도 스위치 배터리 개선판 Mariko Iowa
닌텐도 스위치 Lite Mariko Hoag
닌텐도 스위치 OLED Mariko Aula
💡
엔비디아 칩셋은 서브컬쳐 관련 코드명을 붙이는 경향이 있으며 스위치 관련 칩셋은 마블 코믹스의 울버린과 관련이 깊습니다.
이전 칩셋인 Tegra K의 코드명은 울버린의 가명인 Logan 입니다.
이를 따라 커스텀 칩셋에도 Erista = 울버린 아들 , Mariko = 연인 야시다 마리코 로 설정되어있습니다.

⭐ 스위치의 하드웨어 취약점

스위치의 패치 불가능한 하드웨어 취약점

출시 당시 칩셋인 Nvidia사의 Tegra X1 칩의 복구 모드(USB 리커버리)의 취약점을 이용하기 때문에 소프트웨어적인 방법이 아닌 하드웨어 취약점이라고 불립니다.

  1. 테그라 X1은 스마트폰의 CPU(APU) 처럼 스위치의 메인 칩셋입니다.
  2. 이 칩에는 부트롬(bootROM)이란 것이 있으며 이를 보호하는 운영 체계를 문제의 USB 복구 모드로 피해갈 수 있습니다.
  3. Nvidia의 삽질로 취약점이 있는 USB 제어 프로시저에 적절하지 않은 긴 길이의 인자를 실어 요청한 건마다 최대 65,535 바이트를 요청하면, 데이터가 부트롬 내 치명적인 직접 메모리 접근(DMA) 버퍼로 메모리 오버플로우가 발생합니다.
  4. 이렇게 되면 데이터가 보호가 된 애플리케이션 스택으로 복제되고 공격자는 임의의 코드를 실행시킬 수 있는 상태가 됩니다.
  5. 이를 통칭 Fusée Gelée (콜드부트) 취약점이라고 부릅니다.

따라서 제조사가 과거 이미 18년 6월 이전 생산해서 팔려나간 1세대, 1480만대 가량의 초기 물량은 패치할 수 없는 하드웨어 취약점이 존재하게 되었습니다.

💡
물론 이후 출시된 제품들에는 해당 취약점이 패치되었습니다.

Horizon OS (호라이즌 OS,HOS)

스위치에 설치되어 있는 FreeBSD 기반의 운영체제로 Horizon OS라는 이름을 가지고 있습니다.

통칭 줄여서 HOS 라고 부르기도 합니다.

일반적인 데스크탑이나 노트북 등에 설치하는 익숙한 윈도우처럼 닌텐도 스위치에 설치되어 작동하는 OS 입니다.

간단하게 시스템 펌웨어라고 부르는 것이 바로 위 HOS라고 이해하셔도 좋습니다.

리눅스나 안드로이드와는 달리 조금 생소한 운영체제인 FreeBSD는 의외로 소니의 PS3PS4 등등 비디오 게임 콘솔에서는 그동안 꾸준히 사용되고 있던 OS이기도 합니다.

💡
물론 그대로 가져다가 쓰는 것이 아닌 커널의 일부만 사용하거나 자체적인 닌텐도의 커스텀이 상당할 것입니다.

⭐CFW (커스텀 펌웨어)

전자제품의 하드웨어 및 소프트웨어 취약점을 이용하여 제조사에서 제공하는 정품 펌웨어와는 다른 운용을 하기 위한 사용자 수정 펌웨어를 의미합니다.

스위치는 복구모드 진입을 통한 콜드부트 검사단계에서 인증되지 않은 임의 코드를 칩셋 내부 bootROM(부트롬)에 강제하는 통칭 Fusée Gelée (콜드부트 취약점) 글리칭으로 커펌이 진행됩니다.

18년 6월 이전 구형의 경우 위 과정이 별도의 장비 없이 가능하지만, 모드칩이 설치되는 신형 스위치(Mariko) 들은 CFW 진입 과정에 차이가 있습니다.

모드칩이 APU의 전압을 풀다운하여 물리적으로 연결된 eMMC 내부, 낸드 컨트롤러의 BCT(Boot Configuration Table) 판독 값을 사용하여 글리칭 타이밍을 계산합니다.

이 때 BCT RSA Public 키 해독 중에 발생하는 언더볼팅을 통해 키 값을 취득하게 되고, 이를 BCT 서명에 사용

이후 찾아 낸 글리칭 타이밍에 RCM 모드로 진입하여 부트로더를 강제하고 결국 페이로드를 주입해 커펌이 진행됩니다.

일반적으로 스마트폰 등에 설치하는 CFW와는 다소 차이가 있는 것이 스위치의 커스텀 펌웨어는 OFW(오리지널 펌웨어)에 추가적인 모듈을 함께 구동한다는 점에서 차이가 있습니다.

따라서 스위치의 CFW는 원본 시스템 펌웨어의 버전에 민감하며 서로 상호적인 관계가 있습니다.

⭐ Payload (페이로드)

RCM에 진입한 스위치에서 홈브류 구동권한과 함께 스위치 공식 운영 체제 Horizon OS(HOS)로 부팅하기 위해 전송하는 작은 바이너리 파일 payload.bin입니다.

부트로더를 통해 주입할 수 있는 파일들로 제조사에서 허락하지 않은 부팅 및 홈브류 구동 등에 이용됩니다.

과거 1.0.0 펌웨어에서 4.1.0 까진 Déjà Vu 또는 Caffeine이 사용되기도 했지만 지금은 모두 사양 되었으니, 일반적으로 ReSwitched Team 이 발견한 Fusée gelée 익스플로잇을 의미한다고 볼 수 있습니다.

RCM에서 위 payload(페이로드)라는 파일로 부팅시 스위치 공식 운영 체제 HOS에서 허용하지 않은 커스텀 펌웨어를 구동하게 되면 이후 홈브류들을 사용하는등의 사용자 마음대로 다룰 수 있게 만들어 줍니다.

⭐ RCM (리커버리 모드,복구 모드)

ReCovery Mode의 줄임말로 RCM이라 부릅니다.

이미 약어를 보면 모드를 포함한 표현이지만 국내에서는 통칭 RCM 모드로 부르고 있는 기능입니다.

스위치에서는 앞서 설명한 하드웨어 취약점이 발생 가능하게 만든 Tegra X1 칩셋의 일종의 USB 복구 모드 를 의미합니다.

모드칩과 같은 별도 장비 없이도 소프트웨어로 커펌이 가능한 모델은 제조일 기준 2018년 6월 이전까지 생산된 Erista 모델 뿐입니다.

이후에 출시된 Mariko 시리즈들은 에서는 모드칩 없이 RCM 진입이 불가능하며 구형과 신형의 RCM 진입 과정은 내부적으로 다릅니다.

⭐ RCM JIG (RCM 지그)

스위치의 우측 조이콘 레일에 장착하는 장치입니다.

사진처럼 1번 핀과 10번 핀 또는 7번10번 핀등을 쇼트 시켜 최종 목표인 복구 모드 이른바 RCM에 진입하게 만들어주는 도구입니다.

위 사진의 Ground(접지선)중 하나를 기준으로 10번 핀과 연결하는 식의 구조가 가장 흔하게 사용됩니다.

스위치 발매 초기에는 3D 프린터로 출력하거나 클립이나 쿠킹호일등으로 직접 원시적으로 만들어 사용하곤 했습니다.

이후 공장에서 본격적으로 제품을 찍어내기 시작하면서 저렴한 가격에 훌륭한 품질의 지그들이 출시되기 시작했습니다.

일부 사용자들은 지그 없이 우측 조이콘의 내부를 아예 개조하는 방식으로도 사용합니다.

사실 RCM 모드에 진입하기 위해서는 과거 아이폰이나 안드로이드 폰들의 복구모드진입 방법과 유사하게 조합키를 눌러줘야 했습니다.

일반적으로 전원볼륨+, 홈버튼 등의 세개의 버튼의 조합이나 물리적으로 홈 버튼이 없는 스위치의 경우 위처럼 지그를 사용해 기기의 홈버튼을 누른 것과 동일한 효과를 발휘할 수 있습니다.

RCM Loader (RCM 로더)

로더기라고 부르는 제품으로 RCM 모드에 진입한 스위치에 payload.bin(페이로드) 를 주입시켜 주는 동글입니다.

정말 단순하게 PC에서 TegraRCMGUI 등의 유틸리티로를 이용하면 페이로드 파일을 주입가능하지만 외부에서 기기가 방전된 상황등에서 사용하기 좋습니다.

단순한 구조로 알리익스프레스 등의 쇼핑몰에서 쉽게 1~2만원 선에 구매 가능하며 RCM 지그를 포함해서 판매하는게 일반적입니다.

초기 로더기들은 내부에 저장소가 있어 사용자가 직접 페이로드 파일을 복사해줘야 동작이 가능했으나, 이후 출시된 개선판 모델들은 SD 카드payload.bin 파일을 찾아 자동으로 주입하도록 수정되었습니다.

모드칩을 설치한 신형 스위치들의 경우, 구조상 RCM 진입이 필수이기 때문에 애초에 위 기능을 내장하고 있습니다.

Boot Loader (부트로더)

부팅 가능한 시스템을 로드, 복제하며 페이로드 주입 등의 기능을 하는 기초 부팅 프로그램

듀얼 부팅시 PC에서 운영체제를 고르도록 만들어주는 Grub 같은 기능을 합니다.

실제 시스템으로 부팅하기 이전에 자유로운 행위가 가능한 영역이라고도 생각할 수 있습니다.

⭐ Atmosphere (아트모스피어)

GitHub - Atmosphere-NX/Atmosphere: Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.
Atmosphère is a work-in-progress customized firmware for the Nintendo Switch. - GitHub - Atmosphere-NX/Atmosphere: Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.

현재 닌텐도 스위치에서 사용하는 사실상 유일의 커스텀펌웨어(이하 커펌) 프로젝트입니다.

스위치의 하드웨어 취약점인 fusee-gelee 를 이용해 동작하는 휘발성 커펌으로 시스템 펌웨어와 함께 추가적인 모듈을 구동시켜 함께 사용이 가능하게 만들어줍니다.

기본적으로 불법으로 설치된 타이틀을 사용할 수 없도록 방지하고 있으며 순정 스위치에서 단순히 아트모스피어만 사용하는 경우 밴의 사유가 되지 않는다고 주장합니다.

불법 설치 타이틀을 우회해서 구동하도록 만드는 Signature Patch(시그니처 패치) 혹은 sys-patch(시스패치) 등이 등장하는 계기가 되기도 했지만, 본래 목적은 스위치에서 추가적인 다양한 홈브류들을 구동하기 위해서 개발되었습니다.

💡
특이하게도 아트모스피어의 이름은 지구의 대기라는 뜻으로 관련 시스 모듈들도 마찬가지로 지구와 우주사이의 계층을 이름으로 사용하고 있습니다.

⭐ Hekate (헤카테)

GitHub - CTCaer/hekate: hekate - A GUI based Nintendo Switch Bootloader
hekate - A GUI based Nintendo Switch Bootloader. Contribute to CTCaer/hekate development by creating an account on GitHub.

앞서 소개한 아트모스피어의 기능을 확장하고 날개를 달아주는 프론트 엔드입니다.

퓨즈 검사 우회OFW, CFW, Android, Linux 및 기타 페이로드를 주입할 수 있는 커스텀 부트로더로 사용합니다.

본래 스위치의 CFW인 아트모스피어의 옵션들이 별도의 UI 없이 설정 파일을 직접 텍스트로 수정해야 했으나 헤카테는 이를 좀 더 편하게 사용하기 위해 개발되었습니다.

Nyx라는 별도의 UI까지 추가로 적용되면서 터치 인터페이스와 조이콘을 이용한 조작까지 지원하고 있으며, 시스템 펌웨어 부팅 시점 이전에 동작하기 때문에 낸드조작인 AutoRCM이나 Lockpick_RCM 같은 별도 페이로드 주입이 필요한 작업을 편리하게 만들어 줍니다.

지금은 emuMMC(에뮤낸드)라는 시스템 낸드를 복제한 가상의 낸드를 SD 카드에 만들어 주는 기능을 사용하기 위해 반드시 필요한 구성이 되었습니다.

💡
헤카테는 그리스 신화 달의 여신으로 세 여인의 모습으로 구전되며 이는 위 이미지와 같습니다.
또한 경계를 관장하는 여신으로 정펌과 커펌의 교차로 역할을 하기에 붙여진 이름입니다.

Nyx(닉스)

헤카테의 기본 GUI의 이름 입니다.

💡
닉스는 밤의 여신으로, 헤카테의 어머니로 취급되기 때문에 GUI에 닉스의 이름이 붙여졌습니다.

⭐ 오토 RCM (AutoRCM)

방전되거나 전원 OFF 후 전원을 키면 RCM 지그 없이도 부팅시 바로 자동으로 RCM 모드에 진입하게 만들어주는 기능입니다.

본디 용도는 정펌으로 부팅되면서 스위 내부의 fuse(퓨즈) 라는 것이 상위 버전으로 타 버리게 되면 기기 다운 그레이드가 어렵기 때문에 이를 방지하기 위한 기능으로 개발 되었습니다.

그러나 부팅시 매번 RCM 지그를 연결하기 귀찮은 사용자들에게 선호되어버린 기능입니다.

정펌 부팅시에도 무조건 RCM 으로 진입되기에 부팅시 간혹 이 상태를 벽돌이 되었다고 잘못 판단하는 사용자들이 존재하기에 초심자의 입장에선, 골치 아픈 기능이기도 합니다.

초기 7.X 펌웨어 시절 AutoRCM으로 인한 배터리 드레인 이슈가 있어 위 기능을 사용하면 절전모드 상태에서도 배터리 소모가 빠르다는 내용이 있었습니다.

이는 오래전 이미 해당 이슈가 패치로 해결 되었기 때문에 지금은 편의 기능으로 사용해도 무관합니다.

💡
AutoRCM은 사실상 시스낸드 조작이나 다름없는 기능이지만, 이로인해 밴이 되었다는 사례는 아직까지 없습니다.

⭐ FAT32

오픈소스를 기반으로 하는 스위치 커스텀 펌웨어들은 마이크로 소프트의 라이센스가 있는 exFAT오픈소스화 해서 사용할 수 없으니, 당연하게도 FAT32를 사용할 수 밖에 없습니다.

스위치 출시 초기 기본 포맷 방식 역시 FAT32 기준이었기 때문에 exFAT을 적극 지원하는 지금도 호환성 문제가 없습니다.

SD 카드의 파일 시스템 방식으로 FAT32 가 구조상 더 안정적인 장점도 있지만, 이후 에뮤낸드 등의 프론트엔드로 사용하는 Hekate를 비롯한 커스텀 펌웨어 관련 모든 프로젝트들이 FAT32를 권장이 아닌, 강제하고 있으니 무조건 파일 시스템은 고민 없이 FAT32를 사용하시면 됩니다.

과거 SXOS 같이 라이센스를 무시하고 exFAT을 지원한다며 비공개 코드로 제품을 팔던 이들도 있었습니다만, 다른 이유로 지금은 모두 사라졌습니다. 😂

FAT32 VS exFAT 프레임 비교 Youtube 영상

exFAT

FAT32와 마찬가지로 SD 카드의 파일 시스템 방식이며 마이크로소프트가 개발했습니다.

보통 SD카드를 처음 구입 시, 기본 파일 시스템으로 설정되어 있으며 윈도우에서는 자사의 파일 시스템을 밀어주기 위함인지 32GB가 넘어가면 FAT32로는 아예 포맷을 하지 않습니다.

CFW(커스텀 펌웨어)를 설치할 스위치에서는 절대 사용하지 않는 파일 시스템입니다.

⭐ Serial Number (시리얼 번호)

스위치 본체 하단과 박스에 붙어있는 바코드 라벨에 인쇄되어 있는 기기 고유번호입니다.

기기에서 직접 본체 👉 설정 👉 시리얼 정보 메뉴에서도 확인이 가능합니다.

주민등록번호 같은 개념으로 기기마다 부여된 번호가 다르기 때문에 인증서와 같이 묶여서 닌텐도 측에서 기기 식별을 하기 위한 용도로 사용합니다.

위 시리얼 넘버 앞자리 일부분을 입력해 커펌이 가능한 패치 전 스위치인지 알아볼 수 있습니다.

커펌가능 시리얼 확인 사이트 👉 https://ismyswitchpatched.com/

Title ID,TID (타이틀 아이디)

게임에 부여되는 고유번호입니다.

타이틀의 버전을 의미하는 Build ID (BID)와는 다르게 업데이트 시에도 번호 값이 절대 변경되지 않습니다.

Build ID,BID (빌드 아이디)

Title ID (TID)와 같이 별도로 부여 되는 번호입니다.

타이틀 아이디와는 다르게 타이틀을 업데이트 할 때마다 번호 값이 변경되는 것이 특징입니다.

치트를 사용할때 특히나 중요한데 치트 파일을 사용하는 경우 업데이트마다 변경된 BID 값을 사용하려는 치트 파일 제목에 입력해야합니다.

⭐ prod.keys (통칭 키파일)

스위치의 모든 권한을 다루기 위한 사실상 마스터 키입니다.

일반적으로 기기에서 직접 Lockpick_RCM 등의 페이로드를 이용해 추출하게 되며 이를 이용해 암호화 된 타이틀을 구동할때 복호화 하는 용도로 사용됩니다.

Lockpick(락픽)을 통해 추출된 prod.keys는 SD카드의 switch 폴더에 자동으로 생성되며 타이틀 설치시 복호화를 위해 사용하게 됩니다.

CFW에선 보통 서명 우회 패치인 시그니처 패치(Signature Patch)와 함께 사용합니다.

title.keys (타이틀 키)

스위치에 현재 설치되어 있는 타이틀 정보를 담고 있는 키 파일입니다.

외부 스위치 에뮬레이터등 제한된 용도로 사용하며 일반적으로는 크게 필요하진 않지만 prod.keys 추출시 함께 SD 카드의 switch 폴더에 추출됩니다.

⭐ Sigpatchs, Signature Patch (시그패치)

시그니처 패치의 줄임말로 아트모스피어는 기본적으로 타이틀 구동시 서명을 체크하고 불법 설치한 타이틀을 구동하지 못하도록 되어 있습니다.

따라서 결국 불법으로 설치된 타이틀을 실행하지 못하는 문제를 무력화하기 위한 패치입니다.

prod.keys가 암호화를 복호화 하는 역할이라면 시그패치는 대표적으로 e숍 타입의 덤프 파일인 NSP등으로 설치한 타이틀을 실행할때 사용자의 구매 이력 체크를 우회하는 용도로 사용합니다.

⭐SysPatch, System Patch (시스패치)

ips 패치 파일 (시그패치)의 설치 필요 없이 시스템 자체를 패치하는 것으로 인증서가 없는 롬 파일 구동을 가능하게 해줍니다.

시그니처 패치가 매 업데이트 버전마다 필요했다면 시스패치는 내부적인 변경사항이 없다면 매번 바꿀 필요가 없다는 장점이 있습니다.

앞서 소개한 시그패치와 같은 용도로 함께 병행해서 사용도 가능합니다.

cert (인증서)

스위치 eMMC 내부에 저장되어 있는 기기마다 고유하게 존재하는 인증서입니다.

시리얼 정보와 함께 PRODINFO(CAL0) 파티션에 저장되어 있으며 게임 카트리지에도 마찬가지로 고유한 인증서 정보가 존재합니다.

인증키는 고유키나 마찬가지로 이를 기준으로 밴 등의 작업 시 기기나 카트리지를 특정할 수 있습니다.

Pirate game, Cracked game (불법 롬)

타이틀을 정품으로 구매하지 않고 불법으로 다운로드한 게임을 뜻합니다.

복돌판, 불법 게임, 해적판, 덤프등 모두 불법 롬을 지칭하는 단어로 PC에서 롬 파일을 다운로드해 USB를 연결하고 스위치로 전송시켜 설치하는 식으로 사용합니다.

틴포일이라는 홈브류는 커스텀 상점을 지원하기 때문에 연동해둔 프리샵 등에서 무선으로 마치 앱 스토어 처럼 바로 다운 가능하기도 합니다.

세이브 에딧과 모딩, 유저 한글패치등을 적용하기 위해 커스텀 펌웨어를 설치하는 사용자도 있지만, 위 불법 롬 구동을 위해서 커스텀 펌웨어를 설치하는 경우가 많습니다.

Freeshop, Tinfoil (프리샵, 틴포일)

스위치에 걸출한 홈브류인 Tinfoil(틴포일)CFW 를 사용하는 스위치의 종합 파일 매니저입니다.

로컬 설치부터 네트워크 설치까지 자체 타이틀 DB와 함께 다양한 설치 방법과 저장소를 연동이 가능합니다.

스위치 내에서 바로 불법 롬을 무선으로 다운로드할 수 있게 하는 등의 프리샵들이 위 틴포일의 방식을 사용하면서 아이러니하게도 프리샵의 대명사가 되어버렸습니다.

NSP

E-Shop(이숍) 타입의 Dump(덤프)된 파일로 스위치의 대표 기본 롬 파일 형식입니다.

이숍 다운로드 컨텐츠의 립버전이라 생각하면 됩니다.

소프트 본편인 [v0] 버전과 함께 업데이트, DLC등의 파일이 각각 별도로 존재하며, 순서는 상관 없으나 각각 따로 설치해야합니다.

NSZ

앞서 설명한 NSP와 동일한 형식이지만 게임 카트리지가 차지하는 불필요한 남는 공간을 잘라내고 nca 파일을 재구축함으로써 불필요한 용량을 제거한 파일입니다.

추가로 재 압축하여 롬 파일의 용량을 상당히 줄일 수 있습니다.

XCI

NSP와는 반대로 물리 카트리지의 덤프 파일로 커스텀을 통해 소프트 본편, DLC, 업데이트를 통합할 수 있습니다.

NSP와 달리 과거 유료로 판매되었던 CFWSXOS 한정으로 설치 없이 바로 구동도 가능했던 파일 형식입니다.

물론 직접 실행시 에뮬레이트 방식이라 직접 설치된 타이틀 구동에 비해 추가적인 로딩 이 발생한다는 차이가 있었습니다.

SXOS는 이미 시장에서 사라졌지만 XCI 자체는 타이틀의 본편[v0], 업데이트, DLC등을 하나의 파일로 통합할 수 있었기 때문에 여전히 사용되고 있습니다.

과거에는 SXOS만 사용이 가능했으나, XCI 설치는 e숍 타입의 NSP와 같은 방식으로 대부분의 홈브류들이 호환 설치를 지원하게 되면서 사실상 NSP와의 경계가 무너졌습니다.

기기에 설치하는 경우 NSPXCI는 결과적으로 동일한 e숍 타입으로 전환되어 큰 차이가 없습니다.

새롭게 등장한 러시아의 Mig Switch(미그 스위치) 경우는 조금 다르게 카트리지 덤프를 실물 기기로 직접 실행하는 구조라 XCI 자체를 그대로 카트리지처럼 구동할 수 있습니다.

XCZ

NSZ와 마찬가지로 XCI 파일의 불필요한 용량을 제거하고 재압축한 버전으로 좀 더 용량이 가볍습니다.

NRO

스위치의 홈브류에서 주로 사용하는 에뮬레이터 실행 파일로 스위치, Yuzu, Ryujinx 등으로 실행할 수 있습니다.

NRO 파일의 대표 이미지는 256x256 JEPG 로 교체하여 컴파일할 수 있습니다.

Cartridge Dump (카트리지 덤프)

덤프(dump)라는 것의 정의 자체가 복사 내지는 복제이기 때문에 카트리지 덤프라고 하면 스위치 카트리지 내에 있는 게임 데이터를 추출하는 것 입니다.

이를 통해 NSP등의 설치 가능한 형식의 파일로 추출하는 작업을 뜻합니다.

스위치에서는 nxdumptoolDBI, Tinfoil등의 홈브류들을 이용하면 카트리지 덤프가 가능합니다.

대표적인 카트리지 덤프 확장자가 XCI 입니다.

LayeredFS (레이어드 파일 시스템)

아트모스피어의 기본 모듈로써 타이틀 실행시 함께 추가적으로 실행되는 호환 파일 시스템 레이어입니다.

일반적으로 리눅스에서도 위와 같은 표현을 사용하며 특정 파일의 경로를 다른 위치로 바꿔치기하는 기능입니다.

따라서 위 LayerdFS를 이용해 게임 구동시 파일 시스템 경로를 바꿔치기 하는 식으로 원본 게임 파일이 아닌 패치되어 변조된 파일로 사용할 수 있기 때문에 모딩이나 한글패치를 하는 유저들에겐 필수적인 기능입니다.

한때 아트모스피어의 불법 롬 실행시 서명을 체크하는 것을 우회하는 기능으로 악용된 적이 있지만, 시그니처 패치 출시 이후로는 다시 모드와 한글 패치등의 기능으로 사용되고 있습니다.

⭐ SysNAND, System NAND (시스낸드)

스위치에 설치된 기본 32GB 이며 최근 출시된 OLED등의 기기는 64GBeMMC 저장소로 스위치의 기본 저장소를 의미합니다.

보통 시스낸드 커펌이라고 하면, 위 순정 롬이 설치된 기기에 커스텀 펌웨어를 구동하는 것을 뜻합니다.

불법 롬만 설치 하지않는다면 시스낸드 커펌 상에서 인터넷 연결을 한 채로 홈브류 실행하거나 에딧한 세이브 파일을 적용시키고 타이틀을 플레이하기도 합니다.

이는 경우에 따라 밴을 당하지 않는다고 하지만 이 바닥은 내가 당하기 전엔 어느 누구도 믿어서는 안됩니다.

💡
당연하게도 시스낸드 커펌 자체는 절대 추천하지 않습니다.

⭐ EmuNAND, emuMMC(에뮤낸드)

하드 디스크 파티션을 나누듯이 SD 카드에 논리적으로 순정 롬(정펌)을 복사한 가상 저장소입니다.

원본 eMMC를 복제하는 과정이기에 생성하기 위해선 사전에 최소 30GB 이상의 저장소 공간이 반드시 필요하며 최근에는 8GB 등으로 줄여서 만드는게 유행하기도 했습니다.

OLED 버전 스위치의 경우에는 64GB의 용량을 기본으로 하기 때문에 마찬가지로 약 60GB 가량의 용량이 필요합니다.

SD 카드에 만들어서 사용하기 때문에 순정 롬(정펌,시스낸드 커펌)과는 아예 별개의 영역으로 취급합니다.

PC에 듀얼 부팅 환경을 구축하면 두 OS가 논리적으로 서로 다른 별개의 영역에서 동작을 하게 되는 것과 비슷한 원리입니다.

실수로 펌웨어 업데이트를 진행해 시스낸드 커펌에 진입 불가능해져도 에뮤낸드는 별개라 영향을 전혀 받지 않기 때문에 CFW 구동이 가능합니다.

이렇듯 서로 다른 영역인 만큼 시스낸드와 에뮤낸드 따로 펌웨어 업데이트와 파일 관리를 해줘야 합니다.

시스낸드와 순정 롬(정펌)에서는 정품 게임으로 온라인 플레이를 즐기고 에뮤낸드에서는 불법 롬을 설치하는 등의 사용을 가능케 만들어 줍니다.

Stock (스톡)

주식이란 뜻도 있어 헷갈리기 쉬우나, Hekate(헤카테)launch(실행) 메뉴에서 파생된 단어로 커스텀 펌웨어 모듈을 모두 끄고 오로지 순정 시스낸드로 구동되는 정펌을 의미합니다.

eMMC (embedded Multi-Media Card)

스마트폰, 태블릿, 노트북에도 들어가며 SSDHDD의 중간 성능을 가지고 있는 낸드 플래시 메모리.

스위치 1세대에서는 기본 32GB가 설치되어 있으며 여기엔 스위치의 OS와 함께 세이브 파일과 구매이력, 타이틀 설치등에도 사용됩니다.

시스낸드라 표현하는 것이 👉 eMMC 를 의미한다고 보아도 무관합니다.

eMMC 용량 32GB 32GB 32GB 64GB
제조사 Patched Erista Icosa Mariko Iowa Mariko Hoag Mariko Aula
TOSHIBA
SK hynix
SAMSUNG

⭐ eFuse (퓨즈)

물리적으로 스위치 내부에 설치되어 있는 퓨즈로 전자제품에 들어가는 그 과전압 방지용 퓨즈와 유사한 방식으로 작동합니다.

스위치에서는 업데이트 이후 부팅시 자동으로 태워지며 다운그레이드 방지용으로 사용됩니다.

32다발이 존재하지만 스위치가 죽을때까지 태워도 될만큼 갯수는 넉넉하게 준비되어 있다고 합니다.

펌웨어 업데이트 후 최초 기동시 위 퓨즈가 해당 버전만큼 물리적으로 타 버리기 때문에 한번 태우면 돌이킬 수 없습니다.

이런 특성을 이용해 사용자가 임의로 기기 다운그레이드를 하는 경우 연소된 퓨즈의 갯수가 펌웨어 버전에 지정된 갯수와 일치하지 않으면 부팅이 되질 않습니다.

결국 사용자의 강제 펌웨어 다운그레이드를 방지하기 위한 장치입니다.

구형기기의 경우 RCM 을 이용하는 취약점을 이용하면, 위 퓨즈 체크를 무시하고 부팅이 가능하기 때문에 에뮤낸드가 정펌보다 버전이 높아도 문제가 없습니다.

그러나 모드칩이 달린 신형의 경우는 위 퓨즈 체크를 무조건 무시할 수 없습니다.

최신 버전 펌웨어(HOS)가 출시될 때 항상 시스낸드 버전과 에뮤낸드 버전을 동일하게 운용하는 편이 가장 문제가 없습니다.

Warmboot Mariko (웜부트 Mariko)

모드칩이 설치된 Mariko 시리즈 기기에서는 구형과 달리 eFuse(퓨즈) 체크 우회가 불가능한 경우가 있습니다.

펌웨어 버전이 실제 타버린 퓨즈 수와 일치하지 않는다면 정상적으로 부팅이 되지 않습니다.

정상적인 부팅을 위해서는 퓨즈 수와 동일한 버전의 펌웨어와 아트모스피어 혹은 해당 펌웨어 버전에 맞는 캐시 파일이 필요합니다.

에뮤낸드보다 먼저 시스낸드를 단독으로 업데이트하고 퓨즈를 미리 태워버렸을 때에도 발생하니 웜부트 캐시를 미리 준비한게 아니라면 업데이트 시 항상 주의가 필요합니다.

FTP (File Transfer Protocol)

무선으로 파일을 전송하기 위해 사용하는 대표적인 프로토콜입니다.

과거 스위치에서는 파일 전송을 위해서 굳이 SD 카드를 분리하는 불편함을 없앨 수 있다는 점 때문에 선호되곤 했습니다.

FTPD 등의 홈 브류가 가장 유명하며 과거 SXOS 같은 경우 옵션에서 FTP SERVER 항목을 활성화하는 것으로 간단히 사용도 가능했습니다.

MTP (Media Transfer Protocol)

FTP와는 달리 사진, 동영상등의 미디어 파일들을 옮기기 위해 개발된 프로토콜로 스마트폰을 PC에 연결하듯이 파일 전송을 위해 간단하게 사용할 수 있고 OS 를 가리지 않아 더욱 편리한 방식입니다.

과거엔 nxmtp라는 홈 브류를 사용하여 PC에 스마트폰 처럼 연결하곤 했으나, 개발이 중단된 이후 mtp-server-nx라는 홈브류가 등장해 인기가 있었습니다.

그러나 현재는 DBI가 가장 발전한 형태로 MTP를 지원하고 있습니다.

⭐ Homebrew (홈브류)

단어 그대로 홈브류는 집에서 담근 맥주라는 뜻으로 사용자가 직접 만든 수제품이라는 의미도 있습니다.

커스텀 펌웨어에서는 제조사가 제공하지 않는 사용자 정의 기능을 직접 만들어서 제공할 때 홈브류라 표현하며 사실상 커스텀 펌웨어(CFW) 가 존재하는 이유입니다.

OS와 함께 구동되는 SysModule(시스 모듈) 부터 다양한 전용 앱까지 모두 홈브류라 표현하며 이들을 구동하기 위해 커스텀 펌웨어를 설치합니다.

⭐ Homebrew Menu (홈브류 메뉴)

커스텀 펌웨어가 구동중인 상태에서 메인화면에 있는 앨범 아이콘을 이용해 진입할 수 있는 특별한 메뉴입니다.

아트모스피어의 경우 기본 값이 R 버튼을 누른채로 A 버튼으로 실행이지만 올인원이나 설정에 따라 다양한 변칙이 존재합니다.

따라서 앨범을 열면 바로 실행되거나 A 버튼을 길게 누르는 등으로도 진입합니다.

스위치에 설치된 다양한 홈브류들을 구동할 수 있는 일종의 허브 역할을 합니다.

⭐ Applet Mode (애플릿 모드)

홈브류 메뉴의 기본 구동방식으로 OS에 기생해서 제한된 메모리로 가볍게 실행되는 프로그램 모드를 의미합니다.

이는 게임 실행과는 달리 메모리(RAM) 제한이 있기 때문에 일부 홈브류는 애플릿 모드에서 구동시 메모리 부족으로 실행시 종료해버리거나 아예 사용을 못하게 만들기도 합니다.

Full Memory Access Mode (풀 메모리 엑세스 모드)

애플릿 모드가 OS 위에서 기생해서 제한된 메모리 위에서 구동하는 모드였다면, 반대로 풀 메모리 엑세스 모드는 홈브류 실행시 스위치의 전체 메모리를 사용 가능합니다.

이는 일종의 타이틀로 속여서 구동시킴으로써 가능한 것으로 스위치에 설치된 4GB (게임시 보통 3기가를 사용) 메모리(RAM)를 거의 모두 사용할 수 있게 만들어 줍니다.

따라서 모든 홈브류들을 물리 메모리 용량이 제한되지 않는 한 제약 없이 사용가능합니다.

커스텀 펌웨어에서는 홈브류를 nro 타입을 사용하지만 별도로 forwarder(포워더) 라는 일종의 바로가기 NSP 형식으로 만들어서 직접 기기에 설치하면 타이틀처럼 실행이 가능합니다.

아트모스피어 기본 옵션을 보자면 기존에 설치된 타이틀 중 아무거나 L 키를 누른채로 실행 시 풀 메모리 상태의 홈브류 메뉴로 진입하는 기능이 숨어 있습니다.

아트모스피어의 설정 파일인 override.ini 를 수정하면 진입 키를 변경할 수도 있습니다.

Theme (테마)

스위치에는 공식 테마 기능이 없기 때문에, 사실상 커스텀 펌웨어 기기에서만 사용 가능한 기능입니다.

과거 3DS 시절에 있던 기기 배경화면 또는 아이콘을 꾸미는 기능등을 사용이 가능하면 현재 버전의 테마를 복사해 다른 경로로 바꿔치기하는 식으로 동작하기 때문에 펌웨어 버전에 매우 민감하게 동작합니다.

NXThemes Installer등의 홈브류를 이용하면 쉽게 커스텀 테마를 적용시킬 수 있으며 이를 사용하는 경우 업데이트 시 문제가 될 수도 있습니다.

Overclock (오버클럭)

PC에서의 오버클럭의 의미와 동일하며 스위치 성능을 한계까지 끌어 올리기 위해 사용합니다.

시스클럭(sys-clk) 홈브류가 대표적이지만 최근엔 이를 자동화한 홈브류들도 출시되고 있습니다.

편리하게 커스텀펌웨어 상에서 단축키를 이용해 오버레이 메뉴를 제공하는 Tesla Menu(테슬라 메뉴) 혹은 Ultra Hand(울트라 핸드) 안에서도 이용할 수 도 있습니다.

Under Volting (언더볼팅)

전압 다이어트라고 불리며 클럭과 전압을 동시에 낮춰서 최대한 저소음 및 배터리 시간을 극한으로 늘리는 방법을 추구하는 것을 언더 클럭이라고 합니다.

여기서 언더볼팅은 기존 클럭을 유지시키면서 최대한 전압을 낮춰 성능은 유지하고 배터리 효율을 늘리는 방식입니다.

💡
최근 케피르에 탑재된 4IFIR 모듈이 모드칩 기기들에서 위 동작을 기본 옵션으로 가져가며 논란이 되었습니다.

Emulator (에뮬레이터)

에뮬레이터는 대표적으로 RetroArch등의 대표 홈브류가 존재합니다.

스위치의 성능 부족 문제도 있지만 사용하는 Tegra X1 칩셋이 ARM 기반이기 때문에 일반적인 PC에서의 에뮬과는 달리 호환성 문제가 있습니다.

파이널 번 알파와 함께 PSP까지는 간신히 구동하는 모습을 보이기도 하며 앞서 소개한 오버클럭을 통해 좀 더 쾌적하게 즐길 수도 있습니다.

Mod (모드)

아트모스피어의 LayeredFS(레이어드 파일 시스템) 모듈을 이용해 게임의 요소를 변형시키는 작업을 의미합니다.

예를 들자면 야생의 숨결에 링클 모드를 적용시키면 링크가 아닌 링클이라는 이름의 여캐로 플레이할 수 있게 된다거나 휴대모드 30 프레임 게임을 강제로 60 프레임으로 구동이 가능하게 만들어 줍니다.

한글패치 (한패)

줄여서 한패라고 많이 부르며, 국내에 정식 발매되지 않았거나 정식 발매됐어도 한글화가 이루어지지 않은 게임들은 유저 한글화 패치들이 존재합니다.

커스텀 펌웨어에서 사용시 싱글 게임의 경우 밴 사례가 크게 없지만, 스플래툰2 같은 온라인 멀티 게임에 한글 패치 적용 후 플레이하다 밴 당한 사례가 있으니 정펌에서 사용 시 주의가 필요합니다.

Save Editor (세이브에디터)

게임 세이브 파일을 조작해서 치트등을 적용하는 홈브류 또는 프로그램입니다.

보통은 SD 카드에 세이브를 백업하고 PC에서 조작하는 포켓몬 계열의 PKHex가 가장 유명합니다.

기기 내에서 직접 세이브 에딧이 가능한 CheckPoint, Edizon, JKSV 등의 홈브류들이 있으며 시스낸드 커펌에서 사용하는 경우 각별한 주의가 필요합니다.

Edit (에딧)

앞서 소개한 세이브 에디터와 같은 의미로 치트나 세이브 에디터를 이용해 게임의 세이브 파일을 수정하는 행위입니다.

일부 타이틀의 경우 예:동물의 숲 등 세이브 파일 변조를 체크해 기기를 시키는 경우도 있으니 마찬가지로 사용에 주의가 필요합니다.

대표적으로 Check Point 와 같은 홈브류나 PokeHex 같은 프로그램이 있습니다.

Cheat, Ram Cheat (치트, 램 치트)

세이브 파일에 치트를 적용하는 세이브 치트와 현재 실행중인 타이틀의 메모리를 해킹 후 추출해 낸 치트 코드를 입력하는 램 치트로 분류됩니다.

테슬라 메뉴의 오버레이 메뉴 L키+↓+L3 클릭 등을 이용해서 게임 내에 바로 적용시키는 램 치트가 대표적이며 기존 세이브 에디터보다 사용하기 간편하기 때문에 사용자들에게 선호되고 있습니다.

Save Backup (세이브 백업)

스위치의 낸드에 저장되는 세이브 데이터를 SD 카드의 특정 폴더로 복사하는 행위입니다.

스위치에선 흔히 에딧을 위해 기기 세이브를 추출하는 경우에 사용합니다.

⭐ NAND Backup (낸드 백업)

커스텀 펌웨어 설치 시 순수하게 사고방지를 위해 보험으로 원본 낸드를 백업하는 행위입니다.

시스낸드 백업과 에뮤낸드 백업 모두 Hekate헤카테에서 작업이 가능합니다.

만약 기기가 커스텀 펌웨어등으로 문제가 생기는 경우 유일한 복구 방법으로 사용되며 최근에는 에뮤낸드 업데이트 시에도 사용합니다.

문제가 발생하는 경우 복구하면 어떠한 상황에서든 주요 데이터의 원복이 가능하기 때문에 필수 코스로도 꼽히고 있습니다.

⭐ Ban (밴)

문자 그대로 닌텐도에게 쫒겨나는 것입니다.

닌텐도 스위치의 밴은 크게 아래의 두 종류로 알려져 있습니다.

밴 이름 증상
Soft ban (소프트 밴) 밴 당한 해당 게임 온라인 플레이 불가, 닌텐도 어카운트가 밴당하는 경우 계정을 교체하지 않으면 닌텐도 서버와의 통신불가
Hard Ban (하드 밴) 기기자체가 밴 되는 것으로 온라인 플레이를 비롯해 기기 업데이트까지도 불가능, 기존에 연동된 어카운트의 해지도 불가능, 타기기에 해당 어카운트 연동시 연좌제로 함께 밴

PRODINFO (CAL0)

스위치의 내장 메모리 영역 eMMC에 저장된 기기 고유 정보와 인증서 파일입니다.

커스텀 펌웨어 구동시 아트모스피어 하위 backup 폴더에 자동으로 백업됩니다.

일반적인 방법으론 절대 조작 불가능한 영역으로 아트모스피어는 위 내용을 건드리지 못하도록 안전하게 쓰기를 막아 두었었습니다.

CAL0 파티션에는 기기 고유의 시리얼 번호와 기기 인증서가 함께 저장되어 있으며 사용자가 직접 만들어 낼 수는 없는 데이터입니다.

스위치 펌웨어 8.X 시절 위 파티션의 시리얼 번호를 변조 값으로 바꾸면 밴을 피할 수 있다는 것이 알려지며 해당 파티션을 조작하는 것이 선풍적인 인기를 끌었습니다.

이로 인해 일부 초보 사용자들은 백업 파일을 잃고 기기를 셀프 밴시키게 만든 주범이기도 한 영역입니다.

후술하겠지만, 현재는 위 CAL0 파티션을 직접 수정하는 것이 아닌 일종의 소프트웨어 방식으로 조작하고 있습니다.

비교적 기존보다 안전하게 시리얼을 변조하는 아트모스피어의 기본 모듈인 엑소스피어(exosphere)를 사용합니다.

😱 Incognito (인코니토)

기기의 시리얼 넘버와 고유의 인증서를 Blank(빈값)로 변조해버리는 기능을 제공하던 홈브류입니다.

인증서와 시리얼을 날려버리면 닌텐도 측에서 내 기기를 식별할 수 없게 되어버려 사실상 기기 밴이 불가능해지는 것을 이용해 밴 방지로 사용했습니다.

위 환경에서는 반대로 정품으로도 멀티 플레이 등을 할 수 없게 됩니다.

실제 물리 파티션인 CAL0 파티션을 건드리기 때문에 사실상 밴으로부터 가장 안전한 기능이며 자체적으로 닌텐도 서버와의 통신만 차단하는 선택적 오프라인 모드가 가능했습니다.

그러나 시스낸드에 적용 후 따로 복구 파일(prodinfo.bin)을 백업해두지 않은 상태에서 SD 카드에 생성 되었을 백업파일을 생각하지 못하고 데이터를 삭제하거나 포맷해 버리리게 되는 경우 큰 문제가 되었습니다.

💡
인증서 복구 파일을 잃고 영영 복구 불가능한 셀프 밴 기기가 되어버리는 매우 위험한 기능이기에 현재는 사용하지 않습니다.

⭐ exosphere (엑소스피어)

Incognito(인코니토) 셀프밴 대참사를 보며 아트모스피어 개발자가 만들어준 선물같은 시스템 모듈입니다.

마찬가지로 시리얼 넘버와 인증서를 변조해 주는 기능으로 얼핏보면 인코니토와 기능적인 차이는 없어 보이지만, 가장 큰 차이는 구동 방식입니다.

인코니토가 실제 물리적인 파티션의 내용을 조작하는 위험한 기술이었다면, 엑소스피어는 마치 스위치의 에뮤낸드처럼 소프트웨어적인 기술로 시리얼을 변조합니다.

따라서 사용자에게 리스크가 없다는 것이 가장 큰 장점이며 아트모스피어 본진에서 직접 제공하는 기능으로 신뢰를 더했습니다.

일부 아트모스피어 기반 AIO(ALL IN ONE 통합팩) 들은 위 기술을 패시브로 적용해서 커스텀 펌웨어 구동시 사용자의 기기를 보호합니다.

모드 칩 (Mod chip)

하드, 소프트웨어 취약점을 통해 커펌이 불가능한 보완/수정 버전 기기의 강제 글리칭을 도와주는 별도의 외부설치 물리 칩을 모드칩이라고 합니다.

기존 Fusée Gelée와 같은 취약점을 인지한 닌텐도는 Patched Erista Icosa 부터 복구모드 차단을 위해 칩셋의 구조를 변경하고, 거기에 더해 물리적으로 보완한 칩셋인 Tegra X1+Mariko 시리즈에 도입하였습니다.

따라서 낸드와 칩셋 솔더링을 통해 강제로 RCM 모드에 진입해, 페이로드를 주입시키는 SX, Hwfly 등의 칩이 등장하였습니다.

현재의 경우 기존 독점 시장의 모드칩들은 모두 사장되었으며, 오픈 소스 펌웨어인 PiCoFly 를 사용하는 RP2040 기반의 4달러 정도의 저렴한 모드칩이 출시되었습니다.

모드 칩에 대한 오해

모드칩의 동작 구조는 간략히 설명하면 다음과 같습니다.

전원 입력 모드칩 기동 > 글리칭 > 모드칩 종료 > 헤카테 부팅 > 스위치 시스템 기동

💡
모드칩은 전원 입력시 단 한번의 글리칭 동작을 진행하고 이후 종료됩니다.

모드칩은 전원 인가시 1회만 동작하기에 그 외에 다른 사이드 이펙트는 모드칩과 관련이 없습니다.

글리칭 오류로 인한 낸드 손상 등의 흔치 않은 파손 외에 대부분의 모든 오류는 사용자의 잘못입니다.

혹은 높은 확률로 미숙한 실력자의 잘못된 모드칩의 설치를 원인으로 보고 있습니다.