Remote Play Switch

broken image


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

Leak: Remote Play on Nintendo Switch and New Portable DualShock. A Reddit user claims to have received a survey on Remote Play from Sony. The function would appear in the future on Nintendo Switch or Apple TV. It is also possible that Sony is considering creating a portable DualShock and is working on a remote game without an internet connection. Let the switch remotely play PC games (similar to steam link or remote play) For instructions, please see the instructions folder in the repo. 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. Let your friends log in and play Nintendo Switch games with you from their laptop or PC at home using ParsecSee our how to guide here - http://bit.ly/2xo4LK3.

This project is inspired by 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++'.

Note

The video stream is CPU dependent as at the moment it uses the ffmpeg option of hwaccel auto which usually results in ffmpeg picking CPU for the screen capture process. In my initial prototyping phase I found choosing the AMD GPU option for ffmpeg led to inconsistent stream results. I will look at making the hwaccel option configurable in the future but for now just keep in mind CPU is important.

If you're playing a game that is CPU intensive then there's a high chance the stream will have skips or hiccups. If your CPU is weak, then it'll be hard for it to produce and push the frames quick enough.

For my PC, when I play Nier Automata there are no hiccups and I can get near 60 fps depending on the stream settings (1280 x 720 desktop res, and 5mb/s bitrate). But when I tried playing RE3 2020 at 30 or 56fps I was getting hiccups and skips. So please keep this in mind.

Switch
Remote

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
  • Configure stream settings from switch
  • Disconnect / Reconnect stream at will
  • Toggle Input Mode to Mouse
  • Toggle Input Mode to DS4(PS4) controller
  • Toggle Input Mode to Xbox controller

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++.

Tested on:

  • Atmosphere 0.14.1 - FW 10.1.0 (switch-remote-play 0.7.2)
  • Atmosphere 0.16.2 - FW 10.1.0 (switch-remote-play 0.7.2)

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.

Tested on:

  • Windows 10 64 bit
    • Ryzen 5 2600 3.4GHz
    • AMD Radeon RX 5600 XT 6GB
    • 16GB RAM

Known Issues

Stream Performance

The stream performance is heavily dependent on network connectivity and your PC CPU performance. Configuration settings will need to be played with the find what works well with your network + PC environment.

Switch

I recommend playing with the 'Encoder Preset' and 'Quality Control Factor' values while keeping bitrate at 8192 or less.

General tips

  • Preset value controls how the encoder should work: ultrafast means the encoder performs to get the image out as fast as possible ignoring quality, and veryslow means the encoder can take its time to preserve image quality.
  • Codec value can help performance however I have tested both the AMF and standard h264 and don't notice much of a difference.
  • Quality control factor is what controls how good the image should be. The lower the value the harder your PC must work to maintain quality. (this value and 'Preset' are what will dictate your CPU's workload)
  • For more info see the ffmpeg documentation.

Config examples

  • Great image quality config:
    • Preset - veryslow
    • Quality control factor - less than 10 (0 = perfect image)
    • Bitrate - around 5000 - 8000
    • Vsync Mode - variable frame rate
  • Latency oriented config:
    • Preset - ultrafast
    • Quality control factor - 20+
    • Bitrate - around 5000
    • Vsync Mode - variable frame rate

I haven't tested all configuration combinations (and these are dependent on my PC specs), so if you find one that works great please feel free to send it to me with your PC specs and network environment configuration 🙂

Rare crash when opening some homebrew apps

The crash issue in v0.7.2 has been found and patched. (it was due to the network discovery feature not being shutdown correctly) The app still crashes however it is harder to reproduce now and I haven't found a proper 100% way to reproduce the crash yet. The current crashing issue is rare and only crashes hbloader/hbmenu when opening an app after streaming for a certain while. I can't reproduce it but it's gone for now. If anyone figures out how to reproduce the crash, please let me know.

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 🙂

by Moehammered.

Que novedades incluye la versión 0.8.3

Released

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'.

This release is a stepping stone towards more diagnostic info. I had other plans for this release but I had a fair few issues reported, with the controller issue being very high priority.

Steam Remote Play has been around yet a lot of gamers are still confused on how it works. In this brief guide, we'll try to show you how this great feature works and what you can do to use it.

We'll provide the steps on how to use both Remote Play Anywhere and Remote Play Together.

Remote Play Anywhere makes use of a separate Steam Link app, which can be downloaded from the Google Play Store or Apple App Store. If you have a Raspberry Pi device, you'll be pleased to know that this app is also supported.

What is Steam Remote Play?

Steam Remote Play is an interesting feature in Steam application that allows a user to play a game from a remote computer to another Steam-enabled device. You can either play a Steam game via Remote Play on another computer, or on your mobile device or tablet.

With Steam Remote Play, you can invite friends to play your games even when they themselves don't own the games or have these games installed on their computer, mobile device, or tablet.

If you want to play on a mobile device using Steam Remote Play, you need to install the Steam Link app.

What are the requirements for Steam Remote Play?

In order to successfully set up Steam Remote Play, you're going to need a number of things. Let's discuss each of them briefly.

Ps4 Remote Play Switch Homebrew

You must own the Steam game.

Not every game on Steam supports Remote Play so you must make sure that the game you want to share with your friends allows this feature. Obviously, you must also have ownership of the game, which means that you should have paid for the game (unless it's a free-to-play).

Nintendo switch remote play

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
  • Configure stream settings from switch
  • Disconnect / Reconnect stream at will
  • Toggle Input Mode to Mouse
  • Toggle Input Mode to DS4(PS4) controller
  • Toggle Input Mode to Xbox controller

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++.

Tested on:

  • Atmosphere 0.14.1 - FW 10.1.0 (switch-remote-play 0.7.2)
  • Atmosphere 0.16.2 - FW 10.1.0 (switch-remote-play 0.7.2)

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.

Tested on:

  • Windows 10 64 bit
    • Ryzen 5 2600 3.4GHz
    • AMD Radeon RX 5600 XT 6GB
    • 16GB RAM

Known Issues

Stream Performance

The stream performance is heavily dependent on network connectivity and your PC CPU performance. Configuration settings will need to be played with the find what works well with your network + PC environment.

I recommend playing with the 'Encoder Preset' and 'Quality Control Factor' values while keeping bitrate at 8192 or less.

General tips

  • Preset value controls how the encoder should work: ultrafast means the encoder performs to get the image out as fast as possible ignoring quality, and veryslow means the encoder can take its time to preserve image quality.
  • Codec value can help performance however I have tested both the AMF and standard h264 and don't notice much of a difference.
  • Quality control factor is what controls how good the image should be. The lower the value the harder your PC must work to maintain quality. (this value and 'Preset' are what will dictate your CPU's workload)
  • For more info see the ffmpeg documentation.

Config examples

  • Great image quality config:
    • Preset - veryslow
    • Quality control factor - less than 10 (0 = perfect image)
    • Bitrate - around 5000 - 8000
    • Vsync Mode - variable frame rate
  • Latency oriented config:
    • Preset - ultrafast
    • Quality control factor - 20+
    • Bitrate - around 5000
    • Vsync Mode - variable frame rate

I haven't tested all configuration combinations (and these are dependent on my PC specs), so if you find one that works great please feel free to send it to me with your PC specs and network environment configuration 🙂

Rare crash when opening some homebrew apps

The crash issue in v0.7.2 has been found and patched. (it was due to the network discovery feature not being shutdown correctly) The app still crashes however it is harder to reproduce now and I haven't found a proper 100% way to reproduce the crash yet. The current crashing issue is rare and only crashes hbloader/hbmenu when opening an app after streaming for a certain while. I can't reproduce it but it's gone for now. If anyone figures out how to reproduce the crash, please let me know.

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 🙂

by Moehammered.

Que novedades incluye la versión 0.8.3

Released

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'.

This release is a stepping stone towards more diagnostic info. I had other plans for this release but I had a fair few issues reported, with the controller issue being very high priority.

Steam Remote Play has been around yet a lot of gamers are still confused on how it works. In this brief guide, we'll try to show you how this great feature works and what you can do to use it.

We'll provide the steps on how to use both Remote Play Anywhere and Remote Play Together.

Remote Play Anywhere makes use of a separate Steam Link app, which can be downloaded from the Google Play Store or Apple App Store. If you have a Raspberry Pi device, you'll be pleased to know that this app is also supported.

What is Steam Remote Play?

Steam Remote Play is an interesting feature in Steam application that allows a user to play a game from a remote computer to another Steam-enabled device. You can either play a Steam game via Remote Play on another computer, or on your mobile device or tablet.

With Steam Remote Play, you can invite friends to play your games even when they themselves don't own the games or have these games installed on their computer, mobile device, or tablet.

If you want to play on a mobile device using Steam Remote Play, you need to install the Steam Link app.

What are the requirements for Steam Remote Play?

In order to successfully set up Steam Remote Play, you're going to need a number of things. Let's discuss each of them briefly.

Ps4 Remote Play Switch Homebrew

You must own the Steam game.

Not every game on Steam supports Remote Play so you must make sure that the game you want to share with your friends allows this feature. Obviously, you must also have ownership of the game, which means that you should have paid for the game (unless it's a free-to-play).

Good working remote computer.

If you are the one hosting the game or inviting other friends to join you for a remote play, you must make sure that your PC can handle the game and your graphics card supports hardware encoding. All NVIDIA GPUs starting from GTX 650 and newer support hardware encoding.

If your GPU has a hardware encoding feature, you also must make sure that you enable hardware encoding in your Steam application.

To do that, simply open the Advanced host options and check 'Enable hardware encoding.'

Decent internet connection.

In order to avoid experiencing lag or delay, you want to make sure that your internet connection speed is stable and fast enough (at least 10 Mbps).

While some players have tried using Steam Remote Play with a slower connection speed, experience may vary and there's a higher chance of lag or delay.

Wired connection.

Remote Play Ps4 Switch

As much as possible, you want to make sure that both remote computer hosting the game and the other computer that tries to launch it are connected to the router by a LAN cable. Wireless connection is less reliable than a wired setup.

How to know which games allow Remote Play?

In order to tell if a game supports Remote Play, you need to check its Steam Store page like this one from Sid Meier's Civilization® VI:

Remotely Play Switch

As you can see, Civilization 6 Steam version supports both Remote Play on Tablet and Remote Play Together. This means that it can be accessed in a Steam enabled mobile device (smartphone or tablet with Steam Link app) or in another computer via Remote Play Together.

How to use and set up Steam Remote Play?

It's easy to use Steam Remote Play. Depending on the device type you're planning to use, you either have to use the Steam Link app or Remote Play Together feature.

Remote Play Anywhere

Remote Play Switch Ps4

You can continue to play your favorite game anywhere using your smartphone or tablet as long as it's linked properly to your remote computer that hosts the game. So, for example, if you are away from home but want to play a Steam game, all you have to do is to link your phone to your computer (must be done ahead of time), use the Steam Link app, and from there, play the game.

These are the steps that you must do to make that happen:

  1. On your computer (host device), log in to the Steam application. This must be the computer where the game is installed.
  2. On your mobile device (smartphone or tablet with a Steam Link app installed) or computer, you can launch the game and started playing.

If you need assistance on where to download the Steam Link app and how to set it up, follow this link: https://store.steampowered.com/steamlink/about

Remote Play Together

If you want to play together with your friends who do not have the copy of the Steam game you have, you can use the Remote Play Together feature. Here's what you must do:

  1. On your computer, open the Steam game you want.
  2. On your friend's computer or supported mobile device, he or she must be logged in to Steam.
  3. On your computer, open your Steam Overlay in-game by pressing Shift+Tab.
  4. Find the name of your friend from your friends list, then select Remote Play Together.
  5. Once your friend accepts the invite, they will be in-game with you.

Other interesting articles:

Nintendo Switch Remote Play

Visit our TheDroidGuy Youtube Channel for more troubleshooting videos and tutorials.





broken image