Jade Vita v0.1.0
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)