Skip to content

Releases: vibesoftwarecoder/MoonlightVibe

MoonlightVibe 6.3.5

Choose a tag to compare

@github-actions github-actions released this 16 Sep 13:43
dc58805

MoonlightVibe opens again. 6.3.4 hung on every launch, on every device: the window appeared and
then stayed "Not Responding". If you are on 6.3.4, update to this release by hand.

What was wrong

6.3.4 added seat discovery. At startup, the part of the app that keeps your host list locks that
list while it starts its background work. Seat discovery then checked for seats straight away, on
the same thread, and that check waits for the same list. The lock cannot be taken twice by one
thread, so the app waited for itself and never finished starting.

It happened on every launch, with or without saved hosts. The 6.3.4 notes named a hang on startup as
the first thing to suspect, and this was it.

What changed

Seat discovery now does its first check a moment later, after startup has released the list. Seats
still appear as described in the 6.3.4 notes. Nothing else about discovery changed.

Updating from 6.3.4

6.3.4 never finishes starting, so it cannot tell you that this release exists. Download this release
and extract it over your 6.3.4 files. Your hosts and settings are kept. If you turned on portable
mode by renaming portable.dat.inactive to portable.dat, your settings live in that folder, so
extract over it rather than deleting it first.

Also in this release

  • Update checks now look at MoonlightVibe's own releases. Before, the app compared itself with
    upstream Moonlight's version. When upstream ships a higher number, it would have sent you to
    upstream Moonlight instead. An update is now offered only when a MoonlightVibe release has a
    finished build for your platform.
  • Preparation for code signing on Windows. Nothing is signed yet, so this release is unsigned,
    like the ones before it. Windows Smart App Control or SmartScreen may still block it on some
    devices. Signing starts once SignPath Foundation approves the project.
  • Two upstream Moonlight fixes by Cameron Gutman are merged in: a livelock between SDL, libdecor
    and Qt, and a newer SDL3 in the AppImage. Both affect Linux only. MoonlightVibe publishes Windows
    and macOS builds, so they change nothing for those.

How this was checked

  • The hang was reproduced on a Windows host. 6.3.4 stopped responding within 2 seconds, and 6.3.3
    ran normally.
  • A small test program built around the real seat discovery code deadlocked with the 6.3.4 code and
    passed with the fix.
  • The Windows build of this fix was started on the same host and responded at every check for 30
    seconds. 6.3.4, started right after, was not responding at every check.
  • The update check was tested in a separate program against real and invalid GitHub responses.
    Inside the app, it read MoonlightVibe's latest release and correctly found nothing newer.
  • Not yet checked: a client finding a seat by itself, and the macOS build. Both use the same code
    as Windows.

Unchanged

Streaming, decoding, input and audio work as in 6.3.3.

MoonlightVibe 6.3.4

Choose a tag to compare

@github-actions github-actions released this 10 Sep 15:58
2db0d0e

Seats now appear on their own, from any machine. Before this they only ever appeared if Moonlight
was running on the streaming host itself.

What was wrong

Seat discovery asked the MultiSeat service for the seat list at http://127.0.0.1:9550. On the host
that works. On anything else — a handheld, a laptop, another PC — 127.0.0.1 is that device,
which runs no MultiSeat service. The request failed and the failure was swallowed on purpose, so no
seats appeared, no error was shown, and nothing was logged to explain it.

Even had the request succeeded, every seat was reported at 127.0.0.1, which would have been just
as unreachable.

What happens now

Seats are found by checking the ports they use on hosts you already have. A seat's Apollo answers on
its own port with a name like MultiSeat-Gaming-1, which is exactly what happens when you add one
by hand — that path always worked; discovery simply was not using it.

This needs nothing from the host: no API key on the client, and MultiSeat's dashboard does not have
to be reachable over the network. If you have the streaming host in your list, its seats should
appear within about fifteen seconds of being provisioned.

If a seat still does not appear

Add it manually at the host's address and the seat's port. The first seat uses 48100, and each
further seat is thirty higher — 48130, 48160, 48190.

That is also the answer if the host has changed its port settings. Discovery checks the default
ports, and nothing advertises a custom range, so a host configured differently still needs its seats
added by hand.

⛔ Please read this before updating

This change has never been run. It compiles for Windows, macOS and Linux, and the host side is
confirmed working — a seat really does answer with the name discovery looks for — but no one has
watched a client find a seat with it. The machine it was written on has no Qt toolchain, so a build
could not be tested there.

The realistic failure is on the client: discovery reads your host list every fifteen seconds while
other parts of the app may be writing to it. That was designed around deliberately, but designed
around is not the same as tested.

If Moonlight hangs on startup or when adding a host after updating, this is the first thing to
suspect.
6.3.3 does not contain this change and is a safe place to go back to.

Also in this release

The pull request build pipeline has been trimmed to the jobs that actually work. It had failed on
every run since May, and a check that is always red teaches people to ignore the ones that matter.
The builds that produce releases were never part of that and are unchanged.

Unchanged

Everything else. No streaming, decoding, input or audio behaviour differs from 6.3.3.

MoonlightVibe 6.3.3

Choose a tag to compare

@github-actions github-actions released this 09 Sep 15:53

Upstream frame-loss fixes. This release exists to pick up
moonlight-common-c frame loss fixes from
upstream moonlight-stream/moonlight-qt, merged into MoonlightVibe on 2026-09-09.

MoonlightVibe is now level with upstream — 0 commits behind.

What changed

The only shipping change is the moonlight-common-c submodule pin, moved to pick up the frame-loss
work. Everything else in this release is identical to 6.3.2.

⚠️ The fixes are in the streaming path, so if you were seeing dropped or corrupted frames, this
is the release to try. If your stream was already clean, you are unlikely to notice a difference.

The microphone fork is preserved

MoonlightVibe pins moonlight-common-c to our own fork, which carries microphone passthrough.
Upstream's fixes were merged into that fork rather than replacing it, so mic support is intact —
this is not a switch back to stock moonlight-common-c.

Still included

All MoonlightVibe patches: mic passthrough, per-seat stream settings, latency tuning, and the
configurable gamepad quit combo.

Windows and macOS assets are attached to this same release.

Note on versioning

The version comes from app/version.txt, and a v* tag that disagrees with it fails the release
rather than shipping a binary that claims a version no release has.

MoonlightVibe 6.3.2

Choose a tag to compare

@github-actions github-actions released this 08 Sep 17:02

Upstream reworked how Moonlight decides to decode and render on separate D3D11 devices. This
matters most if you have an AMD card.

The change

Separate devices are faster, but that path is prone to driver bugs. It used to be on by default and
switched off for known-bad cases — which left several broken configurations still taking it,
because they passed the feature-level test it relied on.

It is now an explicit allow-list: Intel, NVIDIA on WDDM 3.0+ drivers, NVIDIA on Windows-on-ARM, and
AMD Vega and later.

AMD

  • Polaris (RX 400/500) and older — you should stop seeing corrupt output. Upstream tracks it as
    moonlight-qt#2003, and the old
    Radeon HD 5570 deadlocked on this path outright. These cards were still taking it before this
    release.
  • Vega and newer — detected properly now. The detection reads a driver capability bitfield, and
    an early version of this code compared it with ==, which would have excluded any card reporting
    more than one precision level. Fixed upstream before this release shipped.

NVIDIA

The gate is now the driver version, not the GPU generation — WDDM 3.0 or newer, roughly driver
471.11+. Older drivers rendered all-zero or green frames on this path. On a current driver, nothing
changes for you.

Diagnostics

The D3D11VA renderer now logs your GPU driver version — the first thing worth having if any of the
above goes wrong on your hardware.

Everything else

The rest of this range does not reach the Windows or macOS builds: a Linux VAAPI fallback change,
the CI move to tag-triggered releases, and merges.

Upgrading from 6.3.1 is a straight replacement. Nothing to reconfigure.


Rebased onto moonlight-stream/moonlight-qt upstream.

Built from 845e155507cedbab2c65428e9bb85c67da8a0fb3 (845e15).

Windows and macOS assets are attached to this same release.

Includes all MoonlightVibe patches: mic passthrough, per-seat stream settings, latency tuning, and configurable gamepad quit combo.

MoonlightVibe Windows 6.3.1-efabf3

Choose a tag to compare

MoonlightVibe Windows build — rebased onto moonlight-stream/moonlight-qt upstream.

Includes all MoonlightVibe patches: mic passthrough, per-seat stream settings, latency tuning, and configurable gamepad quit combo.

MoonlightVibe Windows 6.3.0-62a8be

Choose a tag to compare

MoonlightVibe Windows build — rebased onto moonlight-stream/moonlight-qt upstream.

Includes all MoonlightVibe patches: mic passthrough, per-seat stream settings, latency tuning, and configurable gamepad quit combo.

MoonlightVibe macOS 6.3.1-efabf3

Choose a tag to compare

MoonlightVibe macOS build — rebased onto moonlight-stream/moonlight-qt upstream.

Includes all MoonlightVibe patches: mic passthrough, per-seat stream settings, latency tuning, and configurable gamepad quit combo.

MoonlightVibe macOS 6.3.0-62a8be

Choose a tag to compare

MoonlightVibe macOS build — rebased onto moonlight-stream/moonlight-qt upstream.

Includes all MoonlightVibe patches: mic passthrough, per-seat stream settings, latency tuning, and configurable gamepad quit combo.

MoonlightVibe Windows 6.2.2-14707a

Choose a tag to compare

MoonlightVibe Windows build — rebased onto moonlight-stream/moonlight-qt upstream on 2026-06-01.

Includes all MoonlightVibe patches: mic passthrough, per-seat stream settings, latency/bandwidth tuning, configurable gamepad quit combo, MultiSeat seat auto-discovery, MoonlightVibe branding.

What's new vs v6.2.1

22 upstream commits absorbed (range 2026-05-15 → 2026-05-27):

  • Perf: LTCG/LTO for release builds (host + AppImage + FFmpeg), Segment Heap, Per Monitor v2 DPI awareness, updated MSVC redistributable, updated Windows/macOS prebuilt deps.
  • Stability/SSL: deep-copy QSslKey BIO backing memory, malformed XML response hardening, horizontal scroll inversion fix, fixed apply() return for legacy DRM clients, fixed FEC failure check, libplacebo Raspbian crash workaround.
  • UX: new Ctrl+Alt+Shift+K combo to toggle system key grab, LinuxFB hotkey disable.

Build info

  • Source: branch moonlightvibe-dev, commit 14707ad1
  • Built via GitHub Actions (Build - MoonlightVibe Windows x64, run 26792712947) on windows-2025 with Qt 6.11.0
  • Companion macOS build: moonlightvibe-mac-6.2.2-14707a

Install

Portable zip — extract anywhere and run Moonlight.exe.

v6.2.1 — Streaming performance optimizations

Choose a tag to compare

@vibesoftwarecoder vibesoftwarecoder released this 06 May 15:18

What's changed

  • Lower buffering latency — Reduced pacer queue from 3 to 2 frames, cutting frame buffer depth on LAN connections
  • Faster bitrate adaptation — Bandwidth tracker window tightened to 5s / 100ms buckets (was 10s / 250ms) for quicker response to network changes
  • Faster decoder init — Hardware decode retry delay reduced from 100ms to 15ms

Installation

Download \MoonlightVibe-windows-x64-6.2.1.zip, extract, and run \MoonlightVibe.exe.