Skip to content

Nearcade v3.0.7

Choose a tag to compare

@github-actions github-actions released this 06 Oct 04:57
· 77 commits to main since this release

Native OBS Integrations & Streaming

  • Native NDI & Spout2 Egress: Hosts can now seamlessly broadcast their gameplay straight out of Nearcade to OBS! We added full support for NDI and Windows Spout2 (via SpoutLibrary.dll). Your stream will automatically appear natively in OBS without needing messy window capture.
  • Sidecapture (Native Android/ADB Support): Introduced "Sidecapture," a massive new capability natively built into the Host dashboard! You can now plug in Android devices via ADB (using a headless scrcpy pipeline) and capture their screen directly into Nearcade alongside your webcams, complete with a native HTML mini-dock.
  • GStreamer Hardware Acceleration: Integrated powerful hardware-only H.264 pipelines via vapostproc + VAMemory.
  • GStreamer Stability: Added time-based capture-rate heartbeats, 720p 60fps previews using a dedicated thumbnail pumping thread (preventing encoder stalls), and fixed pipeline selection persistence.
  • FFmpeg & AMD Fixes: Resolved MSE video decode errors, color space scaling issues, and audio echoes by disabling VAAPI for AMD hardware and shifting to universal FFmpeg filters.

Host UI Overhaul (OBS-Style Docks)

  • Dockable Drag-and-Drop Layout: Completely overhauled the Host UI! It now features an OBS-style dockable layout. You can drag, drop, and rearrange your side panels (like Chat and Capture) to your exact liking, and your layout is persistently saved.
  • Android TV Navigation: Added complete spatial navigation support! You can now navigate the entire interface fluidly using an Android TV remote D-Pad.

Core Streaming & Video Pipelines

  • Windows Chromium 130 Crash Fix: Stripped WinRT frameRate constraints that were causing a fatal "Could not start video source" crash on the latest Windows WebView2/Chromium updates.
  • Strict WebCodecs Enforcement: Nearcade now aggressively enforces WebCodecs for hardware decoding. It will automatically and silently redirect standard HTTP connections to active HTTPS tunnels to unlock hardware decoder APIs.
  • Insecure Context Fallbacks: If a viewer connects from an insecure environment where the VideoDecoder API is blocked, the stream now safely falls back to standard WebRTC video tracks rather than black-screening.
  • Linux H.264 Hardware Unblocked: Ripped out the legacy VP9 hardcode-override, successfully allowing native H.264 hardware encoding to operate on Linux hosts.
  • Rich Audio Support: Added a "Rich Audio" toggle in the Host UI settings to enable 512kbps True Stereo Opus streams for maximum audio fidelity.

Networking & OpenRemotePlay

  • ORP WebCodecs Integration: WebCodecs video streams are now fully integrated over the OpenRemotePlay tunnel fallback, fixing severe WebRTC starvation and connection speed limits.
  • Signaling Deduplication: Fixed a critical race condition by deduplicating ORP signaling tracker joins. This prevents dangling PeerConnections and random 15-second stream drops caused by slow trackers.
  • WebSocket Tunnel Keep-Alive: Implemented background ping/pong loops on the signaling WebSocket to stop proxy tunnels (like Zrok and Cloudflare) from abruptly terminating idle connections.
  • ICE Candidate Buffering: Resolved a bug where early IPs and ICE candidates were dropped during rapid reconnects by buffering them until the PeerConnection state is restored.

Input & Quality of Life Fixes

  • Ghost Mouse & Stick Drift Killed: Fixed right-stick double-scaling, resolved left-stick drift, and delayed KBM device initialization so the annoying "ghost mouse" no longer appears at startup on Linux!
  • Compiled Input Sidecars: Windows input sidecars (including vgamepad) are now compiled automatically into binaries under the hood. No more Python pip dependency resolution hangs!
  • Secure Context Warnings: The Login Screen and Host Dashboard now display smart "Secure Connection" warnings, dynamically hiding local LAN IPs when WebCodecs strict mode is active.
  • Local PIN Polling Repaired: Fixed the missing isP2P variable that broke LAN PIN requirements. Direct connections now correctly query the host and display the PIN input visibility states reliably.
  • WakeLock Integration: Implemented the Screen WakeLock API to ensure the Host PC monitor never sleeps or aggressively throttles during active gameplay streams.

Infrastructure

  • ARM Linux Native Support: InputOrchestrator now explicitly detects ARM architectures and gracefully falls back to pure Python sidecars, preventing 'Execution Format' crashes on devices like Raspberry Pi.
  • Electron 44 Upgrade: Bumped the backend and desktop clients to the latest Electron 44.4.3.
  • CI Enhancements: Boosted compilation speeds by integrating Mozilla's sccache (Swatinem/rust-cache) into GitHub actions and unlocking JOBS=max for Node-GYP C++ compilation.