Skip to content

Commit b416ece

Browse files
committed
Move Moonlight docs after RDP
1 parent 570a3c9 commit b416ece

1 file changed

Lines changed: 40 additions & 40 deletions

File tree

README.md

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -116,46 +116,6 @@ Check the VM:
116116
.\check-workstation-vm.ps1 --config config\windows.json
117117
```
118118

119-
## Moonlight Streaming
120-
121-
The default `config\windows.json` enables a local Sunshine endpoint for Moonlight:
122-
123-
- Sunshine is installed as a Windows service inside the VM.
124-
- Virtual Display Driver is installed inside the VM and configured with one virtual display.
125-
- Sunshine firewall rules are opened for the VM network.
126-
- Sunshine credentials and the current VM IP are written to `credentials.txt`.
127-
- GPU-PV is applied after Windows bootstrap when `gpu.enabled` is `true`.
128-
- Empty `remoteStreaming.displayWidth` and `remoteStreaming.displayHeight` use the same detected host display size as VMConnect.
129-
130-
The setup installs the Sunshine server inside the VM. To use Moonlight from the Hyper-V host:
131-
132-
1. Download and install the Moonlight Windows installer on the host from https://github.com/moonlight-stream/moonlight-qt/releases.
133-
2. Open Moonlight settings before starting the stream and use desktop-quality settings:
134-
- Resolution: `Native`, or the same resolution as the VM virtual display.
135-
- FPS: `120 FPS`.
136-
- Video bitrate: at least `100 Mbps` for host-to-VM streaming on the same PC.
137-
- Display mode: `Fullscreen`.
138-
- Frame pacing: enabled.
139-
- Optimize mouse for remote desktop instead of games: enabled.
140-
- Video decoder and video codec: `Automatic`.
141-
3. Do not leave Moonlight at its default `720p` and low bitrate settings. That makes the VM look blurry because Moonlight upscales a low-resolution stream.
142-
4. Add the VM IP from `MoonlightHost` in Moonlight.
143-
5. Click the locked VM tile. When Moonlight shows a PIN, submit it from the host:
144-
145-
```powershell
146-
.\pair-moonlight.ps1 --config config\windows.json --pin <moonlight-pin> --name <client-name>
147-
```
148-
149-
After pairing, click the VM tile again and start `Desktop`. If the image is blurry, stop the stream, re-check Moonlight's resolution and bitrate settings, then start `Desktop` again. Enable Moonlight's performance stats when troubleshooting and confirm that the stream is negotiated at the expected resolution and FPS.
150-
151-
Open the Sunshine web UI if you want to inspect or tune it:
152-
153-
```text
154-
https://<vm-ip>:47990
155-
```
156-
157-
The Sunshine username and password are in `credentials.txt`. Keep them private. Use Moonlight's client settings to request 120 FPS or another refresh rate.
158-
159119
## Changing VM Settings
160120

161121
`config\windows.json` is used when the VM is created. After the VM exists, you can change normal Hyper-V settings without recreating it.
@@ -302,3 +262,43 @@ The default Hyper-V network uses NAT, so host traffic and VM traffic stay on sep
302262
The VM enables the RDP server, Remote Desktop firewall rules and RDP access for the workstation user during first login.
303263

304264
If you want to use RDP as the main UI, consider checking out [Upinel/BetterRDP](https://github.com/Upinel/BetterRDP) and applying its `.reg` file **on the host, not inside the VM**. It tunes the RDP experience by enabling GPU/RemoteFX policies, 60 FPS capture/DWM settings, AVC444/hardware encode preference, image quality, latency and bandwidth-related registry settings. This is optional and is not vendored here.
265+
266+
## Moonlight Streaming (Optional If You Want More Than 60 FPS)
267+
268+
The default `config\windows.json` enables a local Sunshine endpoint for Moonlight:
269+
270+
- Sunshine is installed as a Windows service inside the VM.
271+
- Virtual Display Driver is installed inside the VM and configured with one virtual display.
272+
- Sunshine firewall rules are opened for the VM network.
273+
- Sunshine credentials and the current VM IP are written to `credentials.txt`.
274+
- GPU-PV is applied after Windows bootstrap when `gpu.enabled` is `true`.
275+
- Empty `remoteStreaming.displayWidth` and `remoteStreaming.displayHeight` use the same detected host display size as VMConnect.
276+
277+
The setup installs the Sunshine server inside the VM. To use Moonlight from the Hyper-V host:
278+
279+
1. Download and install the Moonlight Windows installer on the host from https://github.com/moonlight-stream/moonlight-qt/releases.
280+
2. Open Moonlight settings before starting the stream and use desktop-quality settings:
281+
- Resolution: `Native`, or the same resolution as the VM virtual display.
282+
- FPS: `120 FPS`.
283+
- Video bitrate: at least `100 Mbps` for host-to-VM streaming on the same PC.
284+
- Display mode: `Fullscreen`.
285+
- Frame pacing: enabled.
286+
- Optimize mouse for remote desktop instead of games: enabled.
287+
- Video decoder and video codec: `Automatic`.
288+
3. Do not leave Moonlight at its default `720p` and low bitrate settings. That makes the VM look blurry because Moonlight upscales a low-resolution stream.
289+
4. If Moonlight auto-discovers the VM, click the locked VM tile. If it does not show up automatically, add the VM IP from `MoonlightHost` manually.
290+
5. When Moonlight shows a PIN, submit it from the host:
291+
292+
```powershell
293+
.\pair-moonlight.ps1 --config config\windows.json --pin <moonlight-pin> --name <client-name>
294+
```
295+
296+
After pairing, click the VM tile again and start `Desktop`. If the image is blurry, stop the stream, re-check Moonlight's resolution and bitrate settings, then start `Desktop` again. Enable Moonlight's performance stats when troubleshooting and confirm that the stream is negotiated at the expected resolution and FPS.
297+
298+
Open the Sunshine web UI if you want to inspect or tune it:
299+
300+
```text
301+
https://<vm-ip>:47990
302+
```
303+
304+
The Sunshine username and password are in `credentials.txt`. Keep them private. Use Moonlight's client settings to request 120 FPS or another refresh rate.

0 commit comments

Comments
 (0)