I’ve used Moonlight for PC game streaming for quite a while, and for the most part, the combination of Moonlight and Sunshine worked extremely well.
Low latency, controller support, hardware encoding, high refresh rates and the ability to stream games directly from my own gaming PC made it an excellent solution.
Then I upgraded my desktop setup to a 34-inch ultrawide monitor.
That’s when things started getting complicated.
My gaming PC suddenly had a display with a very different resolution and aspect ratio from the devices I was actually streaming games to, including my iPhone, TVs and other Moonlight clients.
Instead of constantly changing resolutions on my gaming PC, I eventually switched my game-streaming host from Sunshine to Apollo.
The biggest reason?
Virtual displays that can be configured individually for different streaming devices.
In this guide I’ll explain how my setup works, the difference between Moonlight, Sunshine and Apollo, why Apollo solved my ultrawide problem, and a few other useful Apollo features including controller emulation and game shortcuts.
If you’d rather see the setup in action, here’s my complete walkthrough:
The article below goes into the important concepts and settings so you can also use it as a reference while configuring your own setup.
Before getting into why I switched, it’s important to understand what each application actually does.
Moonlight is the application running on the device you’re actually playing on.
That could be:
Moonlight connects back to your gaming PC and receives the video and audio stream while sending your controller, keyboard or mouse inputs back to the host.
Sunshine runs on your gaming PC.
It handles the actual game-streaming side of the connection and works with Moonlight as the client.
For many users, Sunshine is still an excellent option.
In fact, one thing I want to make clear is:
You don’t need to replace Sunshine simply because Apollo exists.
If your Sunshine configuration already works perfectly for the devices you use, there’s very little reason to change it.
My reason for switching was very specific.
Apollo is a fork of Sunshine, so if you’ve already used Sunshine, Apollo’s interface and overall setup will feel extremely familiar.
The major difference for my use case is that Apollo adds functionality that makes handling different streaming devices significantly easier.
Most importantly, that includes virtual display management.
My gaming setup changed when I moved to a 34-inch Samsung ultrawide monitor.
The monitor itself works great for desktop gaming.
The problem appears when the gaming PC’s screen and the streaming device have completely different:
For example, my gaming PC might be using an ultrawide resolution while my iPhone is using a much narrower display.
A television might be 16:9.
A tablet may have another resolution entirely.
Trying to make one physical desktop monitor configuration work correctly across every Moonlight client can become frustrating.
You can adjust display settings when using Sunshine, but if you’re constantly switching between several devices, that means repeatedly changing your configuration.
That wasn’t the workflow I wanted.
Apollo solved this problem by allowing me to treat my Moonlight clients more like individual displays.
Instead of every device depending on the configuration of my physical ultrawide monitor, Apollo can create a virtual display for the streaming session.
Even better, that configuration can be associated with the device I’m using.
For example:
Gaming PC: Uses my normal ultrawide monitor configuration.
iPhone: Gets a display configuration appropriate for the iPhone.
TV: Can use a standard television resolution.
Tablet: Can have its own configuration.
That means I don’t have to redesign my desktop display configuration every time I decide to play somewhere else.
This is the biggest reason Apollo makes sense in my particular setup.
A virtual display behaves like an additional monitor connected to your computer even though there isn’t necessarily a physical monitor attached.
When you start a streaming session, Apollo can create the display environment required for that particular client.
Instead of forcing the client to work around the resolution of your primary desktop monitor, you can configure a more appropriate resolution for the streaming device.
This becomes particularly useful if you have:
One gaming PC + several very different streaming screens.
That’s exactly my situation.
Inside Apollo’s device management options, you can define permissions and behavior for connected devices.
You can control things such as whether the device can use:
You can also override the display resolution.
That’s the setting that makes the biggest difference for my setup.
Instead of using one resolution everywhere, I can configure the streaming experience around the actual device I’m holding.
For most of my remote gaming, I personally like 1080p at 60 FPS.
It’s a good balance between image quality, responsiveness and network bandwidth.
That doesn’t mean you have to use 1080p60.
If you’re streaming to a large 4K television and your gaming PC and network can handle it, you could experiment with higher resolutions.
On a smaller screen like a phone, however, pushing an extremely high resolution may not always provide a meaningful improvement relative to the additional bandwidth required.
The advantage with Apollo is that you don’t necessarily have to make the same choice for every client.
Your phone and your television can have different configurations.
I moved to Apollo after removing my existing Sunshine installation.
The process itself is straightforward.
At a basic level:
If you’ve previously configured Sunshine, much of Apollo’s interface will already look familiar.
Because Apollo is based on Sunshine, the transition isn’t like learning an entirely new streaming ecosystem.
Yes.
This is important because the naming can initially make the ecosystem confusing.
You don’t need a completely different streaming application just because you’re using Apollo as the host.
You can continue using Moonlight as your client.
My configuration essentially becomes:
Gaming PC → Apollo → Moonlight → iPhone / TV / Laptop / Tablet
That allows me to continue using the Moonlight client I’m already familiar with while getting Apollo’s additional host-side functionality.
Another useful feature is the Applications section.
Normally I can launch Steam Big Picture through Moonlight and then browse my Steam library.
That works perfectly well.
But sometimes I don’t want to navigate through Steam just to open one game.
Apollo allows applications and games to be added as shortcuts.
For example, you could have entries for games such as:
Selecting the game in Moonlight can then launch that game or application directly.
This isn’t required, but it’s a nice quality-of-life improvement if there are certain games you play regularly.
Controller support is another area I found interesting.
I regularly use PlayStation controllers, including my PS5 DualSense, and I’ve also played remotely using mobile controllers such as the Backbone and MCON.
One problem PC gamers frequently encounter is controller identification.
You may physically be holding a PlayStation controller, but the computer or game may detect it as an Xbox-style controller.
That can result in Xbox:
A / B / X / Y
button prompts appearing instead of PlayStation:
Cross / Circle / Square / Triangle
prompts.
Apollo provides gamepad emulation options that can help determine what type of controller the gaming PC receives.
Inside Apollo’s input settings, the gamepad type can be configured.
Depending on your setup, options can include configurations such as:
This is particularly useful if you’re like me and prefer PlayStation-style controls.
Keep in mind that the final button prompts you see can still depend on the game itself, Steam Input and how that particular title handles controller detection.
I’ve actually covered that problem separately with games such as Hades because controller detection on PC can sometimes require additional configuration.
I wouldn’t describe the answer as simply Apollo is better than Sunshine.
It depends on your setup.
Your current game-streaming setup already works.
You’re primarily streaming to one type of display.
You don’t frequently change between devices with different resolutions.
You already have Sunshine configured exactly the way you want.
In that situation, there’s no reason to change software just for the sake of changing it.
I use one gaming PC with several different displays.
My desktop monitor is ultrawide.
My phone has a completely different aspect ratio.
My televisions use standard 16:9 displays.
I may also stream to tablets or laptops.
Apollo’s virtual display and per-device configuration makes managing all of those screens significantly easier.
That’s the feature that convinced me to switch.
| Feature | Sunshine | Apollo |
|---|---|---|
| Works with Moonlight | Yes | Yes |
| Self-hosted PC game streaming | Yes | Yes |
| Hardware encoding | Yes | Yes |
| Controller support | Yes | Yes |
| Application shortcuts | Yes | Yes |
| Familiar web interface | Yes | Yes |
| Virtual display features | Setup dependent | Major focus |
| Per-device configuration | More manual for my workflow | One of Apollo’s advantages |
| Good for a single gaming display | Excellent | Excellent |
| Good for multiple different client displays | Works | Better suited to my setup |
The important part isn’t choosing whichever application has more features.
It’s choosing the one that solves the problem you actually have.
Another distinction worth making is that this isn’t cloud gaming in the traditional sense.
I’m still using:
My PC.
My GPU.
My games.
My network.
Moonlight and Apollo are essentially giving me remote access to that gaming hardware.
That means the performance available to the game itself still comes from my gaming PC.
For local streaming, everything stays within my own network, which is the way I prefer to use this setup whenever possible.
My setup has evolved quite a bit.
I originally used NVIDIA’s GameStream ecosystem before eventually moving through different solutions.
Today, my basic setup looks like:
Gaming PC → Apollo → Moonlight → Streaming Device
For controllers, I’ve tested several options depending on the device, including:
On an iPhone, this effectively turns my gaming PC into my own personal handheld gaming system.
And because the games are actually running on my desktop PC, I still get access to my normal Steam library and gaming hardware.
If you’re already using Sunshine and everything works, I’d keep using it.
There’s no need to rebuild a perfectly functional game-streaming setup simply because another option exists.
But I would take a serious look at Apollo if you have a setup similar to mine:
One gaming computer with multiple Moonlight clients using very different displays.
That’s where Apollo’s virtual display features start becoming extremely useful.
For me, the upgrade to an ultrawide desktop monitor created the problem.
Apollo solved it without forcing me to constantly change the resolution of my actual gaming monitor.
That’s why I switched.
No.
Apollo runs on the gaming PC as the host while Moonlight can continue to run on the device you’re using to play.
Yes. Apollo is built from Sunshine, which is why the interface and many configuration concepts will look familiar to Sunshine users.
If you’re moving completely to Apollo, using one game-streaming host generally keeps the setup simpler.
Experienced users may be able to maintain different configurations, but for a straightforward migration I prefer removing the unnecessary host and simplifying the setup.
That’s one of the main reasons I switched.
Virtual displays and device-specific settings allow the streaming display to be configured separately from the physical monitor connected to the gaming PC.
Yes, and that’s actually the problem that led me to Apollo.
My ultrawide desktop resolution wasn’t ideal for every device I streamed to, particularly smaller screens and standard 16:9 displays.
Yes.
Apollo includes gamepad configuration and emulation options, and I’ve used the setup with my PS5 DualSense as well as several other controllers.
Not necessarily for everyone.
Sunshine remains a great solution.
Apollo became the better option for my setup because I wanted easier virtual display and per-device configuration.
Switching from Sunshine to Apollo wasn’t about chasing the newest piece of software.
It solved a real problem created by my hardware.
Once I started using an ultrawide monitor on my gaming PC while simultaneously streaming to an iPhone, TVs and other devices, one desktop resolution no longer made sense for everything.
Apollo’s ability to create and manage virtual displays makes those different devices much easier to handle.
If you have a basic Moonlight setup and Sunshine already works perfectly, stick with it.
But if you have one powerful gaming PC and several different screens, Apollo is definitely worth exploring.
You can watch my complete setup and walkthrough here:
Apollo
https://github.com/ClassicOldSong/Apollo
Sunshine
https://github.com/LizardByte/Sunshine
Moonlight Game Streaming
https://moonlight-stream.org
I use the PS5 DualSense regularly with my Moonlight and Apollo gaming setup, especially when I want PlayStation-style controls on PC.
[Check the PS5 DualSense on Amazon]
For gaming directly on my phone, the Backbone One turns the iPhone into a much more comfortable handheld gaming device.
[Check the Backbone One on Amazon]
Another good option if you prefer a more traditional Xbox-style PC controller.
[Check the GameSir G7 Pro on Amazon]
[Check the 8BitDo Ultimate 2C on Amazon]
[Check the Xbox Elite Controller on Amazon]
As an Amazon Associate, I earn from qualifying purchases. Some links on this page are affiliate links, which means I may earn a commission at no additional cost to you.