Skip to content

Releases: hgaiser/moonshine

v0.6.0

18 Nov 22:03

Choose a tag to compare

Added

  • Steam library scanner now recursively searches Steam librarycache directories for box art, improving compatibility with different Steam layouts.
  • RTSP server now advertises server capabilities and supported encryption flags in the SDP, aligning better with Moonlight’s expectations.
  • Structured session shutdown reasons (SessionShutdownReason) added and wired through video, audio, control, and input components for clearer diagnostics.
  • Audio pipeline coordinated shutdown via ShutdownManager, and a dedicated audio packet handler task.
  • Control feedback commands (rumble, RGB LED, motion enable, trigger effects) and a feedback channel added to send encrypted feedback to clients.
  • Full support for gamepad motion (gyro/accel), touchpad input (PS5), battery status, and haptics using inputtino (thanks @ABeltramo!).
  • New VideoFrameCapturer and VideoEncoder components added to separate CUDA frame capture and encoding, coordinated via shared buffers and condition variables.

Changed

  • Input handling for keyboard, mouse, and gamepads migrated from evdev to inputtino virtual devices, simplifying mapping and improving cross-device behavior.
  • Session lifecycle refactored: SessionManager and Session now use explicit start/stop flows, oneshot channels for stop completion, and centralized shutdown management instead of ad-hoc flags.
  • Audio and video streams now use dedicated UDP packet handler tasks for send/receive (with QoS, PING discovery, and graceful shutdown) rather than ad-hoc loops inside stream logic.
  • Control stream rebuilt on rusty_enet with AES‑128‑GCM encrypted control messages (sequence-number–based IVs and explicit tags) and extended handling of Moonlight control message types (HDR mode (HDR not implemented yet), haptics, motion/LED/trigger control).
  • Video pipeline restructured to build CUDA device/frame contexts explicitly, validate capture resolution vs requested resolution, and coordinate frame flow via atomics and condition variables.
  • Logging levels and messages tuned across components (e.g. service registration, shutdown logs, command logs) to reduce noise and make lifecycle events clearer.

Fixed

  • Gamepad ID / kind now follow the client-provided controller type, improving correct button layouts and feature support for Xbox/PS5/Switch controllers.
  • More robust handling of closed channels and unexpected terminations in audio, video, control, and input threads, preventing silent failures and dangling sessions.
  • Session stop requests now wait (with timeout) for underlying streams to fully terminate, reducing the chance of partially torn-down sessions.
  • Escape XML characters in Steam game titles to prevent XML parsing issues in Moonlight client.

v0.3.1

20 May 10:42

Choose a tag to compare

Added

  • Add support for Turing and older NVIDIA cards.

Changed

  • Optimizations to audio buffer management.
  • Run audio encode & capture in a dedicated thread.
  • Use tracing instead of env_logger.

v0.3.0

24 Apr 21:10

Choose a tag to compare

Added

  • Add notification when PIN is expected.
  • Add interface for submitting a PIN from Moonlight.

v0.2.3

21 Apr 16:55

Choose a tag to compare

Added

  • Add workflow for releasing binary file.

Changed

  • Update dependencies.

v0.2.1

05 Mar 21:33

Choose a tag to compare

Added

  • Generate a config.toml file if it did not exist yet.

Removed

  • config.toml file in the repository.

v0.2.0

05 Mar 20:31

Choose a tag to compare

Added

  • Certificate creation through code. This creates a certificate if none exists yet.
  • Github workflow.
  • VSCode launch.json file.

Removed

  • Unused dependencies.
  • Removed many unwrap calls.
  • Removed xml crate (replaced by simple String formatting).
  • Removed make-cert script (as this is now handled in code).

Changed

v0.1.0

25 Jan 19:58

Choose a tag to compare

First release.