Portable Windows setup scripts for Apollo + Moonlight device profiles.
The repo creates a safe local profile under C:\RemoteProfiles\ApolloMoonlightDeviceModes\<profile-name>, backs up Sunshine/Apollo/display state, configures Apollo's SudoVDA virtual display workflow, and applies per-device Windows scaling while streaming.
It is designed for swapping between devices such as:
- iPhone 14 Pro Max
- iPad A14 landscape
- MacBook Air 13-inch Liquid Retina
- MacBook Air 15-inch Liquid Retina
- Any custom Moonlight client resolution
- Installs one selected profile into
C:\RemoteProfiles. - Backs up existing Sunshine and Apollo config before changes.
- Preserves Sunshine instead of uninstalling it.
- Stops Sunshine when Apollo starts, avoiding port conflicts.
- Enables Apollo's virtual display for the selected app, usually
Desktop. - Supports two resolution modes:
fixed: Apollo forces a configured resolution, useful for a known iPad profile.moonlight-requested: Apollo follows the resolution requested by Moonlight, useful for phones, laptops, and mixed devices.
- Applies Windows display scaling to the Apollo/SudoVDA virtual display only.
- Restores the physical display when stopping.
- Creates shortcuts for start, stop, restore, emergency restore, and host cursor toggle.
- Windows host PC.
- Apollo streaming host, or
wingetavailable so the installer can install Apollo. - Moonlight client on the target device.
- Administrator permission for service control and Apollo config writes.
- Internet access for downloading NirSoft MultiMonitorTool during setup.
Clone or download this repo, then open PowerShell in the repo folder.
Install a MacBook Air 13-inch profile:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\macbook-air-13-liquid-retina.json -InstallApolloInstall a MacBook Air 15-inch profile:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\macbook-air-15-liquid-retina.json -InstallApolloInstall an iPhone 14 Pro Max profile:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\iphone-14-pro-max.json -InstallApolloInstall an iPad A14 landscape profile:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\ipad-a14-landscape.json -InstallApolloThe installer creates desktop shortcuts. Use the Apollo <device> ON shortcut to start.
For a 13-inch MacBook Air Liquid Retina display:
- Resolution: custom
2560x1664 - FPS:
60 - Optimize game settings: on
- Codec: HEVC/H.265 first
- Bitrate: start
35 Mbps, use50 Mbpsif stable
For a 15-inch MacBook Air Liquid Retina display:
- Resolution: custom
2880x1864 - FPS:
60 - Optimize game settings: on
- Codec: HEVC/H.265 first
- Bitrate: start
40 Mbps, use60 Mbpsif stable
The MacBook profiles use moonlight-requested mode, so Moonlight's requested resolution is the source of truth.
Each profile installs into:
C:\RemoteProfiles\ApolloMoonlightDeviceModes\<profile-name>\
Inside:
backup\
logs\
reports\
scripts\
shortcuts\
tools\
config.json
Scale is profile-defined.
Examples:
- iPhone 14 Pro Max:
225% - iPad A14:
200% - MacBook Air:
175%
Override for one run:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\RemoteProfiles\ApolloMoonlightDeviceModes\macbook-air-13-liquid-retina\scripts\Start-ApolloMoonlightProfile.ps1" -ScalePercent 200Edit the installed config.json to change the default.
- Sunshine is not uninstalled.
- Sunshine and Apollo configs are backed up before changes.
- Display state is saved before start and during install.
- The scripts do not edit risky Windows display registry cache keys.
- If anything gets stuck, use the emergency restore shortcut.
Copy:
profiles\custom-device.template.json
Change:
profileNamedisplayNamerecommendedWidthrecommendedHeightdefaultScalePercentallowedScaleOptions- Moonlight bitrate recommendations
Then install with:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\your-device.json