Releases: ClassicOldSong/Apollo
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 Override
for the client inPIN
page.
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 mode
inInput
tab) - Add Double Refresh Rate mode, could improve stutter issue on some systems (disabled by default, enable in
Audio/Video
tab) - Add option in
Advanced
tab 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 Config
by default - Log fail reason for pairing
- Update SudoVDA install script - fix
certutil
not 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 Rate
option inAudio/Video
tab. 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
Input
tab) - Add Double Refresh Rate mode, could improve stutter issue on some systems (disabled by default, enable in
Audio/Video
tab)
v0.2.9-alpha.3
- Fix extra comma in default apps (Windows)
v0.2.9-alpah.2
- Add option in
Advanced
tab 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 Config
by 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.
v0.2.8-alpha.5
Warning
If you're using multiple instances to stream multiple different displays simutinuously, disable Advanced display device options
!
The upstream implementation for display topology handling and resolution automation doesn't support multi instance well. They may end up messing up everything unexpectedly.
If you only need one Apollo instance, it's still safe to upgrade.
Don't forget to remove display_device.state
from Apollo's config dir if it exists.
Change log
- v0.2.8-alpha.1
- Primary display can now set automatically
- Preserve previous log when Apollo restarts
- Adapt display config handling to
libdisplaydevice
- Track upstream
- v0.2.8-alpha.2
- Revert back to original HDR workaround
- Update
libcurl
, fixes #235
- v0.2.8-alpha.3
- Hash cookies for Web UI
- Track upstream
- Inverse polarity for Global Prep Commands for apps (bug from some unnecessary upstream changes)
- Display config reverting logic refine (not really necessary for Apollo actually, but the new display config handling mechanism caused some display flickering on and off issues on some systems, this change might have fixed the problem)
- Security patch (but it's already patched in Apollo in another way when I discovered the other security vulnberity long ago)
- v0.2.8-alpha.4 & v0.2.8-alpha.5
- Fix bug where
output_name
did not take effect - Fix all deactivated display are enabled when quitting virtual display
The inclusion of libdisplaydevice
further complicated the display config problem, I hope this version gets all problems with virtual display introduced by libdisplaydevice
solved...
Nope, there're more hidden problems...
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.
v0.2.7
Happy New Year! 🎆
Change log
- Fix password is always saved issue (#130)
- First connection now should respect user settings for encoder capablity announcements (#123)
- SudoVDA update: peak brightness is now 1671 nits (#164)
- Track upstream
It's very complicated to explain why HDR is a total mess, and why enabling HDR makes the image appear dark/yellow. If it's your first time got HDR streaming working, and thinks HDR looks awuful, you're right, but that's not Apollo's fault, it's your device that tone mapped SDR content to the maximum of the capability of its screen, there's no headroom for anything beyond that actual peak brightness for HDR. For details, please take a look here.
NOTE: Windows 11 24H2 broke the method for programatically setting primary display, even MultiMonitorTool fails to do so. You can still set the virtual display to default manually and Windows will remember your configuration.
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.
Warning
Quit ALL running Apollo instances before upgrading!
v0.2.6-alpha.3
Change log
- Fix error/success couldn't be shown on login page
- Show alert for checking permissions after pairing
- Track upstream
PS: Originally I wanted to fix a weird lagging issue I discovered previously with this build, but it turns out to be the AV1 encoder of nVidia behaving strange. It works fine in most cases so it's not a really big deal, but I still suggest use HEVC if you have a good network connection. If you insist of using AV1, try disable Two-pass mode
and enable Spatial AQ
in NVENC
config tab, that would make the problem less noticable. AMD cards doesn't have this kind of issue.
NOTE: Windows 11 24H2 broke the method for programatically setting primary display, even MultiMonitorTool fails to do so. You can still set the virtual display to default manually and Windows will remember your configuration.
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.
Warning
Quit ALL running Apollo instances before upgrading!
v0.2.6-alpha.2
Change log
- Fix Working Directory not working in some more cases
- Fix Find Cover Online
- Track upstream, removed session count and quit app limit (only clients with
Launch Apps
permission can terminate a stream)
NOTE: Windows 11 24H2 broke the method for programatically setting primary display, even MultiMonitorTool fails to do so. You can still set the virtual display to default manually and Windows will remember your configuration.
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.
Warning
Quit ALL running Apollo instances before upgrading!
v0.2.5-alpha.1
Change log
- Add Intra Refresh for NVENC
- Fix Working Directory not working in some cases
NOTE: Windows 11 24H2 insider preview broke the method for programatically setting primary display, even MultiMonitorTool fails to do so. You can still set the virtual display to default manually and Windows will remember your configuration.
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.
Warning
Quit ALL running Apollo instances before upgrading!
v0.2.4-alpha.2
Change log
- Fix codepage conversion for clipboard upload (resolves #69)
NOTE: Windows 11 24H2 insider preview broke the method for programatically setting primary display, even MultiMonitorTool fails to do so. You can still set the virtual display to default manually and Windows will remember your configuration.
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.
Warning
Quit ALL running Apollo instances before upgrading!
v0.2.4-alpha.1
Change log
- Add Clipboard sync (text only)
- Add permissions for clipboard sync
NOTE: Windows 11 24H2 insider preview broke the method for programatically setting primary display, even MultiMonitorTool fails to do so. You can still set the virtual display to default manually and Windows will remember your configuration.
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.
Warning
Quit ALL running Apollo instances before upgrading!