Switch remote play pc инструкция

25K
показов

5.7K
открытий

Всем мы знаем, что стриминг игр обычно подразумевает собой захват изображения с монитора и передачу его на консоль (пример Steam Link) и из-за этого, ты не можешь нормально пользоваться пк, так как всё управление идёт в игру. Но что, если я скажу, что это можно обойти?

Дисклеймер: Всё о чём я буду писать, касается только взломанной консоли. Поэтому вы должны знать, как закидывать файлы на консоль и устаналивать nsp файлы. Помимо этого, вам нужен будет «мощный» ПК для больших игр или вам придётся играть в «инди» хиты. Также, подразумевается, что вы уже можете запускать консоль от имени администратора и редактировать реестр, так как о базовых вещах я не буду рассказывать.

1. Настраиваем стриминг игр с ПК

Два года назад, я уже писал небольшую заметку о SkyNX, но сейчас немного всё обновилось, поэтому начнём сначала.

Появилась новая версия SkyNX+ с улучшениями, в том числе, теперь можно задавать то, для какого монитора будет меняться разрешение + дополнительные функции рендеринга. Но там всё равно не хватало одной функции, поэтому я немного переделал приложение под себя, а именно добавил возможность смещать изображение. Кому интересно, мой форк тут.

Поэтому просто выкладываю всё архивом.

Установка:

  • Качаем архив с приложением и распаковываем на пк
  • Качаем архив с приложением для Switch и распаковываем его на карту памяти консоли. После этого, вы можете установить файл SkyNX_Forwarder.nsp, чтобы удобно запускать его с главного экрана.
  • После этого, запустите SkyNX на консоли, вы должны увидеть IP-адрес (Убедитесь, что вы подключены к домашней сети WI-Fi)
  • Запустите приложение на пк (файл SkyNXStreamer.exe), вам нужны будут права администратора.
  • Перейдите в настройки приложения и в конце нажмите кнопки «Install Controller» и «Install Audio Driver». После этого, перезагрузите компьютер.
  • После перезапуска, снова открываем приложение и вводим IP-адрес, который высвечивается на консоли.
  • Нажимаем «Start Streamer» и на консоли должно появится изображение с ПК. Если этого не произошло, измените ползунок «Quality» на меньшее значение. Или измените тип Endcoding.

Если всё прошло хорошо и изображение появилось, то переходим к следующему шагу.

2. Создаём виртуальный дисплей

Если у вас уже есть второй монитор, то вы можете пропустить этот шаг. Но тогда, вы будете видеть игру у себя на втором экране.

Если же у вас один основной монитор, то вам нужно будет создать дополнительный виртуальный.

Для этого:

  • Качаем и распаковываем usbmmidd_v2
  • Открываем консоль от имени администратора
  • Пишем: cd «путь к раскованной папке без ковычек»
  • Далее: deviceinstaller64 install usbmmidd.inf usbmmidd
  • Потом: deviceinstaller64 enableidd 1

После этого, у нас должен добавиться виртуальный монитор. Но у него не то разрешение, которое нам нужно. Поэтому редактируем реестр по пути:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\usbmmIdd\Parameters\Monitors

И меняем там значение по умолчанию и «1920,1080» на «1280, 720»;

После этого, отключаем монитор и включаем его ещё раз командами:

  • deviceinstaller64 enableidd 0
  • deviceinstaller64 enableidd 1

Всё, проверяем в настройках дисплея новый монитор и его разрешение.

Для удобства, создадим bat файл с активацией монитора по клику.

Создайте файл start.bat и вставьте в него следующий код:

@cd /d «%~dp0»

@goto %PROCESSOR_ARCHITECTURE%
@exit

:AMD64
@cmd /c deviceinstaller64.exe enableidd 1
@goto end

:x86
@cmd /c deviceinstaller.exe enableidd 1

:end
@exit

Сохраните. Теперь можете его использовать, чтобы активировать монитор без консоли.

После всего выше проделанного, расположите второй монитор, как на скриншоте.

Всё, создание виртуального монитора завершено.

3. Заставляем игру принимать управление с геймпада при не активном окне.

Качаем и устанавливаем — Special-K.

Советую разобраться с этой программой по лучше, так как там есть несколько вариантов запуска и инъекции dll файлов. Но мы разберём самый базовый.

После установки, устанавливаем всё что потребует программа и запускаем.

Выбираем игру, в которую хотим играть и нажимаем Launch.

Если всё нормально, вы увидите сообщение:

Нажимаем Ctrl + Shift + Backspace.

Открываем вкладку «Window Management» и выставляем настройки как на скриншоте:

Далее идём во вкладку «Input Management» и также выставляем настройки как на скриншоте:

Закрываем и всё, теперь, игра будет управляться только с геймпада.

ВАЖНО! Эти настройки можно произвести один раз, они сохранятся для игры.

4. Объединяем всё вместе

И так, по итогу у вас должно быть:

  • Запущен SkyNX
  • Создан виртуальный дисплей
  • Настроена игра

Теперь нам нужно это всё объединить, для этого, открываем SkyNX и идём в настройки.

Выставляем параметры так:

  • Monitor ID: 1
  • X Offset: Разрешение вашего монитора «по ширине» (Обычно это 1920)
  • Y Offset: Разрешение вашего монитора «по высоте» минус 720.

Например, у вас основной монитор: 1920×1080, тогда в X выпишите 1920, а в Y (1080-720), т.е 360.

Теперь включаем стриминг и по идее, вы должны увидеть маленькую версию своего рабочего стола.

Убедитесь, что виртуальный монитор расположен правильно и в настройках стоит «Расширить эти экраны». И разрешение — 1280×720

Теперь запускаем игру, помним, что она управляется только с геймпада. (Когда вы стримите игру, геймпадом будет выступать ваш свитч)

Нажимает на игру, чтобы окно было активным и сочетанием клавиш: Win + Shift + Стрелочка вправо, отправляем его на второй монитор.

Чтобы вернуть его на основной, делаем всё то же самое, только теперь стрелочку влево нажимаем.

Теперь игра должна быть видна на вашем свиче. Проверяем управление, проверяем не пересекается ли управление мышью и клавиатурой на пк в игре.

Если всё нормально, то поздравляю. Вы справились.

Если не работает управление, то удалите и установите драйверы через SkyNX.

Какой порядок действий после всего установленного, чтобы запускать игру:

  1. После перезапуска пк, создайте виртуальный монитор, для этого запустите ранее созданный батник. (Его можно повесить в автозагрузку, если надо)
  2. Запускаете SkyNX и включаете стриминг
  3. Запускаете игру и переносите её на второй монитор используя Win + Shift + Стрелочка вправо
  4. Всё.

Да, придётся потратить на установки и настройку всего время. Да, немного замороченный запуск. Но теперь, вы можете свободно пользоваться своим ПК, пока кто-то играет на свиче в игры через ваш ПК ¯\_(ツ)_/¯

Всем удачи, если будут вопросы, постараюсь помочь!

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

  • Thread starter

    Moehammered


  • Start date


  • Views
    126,405

  • Replies
    232

  • Likes
    32

  • #1

Welcome to Switch Remote Play.

YN6Hls5.jpeg

Yet another PC streaming application for the Switch.

I’d like to immediately start off saying thanks to jakibaki for In-Home-Switching and DevL0rd for SkyNX.

The main goal of this project came about from the small inconveniences of the predecessors. I didn’t like having to get up to configure the PC application as some games I’d need to drop the settings to get smoother images, etc. I also didn’t like that if the Switch ever slept, I’d need to inject the payload again. So, I made this to try and move all the configuration to the Switch’s side and have it be as convenient as possible.

Download:

Features:

  • Configure stream settings directly from the Switch
  • No system crashing when going to sleep (stream will disconnect though and application is closeable)
  • Use ffmpeg to stream video and audio to the Switch
  • Stream input from the switch to remote connection
  • Allow manual configuration of Switch to PC connection
  • Automatically connect Switch and PC stream applications
  • Automatically mute PC when audio is streaming to the Switch
  • Disconnect / Reconnect stream at will
  • Toggle Input Mode to Mouse
  • Toggle Input Mode to DS4(PS4) controller
  • Toggle Input Mode to Xbox controller
  • Rich configuration options for h264 CPU encoder
  • Rich configuration options for h264 AMF encoder (AMD hardware encoder)
  • Multiple Controllers (up to 4, including individual JoyCons)
  • Touch Screen Support

Changeset

Version 1.0.0

  • Multiple Controller Support (up to 4 players)
  • Touch Screen support (as PC touch input, or a simulated trackpad)
  • Simulated keyboard bindings
  • Mouse scrolling and middle-click
  • Configurable ‘home/guide’ button assignment
  • Monitor selection
  • Improved configuration experience using built in Switch Software Keyboard
  • For full details, see the release page

Version 0.9.0

  • Invert Controller Analog Axis for left and right sticks
  • Delete deprecated Switch HID input API usage
  • UI Refactored to be easier to add configuration parameters
  • Configuration file refactored into multiple configuration files
  • Encoder configuration overhauled
  • H264 AMF (AMD GPU) encoder support added

Version 0.8.3

  • Instructions have been updated to include more troubleshooting steps related to automatic network discovery
  • Fixed some bugs related to the switch gamepad data being read partially from the PC application
  • Fixed the Xbox 360 controller mode’s ‘minus’ mapping to be ‘back’ instead of ‘guide’
  • Fixed a potential overflow issue with the virtual controller analog sticks
  • Added diagnostic info to the PC application to help when users report issues and to display basic networking information
  • Added Manual IP Mode Enabled to the switch application’s config file. Now you can configure Manual IP Mode once, enable it, and you’ll never need to touch it again! (Unless your PC’s IP changes of course…)
  • Added broadcast address to the switch application’s config file. This is to allow those who wish to use the network discovery feature. The PC application will display instructions on how to configure this. Please follow the instructions for it.
  • Now you can pretty much control the PC doing simple tasks with just the left or right joy-con alone!

Version 0.8.1

  • Instructions have been updated to include troubleshooting steps related to automatic network discovery
  • Added extra options to the Controller Configuration menu
    • Left and Right mouse buttons can now be mapped to any of the Switch shoulder buttons
  • Now you can pretty much control the PC doing simple tasks with just the left or right joy-con alone!

Version 0.8.0 (Major Improvements)

  • Re-wrote how the menu system works to make it less of a hassle to add more configuration screens
  • Added Decoder Configuration Menu
    • Available decoder options that can modify how the Switch decodes the ffmpeg stream are available
    • Offers some good performance options to allow for better quality streams to come through
  • Added Controller Configuration Options
    • Moved mouse sensitivity to the Controller Configuration screen
    • Added option to toggle if Mouse is default input mode on stream connect
    • Added Controller type option to choose between X360 or DS4 controller
    • Added button inversion options for XYAB
  • Added X360 Controller support to the PC application (thanks theosirian)

Version 0.7.4

  • Added Mouse Sensitivity as a configuration option
  • Configuration settings are now saved upon starting a stream
  • Last saved configuration settings are loaded on application start

Version 0.7.3

  • More control over ffmpeg’s arguments to control stream quality
  • Fixed hbloader crash
  • Increased input poll rate
  • Fixed d-pad diagonal control mapping issue with diagonals being accidentally flipped
  • Made UI more concise
  • Updated icon!

Stream Encoder Settings Examples

Considering a lot of people seem to skip or miss the encoder configuration screen entirely, or they just don’t know what to do with the settings, I’ve put a simple suggestion on what configuration to choose for certain quality targets:

  • Common Settings
    • Desktop Resolution: 1280 x 720
    • Switch Resolution: 1280 x 720
    • Vsync Mode: variable frame rate
    • Hardware Accel Mode: auto
    • Video Codec: h264
  • Perfect Image Quality
    • Bitrate: 5120
    • Quality Control Factor: 0
    • Encoder Preset: very slow
  • Low Latency quality
    • Bitrate: 5120
    • Quality Control Factor: 20(or higher)
    • Encoder Preset: ultra fast
  • Balanced quality
    • Bitrate: 8192
    • Quality Control Factor: 8 ~ 15
    • Encoder Preset: medium or fast

These all depend on your CPU’s performance and what you’re running at the time. If you’re having trouble, please make sure to include your machine’s specs in your post. (CPU, RAM, GPU at minimum please)

Thanks

  • jakibaki for the original In-Home-Switching switch application
  • DevL0rd for the updated streaming application SkyNX
  • FFmpeg for an exhaustingly extensive library
  • nefarius for the ViGEm Client SDK. It’s such a nice SDK/library to use
  • rdp for screen-capture-recorder. Made streaming audio via FFmpeg on PC very easy
  • SwitchBrew for libNX
  • devkitPro bloody legends for letting us have a toolchain to compile stuff for the Switch
  • SciresM, TuxSH, hexkyz, and fincs for Atmosphere. Absolute madlads these lot are. Also a shoutout to the champs that help contribute to the repo.
  • Jonathan Dearborn for SDL_FontCache
  • cucholix for the app icon :)

Enjoy everyone! :)

  • #2

sounds promising, thank you for your work !

Joined
May 25, 2020
Messages
34
Trophies
0
Age
25
XP

294

Country
Ireland

  • #3

I just tried it, I wish there would be some mouse sensitivity option because the normal speed is just too stuttery and slow, the quality of the video is good but there’s only 720p, I tried every option on it but I can’t get more than like 35FPS from the stream and I’m on fiber internet with 5GHz, it’s still better than SkyNX but the audio is unusable for me, it sounds so grainy and distorted exactly like SkyNX was for me

  • #4

I just tried it, I wish there would be some mouse sensitivity option because the normal speed is just too stuttery and slow, the quality of the video is good but there’s only 720p, I tried every option on it but I can’t get more than like 35FPS from the stream and I’m on fiber internet with 5GHz, it’s still better than SkyNX but the audio is unusable for me, it sounds so grainy and distorted exactly like SkyNX was for me

Mouse sensitivity is planned. Look forward to it in the later updates.

The video quality setting for the switch is clamped to 720p for now because I mostly used it in handheld mode and 1080p would only be usable when it’s docked so I focused on 720p initially. To render a 1080p stream I need to modify the rendering step. It’s in consideration though :)

Sorry to hear that the mouse is stuttering. That means you might be having packet drops or connection interference. Internet connection is not important, just the router and WiFi network.

If the stream wont go higher than 35fps then it could be due to the CPU.

Could you please tell me:

  • Your PC Specs (CPU, GPU, RAM)
  • The game you’re streaming
  • How many devices are usually connected to your home network?

The audio issue occurs when the network speed isn’t fast enough or when there’s too much interference from a busy network. Usually when I restarted my PC the audio issue went away.

  • #5

Just played some tekken with it. And I think it’s kidna good. Not perfect of course, but still.
No problem with sound, latency is alright, picture have disticnt compression artifacts, but what’s you gonna do? Maybe add some GPU support with x265 codec, but it’s much easier said, then done.
UI is pretty handy, not that flashy, but that super optional.
Anyway, I hope this project won’t stuck in any limbo.

  • #7

View attachment 239353
Nice app, feel free to use it :P

Thank you very much! It looks very sleek. I’ll definitely be using it.

Much appreciated :)

  • #8

Haven’t been able to start a stream yet. Do I need to be running the screen capture software?

  • #9

Haven’t been able to start a stream yet. Do I need to be running the screen capture software?

Sorry to hear that. Is windows firewall blocking it? Can you check to make sure switch-remote-play-host is an allowed app in the firewall list on your PC?

  • #10

Good work, thanks. If the computer end is using ffmpeg I wonder if it can be adapted to work on Mac…

  • #11

Just played some tekken with it. And I think it’s kidna good. Not perfect of course, but still.
No problem with sound, latency is alright, picture have disticnt compression artifacts, but what’s you gonna do? Maybe add some GPU support with x265 codec, but it’s much easier said, then done.
UI is pretty handy, not that flashy, but that super optional.
Anyway, I hope this project won’t stuck in any limbo.

Hey there, I’ve updated 0.7.3 with some extra options to help give more fine tune control over the stream quality. Please feel free to check it out! I tested it playing Tekken on my PC and thanks to that I found a D-Pad bug which is fixed in 0.7.3 too.

I hope this version helps make Tekken a bit more enjoyable :)

——————— MERGED —————————

Good work, thanks. If the computer end is using ffmpeg I wonder if it can be adapted to work on Mac…

It could, someone would just need to mimic or modify the windows-project to work on Mac. I don’t have a Mac so it is not a priority for me at the moment. However if Mac can work through a VM then maybe after I am done getting the main features completed I will setup a Mac OS VM and try porting it over. Or I might port the desktop app to .Net Core and then it might be easier to port to Mac. But at the moment, sorry I don’t have any immediate plans to port the windows-project to mac just yet.

Joined
Nov 4, 2020
Messages
268
Trophies
0
Age
33
XP

594

Country
Indonesia

  • #13

Sorry to hear that. Are you running Atmosphere on your Switch or SX OS?

If you’re running Atmosphere CFW can you please tell me the Atmosphere version, system firmware version, and what is not working?

If you’re using SX OS then I’m sorry but SX OS has major compatibility issues with the latest LibNX libraries. I also do not have access to SX OS to test, so it will be incompatible with SX OS until their homebrew compatibility is fixed.

  • #14

@Moehammered it would be possible invoke virtual Switch keyboard for inputs?

Also I use this app mainly to remotely manage my PC instead gaming with it, it would be possible map ZL as right click and ZR as left click?

  • #15

@Moehammered it would be possible invoke virtual Switch keyboard for inputs?

Also I use this app mainly to remotely manage my PC instead gaming with it, it would be possible map ZL as right click and ZR as left click?

Invoking the virtual keyboard is one of the planned features. I tested in the prototype phase and had some issues with it but I shelved it to be revisited later. I’ll be looking into it don’t worry. :)

As for the mouse click buttons, as thanks for the lovely icon I’ll add it first thing tomorrow. I would’ve done it now but I’m about to go to bed for work tomorrow. Consider it done by 24 hours :)

Joined
Mar 15, 2009
Messages
424
Trophies
1
XP

1,446

Country
Germany

  • #16

Hey, first and foremost thanks for creating such a great app. With the well written instructions I got it working in no time at all. Streaming Videos and Games from my PC works great with little to no delay most of the time.

But is there any way to improve the audio streaming? Because for me PC audio will play only sometimes. 3 to 5 seconds later it cuts out entirely, returning in random intervals.

Edit: I just tried reconnecting a couple of times and now streaming audio works constantly… Maybe my connections wasn’t good enough before

  • #17

Hey, first and foremost thanks for creating such a great app. With the well written instructions I got it working in no time at all. Streaming Videos and Games from my PC works great with little to no delay most of the time.

But is there any way to improve the audio streaming? Because for me PC audio will play only sometimes. 3 to 5 seconds later it cuts out entirely, returning in random intervals.

Edit: I just tried reconnecting a couple of times and now streaming audio works constantly… Maybe my connections wasn’t good enough before

Thank you for the kind words. Yeah audio streaming is one of the next things on my revisit list. The audio connection is done via UDP so any network issues results in audio interference. I will be investigating it soon.
When the audio refuses to stream well I find restarting my PC works out. I’ve only had to do that once so far.
Until I can determine the reason, the only solution I have is attempt restarting to see if the problem resolves. Sorry for any inconvenience.

Joined
Nov 4, 2020
Messages
268
Trophies
0
Age
33
XP

594

Country
Indonesia

  • #18

Sorry to hear that. Are you running Atmosphere on your Switch or SX OS?

If you’re running Atmosphere CFW can you please tell me the Atmosphere version, system firmware version, and what is not working?

If you’re using SX OS then I’m sorry but SX OS has major compatibility issues with the latest LibNX libraries. I also do not have access to SX OS to test, so it will be incompatible with SX OS until their homebrew compatibility is fixed.

SX OS, dang i think i need to switch gpu then, to use moonlight, skynx a bit lag on amd cards

Joined
Mar 14, 2009
Messages
26
Trophies
0
XP

265

Country

  • #19

Love this, any chance you could include a Wake On Lan ping for the client?
There was some work done on this previously, Zedjones did a WakeOnLan_Switch in github

Similar threads

switch-remote-play

icon

Let the switch remotely play PC games (similar to steam link or remote play)

This project is inspired by the github project In-Home-Switching and SkyNX. The goal is to make a convenient streamer/client application to be used to remote play PC games on the switch.

In-Home-Switching and SkyNX already offer the ability to do so, however there were some convenience features missing that I wanted to add. I also recently was studying multi-threading and when I saw the code, I thought ‘this is the perfect chance to try writing it in C++’.

Getting Started

For instructions and help, please see the wiki.

You can also visit the gbatemp release thread to share and interact with other users, or get help with any issues you might have.

Features

  • No system crashing when going to sleep (stream will disconnect though and application is closeable)
  • Desktop application to host remote connection stream
  • Stream input from the switch to remote connection
  • Stream audio from remote connection to the switch
  • Automatically connect switch and PC stream applications
  • Automatically mute PC when audio is streaming to the Switch
  • Allow manual configuration of switch to PC connection
  • Disconnect / Reconnect stream at will
  • Toggle Input Mode to Mouse
  • Toggle Input Mode to DS4(PS4) controller
  • Toggle Input Mode to Xbox controller
  • Rich configuration options for h264 CPU encoder
  • Rich configuration options for h264 AMF encoder (AMD hardware encoder)
  • Multiple controller support
  • Touch screen emulate mouse support
  • Controller gyro support
  • Controller rumble support

Switch-Project

This project consists of an application written for the switch that will decode stream data received from FFMPEG and send its input to an application to emulate a controller. The rendering is done with SDL2 and the project is written in C++.

Compatibility

  • Only Atmosphere CFW is supported. SX OS is not officially supported
  • Program is compiled with latest LibNX libraries (v4.1.3 at the time of this writing)
    • Means it will work with newer firmwares

Windows-Project

This project consists of an application written for Windows that will launch an FFMPEG stream to encode and send data. The application, after launching the FFMPEG stream, will then listen to receive input data and emulate a controller via the ViGEm Client SDK. The ViGEm Client SDK expects the ViGEm Bus Kernel Driver to be installed on the machine in order to work. For more info on the kernel driver code see the ViGEmBus github page. For the driver installation, see the ViGEmBus Releases page.

The Windows project is also written in C++ and uses Winsock to do socket communication with the switch application.

Mac-Project

See the ‘mac-readme’ file located in the repo’s instructions/mac folder.

Thanks

  • jakibaki for the original In-Home-Switching switch application
  • DevL0rd for the updated streaming application SkyNX
  • FFmpeg for an exhaustingly extensive library
  • nefarius for the ViGEm Client SDK. It’s such a nice SDK/library to use
  • rdp for screen-capture-recorder. Made streaming audio via FFmpeg on PC very easy
  • SwitchBrew for libNX
  • devkitPro bloody legends for letting us have a toolchain to compile stuff for the Switch
  • SciresM, TuxSH, hexkyz, and fincs for Atmosphere. Absolute madlads these lot are. Also a shoutout to the champs that help contribute to the repo.
  • Jonathan Dearborn for SDL_FontCache
  • cucholix for the app icon :)

Licence

GPLv3, so please follow the open source licence and be a nice bloke. If you use parts of this project or expand on this project, make it open source. Cheers mate. (You can read more about the GPLv3 licence HERE and HERE)

The ViGEm Client SDK uses an MIT licence and it has been included with the Windows project. (The Windows project itself is still licensed under GPLv3)

Switch Remote Play
Switchremoteplay.png
General
Author Moehammered
Type Remote Play and Streaming
Version 1.0.0
License GPL-3.0
Last Updated 2021/11/28
Links
Download
Website
Source

Let the switch remotely play PC games (similar to steam link or remote play)

This project is inspired by the GitHub project In-Home-Switching and SkyNX. The goal is to make a convenient streamer/client application to be used to remote play PC games on the Switch.

Features

  • No system crashing when going to sleep (stream will disconnect though and application is closeable).
  • Desktop application to host remote connection stream.
  • Stream input from the Switch to remote connection.
  • Stream audio from remote connection to the Switch.
  • Automatically connect Switch and PC stream applications.
  • Automatically mute PC when audio is streaming to the Switch.
  • Allow manual configuration of Switch to PC connection.
  • Disconnect / Reconnect stream at will.
  • Toggle Input Mode to Mouse.
  • Toggle Input Mode to DS4(PS4) controller.
  • Toggle Input Mode to Xbox controller.
  • Rich configuration options for h264 CPU encoder.
  • Rich configuration options for h264 AMF encoder (AMD hardware encoder).
  • Multiple controller support.
  • Touch screen emulate mouse support.
  • Controller gyro support.

Installation

Download the 7z or zip archive and follow the instructions to setup.

If you’re just updating, simply delete the old switch-remote-play folder on your Switch’s SD card and delete the PC program on your computer.

Then replace them with the updated versions in this release and off you go! (Make sure to reconfigure the settings in the application).

User guide

Switch-Project

This project consists of an application written for the switch that will decode stream data received from FFMPEG and send its input to an application to emulate a controller. The rendering is done with SDL2 and the project is written in C++.

Windows-Project

This project consists of an application written for Windows that will launch an FFMPEG stream to encode and send data. The application, after launching the FFMPEG stream, will then listen to receive input data and emulate a controller via the ViGEm Client SDK. The ViGEm Client SDK expects the ViGEm Bus Kernel Driver to be installed on the machine in order to work. For more info on the kernel driver code see the ViGEmBus GitHub page. For the driver installation, see the ViGEmBus Releases page.

The Windows project is also written in C++ and uses Winsock to do socket communication with the switch application.

Mac-Project

Mac Prototype: Switch Remote Play (Mac PoC — Not in development).

Limited functionality. No virtual gamepad drivers = no gamepad support.

Stream Encoder Settings Examples

Below are some simple suggestions on what configuration to choose for certain quality targets (these also depend on your CPU’s performance and what you’re running at the time).

  • Common Settings:
    • Desktop Resolution: 1280 x 720.
    • Switch Resolution: 1280 x 720.
    • Vsync Mode: variable frame rate.
    • Hardware Accel Mode: auto.
    • Video Codec: h264.
  • Perfect Image Quality:
    • Bitrate: 5120.
    • Quality Control Factor: 0.
    • Encoder Preset: very slow.
  • Low Latency quality:
    • Bitrate: 5120.
    • Quality Control Factor: 20(or higher).
    • Encoder Preset: ultra fast.
  • Balanced quality:
    • Bitrate: 8192.
    • Quality Control Factor: 8 ~ 15.
    • Encoder Preset: medium or fast.

Screenshots

Media

SkyNX 상위 호환,Nvidia가 필요없는 스트리밍 끝판왕? Switch-Remote-Play 설치 가이드 (OpenCourse)

Compatibility

Tested on:

Atmosphere 0.16.2 — FW 10.1.0 (switch-remote-play 0.9.0)
Atmosphere 0.19.5 — FW 10.1.0 (switch-remote-play 1.0.0)

Your Switch must be using Atmosphere CFW. SX OS is not supported.

Changelog

v1.0.0 2021/11/28

Switch Application Changes:

  • Touch Configuration and Virtual Input support added #17:
    • Added a new configuration menu screen for ‘Touch Configuration’.
    • 2 modes of virtual touch interfacing are available: Virtual Touch and Simulated Mouse.
    • Virtual Touch.
      • Makes the Switch touch screen behave like a touch monitor for the PC.
    • Simulated Mouse.
      • Makes the Switch touch screen behave like a mouse (similar to a laptop trackpad).
      • Includes support for absolute and trackpad behaviour.
        • Absolute behaviour means the mouse will be under your finger.
        • Trackpad behaviour means the mouse matches the movement of your finger (like a laptop trackpad).
      • Please be aware, as the name implies it is simulated behaviour, so I’ve had to mimic how a mouse would work. It won’t be perfect, but it is there for compatibility purposes.
      • I’ve enjoyed using trackpad mode personally (didn’t think I would) but whenever I use absolute mode, I always prefer to switch to the Virtual Touch. I recommend Virtual Touch whenever you can use it.
    • Tested using it with cemu and Virtual Touch mode worked without issue while playing Super Mario Maker.
  • Monitor Selection Added in Encoder Configuration Screen #21:
    • Added the ability to select the monitor for streaming.
    • Number starts at 0 for primary monitor and increases for secondary monitors.
  • Multiple Controllers, Guide Button, and JoyCon Support:
    • Home(PS4)/Guide(X360) Button Configuration Added #24.
      • Added the ability to bind the Home button hotkey in the Controller Menu.
      • Added the ability to configure the Home button hotkey trigger time (how long to hold the home button hotkey to trigger it).
    • Multiple controller support added #22 (yay!).
      • Added the ability to configure how many virtual controllers are created and streamed to the PC.
      • IMPORTANT: PS4 controller mode will not respect player number order (joycon 1 might not be DS4 controller 1 on the PC).
        • Xbox 360 mode seems fine and I haven’t had issues with out of order player/controller ordering.
        • I cannot control how the driver assigns player numbers, so for now this is considered a minor inconvenience. If you need player ordering, configure it in the game, use Xbox 360 mode, or simply hand over the controller.
    • JoyCons can be separated and used as individual controllers.
      • You’ll need to separate and pair the JoyCons individually in the Switch OS.
      • The buttons always get remapped in horizontal orientation as follows:
      • Face buttons = ABXY
      • Analog stick = Left Analog Stick
      • SL/SR = L/R
      • Plus/Minus = Plus
      • There are no plans to make this configurable in the near future (but I will revisit it after the Linux port has been completed).
  • Mouse Configuration Screen Added #27:
    • Mouse configuration options have been removed from the ‘controller’ menu and been promoted to their own menu screen.
    • Mouse wheel (scrolling up/down and left/right) is now configurable and assignable to the left or right analog stick.
    • Mouse/Controller mode toggle hotkey is now configurable and assignable.
    • Mouse/Controller mode toggle time is now configurable.
  • Keyboard Configuration Screen Added #38:
    • PC Keyboard keys can now be simulated when the program is in ‘Mouse mode’.
    • Keyboard buttons can be configured and assigned to the Switch Buttons.
    • This initially was just a request to implement arrow keys, but I couldn’t help plan ahead in case of expansion of the feature. Enjoy.
  • Software Keyboard User Configuration Input #40:
    • The built in Switch software keyboard has now been used everywhere applicable.
    • Number inputs have been replaced with keyboard input prompts.
    • IP Address input in the network configuration screen is now done via the software keyboard.
  • Network Configuration Menu Cleanup #41:
    • Created a new configuration menu to allow users to configure all aspects of connecting to the PC.
    • IP, Broadcast Address, Manual IP Toggle, and data ports can all be configured.
    • The PC program also has a respective network configuration file to allow for configuring the data ports.
      • Make sure the settings on the Switch match the settings in the PC’s network config file.
  • Project Refactor and Cleanup #43:
    • Did some long overdue cleaning through the code base for the Switch and PC application.
    • Removed redundant code.
    • Replaced magic variables with constants.
    • Streaming code moved into separate helper classes for both the Switch and PC application.
    • Added the ability to configure logging. File logging and verbosity are configurable.
    • Refactored code to separate common code into a folder shared between the Windows and Switch project.
      • This was done in preparation for starting the Linux host application version #32.
    • For the end user, this shouldn’t matter much.

PC Application Changes:

  • Mouse centering on selected monitor #21 #27:
    • When the stream starts, the program will center the mouse to the middle of the screen.
  • Added configuration options #41, #43:
    • Can now control console window minimise/restore on stream connect/disconnect.
    • Logging verbosity is controllable.
    • Log files can be enabled (to help with issue reporting hopefully).
    • PC Audio mute behaviour can be configured.
    • Network data ports can be configured.
      • Please make sure they match the settings on the Switch app’s network configuration.
  • Virtual Interfaces for touch, mouse and keyboard created #17 #27 #38:
    • Cleaned up mouse code to allow for configurable behaviour such as relative and absolute positioning.
    • Added a touch interface that injects touch data messages to Windows allowing for touch inputs to be simulated and interpreted as real touch inputs in Windows.
    • Added a keyboard interface that behaves similar to the mouse interface. Tries to behave similar to a regular keyboard.

v0.9.0-pc-audio-patch 2021/07/24

PC Host Application Changes:

  • Audio distortion fix for multi-channel audio hardware (see #31 for more info).
    • A commit back in February commented out the audio arguments used to tell ffmpeg to capture audio in stereo channel configuration. This caused users with greater than stereo audio channel setups to get invalid audio data streamed.
    • This also meant that even if you had stereo audio, ffmpeg was left in charge to decide the bitrate and audio codec. The missing code added back in also helps resolve this issue.

v0.9.0 2021/07/05

PC Host Application Changes:

  • Deleted old Switch HID Key definitions:
    • LibNX has finally deleted the deprecated HID input implementation. So they were removed from here too.
  • Updated Configuration Data payload:
    • This means that the pc program expects switch-remote-play v0.9.0 and will not work with older versions.
  • Updated network diagnostic output:
    • The broadcast address config line advice it outputs now reflects the new configuration file format for the app.
  • Ffmpeg Encoder argument parser added:
    • Created an ffmpeg argument parser that will create an ffmpeg argument line for CPU or AMD GPU encoder codecs.
  • Coloured console text:
    • Text output is now coloured to help distinguish between different diagnostic sections.
    • Any startup issues will be coloured in red to help identify problems.
  • Invert Controller Analog Axis added #20:
    • Added the ability to invert the X and Y analog axis for the left and right analog sticks.

Switch Application Changes:

  • Invert Controller Analog Axis added #20:
    • Added the ability to configure and invert the X and Y analog axis for the left and right analog sticks.
    • Thanks so much for being patient mathew77.
  • Deleted old Switch HID input API usage:
    • LibNX has finally deleted the deprecated HID input implementation. So they were removed from here too.
  • UI Refactor:
    • Almost all the UI screens had their code re-written and refactored to make it easier for myself to add parameters and more screens.
    • This does not have any effect on the users, the behaviour of the UI is still the same, just the code behind it has changed so much.
      • and I’m still not satisfied with it.
  • Configuration File Refactor:
    • Configuration is now broken up into separate files for each respective configuration screen/option.
    • You will see a configuration file now for network, decoder, common, etc.
    • Old configuration files are not compatible anymore. You can delete them or back them up and see if there are any settings you’d like to replicate in the new configuration screens.
  • Encoder Configuration Overhaul — Includes h264_amf codec (AMD GPU encoder):
    • Encoder configuration menu has been overhauled now to allow for choosing which h264 encoder to use.
      • To choose different codec, cycle through the ‘codec’ option on the Encoder Configuration page.
      • Use d-pad left/right to change to the codec’s parameters page to configure the respective options.
  • h264 CPU encoder was simplified and had some other options added:
      • Bitrate mode can be chosen now (constant or variable — before it was always variable).
      • Profile option was added (this can help low end hardware or latency by choosing ‘baseline’).
    • h264 AMF encoder added (AMD GPU hardware encoder).
      • This was the sole reason why I needed to completely overhaul and refactor the UI code.
      • Added options that I found had the most dramatic effects in testing.
  • Built with latest LibNX(v4.1.3 at this time of release):
    • Meaning it should work fine for latest firmware (12.0.3 at this time).

v0.8.3 2021/02/07

PC Host Application Changes:

  • Controller Bug Fixes:
    • Fixed an issue where controller gamepad data was not being streamed correctly on certain network cards.
      • Basically, needed to confirm the size of the gamepad data payload and if it wasn’t as expected, keep reading the socket before proceeding.
    • Fixed the incorrect button mapping for the joycon’s ‘minus’ button being mapped to the ‘guide’ button on the Xbox 360 controller.
      • Now ‘minus’ is mapped to ‘back’ on the 360 controller.
    • Fixed a potential overflow bug with the virtual controller analog sticks for the DS4 and X360 controller.
  • Diagnostic Output:
    • Network configuration information is checked and displayed by the program.
      • This will help when users report networking issues as well as help users be able to easily determine the IP address of the PC without having to use ipconfig.
    • Monitor display information is displayed. This will be useful when users report clipped desktops coming through the Switch.
    • Virtual controller sanity checks are performed now. This is to make sure the virtual controller driver is installed and working.
    • The output from FFMPEG when encoding video and audio is now a configuration option. Users can choose to show the encoder logging data or not. This will mainly be useful for debugging odd situations where audio isn’t coming through or video seems to fail.
      • This is in a configuration file called ‘config.ini’. It is located in the same place as ‘switch-remote-play-host.exe’.

Switch Application Changes:

  • Configuration Options:
    • Broadcast Address added as a configuration option. The PC application will display the broadcast address to be added to the switch application’s config file. Adding it will allow automatic network discovery to work when pressing the ‘L’ button.
      • Without this option being specified it will default to 192.168.0.255. If you do not specify your broadcast address in the config file then you will have to use Manual IP Mode.
    • Manual IP Mode Enabled option is now stored in the config file. This will allow users to now be able to just press ‘R’ once the application opens to connect without having to go to the manual IP mode screen and press ‘enabled’.

v0.8.1-Mac 2021/01/16

  • M1 macs use the M1 version as it includes an ffmpeg binary compiled for M1.
  • Intel macs use the Intel version as it includes an ffmpeg binary compiled for Intel.
  • What works:
    • Mouse clicking and cursor movement is working.
    • Video streaming and connection is working.
    • Limited Encoder Configuration settings.
    • Preset, Desktop resolution (limited), Quality Control Rate.
  • What doesn’t work:
    • Gamepad input. There are no virtual drivers and I don’t have the time to learn DriverKit framework or IOKit to create my own.
    • Audio. Requires a 3rd party program and doesn’t work well on M1 macs.
    • Bitrate settings. You can only use Quality Control Rate factor. Bitrate settings interfere and cause stream cutouts on Mac.

v0.8.1 2021/01/04

  • Added extra options in the Controller Configuration Menu.
    • Left mouse button can be mapped to any of the Switch shoulder buttons.
    • Right mouse button can be mapped to any of the Switch shoulder buttons.

v0.8.0 2021/01/03

  • Re-wrote how the menu system works to make it less of a hassle to add more configuration screens.
  • Added Decoder Configuration Menu.
    • Available decoder options that can modify how the Switch decodes the ffmpeg stream are available.
    • Offers some good performance options to allow for better quality streams to come through.
  • Added Controller Configuration Options.
    • Moved mouse sensitivity to the Controller Configuration screen.
    • Added option to toggle if Mouse is default input mode on stream connect.
    • Added Controller type option to choose between X360 or DS4 controller.
    • Added button inversion options for XYAB.
  • Added X360 Controller support to the PC application (thanks theosirian).

v0.7.4 2020/12/30

  • Added Mouse Sensitivity as a configuration option.
  • Configuration settings are now saved upon starting a stream.
  • Last saved configuration settings are loaded on application start.

v0.7.3 2020/12/27

  • Added Encoder Preset, Codec, Control Rate Factor, and HWAccel ffmpeg options to the Switch app.
  • Fixed a control mapping bug for diagonal directions on the D-Pad being flipped accidentally.
  • Increased input send rate to 100 fps from 60 fps.
  • Updated UI to be more concise and make room for the extra configuration options.

v0.7.2 2020/12/25

  • Stream desktop to switch.
  • Use the switch as a controller to play games or a mouse to open applications and then play games.

Credits

Thanks:

  • jakibaki for the original In-Home-Switching switch application.
  • DevL0rd for the updated streaming application SkyNX.
  • FFmpeg for an exhaustingly extensive library.
  • nefarius for the ViGEm Client SDK. It’s such a nice SDK/library to use.
  • rdp for [https://github.com/rdp/screen-capture-recorder-to-video-windows-free screen-capture-recorder. Made streaming audio via FFmpeg on PC very easy.
  • SwitchBrew for libNX.
  • devkitPro bloody legends for letting us have a toolchain to compile stuff for the Switch.
  • SciresM, TuxSH, hexkyz, and fincs for Atmosphere. Absolute madlads these lot are. Also a shoutout to the champs that help contribute to the repo.
  • Jonathan Dearborn for SDL_FontCache.
  • cucholix for the app icon.

External links

  • GitHub — https://github.com/Moehammered/switch-remote-play
  • GBAtemp — https://gbatemp.net/threads/switch-remote-play-stream-your-pc-to-your-switch.579541/

SkyNX — PC Games on your Nintendo Switch via Remote Play

SkyNX is a homebrew by DevL0rd that allows you to play PC games on your Nintendo Switch via remote play. This means you will be streaming game footage from your PC to your Switch, and using the Switch to control the game. Your Switch will automatically be configured as a controller for your PC to work with any game that supports controllers. SkyNX also features a setting to disable the video stream and simply use the Nintendo Switch as a controller for PC. The touch screen can also be used to control your mouse.

SkyNX is reminiscent to Moonlight, a well-known homebrew application for streaming from PCs with Nvidia GPUs to various mobile devices. SkyNX boasts great performance with low latency, making it a perfect addition to the Switch’s homebrew library and really shows off its capabilities as a gaming console. SkyNX works especially well with emulators such as Dolphin and Cemu, making it perfect for slower-paced titles that run at lower native resolutions.

Required Downloads:

  • SkyNX
  • SkyNXStreamer

Nintendo Switch with Custom Firmware

  • The SkyNX homebrew application requires a hacked switch with CFW such as Atmosphere
  • You cannot run homebrew applications with unhacked or stock Switch consoles
  • This guide assumes you have all the basic requirements to enter RCM and boot into CFW

Goldleaf

  • The Goldleaf homebrew application is required to install the SkyNX NSP forwarder
  • Follow this guide on installing Goldleaf if you haven’t done so already

Wi-Fi Connection

  • You will need a Wi-Fi connection to stream gameplay from your PC to your Nintendo Switch
  • Use 90DNS or Incognito to block Nintendo servers and avoid being banned

Install SkyNX

  1. Extract the contents of SkyNXStreamer.zip to a folder on your PCskynxstreamer install
  2. Launch SkyNXStreamer.exe

    If a Window’s Defender prompt appears, click [More info] -> [Run Anyway] to proceedskynx windows defender run anyway

  3. Install the required driversskynx install required drivers
  4. Restart your PC when promptedskynx install restart pc
  5. Launch SkyNXStreamer.exe after restarting your PC

    Run SkyNXStreamer as administrator if your required game is also launched with administrator privileges

  6. Allow network access if promptedskynx allow network access
  7. Enter the IP address displayed in SkyNX on your Switchswitch skynx ip address stream
  8. Click [Start Streamer] to begin streaming from your PC to your Switchskynx switch remote play start streaming
  9. Launch your game on the PC to begin, the Switch will automatically be configured as a controller
  10. Set the game’s resolution to 1280 x 720 to match the Nintendo Switch screen resolutionskynx stream 720p settings monster hunter

You can adjust quality settings to increase the picture quality. The default 5Mbs results in great performance with low latency. However, increasing bitrate to the maximum of 20Mbs produces a brilliant image with very little impact to latency or stutter. Greater distances from your network access point could affect performances at higher bitrates.skynx stream settings bitrate 20mbs quality monster hunter

Unlike Moonlight, SkyNX does not specifically require an Nvidia GPU to encode from. The encoder can be selected to suit the specifications of your PC:

skynx stream encoder nvenc cpu amd intel

  • CPU Encoding: Use your CPU to stream, recommending for CPU’s with more than 4 cores / 4 threads.
  • Nvidia Encoding: Use the Nvidia GPU’s on-board NVENC chip to stream, recommending if using a newer GTX / RTX card
  • AMD Encoding: Use an AMD GPU to stream, also AMD laptops
  • Intel Encoding: Use the integrated GPU (iGPU) of the Intel CPU to stream, for laptops without a discrete GPU

skynx switch stream remote play options

  • Press the [LS] + [RS] buttons together to toggle mouse control, choose between analog stick  or gyroscope control
  • Video can be disabled allowing you to use your Nintendo Switch as a controller for PC
  • [A] / [B] or [X] / [Y] buttons can be swapped to suit the game you are playing
  • The framerate can be limited to 30FPS for games that run at 30 frames per second

SkyNX can be set to change your Windows resolution to 1280 x 720 when streaming begins. This is recommended to match your stream’s resolution to the Nintendo Switch screen resolution.skynx settings 720p resolution

The Switch (stream) FPS and encoding (source) FPS can be monitored on the Stat’s tabskynx fps encoding fps stats

SkyNX is an ongoing project with a few bugs that are being worked on. SkyNX will freeze if your Switch enters sleep mode while it is open. You can hold the [Power] button for 5 seconds and select [Restart] to reboot your Switch back into Atmosphere. Remember to always exit SkyNX before putting your Switch into sleep mode.

Enabling Controller Support

Nintendo Switch Homebrew and Games

Credits

Понравилась статья? Поделить с друзьями:
  • Swiss navy смазка инструкция по применению
  • Swiss diamond точилка для ножей инструкция
  • Swiss diamond essd 001 инструкция
  • Swastha thriphala инструкция на русском языке
  • Swastha amurtha инструкция на русском языке