Add Experimental GeForce NOW support

PR
1h ago
+11807-421

What does this change?

Adds GeForce NOW alongside Xbox Cloud Gaming, with saved sign-in, library browsing, queue handling and hardware-decoded streaming. Choose a service at startup or switch from Settings without closing the app.

Includes mouse controls for store dialogs and launchers, service icons in the library, and an updated search keyboard. Also fixes Cedar decoding and authentication issues found during testing.

How did you test it?

GFN playback tested on RG35XX-H (muOS), RG40XX-H (Knulli), Miyoo Flip (SpruceOS) and R36S (dArkOS).

Host tests, formatting checks, the ARM64 build and ABI smoke build pass. Device testing was not repeated after the final review fixes.

R36S frame pacing still needs work. GFN testing on ROCKNIX and AmberELEC is still pending.


Summary by cubic

Adds experimental GeForce NOW support alongside Xbox Cloud Gaming, letting you choose a service at startup or switch in Settings without closing the app. Also plays the Free tier's ads natively.

GeForce NOW

  • Adds saved device-code sign-in, library browsing, queue handling, and WebRTC streaming on the existing hardware decoders.
  • Plays Free-tier ads in-app, resolving VAST manifests, honoring ad policy, and rendering ad icons over the stream. Handles live ad artwork and reporting failures, tolerates optional ad metadata and macros, keeps downloads off environment proxies, and restores audio state per ad.
  • Adds pointer input and an on-screen mouse for GeForce NOW launchers and store dialogs.
  • Adds a WebSocket client and enables WebSockets in the bundled libcurl build.
  • Retains ICE candidates received before the offer, routes them by SDP media index, rejects invalid token lifetimes, and honors cancellation during session discovery.
  • Frame pacing on the R36S is still uneven; ROCKNIX and AmberELEC evaluation is still pending.

Fixes and build

  • Fixes Cedar H.264 access-unit submission, the vendor linked-list offset calculation, device-code expiry and polling handling, and PUT/PATCH request bodies.
  • Adds service badges in the library and a dedicated space row on the search keyboard.
  • Shares UUID generation between providers and preserves Guide button combinations and Escape cancellation.
  • Isolates cross-compile pkg-config paths, applies FFmpeg patches in dependency order, and strips unsupported ARM64 atomic helpers from the release build.

Summary by CodeRabbit

  • New Features

    • Added GeForce NOW streaming alongside Xbox Cloud Gaming, with service selection at startup and switching from Settings.
    • Added GeForce NOW sign-in with saved credentials, game library browsing, and streaming.
    • Added mouse mode, on-screen controls, and ad playback for GeForce NOW sessions.
    • Added provider badges and support for streams up to 768 pixels high.
  • Bug Fixes

    • Improved sign-in polling, catalog loading, controller input, and video playback reliability.
  • Documentation

    • Updated setup instructions, supported-device information, controls, licensing, and GeForce NOW compatibility notes.