Moonlight-Switch

서랍장에 잠든 스위치, Moonlight를 사용하여 Fake UMPC로 인생 2회차 시작하기

※ 본 글은 CFW(커스텀펌웨어) 환경에서의 기능에 대한 정보 공유를 목적으로 작성되었으며, 불법 복제, DRM 우회, 무단 수정 등 위법 행위를 절대 권장하지 않습니다.

모든 기능 사용은 개인의 책임 하에 이루어져야 하며, 이에 따른 기기 손상, 계정 정지 등 어떠한 불이익에 대해서도 작성자는 책임지지 않습니다.

정품 소프트웨어 및 콘텐츠는 반드시 정식 경로를 통해 구매 및 이용하시기 바랍니다.

또한, 본 포스트는 닌텐도 및 관련 기업과는 아무런 관련이 없습니다.


※ 본문을 읽기 전, Moonlight를 스위치에서 실행하려면 반드시 풀 모드에서 실행해야 합니다. 애플릿 모드가 뭔지, 홈브류 설치 방법이 궁금하다면 아래 글을 참고하세요. 또한, 호스트 PC의 GPU가 Sunshine을 지원하는지도 확인해주세요!
DBI
DBI 인스톨러 통해 홈브류를 설치해보고, 실행해보자

필수 준비물 (스위치 기준)

항목상세 내용
닌텐도 스위치CFW(커스텀 펌웨어)가 적용된 Nintendo Switch 본체
네트워크 환경안정적인 Wi-Fi 연결 (5GHz 권장) 또는 유선 LAN 연결
고사양 PC게임을 실행할 고성능 PC (NVIDIA GPU 권장)
Releases · XITRIX/Moonlight-Switch
Moonlight port for Nintendo Switch. Contribute to XITRIX/Moonlight-Switch development by creating an account on GitHub.

Nintendo Switch용 Moonlight-Client

※ 스위치에 설치 할 홈브류 입니다.
설치방법은 포스트 상단의 DBI 홈브류 설치법을 참조해주세요
Releases · LizardByte/Sunshine
Self-hosted game stream host for Moonlight. Contribute to LizardByte/Sunshine development by creating an account on GitHub.

Game Remote Streaming Server App

※ 게임 화면을 스위치로 송출 할 때 사용할 프로그램입니다.
Releases · nefarius/ViGEmBus
Windows kernel-mode driver emulating well-known USB game controllers. - nefarius/ViGEmBus

Virtual Joystick App

※ 닌텐도 조이콘을 윈도우OS에서 사용할 수 있도록 하는 프로그램입니다.

NVIDIA GPU (NVENC 지원 필요)

  • GeForce GTX 600 시리즈 이상 (Kepler 아키텍처부터)
  • GTX 900, 10xx, 16xx 시리즈
  • RTX 20xx, 30xx, 40xx 시리즈 (권장)
  • NVIDIA Quadro / RTX A 시리즈

AMD GPU (VCE/VCN 지원 필요)

  • Radeon R9 200, R7 300 시리즈 (VCE 2.0)
  • RX 400, 500 시리즈 (VCE 3.0)
  • RX Vega, RX 5000, 6000, 7000 시리즈 (VCN 기반, 권장)

Intel iGPU (Intel Quick Sync)

  • Intel 6세대(Core i3/i5/i7-6xxx) 이상 iGPU
  • 10세대 이상에서 성능 향상됨

이 홈브류를 소개하자면, 닌텐도에서 PC게임을 실행 하도록 하는
제가 스위치에 CFW를 올리게 된 가장 큰 이유입니다.

20대 중반 남성이였던 저에겐 닌텐도에서 발매된 게임은 제 취향과 맞는 게임이 많이 없어서 그런지, 구매해서 3개월 정도 즐기다 금방 질려서 서랍장 엔딩이였습니다.

그렇게 스위치가 있는 것도 잊혀갈 때 쯤.

어느덧 저도 30이 코앞을 둔 나이가 됐네요.

시험 전날이여도, 술마시고 밤샘 PC를 해도 졸리지 않던 10대 20대 때와 비교하면 PC 앞에 앉자마자 온몸에 피로가 몰려오는 느낌입니다.

일 마치고 집 도착해서 '오늘은 뭘 할까' 고민하다가, 의자에 앉는 순간 팍 식어버리는... 이제는 귀찮음이 게임에 대한 욕구마저 눌러버리는 것 같습니다.

출처:ITSub잇섭

가끔 알고리즘을 타고 흘러들어오는 스팀덱이나 UMPC 영상을 보며, '저걸로 침대에 누워서 게임하면 딱인데...' 하는 생각이 들곤 했습니다.

하지만 UMPC를 구매하자니, 가격도 비싸고 세월이 지나면 게임 최소사양도 높아지면서 또 구식기기로 전락할테고...

출처: Seeweb TV

이런 안드로이드용 조이스틱 제품들도 많긴합니다만..

조이콘이 양쪽에 슬라이드 방식인 스위치도 덜렁거림이 느껴지는데

대부분 제품들이 영상과 같은 거치식 방식이다 보니,
떨어질 것 같은 느낌과 조작감이 별로일 듯 하고, 가격에 따라 퀄리티 평가도 너무 들쑥 날쑥이네요

그렇다고 NVIDIA GeForce NOW나, Microsoft Xbox Cloud Gaming 같은
기업형 클라우드 게임 스트리밍 서비스는

TV랑 호환 컨트롤러만 있다면 플레이가 가능하지만
구독형 유로 서비스이면서, 해당 기업에서 제공하는 게임 한정에

인풋랙이나 딜레이도 가끔 보이고 별로 다 싶었죠

그러다 문득, 방 한켠에 먼지 쌓인 그 녀석이 떠올랐어요.

"출시일로 벌써 8년이나 지난 지금이
이 녀석의 황금기일 것이다."

일부 몇몇 분들에게는

'엥 이게 무슨 소리야?' ,'왜 이제와서 뒷북이냐?' ,
'곧 스위치2도 출시를 앞뒀는데 무슨?'

같은 의문이 들거에요.

하지만 말이죠,
저처럼 귀차니즘에 찌든 사람을 위해,

조금이라도 더 극한까지 기기의 성능을 쓰기 위한 고군분투하는 수많은 천재들이 전세계에 많습니다.

덕분에 지금의 스위치는 유용한 것들이 잔뜩 만들어져서, 아주 알차게 익은 녀석이 되어 있을 테니까요.

출처: OpenCourse

※ OpenCourse 블로거님의 영상에서는 NVIDIA GameStream (엔비디아 게임 스트림)를 사용하여 스트리밍을 하지만, 해당 기능이 2023년 공식 지원 종료됨에 따라 본문에서는 Sunshine을 기준으로 설명하겠습니다.

아니나 다를까, 구글링을 조금만 해봐도 글들이 많더라구요,
OpenCourse 블로거님의 문라이트 실행 영상을 보고 이거다 싶었죠 ㅎㅎ

네트워크 환경에 따라 다르겠지만,

영상에서 보면 화면 출력과 조이콘 인풋랙이나 딜레이도 거의 없고,
외부에서 게임을 하려는건 아니니,

UMPC와 같은 고성능 하드웨어가 있는 비싼 기기보다는,
저렴한 스위치로 PC게임을 스트리밍 플레이로만으로 충분하다 생각이 들었어요.

"근데.. 문라이트가 뭐고
스트리밍 플레이가 뭐에요?"

걱정마세요 밑에서 설명드릴게요!


게임 스트리밍 시스템 원리

문라이트(Moonlight)

  • PC에서 실행 중인 게임을 다른 기기에서 스트리밍하여 플레이할 수 있게 해주는 앱입니다.

    쉽게 말해, 이 앱을 설치하면 다른 기기에서 원격으로 모니터, 키보드, 마우스처럼 동작하게 되어, 게임을 마치 PC에서 하는 것처럼 즐길 수 있게 됩니다.

문라이트 구동 가능 기기 목록

기기 종류운영체제 / 플랫폼문라이트 지원 여부비고
Windows PCWindows 7 이상✅ 지원됨클라이언트로 사용 가능
macOSmacOS 10.8 이상✅ 지원됨App Store 또는 공식 사이트에서 다운로드 가능
Linux PCUbuntu, Arch 등✅ 지원됨Flatpak, Snap 또는 패키지 매니저로 설치 가능
Android 기기Android 5.0 이상✅ 지원됨Google Play에서 제공
iOS 기기iOS 10.0 이상✅ 지원됨App Store에서 제공
Raspberry PiRaspberry Pi OS✅ 지원됨moonlight-embedded 이용
Steam DeckSteamOS (Linux 기반)✅ 지원됨Flatpak 등으로 설치 가능
ChromeOS최신 버전✅ 지원됨Android 앱 또는 Linux 앱 사용 가능
Smart TVAndroid TV / LG webOS 등⭕ 일부 지원Android TV에서 사용 가능, 그 외는 우회 필요
닌텐도 스위치Horizon OS + CFW⭕ 비공식 포트 있음Android 포팅 or Linux 설치 필요
PSP/PS Vita커스텀 펌웨어 필요❌ 비공식 포트 존재실사용은 어려움

선샤인 (Sunshine)

  • 선샤인은 사용자의 게이밍 PC에 설치되어, 문라이트가 게임을 스트리밍할 수 있도록 서버 역할을 합니다.

선샤인은 게임을 실행하고 하드웨어 자원(GPU, CPU, RAM, NIC)을 사용하여 게임 연산을 처리합니다. 그리고 다른 기기로 게임 화면을 전송하고, 조이콘 입력을 받습니다.

프로토콜포트설명
TCP47984기본 TCP 포트
TCP47989기본 TCP 포트
TCP47990Web UI 포트 (설정 및 관리포트)
TCP48010기본 TCP 포트
UDP47998 - 48000스트리밍 및 기타 네트워크 통신 포트

외부 네트워크(예: LTE, 외부 Wi-Fi 등)에서 내 PC에 접속하려면, 포트 포워딩 설정이 필요합니다. 외부에서 사용할 계획이 없다면 건너뛰어도 됩니다.

⚠️ 주의:
다른 프로그램과 포트가 겹치지 않도록 주의해 주세요.
또한, 포트 포워딩 설정 방법은 공유기 모델마다 다르기 때문에, 사용하는 공유기의 모델명을 구글에 검색하여 관련 방법을 참고하는 것이 가장 정확합니다.

포트 포워딩이 완료되면, 핫스팟이나 외부 Wi-Fi 환경에서도 언제 어디서든 내 PC에 있는 게임들을 스트리밍하여 플레이할 수 있습니다. 매우 편리하지만, 보안에 취약해질 수 있다는 점도 꼭 고려해 주세요.


스트리밍 플레이의 명확한 한계점


"실시간 다중 멀티기반 게임의 실행이 사실상 어렵습니다."

리그 오브 레전드, 오버워치, 로스트아크
처럼 정확한 입력 타이밍빠른 반응이 중요한 실시간 멀티플레이 게임에는 스트리밍 방식이 적합하지 않습니다.

"단순히 게임 조작감의 문제가 아니라,
지연시간이라는 물리적 한계 때문입니다."

지연시간이란?


내 입력(버튼, 마우스 등)이 게임에 반영되고, 그 결과를 화면으로 보기까지 걸리는 전달 시간을 말합니다.

게이머라면 한번 쯤은 들어봤을 핑(Ping) 차이라 말 할 수도 있겠네요.
그렇다면 지연시간은 왜 생길까?

여기는 약간의 네트워크 지식이 필요합니다.
아주 간략하게만 설명하자면,

출처:@codingapple

" 어? 우리집은 1Gbps 급
인터넷을 쓰는데도 그런가요?"

네트워크 대역폭(Gbps 혹은 Mbps)과 지연시간(ms)은 별개입니다.
대역폭은 데이터를 받을 수 있는 도로의 너비와 같습니다.

도로가 넓으면 한번에 많은 양에 차량이 다닐 수 있지만, 차량이 목적지까지 이동하는 최대 속도가 증가하지 않는 이상 도착 시간은 크게 줄지는 않죠.

또 도로를 다니다 보면 큰 대로변도 있고, 골목길도 있고 길의 너비가 다양하죠?
특정 구간마다 제한속도도 있고, 신호등이 있기도 하구요.

네트워크도 똑같습니다.

어떤 케이블을 쓰냐, 네트워크 장비가 어느 대역폭까지만 지원하냐, 트래픽 사용량에 따라 데이터가 전송 될 수 있는 양이 달라집니다.

이걸 "병목현상"이라고 하구요.

그렇기 때문에 네트워크에서도 도로와 같이 대역폭의 크기와, 연결거리가 멀어질수록, 중간에 많은 경유지가, QOS 정책(제한속도)이 있을수록 지연시간은 필연적으로 생깁니다.

그렇다면 영상자료와 같이 우리 기준으로 정리하면,

싱글 플레이 기준 지연발생 요소

  1. 내 PC → 스위치 로 데이터가 전송되는 시간
  2. 스위치 → 내PC 로 데이터가 전송되는 시간

멀티 플레이 기준 지연발생 요소

  1. 상대방 PC → 게임 서버 → 내 PC → 스위치로 데이터가 전송되는 시간
  2. 스위치 → 내 PC → 게임 서버 → 상대방 PC로 데이터가 전송되는 시간

싱글 플레이에서는 오직 내 입력과 렌더링을 내PC에서만 처리하면 되지만,

멀티 플레이는 아래 설명 된 상호간 통신까지 포함된 복잡한 동기화가 필요하므로 지연이 더 크게 체감됩니다.

"백문불여일견"

종합정리


내부적인 지연 요소 (내 장비와 네트워크 환경)

항목설명
키 입력 처리 시간키보드·컨트롤러 입력이 시스템에 반영되기까지의 시간
PC에서 3D 렌더링 처리 시간게임 화면을 실제로 그리는 데 걸리는 시간 (GPU 성능 영향)
인코딩/디코딩 처리 시간문라이트처럼 스트리밍 방식일 경우, 화면을 압축하고 해제하는 시간
내 로컬 네트워크 환경공유기 성능, 와이파이 혼잡, 케이블 상태 등
스트리밍 기기의 디코딩 능력수신 기기(Switch, 스마트폰 등)의 영상 처리 능력

외부적인 지연 요소 (인터넷/상대방/서버 등)

항목설명
ISP(인터넷 공급자) 품질회선 속도, 혼잡 시간대 트래픽 품질, 피어링 문제 등
게임 서버 상태서버의 응답 속도, 과부하 여부, 지리적 거리
상대방의 로컬 네트워크 상태멀티플레이 시 상대방의 네트워크 문제로도 지연 가능
패킷 손실 (Packet Loss)전송 중 데이터가 손실되어 재전송이 필요할 때 발생하는 지연
외부 네트워크(모바일 데이터, 공용 와이파이)를 사용할 경우,
다른 경유지가 추가되어 왕복 지연 시간이 늘어나고,
그에 따라 지연도 더 커집니다.

여기에 조금 뇌절까지 치면 ㅎㅎ
시신경과 두뇌를 거쳐 판단하고, 운동 신경이 반응하기까지의
휴먼 지연시간도 있겠네요. 쉽게말해

"어 니 실력이야~"

설치

본인의 OS 및 상황에 맞게 설치 파일을 고르시면 됩니다.

본문 내용을 줄이고자, 설치과정은 생략합니다.

Windows Installer 설치 마법사에서 별도 옵션 조정없이,
설치 단계 진행 후 종료하시면 됩니다.

Windows Installer 기준 설치가 완료되면, Sunshine 이 자동 실행됩니다.

  1. 윈도우 트레이 아이콘 펼치기
  2. Sunshine 아이콘을 우측 클릭
  3. "Open Sunshine" 클릭

새로 열리는 웹 브라우저에서
고급 클릭 후 → 하단에 안전하지 않은 페이지로 이동 클릭

해당 페이지에서 관리페이지 접속에 필요한
Username과 Password를 입력 후 로그인을 해주세요.

해당 페이지가 성공적으로 뜬다면 설치가 완료 되었습니다.

페이지의 기본 언어 설정은 영문으로 되어있습니다.

한국어로 변경하고자 한다면, 상단의 Configuration 탭에 Locale을 English에서
한국어로 변경하고, 하단의 Apply 후 페이지 새로고침을 하면 적용이 됩니다.


기기 등록 및 연동

닌텐도 스위치 혹은 다른 기기에서 Moonlight를 실행하고
PC 추가 버튼 클릭, 호스트 IP를 입력 한 후 연결을 누르면 Pin 번호가 생성됩니다.

호스트 PC로 돌아와 연결하고자 하는 기기의 표시 된 Pin번호, 장치명을 입력해주면 기기 등록은 끝입니다.

연동 이후 등록 된 호스트로 연결하면, 아래 두 항목이 보입니다.

두 항목 중 아래표를 보고 본인의 상황에 맞게 연결하시면 됩니다!

항목Steam Big Picture ModeDesktop Mode
UI/화면 구성TV/콘솔에 최적화된 Steam 전용 전체화면 인터페이스일반 Windows 바탕화면 그대로 표시
조작 방식게임패드 중심 (마우스 없이 조작 가능)키보드/마우스 중심 (게임패드 일부 지원)
자동 실행 게임Steam에 등록된 게임은 바로 실행 가능Steam 외 게임도 실행 가능하지만 수동 조작 필요
호환성Steam에 최적화된 게임에 적합모든 프로그램/게임 실행 가능 (비Steam 포함)
성능/반응 속도Steam 최적화로 비교적 안정적인 성능프로그램 종류에 따라 차이 있음
스트리밍 품질 설정Steam 설정에 따라 자동 조정GeForce Experience 설정에 따름
가상 데스크탑처럼 사용불가능 (게임 실행 전용 UI)가능 (원격 바탕화면처럼 사용 가능)
추천 사용 환경게임 전용 콘솔 느낌으로 사용 시일반 PC 원격 제어 혹은 Steam 외 앱 사용 시
※ 닌텐도 스위치에서는 터치 LCD로 마우스 이동 및 클릭이 가능합니다!
게임 실행까지는 PC에서 조작하는게 그래도 좀 더 편합니다 ㅎㅎ

저는 비 스팀게임을 하고자 하므로 Desktop으로 진행합니다.

Desktop 모드 진입 후 게임 실행할 때 유의점은, 조이스틱이 지원되는 게임에 한해 닌텐도 조이콘으로 조작이 가능합니다.

Desktop 화면이 스위치나 연결 기기에 정상적으로 보인다면,

"축하드립니다!
당신만의 짝퉁 UMPC를 손에 얻었습니다!"

플레이 영상까진 아니지만, 직접 실행해본 결과로는 Desktop 방식 연결도
인풋 혹은 화면송출 딜레이는 크게 느끼진 못했습니다.

단점이라고 하면 우선 간혹 조이콘이 먹통인 문제가 있구요.

조이콘이 먹통일 때에는 게임 옵션에서 조작방식을 키보드/마우스로 변경했다가, 조이스틱으로 다시 변경해주면 잘 잡힙니다

Desktop 모드에서는 해상도를 조절 후 송출 시키는데,
GTA 플레이를 예로 들면, PC에서는 보일 법한 거리에 있는 피사체가 잘 안보입니다.

지금 빨간 네모칸 정도만 가도 NPC 식별이 조금 힘듭니다ㅎㅎ..

아니면.. 저의 눈이 벌써 맛이간건가...?

그래도 전반적인 플레이는 큰 무리 없이 즐길 수 있었어요.
이제 저도 주말 라이프를 만끽하러 슬슬 떠나보려 합니다!


여기까지 함께해주신 여러분도, 즐거운 주말 보내세요!


Subscribe to Sonny_Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe