GameStream client for ChromeOS
C C++ JavaScript HTML Makefile CSS
Clone or download
Latest commit a76c1ab Aug 5, 2018
Permalink
Failed to load latest commit information.
.github Added github bots config files Jul 30, 2018
h264bitstream Use h264bitstream library to mixup the SPS so OS X will use hardware … Feb 21, 2016
icons Update icons Aug 24, 2017
libgamestream Hack around TLS v1.2 issue that causes machines to spuriously go offline Mar 28, 2018
moonlight-common-c @ 679f6e8 Update to latest common-c Jul 30, 2018
opus @ f6f8487 loaded image grid, need to finish including google material icons and… Jul 4, 2016
ports Update libcurl webports and dependencies for IPv6 support Sep 3, 2017
static Address broken error checking for launch requests and other minor issues Jun 13, 2018
.gitignore ignoring visual studio generated directories Oct 22, 2017
.gitmodules Add Opus library for audio decoding Feb 14, 2016
CODE_OF_CONDUCT.md Added the "Contributor Covenant Code of Conduct" May 12, 2018
LICENSE Initial commit Feb 13, 2016
Makefile Add profiling infrastructure (currently unused) May 9, 2016
README.md Link to Moonlight Qt Aug 6, 2018
auddec.cpp Update to latest moonlight-common-c Jun 11, 2017
common-c.mk Update common-c with FEC support May 8, 2017
connectionlistener.cpp Actually set the logMessage callback so logging works Mar 28, 2018
gamepad.cpp Send attached gamepads at launch to fix L4D2 Jan 20, 2018
h264bitstream.mk Use h264bitstream library to mixup the SPS so OS X will use hardware … Feb 21, 2016
http.cpp Remove PEM_read* anti-pattern that only happens to work because we're… May 1, 2018
index.html Address broken error checking for launch requests and other minor issues Jun 13, 2018
input.cpp detect numpad modifier and add appropriate offset to keycode Nov 7, 2017
libchelper.c Update libcurl webports and dependencies for IPv6 support Sep 3, 2017
libgamestream.mk Pairing is working Feb 28, 2016
main.cpp Improve performance of PC polling with many paired PCs Sep 3, 2017
make.bat New message handling, and new NvAPI Feb 25, 2016
manifest.json Version 0.9.1 Jul 30, 2018
moonlight.hpp Improve performance of PC polling with many paired PCs Sep 3, 2017
opus.mk Add Opus library for audio decoding Feb 14, 2016
ports.mk Fix makefile and add libraries required for building Mar 11, 2016
profiling.cpp Improve profiling code May 9, 2016
viddec.cpp Update for new video decoder API changes Nov 19, 2017

README.md

Moonlight for Chrome

Moonlight for Chrome is an open source implementation of NVIDIA's GameStream, as used by the NVIDIA Shield, but built to run in the Chrome browser.

Moonlight for Chrome allows you to stream your full collection of games from your powerful desktop to another PC or laptop running Chrome OS.

For Windows, Mac, and Linux, we recommend running the new PC port for maximum performance.

Moonlight also has mobile versions for Android and iOS.

Features

  • Streams Steam Big Picture and all of your games from your PC to your Chrome browser
  • Keyboard and mouse support
  • Hardware-accelerated video decoding
  • Full support for Xbox controllers and PlayStation controllers, and some other HID gamepads
  • Use mDNS to scan for compatible GeForce Experience (GFE) machines on the network

Features to come

  • Gamepad mapping
  • Improved UI
  • Better error handling

Installation

Requirements

  • Chrome browser
  • GameStream-compatible computer with GTX 600+ series desktop or mobile GPU (for the PC from which you're streaming)
  • High-end wireless router (802.11n dual-band recommended) or wired network
  • Hardware acceleration enabled under chrome://settings/system
  • For Linux users, ensure your Chrome/Chromium package was built with NaCl support. Google's official packages are, but your distro's packages may not be.

Building

  1. Install the Chrome Native Client SDK and download the current Pepper SDK
  2. Set the NACL_SDK_ROOT environment variable to your Pepper SDK folder. If you need more detailed instructions, see here
  3. Run git submodule update --init --recursive from within moonlight-chrome/
  4. Run make from within the moonlight-chrome/ repo

Testing

  1. Open the Extensions page in Chrome
  2. Check the 'Developer mode' option
  3. Click 'Load unpacked extension' and point it at your built moonlight-chrome repo
  4. Run Moonlight from the extensions page
  5. If making changes, make sure to click the Reload button on the Extensions page

Streaming

Simply type the hostname or IP into the textbox, pair, choose an app to run, then begin streaming. Once paired, the host will be remembered in a dropdown menu. To exit a stream, press Ctrl+Alt+Shift+Q. To remove focus from the stream, press Ctrl+Alt+Shift.

Contribute

This project is being actively developed at XDA Developers

  1. Fork us
  2. Write code
  3. Send Pull Requests

Check out our website for project links and information.