github RamazanKara/nightjar v0.8.0
Nightjar 0.8.0

4 hours ago

A new Home screen and a "Session and graphics" menu while you stream, for PCs running Rubylight 3.0 (alpha.1 or newer).

What you need. The new screens use Rubylight's native API, so they appear only for a Rubylight 3.0 host, alpha.1 or newer. The Radeon panel needs the next Rubylight 3.0 alpha: on alpha.1 it stays hidden. Older Rubylight hosts and stock Sunshine, Apollo and Vibepollo do not change: they keep the classic PC and app grid, and every existing setting and shortcut stays where it was.

  • Home. Nightjar opens on Home when a paired PC supports it: Continue playing (games that are running or suspended), your Library across all paired PCs with covers, and your Hosts. A game that lives on several PCs shows one card ("On 2 hosts"). Offline PCs keep their last saved games, marked as offline. Turn it off with Open on Home in settings to start on the list of PCs as before.
  • Game detail. Pick a card to see which PC it runs on and the stream settings it will use, then Play or Resume. If another game is running, the screen says that playing this one closes it. Close game shows only when the PC has granted this device Host control; otherwise you get the usual Quit.
  • Session and graphics, in the stream menu. Resume, Disconnect and End session, plus Close game with Host control. Below them: the host, codec, resolution and frame rate, bitrate, and your link (Wi-Fi generation, band and speed, or Ethernet, with the round trip). The menu reads the host only while it is open and only about once a second; Back closes it.
  • Radeon graphics panel. On a PC with an AMD Radeon GPU, the same page lists the driver features the host exposes, such as Anti-Lag and Radeon Chill, and lets you change them when the host allows it: the device needs Host control, and a setting must be one the host can write right now. Settings the host marks read-only, unsupported or waiting for a one-time setup in AMD Software are shown with the reason and cannot be changed. A setting Nightjar does not know yet is still listed, drawn from its type. After a change the panel shows what the host reports back. The host puts changed settings back at End session or Close game, and the panel says so ("Goes back to Off when you end the session"). Errors from the driver appear next to the setting.
  • Strings for all of this are translated into the 14 other languages Nightjar ships.

Tested. Lint and the unit tests of both flavours pass in the release build, and Nightjar CI passes on main. End to end on the Android emulator against an isolated Rubylight host built from main after 3.0.0-alpha.1 (with the Radeon endpoints) on an RX 7900 XT: pairing with the PIN, granting Host control, Home and Play of Desktop, opening Session and graphics, switching Anti-Lag on from the Radeon panel (a second paired client read it back as on, with the restore entry), and End session, after which the host had put Anti-Lag back to Off. The same loop then passed on a Retroid Pocket 6 over Wi-Fi, with the isolated host bound to the PC's LAN address: pairing with the PIN shown on the device, Home, Play of Desktop, Session and graphics, Anti-Lag on (restore entry present) and, after End session, back to Off. Not yet run on a phone.

The standard and root APKs and the Android App Bundle are signed with the existing Nightjar release key. SHA-256 hashes are provided in SHA256SUMS-0.8.0.txt.

All 48 commits since v0.7.18 are included in v0.8.0:

  • 97b0a124 fix(audio): decouple jitter reserve from AAudio hardware capacity
  • 9562862f fix(input): prepare connected gamepads before launching games
  • 7d116da6 feat(updates): notify host and direct-launch users about releases
  • a1585959 fix(input): reserve button-only pads and post startup notices on UI thread
  • 5959d0e9 fix(ui): preserve TV dialog sizing, outlines, language and cover proportions
  • 9d4267e7 fix(updates): keep PC rows aligned when showing host releases
  • 9184e4cb feat(tv): improve remote focus, readability and menu motion
  • 6152685f fix(desktop): preserve VRR during immediate packed presentation
  • 6152ffe3 perf(desktop): render packed SDR directly to the swap chain
  • 8bc6c8e6 refactor(desktop): replace C media and D3D11 shims with Rust
  • a0ae524b feat(protocol): add pinned clipboard transfer and runtime bitrate requests
  • db2aec7a feat(desktop): add Android session controls and bounded stream recovery
  • 7476b34d feat(desktop): add PyroWave, GPU upscaling and adaptive quality
  • 2ed653ca feat(desktop): add layered profiles and per-game settings
  • 841b0948 feat(desktop): add controller mappings and live input testing
  • e4af4340 feat(desktop): add portable keyboard shortcuts
  • ca31f3a8 fix(desktop): route F2 to per-game settings
  • bc7ae3f1 fix(desktop): integrate direct packed presentation with Rust parity
  • afcc0418 fix(desktop): keep direct presentation state Windows-only
  • c42d7dde feat(desktop): select profiles by network and cap metered bitrate
  • caaf1469 feat(protocol): add authenticated PyroWave network probes
  • 53e75924 feat(desktop): calibrate and persist PyroWave frame pacing
  • f662cf44 feat(desktop): route DualSense microphone and headset audio
  • 9bd9b9bd feat(video): add predictive chroma layers and fused HDR rendering
  • 91332c76 feat(desktop): add video scaling and alignment with matching input
  • 0659cd2e feat(desktop): add controller mouse mode and input preferences
  • 5ce266d7 build(protocol): depend on the Rubylight native API types
  • a26b6205 feat(protocol): detect the native API from serverinfo
  • 8f98bc17 feat(protocol): add the native API calls to HostClient
  • d5f955f9 test(protocol): interop tests for the native API client
  • 406e6b73 build(protocol): pin the host crates to a full commit SHA
  • 9146e694 test(protocol): locate the pinned fixtures with cargo metadata and refuse another host certificate
  • 4e46d36d docs(protocol): say what Reason::UpdateHost may not tell the user
  • d5720197 fix(protocol): let the fixture drift test fetch what cargo metadata needs
  • 7a3e0c61 feat(android): learn NativeApiVersion in HostCapabilities
  • cb44b179 feat(protocol): expose the native API calls over JNI
  • 75c9790a feat(console): add the native API data layer and the console repository
  • 72fd2474 feat(stream): map Disconnect, End session and Close game to the native API
  • 1242d918 fix(stream): close the game natively only with host control, else quit through /cancel
  • 12c6e9e9 feat(console): Home and game detail screens
  • a9b3a597 feat(demo): console Home and game detail states in the demo flow
  • 779da987 feat(stream): native page in the stream menu with the connection facts and the Radeon panel
  • 95d9e479 feat(demo): Radeon panel states in the demo stream menu
  • 784436ad fix(test): the clipboard test host reads the POST body before refusing it
  • b9ee3e05 fix(native): the Radeon GPU id is a signed 32-bit number
  • 85aefe23 docs: describe Home, the game page and the Session and graphics menu
  • 97247117 chore(protocol): pin the Rubylight host with the Radeon endpoints
  • 65b1dd71 chore(release): prepare Nightjar 0.8.0

Full changelog: v0.7.18...v0.8.0

Don't miss a new nightjar release

NewReleases is sending notifications on new releases.