Saturday, January 09, 2016

Moonlight Game Streaming-A Post I Wish Someone Had Done Before I Started Messing With It

Since Xbox One came out with their streaming technology in July, I have been intrigued by streaming games on my local network and remotely (outside the local network).  I bought a couple of Windows 8 tablets (Venue Pro 8 and Unbranded 10), upgraded them to Windows 10, and got Xbox streaming to work fairly well.  The Unbranded's wireless is really not wonderful, so I would not recommend it.  The Dell Venue works much better.  I also had several PC games I had acquired over the years.  I gathered them all into my Steam account, and decided it would be great to have a "one-stop shop" for all my gaming needs.

Being (1) an Apple lover, and (2) never satisfied to leave well enough alone, however, I wanted to accomplish two things:

(1) stream PC and Xbox games to my iPhone and iPad.  Why?  To iPhone, in order to be free from having to be on a wifi network and allow playing games on car trips, while commuting, and anywhere the wifi was not up to snuff; To iPad, for the bigger screen and superior wifi connectivity (My iPad Air 2 has Wireless AC, which makes a huge difference in streaming)

(2) stream PC and Xbox games outside my home network.  The windows tablets worked fine at home, but really struggled outside the home.  The settings to configure Xbox streaming outside your home network aren't exactly readily available, either.

So, at the end of this year, my goal was to be able to have Xbox games and PC games streaming to my iPhone available wherever I have LTE cellular signal in a playable format.  As of January 7, 2016, we are ALMOST there.  Here's how it works.

Parts list:  keep in mind this isn't cheap if you don't already have these things, there's probably easier/cheaper ways to do this.

1.  iPhone 6
2.  iPad Air 2
3.  MFi Controller.  My choice was the Mad Catz CTRLi (full size) which looks a lot like an Xbox controller.
4.  Alienware Alpha running Windows 10.  I chose the low-end  model, Core i3 processor.  I got this from Dell refurbished on one of their sales.  The cost was between 300-350.  A decent PC is key to this process, so I recommend getting something hefty, or the rest of your streaming will be bottlenecked.  KEY:  Make sure whatever PC you get has a Nvidia GeForce graphics card-google Gamestream Nvidia to make sure you get the right Graphics card.  This DOES NOT WORK without the proper Nvidia GeForce graphics card.
5.  Xbox One.  Goes without saying if you are streaming Xbox One games.
6.  AC Wireless Router.  I have a Netgear Nighthawk AC1900
7.  Speedy home internet connection.  I have Comcast 50Mbps Down, 10 Mbps Up, which seems to be fine.
8.  Moonlight Game Streaming app-from the Apple app store-installed on both iPhone and iPad.

The setup:

1.  Set up the PC first.  I have my Alienware Alpha running headless and placed it next to the Netgear router (HARDWIRED connection, not wireless).  The better the connection there, the better your streaming experience will be.

2.  Set up the GeForce experience software.  I am running the latest stable version (not beta) I believe it is 8.2.1 or something like that.  Set up Gamestreaming as if you had a Nvidia Shield device-scan for games, check all the boxes that allow streaming, and make sure you add a custom game for Windows remote desktop streaming.  Add mtstc.exe to the GeForce software.  This allows you to get a remote streaming desktop via Moonlight.

3.  Install Moonlight on your iPhone and pair your iPhone with GameStream.  This is pretty self explanatory but will involve you typing in a code on your computer.  Pairing only needs to occur once.

4.  Connect your MFi controller to your iPhone.

5.  Moonlight should now have a list of all your PC games.  At this point, you should be able to start any PC game, the controller should be detected and you should be able to play seamlessly, assuming your wireless connection is good.  This process is well documented and the Moonlight site has great troubleshooting/tweaking tips, so I won't repeat them here.  I messed around with this a lot, and finally ended up setting everything on the PC to 720P, and also 720P/30HZ on Moonlight.  This results in a smooth stream inside and outside my home, and the iPhone screen is small enough I don't notice the difference between 720P and 1080P.

At this point you should have PC game streaming working in your home network.  You will need to forward ports to get it working outside your network but this process is well documented.  Google Moonlight game streaming port forwarding and there shouldn't be any issues.

Now, the hard part.  Getting Xbox Streaming to work via the same mechanism.  Using the remote desktop app via moonlight, I can start the Windows 10 Xbox App.  I can use the touch mouse to turn on the Xbox remotely and start the Xbox Streaming.  Where the process stalls, however, is in controlling the Xbox after streaming begins.  The Moonlight controller simply will not be detected by the Xbox Streaming app.

So, there seems to be a couple of options:  Buy something called a CronusMax, which is about 60 dollars and apparently mimics a Xbox Controller.  Or use a software emulator, which I have not seen any posts where anyone has done this successfully.  Here is a link to a recent thread where people much smarter than me have been working on this.  It seems very close.

Anyway, that's where I am as of today.  PC Game Streaming works great.  The Xbox App can be launched via iPhone but controller input is not passed through.  I am going to hold off on a Cronus Max as I think this can be solved via software.


Something that really delayed me during this process was the software KinoConsole.  KinoConsole will do exactly what Moonlight does, and in that sense, they are competitors.  I had both KinoConsole and Moonlight installed and kept trying to get both to work; they would each work sometimes (intermittently) and I had a terrible time figuring out why neither worked consistently.  Turns out the two conflict.  KinoConsole sometimes takes precedence, and then Moonlight won't stream.  If Moonlight takes precedence, KinoConsole won't work.  I ended up uninstalling the KinoConsole software from my PC, and since I did that, all is well.