• Stars
    star
    364
  • Rank 113,345 (Top 3 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created almost 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Moonlight port for Horizon OS

Build

Moonlight-NX

Moonlight-NX is a port of Moonlight Game Streaming Project for Nintendo Switch.

Installing

  1. Download latest Moonlight-NX release or automatic build (require github login for artifacts link appear);
  2. Put moonlight.nro to sdcard:/switch/moonlight;
  3. Launch hbmenu over Title Redirection (for FULL RAM access);
  4. Launch moonlight.

Controls

Mouse

With touch screen you can configure two mouse input mode:

  • Moving the cursor along the movement your finger (by default);
  • Immediately move cursor by tap area and perform left mouse click (enable Mouse click by tap on screen option in Settings).

In both case you can hold L/R buttons an tap on a screen for left/right click (cursor will not move) or hold ZL/ZR for allow cursor movement while left/right mouse buttons holded.

Also you can scroll pages with two fingers.

Keyboard

Currently full keyboard input not supported, but you can use this combinations for most common cases:

  1. Minus+Plus - Guide button;
  2. ZL+ZR+Up - Exit from stream (without closing current app);
  3. ZL+ZR+Down - Exit from stream (and close current app);
  4. ZL+ZR+Left - Show/hide video decoder/render stats;
  5. L+R+Up - ESC key;
  6. L+R+Down - Win key;
  7. L+R+Left - Alt+Enter (for enable/disable fullscreen mode in some games or emulators);
  8. L+R+Right - Shift+Tab (for open/close Steam overlay).

You can change this combos on a Input Settings screen (Gamepad icon on a main screen, next tap keyboard icon) or by press Y button on a Applications screen for adjust keyboard combos for a specific game/application.

Gamepad

By default Switch gamepad configured as X360 gamepad (A/B and X/Y swapped). You can reconfigure buttons on a Input Settings screen or by press Y button on a Applications screen for adjust gamepad mapping for a specific game/application.

Multiple gamepad currently not supported.

HID Keyboard/Mouse

Moonlight-NX support attached hardware keyboard/mouse over USB connected to Switch directly or over dock (Switch should be in dock).

Build Moonlight-NX

Using Docker

  1. Create a working dir:

mkdir moonlight-nx-build; cd moonlight-nx-build

  1. Download a Dockerfile:

wget https://raw.githubusercontent.com/rock88/moonlight-nx/master/Dockerfile

  1. Build and run a development environment:
docker build . -t moonlight-nx-build
docker run -it moonlight-nx-build
  1. Clone the repo:

git clone --recursive https://github.com/rock88/moonlight-nx.git

  1. Run the build:

cd moonlight-nx; make; exit

  1. Copy the .nro out of the container:
// Find your container ID
docker ps -a

// Use container ID for copy .nro from container
docker cp CONTAINER_ID:moonlight-nx/moonlight.nro .

Build Manually

  1. Setup a Development Environment
  2. Install deps (dkp-pacman for Linux like arch, pacman for MacOS) and update all to latest versions:
sudo (dkp-)pacman --noconfirm -S devkitA64 switch-tools libnx switch-ffmpeg switch-glad switch-glfw switch-jansson switch-libdrm_nouveau switch-libexpat switch-libopus switch-libvpx switch-mbedtls switch-mesa switch-zlib switch-ffmpeg switch-curl
sudo (dkp-)pacman --noconfirm -Suy
  1. Clone the repo:

git clone --recursive https://github.com/rock88/moonlight-nx.git

  1. Run the build:

cd moonlight-nx; make -j

Assets

Icon - moonlight-stream project logo.