Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apollo Moonlight Device Modes

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

What It Does

  • 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.

Requirements

  • Windows host PC.
  • Apollo streaming host, or winget available 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.

Quick Start

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 -InstallApollo

Install a MacBook Air 15-inch profile:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\macbook-air-15-liquid-retina.json -InstallApollo

Install an iPhone 14 Pro Max profile:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\iphone-14-pro-max.json -InstallApollo

Install an iPad A14 landscape profile:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\ipad-a14-landscape.json -InstallApollo

The installer creates desktop shortcuts. Use the Apollo <device> ON shortcut to start.

MacBook Air Moonlight Settings

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, use 50 Mbps if 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, use 60 Mbps if stable

The MacBook profiles use moonlight-requested mode, so Moonlight's requested resolution is the source of truth.

Installed Layout

Each profile installs into:

C:\RemoteProfiles\ApolloMoonlightDeviceModes\<profile-name>\

Inside:

backup\
logs\
reports\
scripts\
shortcuts\
tools\
config.json

Scaling

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 200

Edit the installed config.json to change the default.

Safety Notes

  • 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.

Custom Device

Copy:

profiles\custom-device.template.json

Change:

  • profileName
  • displayName
  • recommendedWidth
  • recommendedHeight
  • defaultScalePercent
  • allowedScaleOptions
  • Moonlight bitrate recommendations

Then install with:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-ApolloMoonlightProfile.ps1 -ProfilePath .\profiles\your-device.json

Docs

About

Portable Apollo Moonlight device profiles for virtual display resolution and Windows scaling

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages