github RamazanKara/nightjar v3.2.0
Nightjar 3.2.0

4 hours ago

What's new

Nightjar 3.2, for PCs running Rubylight 3.0 and other Moonlight-compatible hosts (Sunshine, Apollo, Vibepollo).

  • Host Metrics from Vibepollo. Vibepollo now supports Host Metrics and these are exposed here.
    Android TV
  • Posters. Game covers are now posters with an amber focus ring, glow and lift, the focused game shows its title, and holding a direction scrolls without animation lag.
  • Home is now built from shelves (Continue playing, Favourites, Library, PCs), with a large hero for the focused game. Home also groups games by store (Steam, Epic, GOG and more) with a store badge on each poster, and greys out games that aren't installed.
  • All games is a new screen that shows the whole library in a poster grid with one filter per store.
  • The library has an ambient backdrop from the focused game's cover, with smoother row scrolling and screen transitions.
  • A game's page keeps the backdrop from Home, shows chips for the store, its state and whether it's installed, and says why Play is off for a game that isn't installed. PCs are tiles that show the running game. Settings has a rail with icons.
  • Button hints follow your input, A/X on a gamepad and OK/Menu on a remote, and Menu opens a game's options.
  • Smoother remote navigation. The focused tile or setting always scrolls fully into view, Right from a settings category goes to its first option (Back and Left return), "Smaller tiles" really makes tiles smaller, tiles are more compact with even heights, artwork no longer shifts when scrolling back up, and focus outlines are no longer cut off at the screen edges.
  • New Interface layout setting: use the TV layout on a handheld or tablet, or the handheld layout on a TV. On a handheld the TV layout runs full screen. Phones keep their current Home.

Home

  • A gamepad or remote can now move Up from the top row to the PCs and Settings tabs (#30).
  • Experimental: Home keeps showing a sleeping PC's games, dimmed and marked "PC asleep". Starting one wakes the PC (Wake-on-LAN), waits for it, then starts the game; the game page offers "Wake PC and play", and a game on several PCs asks which one to use (#31).

Wi-Fi

  • Over Wi-Fi or mobile data, Nightjar now tells a Rubylight host so the host paces the stream for a wireless link from the first frame, not only after it sees loss (Android and desktop). This needs the next Rubylight release; older hosts ignore it.
  • Two new settings, Tell the PC when on Wi-Fi and Tell the PC the link speed, tell a Rubylight PC when you are on Wi-Fi and let the PC limit its sending rate to your wired port speed; both are on by default.

Picture and overlay

  • 10-bit color (SDR) is a new Stream setting that streams SDR in 10-bit HEVC or AV1 to reduce banding on screens without HDR. It needs a Main10 decoder on this device; if the PC does not offer 10-bit, the stream is 8-bit and Nightjar says so.
  • Experimental: Render through Vulkan (Decoder settings, off by default) shows the video through a Vulkan renderer so frame-generation overlays such as lybxlpsv's Frame Generation can hook it. Needs Android 10+, not used with PyroWave; adds about 0.5–1 ms on a Retroid Pocket 6. It replaces Render through OpenGL. Contributed by umbertomarotta (#17, #27).
  • Experimental full chroma no longer stops the stream after a few minutes on handhelds: short load spikes are ignored, and if the device really can't keep up, Nightjar reconnects once without full chroma instead of ending the stream. With HDR on, Nightjar now checks before the stream starts whether the device can show 10-bit full chroma, and the overlay says why HDR or full chroma was turned off.
  • Performance overlay: the stream menu now has Off (#33), and the overlay can sit in any corner, set in Settings or live from the stream menu; on the right the text is right-aligned (#34).
  • The overlay's frame rate is now Rendered FPS: it counts frames sent to the screen, so it no longer reads low or unavailable on devices whose display callbacks are late or missing. Decode time now ends when the decoder returns the frame, so pacing waits no longer count as decoding.

PIN lock

  • New PIN lock (Settings → App → PIN lock): a 4–8 digit PIN that locks opening Nightjar, every stream, or only streams from PCs you pick. The PIN pad works with a TV remote (Google TV style: Up/Down picks a row, Left/OK/Right types a digit), a gamepad, number keys or touch. Wrong tries are throttled. A forgotten PIN can only be reset by clearing Nightjar's app data (#35).

Fixes

  • Input Only no longer disconnects after about 10 seconds on Vibepollo, Apollo and other Sunshine-family hosts (Experimental: tested against Rubylight, Vibepollo covered by tests only). When the host shuts down or the connection drops, Nightjar now returns to the app list and shows the reason as a short message instead of a dialog you have to dismiss.
  • Experimental: on tablets and TV boxes such as the Xiaomi Pad 7 and Fire TV, a built-in device no longer takes player 1, so games no longer ignore your controller as player 2 (#29, #30).
  • Experimental: fixed audio crackling with 5.1/7.1 surround, and on devices without low-latency audio (#15).
  • Experimental: on Android TV with HDR, a stream now ends in steps (Shield and similar), and a TV that drops the signal no longer triggers a false decoder-crash dialog.

Desktop

  • The Wi-Fi hint above also comes from the desktop client, which judges the network by the adapter that actually reaches the PC and ignores VPN adapters. The two new Wi-Fi settings are on the desktop settings screen too.
  • Experimental: on Windows, HDR streams show a picture again instead of "Cannot show d3d11 pictures" and a black screen.
  • On Windows, a game you quit, or whose stream ended, no longer stays marked "Running" until Nightjar restarts.
  • The Linux desktop build now brings its own FFmpeg, so it starts on the Steam Deck and other distributions with a different FFmpeg version or none (Rubylight #52).
  • The desktop client now writes a log file (logs/nightjar.log in its config folder, rotated at each start), and Settings > App has Open logs folder.

Tested. Lint, the full unit test suite (6,163 tests, all passing) and the debug build pass. The Wi-Fi hint was measured on a laptop on 2.4 GHz Wi-Fi (HEVC 1080p60 at 47 Mbps, three 90 s runs per arm, against 3.1.0): unrecoverable frames 15.7 vs 61, keyframe requests 28 vs 100, median end-to-end latency 13.7 vs 64 ms; on 5 GHz there was no change. On a Retroid Pocket 6, 75 s of 5.1 audio went from 161 underruns to 0, and 7.1 from 156 to 0. The new TV screens were checked on a TV emulator and on a Retroid Pocket 6 in TV mode, where Home, All games, the library and Settings scroll with 0.35–1.89% janky frames and a 90th percentile frame time of 7–15 ms; we have no Shield. The Linux tarball was started in clean Arch Linux (no FFmpeg) and Ubuntu 24.04 containers, with every FFmpeg and dav1d library loaded from the archive.

The APKs are signed by CI with the Nightjar release key; the desktop packages (Windows zip, Linux tar.gz) are not signed. SHA-256 hashes of everything are in SHA256SUMS-3.2.0.txt.

Don't miss a new nightjar release

NewReleases is sending notifications on new releases.