Skip to content

Jade Vita v0.1.0

Choose a tag to compare

@josephinoo josephinoo released this 24 Jul 16:33

Core / Bootstrap

  • Bootstrapped the Jade Vita GFN client in Rust/VitaSDK with cargo-vita build/toolchain setup and an SDL2 + egui app shell
  • Added NVIDIA device-code authentication with encrypted token storage
  • Implemented catalog browsing, search, and cover art loading

Streaming

  • Added a real WebRTC peer engine with SDP sanitization, NVST answer generation, and ICE/signaling forwarding
  • Implemented Vita hardware H.264 decode worker with direct SDL texture output
  • Added Opus audio playback via a dedicated decode thread and SDL queue output
  • Restored Bgr565 as the default video path on real hardware, with automatic fallback to Iyuv when Bgr565 is detected as broken
  • Reduced input/video queueing latency by draining all queued UDP packets and peer commands per loop iteration, coalescing gamepad input to the latest snapshot, and tightening the compressed video buffer (4 → 2 pending units)
  • Moved cover image decoding off the UI thread and pinned peer/audio threads to reduce scheduler jitter

Input

  • Added NVST input-channel support (protocol encoding, handshake parsing, per-frame gamepad snapshots, heartbeat packets)
  • Forced DTLS client role for NVIDIA ICE-lite sessions to improve WebRTC bring-up reliability

Session Management (CloudMatch)

  • Hardened CloudMatch/catalog handling to match NVIDIA/OpenNOW behavior: session retries, session-limit cleanup, long-queue polling with progress tracking, zone/host resolution
  • Made CloudMatch polling tolerant of transient 5xx errors
  • Added forced re-login (clearing stored tokens) on catalog-load auth expiration
  • Tightened session lifecycle to trigger stop on exit and on fatal disconnects, including signaling loss during streaming

UI / UX

  • Refreshed the UI with a darker, NVIDIA-inspired theme across catalog, detail, and session screens
  • Replaced emoji glyphs with Vita-friendly text labels
  • Added a prominent play button on the detail screen
  • Fixed catalog navigation so exiting a non-empty search clears the query and triggers a full catalog refresh
  • Added queue progress display and confirm-exit controls during session setup/streaming

Localization

  • Added a Fluent-based i18n layer with en-US and es-ES resources
  • Added a language picker to the catalog UI with localized search/footer/count text
  • Fixed scroll-follow jitter in the catalog grid

Diagnostics

  • Added pipeline status events/counters for on-screen debugging
  • Added SDP snapshot logging for offline troubleshooting

Assets

  • Refreshed Vita icon and LiveArea artwork (icon0.png, bg0.png, startup.png)