My friend and I were recently feeling nostalgic and really wanted to play some first-generation Pokémon. We don't live anywhere near each other, but we wanted to have the experience of "watching over the shoulder" of whoever currently "had the controller."
We both own copies of the first-gen Pokémon games, but the whole distance thing and Gameboy requirement weren't really practical, so I got creative!
After a whole bunch of trial and error of various technologies, I came up with a way that worked extremely well for us that I thought I'd share. The tl;dr is Steam Remote Play, emulation, and a couple of smartphones running the Steam Link app.
A computer to run both the emulated game and Steam. In my case, it was an old Xbox chassis repurposed as a Linux server running Ubuntu, EmulationStation, and the Steam client.
One or more Steam Link-capable devices on which to play the game. You could also play along locally, but I wanted us each to be able to grab our phones and start playing.
The actual game you want to play, either in Steam or in some other player. For me, this was EmulationStation and a legal copy of Pokémon Blue as expressed under section 117 of the US Copyright Act.
This post will not detail how to obtain a legal backup of software you own, nor will it outline appropriate legal uses of such.
As an always-legal alternative to this, you could instead capture the audio/video of a real console and emulate the input to the system by using something like an Arduino or Raspberry Pi, but that's a topic for a much longer post.
I've boiled the process down to 7 super-simple steps. Here we go!
The first step is to make sure your Steam client is available for remote play on your network and/or the internet.
In my testing, I did not have to open up any special ports on my firewall to get this to work, likely either because the initial connection is established in an outbound direction or because it's using UPnP.
For specific information on how to set this up, check out this article on Steam's website. I chose the "anywhere" option, but you can use whichever fits your needs.
The reason why this works so well with Phones and Steam Links is that the pairing process for them does not require an actual login to a specific Steam account. If you do use your Steam account, the process is even more seamless, because your machines running Steam will automatically show up, but this only works for one person unless you want to share account passwords, which you absolutely should NOT do.
Instead, you pair by being presented with a PIN on the Steam Link/App and you type that into the Steam client to complete the process. This means that multiple unrelated devices can all pair to the same computer! And ever better, they can all connect at the same time!
To do this, you tap "Other Computer" on the Steam Link and follow the instructions.
Basically, this just means going to the Remote Play settings on Steam and punching in the pin. It's as close to zero effort as you can get.
If you're planning to play a Steam game, you're basically done at this point and you can just start playing. If you're playing something out-of-band like I was, then you've got a couple more steps before you're ready.
By default, when the first device connects and initiates Remote Play, it will switch Steam to Big Picture mode to make it easy to select and play games. We want to change that. In the Streaming settings on the Steam Link/App, find the setting called "Launch Mode" and change it to "Desktop."
At this point, you're nearly there!
Whatever phones or Steam Links you were planning on connecting, do that now by firing up the Steam Link/Apps and connecting to the remote computer. Now that you've paired them with the Steam Client, they'll show up in the Steam Link, so long as the computer in question has Steam up and running.
At this point, your Remote Play session should have come up on your Steam Link devices. If all went well, the Remote Play session should have brought up the desktop, rather than Steam Big Picture mode. This is what we want! Because it now means you can navigate to whatever you want on your computer, launch it, and start playing.
This part can be a little tricky and is very circumstantial to the game you're playing. But the basic idea is that you'll need to set up the on-screen buttons or controller mappings on both the Steam Link side and the computer side. This is actually what makes Steam Link really shine. Not only will you get configurable on-screen controls, but the input and controller emulation is virtually seamless across the web. I've seen it work well anywhere from 2 feet to 200 miles away. Yes, 200 miles. I played 7 Days to Die, Paladins, and Heroes of Might and Magic III with a completely acceptable amount of latency from over 200 miles away from my home. All's I brought with me was a tiny Steam Link, a mouse, and a keyboard.
You're done. You should be playing games now. You can stop reading. Maybe you already did, but you just left the tab open. Feel free to close it at your convenience. have fun gaming. Make sure to grab the potion out of the PC in Ash's bedroom.