Releases: ClassicOldSong/Apollo
v0.4.7-alpha.1
GPU priority hack
This is a pre-release, it might cause unexpected issues.
This release does not change anything to the configurations, so you can safely downgrade to the stable release if you find it problematic.
Please report any findings you have with this version to the corresponding discussion:
- Does it solve or decrease the frequency of HAGS freezing?
- Does it affect game performance?
- Does it improve stuttering issues?
- Have you noticed any other things get affected?
Please report with your system configurations including CPU/GPU model, memory type and speed, operating system and version, and GPU driver version.
v0.4.6
Warning
I noticed that some other forks of Sunshine merges on-going PRs from upstream (and without credits to the PR author). Although those features are appealing, but they're unfinished and has loads of potential risks. Please do not use those forks before they address all the security issues for your own safety concerns.
Feature in question: LizardByte/Sunshine#4078
Problem: Communication is not encrpyted, audio stream not client-separated
Note
If you experience stutters after upgrade to v0.4.x, try revert to v0.3.7-hotfix-1 for now and also report your system configuration to this issue.
If you just have upgraded your GPU driver, it's recommended to reboot your computer before staring a new stream.
Change log
v0.4.6
- Fix Spanish locale
- Fix double-refresh-rate not being used with custom refresh rates
- Add auto value for minimal fps target to reduce framerate overshoot in certain setups
v0.4.5
- Merge upstream
- Bring back sudo-frame-pacing (I made up the name just now lol)
v0.4.3
- Revert
build-depsto last known working version
v0.4.2
- Revert
libdisplaydeviceto last known working version
v0.4.1
- Various fixes and workarounds for new problems discovered after merging upstream
v0.4.0
- Track upstream
- Resolve 60 fps lock issue for WGC capture by setting the MinUpdateInterval property of the WGC capture session. by @danielmartina in #785
- Update es.json by @Linx-ESP in #853
- Feature: Added option to disable rumble on controllers from the Apollo side by @thesystemcoder168 in #886
- SudoVDA update: changed code signature to last 5 years long
NOTE: Please update to this version before August 19th. The original signature for SudoVDA expires after this day.
Bonus
You can use it to automatically save/restore a selection of files for each app, and they're separated for each client. You can use it to swap game settings, mod sets or even save files based on the client, so you don't need to edit game resolution/keymap/modsets every time you change to a different client.
🌟Best practices
Checkout WiKi
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.
Remember to quit Apollo before upgrading.
New Contributors
- @danielmartina made their first contribution in #785
- @Linx-ESP made their first contribution in #853
Full Changelog: v0.3.7...v0.4.6
v0.3.7
Change log
v0.3.7-hotfix.1
- Fix Input Only mode launch failed when no apps are running
- Auto terminate Input Only mode when all clients are disconnected
v0.3.7
- Add
Pause/Resumecommands,Pausecommands are executed when all clients are disconnected(not terminated) andResumecommands are executed when any client connects in when previously no clients are connected.- Auto pause/resume games now updated: https://github.com/ClassicOldSong/Apollo/wiki/Auto-pause-resume-games
- A new envvar
APOLLO_APP_STATUSis added
- Add
Terminate on Pauseoption to apps: when all clients are disconnected, the session terminates automatically. - Add
Always create Virtual Displayoption for clients. - Supports export
.artfiles in WebUI, - Supports launch directly from client in WebUI, when its opened from the client. Requires latest Artemis.
Warning
BREAKING: SUNSHINE_CLIENT_FPS is now float for better fractional refresh rate support. Use Special-K and ApolloProfileManager for automatic, client independent fps limit with Apollo.
Bonus
You can use it to automatically save/restore a selection of files for each app, and they're separated for each client. You can use it to swap game settings, mod sets or even save files based on the client, so you don't need to edit game resolution/keymap/modsets every time you change to a different client.
🌟Best practices
Checkout WiKi
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.
Remember to quit Apollo before upgrading.
v0.3.6-hotfix.1
Change log
v0.3.6-hotfix.1
- Set correct defaults for
Legacy OrderingandAllow client commandswhen pairing a new client - Fix encoder probing when no physical monitor is connected
v0.3.6
- Added
APOLLO_prefixed env vars - Automatically use virtual display if no active display is detected
- Ensure virtual display is removed when the stream is terminated
- Creates a temporary virtual display to probe encoders when no active display is present
- Support launching apps using UUID
- Use DXGI methods to get HDR state, fixes some cases HDR is enabled unconditionally
- Support reordering apps(requires Artemis v12.1.250514 or above, or enable "App ordering for legacy clients" in
Advancedtab) - Added option to always have the virtual display be an isolated display - Windows only by @thesystemcoder168
- Security fixes, strongly recommend to upgrade
Warning
BREAKING: SUNSHINE_CLIENT_FPS is now float for better fractional refresh rate support. Use Special-K and ApolloProfileManager for automatic, client independent fps limit with Apollo.
Bonus
You can use it to automatically save/restore a selection of files for each app, and they're separated for each client. You can use it to swap game settings, mod sets or even save files based on the client, so you don't need to edit game resolution/keymap/modsets every time you change to a different client.
🌟Best practices
Checkout WiKi
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.
Remember to quit Apollo before upgrading.
v0.3.5-alpha.5
Change Log:
v0.3.5-alpha.1
- Added
APOLLO_prefixed env vars - BREAKING:
SUNSHINE_CLIENT_FPSis now float for better fractional refresh rate support. Use Special-K for automatic fps limit with Apollo.
v0.3.5-alpha.2
- More envvar tweaks
- Automatically use virtual display if no active display is detected
- Ensure virtual display is removed when the stream is terminated
- Create a temporary virtual display to probe encoders when no active display is present
- Support launching apps using UUID
- Use DXGI methods to get HDR state, fixes some cases HDR is enabled unconditionally
- Support reordering apps(requires Artemis v12.1.250514 or above)
v0.3.5-alpha.3
- Fix #724
v0.3.5-alpha.4
- Added per-app controller override option
- Added option to always have the virtual display be an isolated display - Windows only by @thesystemcoder168
v0.3.5-alpha.5
- Fixed WebUI
Bonus
You can use it to automatically save/restore a selection of files for each app, and they're separated for each client. You can use it to swap game settings, mod sets or even save files based on the client, so you don't need to edit game resolution/keymap/modsets every time you change to a different client.
v0.3.4
Change log
- Adds an option to disable auto discovery (mDNS)
- Fixed bitrate calculation for Warp Mode and client side configured fractional refresh rate
- Fixed bitrate limiter for every encoder
- SudoVDA update: removed some built-in super high resolutions for VR headsets
- Track upstream
- (Linux) Fixed virtual desktop capturing for Wayland
NOTE: Warp modes now uses the correct bitrate set from client. Lower your bitrate for Warp modes if your device or network can't handle the actual bitrate.
🌟Best practices
- If your client support high refresh rate, always use high refresh rate. Combined with Artemis's Warp modes, this is basically a poorman's GSync/FreeSync.
- If you encounter weird stuttering problems, checkout Stuttering Clinic first.
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.
Remember to quit Apollo before upgrading.
v0.3.3
Change log
- Better frame pacing for capture refresh rate limiter (for unaligned frames)
- Fix the problem that stream can get freezes when using Input Only mode
- Fix usage with libdisplaydevice(may break Windows 10)
- Supports fractional refresh rate from client (needs Artemis v12.1.250410 or above)
- Improved translation for PT-BR. Thanks @bestknighter !
- Improved translation for SV. Thanks @roos-robert !
- Improved text encoding handling for logs
- Fix a rare case that config migration from older versions/Sunshine can fail
- Adds a template image for customizing game/app cover. Thanks @ryanbbernstein !
🌟Best practices
- If your client support high refresh rate, always use high refresh rate. Combined with Artemis's Warp modes, this is basically a poorman's GSync/FreeSync.
- If some of your clients have periodic stuttering happening, check if there display refresh rate isn't actually the value you expect by going to https://www.testufo.com/refreshrate . Then you can set
Display Mode Overridefor the client inPINpage.
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.
Remember to quit Apollo before upgrading.
v0.3.1 Stable
Change log
- Display mode override: Wiki
- Remote Input: App name will remain the same when remote input is enabled and a session is on going. This can make MoonDeck to resume properly.
- Config file will try to migrate again if it failed to load somehow. It's better not to downgrade to pre-0.3.0 versions if you have upgraded.
- SudoVDA upgrade:
- better handling for fractional refresh rates
- removed built-in 59.94 option (use override instead)
- HDR minimal black level is now 0
🌟Best practices
- If your client support high refresh rate, always use high refresh rate. Combined with Artemis's Warp modes, this is basically a poorman's GSync/FreeSync.
- If some of your clients have periodic stuttering happening, check if there display refresh rate isn't actually the value you expect by going to https://www.testufo.com/refreshrate . Then you can set
Display Mode Overridefor the client inPINpage.
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.
v0.3.0 Stable
Change log
- Update dependencies
- Configuration API upgrade - if you're using HTTP APIs, now the JSON formats are more valid, please update your scripts to support the new API.
- Current running app is now visible in Application page (#328)
- Track upstream
- Hang workaround
- Add Remote Input mode (disabled by defalt, enable
Input Only modeinInputtab) - Add Double Refresh Rate mode, could improve stutter issue on some systems (disabled by default, enable in
Audio/Videotab) - Add option in
Advancedtab for limiting captured frame rate (on by default) - Add command support for client connect/disconnect.
- Trim app name input to prevent accidental space character remained when configuring MoonDeckStream
- Add per-app*per-client identity option
- Disable
Advanced Display Device Configby default - Log fail reason for pairing
- Update SudoVDA install script - fix
certutilnot found in PATH for some users - SudoVDA upgrade (see here for configurations):
- Decimal refresh rate support
- SDR10bit support
- HDR12bit support
- Wide Color Gamut support
- Add scaled requested resolution for upscaling tools (0.5x, 0.75x, 1x, 1.25x, 1.5x)
- Adjusted built-in resolutions, added preset resolutions for popular VR headsets
🆕Remote Input
Can run parallel with any other apps, without transmitting video and audio packets. You can use your phone as your computer's trackpad/keyboard/controller receiver, or have a handy trackpad/keyboard when you're streaming to you TV/Box/Sticks which is hard to use mouse on, or even connect controllers that are unsupported by your TV/Box/Sticks.
Remote Input mode is still compatible with ordinary Moonlight clients.
🆕Client commands
You can now configure connect and disconnect commands for individual clients. Here's an instruction for setting up auto game suspend, giving you a more console-grade experience when streaming: Just hit power button on your mobile device and your game will be suspended automatically, you can resume at any time: [detail]
🆕Scaled resolutions
Now besides the requested resolution and framerate, another 9 sets of modes are added for conveinence:
- 0.5x resolution
- 0.5x resolution with doubled refresh rate
- 0.75x resolution
- 0.75x resolution with doubled refresh rate
- 1x resolution with doubled refresh rate
- 1.25x resolution
- 1.25x resolution with doubled refresh rate
- 1.5x resolution
- 1.5x resolution with doubled refresh rate
So now your game can pickup lower resolutions but still keep the same aspect ratio of your streamed device. You can then use Lossless Scaling to upscale your game while keeping the aspect ratio of your client more easily.
🆕Best practices
- If your client support high refresh rate, always use high refresh rate. Combined with Artemis's Warp modes, this is basically a poorman's GSync/FreeSync.
- If you're not able to use Artemis on your client, you can enable
Double Refresh Rateoption inAudio/Videotab. This will also help to a certain degree. - Limit game framerate with RTSS can give more stable frame time than using in-game vsync/frame limit options.
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.
v0.2.9-alpha.8
Change log
v0.2.9-alpha.8
- Fix avcodec
If you have problems initializing a stream with previous versions with QuickSync, please update.
WARNING: To other developers: DO NOT CHANGE THE MEMORY LAYOUT OF video::config_t and audio::config_t, they may be modified by some other pre-built binaries and they RELY ON THE LAYOUT. This took me a whole day to figure out since there's totally no warning laying around for this.
v0.2.9-alpha.7
- Fix config API
If you have installed alpha.6, please update. If you have met any other issues in saving/changing configs, please make sure to report!
v0.2.9-alpha.6
- Update dependencies
- Current running app is now visible in Application page (#328)
- Track upstream
- Merge Sunshine's hang workaround
Note: This version has some pretty significant changes in configurations API. You may need to update your scripts if they're using HTTP APIs for config automation.
v0.2.9-alpha.5
- Bug fixes for Input Only Mode
- Renamed Input Only entry to Remote Input
- Added a dedicated "Terminate" entry when using Remote Input
- Bug fix for double refresh rate mode when requested resolution is built-in
v0.2.9-alpha.4
- Add Input Only mode (disabled by defalt, enable in
Inputtab) - Add Double Refresh Rate mode, could improve stutter issue on some systems (disabled by default, enable in
Audio/Videotab)
v0.2.9-alpha.3
- Fix extra comma in default apps (Windows)
v0.2.9-alpah.2
- Add option in
Advancedtab for limiting captured frame rate (on by default) - Restart immediately when detected a hang (workaround for stream freezes, at least it's better than hanging forever)
v0.2.9-alpha.1
- Add command support for client connect/disconnect. Useful when you want to suspend your computer/game on disconnect. [detail]
- Trim app name input to prevent accidental space character remained when configuring MoonDeckStream
- Add per-app*per-client identity option
- Disable
Advanced Display Device Configby default - Log fail reason for pairing
- SudoVDA upgrade - might improve stutter problem on some systems
If you encounter display being toggled on and off constantly while using the latest versions, first quit Apollo (you can access the web UI from another device, by enter https://your.host.ip.address:[webuiPort] to your browser, then in Troubleshooting page tap Quit Apollo), then go to Apollo's install dir, under config dir remove display_device.state.
Warning
It is highly recommend to remove any other virtual display solutions from your system and Apollo/Sunshine config, to reduce confusions and compatibility issues.