Skip to content

vindeckyy/SolarMoon

 
 

Repository files navigation

SolarMoon

AppVeyor Build Status

SolarMoon is the iOS / tvOS client of the SolarFlare game-streaming stack. It is a derivative of moonlight-stream/moonlight-ios (the upstream Moonlight client for iOS / tvOS) and the same client-side protocol that Moonlight uses to talk to Sunshine and NVIDIA GameStream. The binary name, bundle identifier, and underlying GameStream / NV stream implementation are unchanged from upstream; this fork is a brand-identity pass on top.

SolarMoon is paired with SolarFlare (the CachyOS / Linux fast-path host) by the same maintainer. The web UI on the host is also branded as SolarFlare; this app is its client.

What changed from upstream

Visual / brand identity only. The streaming protocol, networking stack, controller handling, on-screen keyboard, and gamepad emulation are byte-identical to upstream. The intended audience is anyone who has built the SolarFlare host and wants a matching iOS client.

  • App name in InfoPlist.strings changed from "Moonlight" to "SolarMoon".
  • Bundle identifier changed from com.moonlight-stream.Moonlight to com.solarmoon.app.
  • Theme added (Limelight/Theme/SolarFlareTheme.h + .m) with the SolarFlare brand colors (deep slate background, gold primary, flare-orange accent) as a UIColor category.
  • Logo assets added under Images.xcassets/SolarFlareLogo{,Large}.imageset/ (sun + flare burst, generated PNGs at @1x/@2x/@3x).
  • Launch screen (Launch Screen.xib) repainted with the dark SolarFlare palette and the new logo.
  • The upstream AppIcon (the round moon glyph) is left as-is for now. To make the iOS home-screen icon match, replace the files in Images.xcassets/AppIcon.appiconset/ with a 1024×1024 SolarFlare icon.

What did NOT change

  • Streaming protocol, NV encoder / decoder, session handshake, encryption, RTSP port (48010), HTTPS port (47984) — all upstream.
  • Controller handling (Limelight/Input/), on-screen gamepad overlay, keyboard, pen / touch, motion — all upstream.
  • App discovery (mDNS / _nvstream._tcp).
  • Database schema, networking, performance tuning.
  • Submodules (moonlight-common/, X1Kit/).

Building

The build steps are unchanged from upstream:

  • Install Xcode from the App Store page
  • git clone --recursive https://github.com/vindeckyy/SolarMoon.git
    • If you've already cloned without --recursive, run git submodule update --init --recursive
  • Open Moonlight.xcodeproj in Xcode
  • To run on a real device, locally modify the signing options:
    • Click on "Moonlight" at the top of the left sidebar
    • Click on the "Signing & Capabilities" tab
    • Under "Targets", select "Moonlight" (for iOS / iPadOS) or "Moonlight TV" (for tvOS)
    • In the "Team" dropdown, select your name (sign into Xcode with your Apple account if your name doesn't appear)
    • The "Bundle Identifier" is already set to com.solarmoon.app; change it to something unique (e.g. add your name) so it doesn't conflict with other SolarMoon builds.
    • Now you can select your Apple device in the top bar as a target and click the Play button to run.

Acknowledgments

  • The moonlight-stream/moonlight-ios maintainers and contributors. This fork would not exist without their work; SolarMoon is a derivative under GPL-3.0.
  • The Moonlight PC / Android / embedded clients are separate projects. See the Moonlight docs wiki for the full set.
  • The VoidLink fork of Moonlight-iOS (formerly moonlight-zwm) for showing that a heavy UI rewrite of the iOS client is possible on top of the upstream codebase.

License

GPL-3.0-only, inherited from upstream Moonlight for iOS / tvOS. All fork additions are also GPL-3.0-only. See LICENSE.txt for the full text.

About

GameStream client for iOS/tvOS

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 84.7%
  • Objective-C 14.3%
  • Other 1.0%