Skip to content

Releases: TheRealFame/Nearcade

NearsecTogether v3.0.1: Pipeline Separation, Infrastructure Fixes, and Input Enhancements

Choose a tag to compare

@github-actions github-actions released this 06 Jul 06:12

NearsecTogether v3.0.1: Pipeline Separation, Infrastructure Fixes, and Input Enhancements

This release is a substantial maintenance and infrastructure update following v3.0.0, addressing critical build failures, deploying our new zero-buffer rendering architecture, and vastly expanding controller support and routing stability.

Experimental Hardware & Pipeline Advancements

  • Custom WebCodecs + WebGL Pipeline (Client Decoding): We have formally separated the standard WebCodecs pipeline from our new experimental, zero-copy WebGL renderer. When this option is selected by the host, the client version (viewer) now utilizes a custom WebCodecs decoding pipeline that bypasses the browser's standard media player entirely. This allows viewers to experience an ultra-low latency, zero-buffer stream without risking the stability of standard WebRTC or WebCodecs modes.
  • SteamVR & WebXR Input Progression: Significant progress has been made on the experimental devices framework. The openvr SteamVR driver submodule has been properly integrated into the build system, laying the groundwork for native VR motion controls, head-tracking, and advanced HOTAS/Tablet inputs.

Infrastructure & Routing Fixes

  • VPS Synchronization: Hardened remote VPS routing. Viewers are now correctly routed to the Rust-based router, and a new automated Standby screen prevents users from getting stuck at an incorrect PIN prompt when the host is disconnected.
  • LAN-Bypass: Implemented a LAN-bypass system for local network connections, ensuring signaling remains stable without incorrectly rate-limiting local users.

Viewer & Streaming Enhancements

  • Black Screen Autoplay Fix: Resolved a critical issue causing black screens on Chromium and Safari by properly implementing muted autoplay bypass policies for WebRTC streams.
  • Discord RPC Integration: Finalized and stabilized the event handlers for ACTIVITY_JOIN and ACTIVITY_JOIN_REQUEST within the desktop client, ensuring seamless profile integration.
  • Drag-and-Drop Roster: The viewer roster overlay now supports drag-and-drop player ordering for streamlined multi-controller management.
  • Custom Viewer Profiles: Viewers can now utilize custom controller profiles, and the signaling engine now fully supports multiple simultaneous controllers per single viewer session (resolving prior conflicts).

Driver & Input Fixes

  • Xbox Controller Drivers: Improved the detection logic for the Python input driver to properly identify and initialize Xbox One and original Xbox controllers.
  • Virtual Device Cleanup: Ensured absolute cleanup and un-mapping of virtual input devices upon session termination to prevent ghost controllers on the host machine.

v3.0.0: The Arcade & Experimental Hardware Update!

Choose a tag to compare

@TheRealFame TheRealFame released this 04 Jul 00:50

It’s finally time for Version 3.0! This massive update focuses on opening up Nearsec to a completely new realm of hardware inputs, expanding the social features of Arcade Mode, and squashing tons of UI bugs to make hosting streams smoother than ever.

What's New
Experimental Hardware API
Say goodbye to standard gamepads (if you want to). We've officially launched the Experimental Hardware API, built on top of a highly extensible Python C-types bridge (uinputBridge.node).

Guitar Hero / Rhythm Support: Dust off your plastic guitars! Full strum bar, fret, and whammy support is now mapped directly from browser APIs into the host system. (Note: Strum is mapped across both D-pad and Left-Stick axes for maximum adapter compatibility).
Extensible Python Backends: We’ve laid the groundwork for Flight Sticks (HOTAS), Drawing Tablets, Balance Boards, Eye Trackers, Light Guns, and more.
Host Permission UI: You can now explicitly tag viewers as using "Experimental" hardware in the Host Dashboard to unlock these specialized input paths.
Discord "Ask to Join" Integration (Arcade Mode)
We’ve drastically improved the Discord Rich Presence integration:

Unified UI & Audio Mixing
Roster Overlay Restored: The viewer roster overlay is back in the main preview window. It's now cleanly constrained to a 220px height with smooth scrolling so it never obscures your stream.
Synchronized Volume Mixers: The Global Viewer Volume slider is now fully synchronized across the main HUD and the deep settings modal. Adjusting one instantly updates the other, persisting directly to your local config.
Sleeker Social Cards: OpenGraph tags have been patched. Sharing your Arcade session on Discord, X, or Reddit now displays a much cleaner "Join the Session!" call-to-action instead of generic placeholder text.
Bug Fixes & Under-The-Hood
Fixed a nasty Wayland input mapping overlap where the Left Stick was incorrectly hijacking D-pad strum inputs on certain rhythm adapters.
Improved the VPS SFU handshake sequence.
Optimized the _updateDiscordRPC loop to minimize pointless DOM updates.
Note for Upgraders: Because we touched the core Electron main.js file for the new Discord "Ask to Join" event loop, you MUST fully close and restart the desktop application for the integration to work correctly.

Thank you for continuing to test Nearsec Arcade. Let me know how those Guitar Hero sessions go!

v2.0.8 Patch

Choose a tag to compare

@github-actions github-actions released this 01 Jul 21:58

Changes in 2.0.8

  • Fixed an issue where the WebCodecs encoder was hardcoded to VP8 instead of honoring the host's selected codec (AV1, H264, etc).
  • Resolved a critical WebRTC reconnect loop that caused the OpenH264 encoder to spiral and viewers to see a permanent black screen after a connection drop.
  • Fixed a bug where setting a persistent session password would cause already-authenticated users to be rejected with a 'Session password incorrect' error.
  • Expanded Xbox One X Gamepad compatibility and WebRTC UDP/TCP fallback support.
  • Fully automated the deployment pipeline to ensure Windows, Linux, and macOS binaries upload correctly.

2.0.7

Choose a tag to compare

@github-actions github-actions released this 28 Jun 04:03
v2.0.7

Fix case-sensitivity and wildcards in Itch.io renaming step

2.0.6

Choose a tag to compare

@github-actions github-actions released this 20 Jun 04:50
v2.0.6

fix(core): cleanly resolve crash recovery sync, dynamic port cleanup …

2.0.5 - Windows Input Fixes & WebCodecs Stability

Choose a tag to compare

@github-actions github-actions released this 07 Jun 18:52

This update addresses critical issues with input handling and display rendering.

Key Changes:

  • Windows Input: Added explicit administrator manifest requirements for the Electron application. This resolves the long-standing issue where ViGEm virtual controllers were blocked from spawning by Windows security policies.
  • WebCodecs Rendering: Replaced manual JavaScript scaling logic with native CSS object-fit. The video stream now correctly maintains aspect ratio and stays within window boundaries regardless of browser resizing.
  • Emulated KBM Fixes: Corrected an input routing error in InputOrchestrator that prevented keyboard-to-controller mapping from triggering correctly.
  • Native Bridge: Fixed an initialization mismatch in the native C++ input driver to ensure the zero-latency path loads reliably on Linux hosts.

Release v2.0.4: Sub-frame Input Precision, Wayland Stability, and WebRTC Quality Control

Choose a tag to compare

@github-actions github-actions released this 05 Jun 03:43

This release focuses heavily on competitive-grade input latency and bulletproofing the Linux host experience. By decoupling the input polling architecture and tapping directly into native Chromium APIs, Version 2.0.4 completely eliminates stream-ending deadlocks and guarantees zero-latency inputs for competitive fighting games.

Dedicated Input Fast-Lane (250Hz)
The entire controller and KBM polling pipeline has been rewritten to bypass the main WebSocket signaling channel, completely eliminating TCP Head-of-Line blocking during network congestion.

  • Sub-frame Precision: Inputs are now routed through a dedicated /ws/input fast-lane, allowing the polling rate to safely return to a blistering 250Hz (4ms). Games that require frame-perfect inputs (like JoJo's Bizarre Adventure: All-Star Battle R) will now feel identical to local couch co-op.
  • Decoupled State: Video frame drops or signaling hiccups will no longer cause delayed bursts of input commands.

Native Wayland & PipeWire Stability
The Linux screen capture pipeline has been fundamentally restructured to route around a highly destructive C++ thread deadlock buried inside Electron's IPC bridge.

  • Native OS Portal Invocation: By forcing the engine to use getUserMedia instead of desktopCapturer, Nearsec now natively hooks into Chromium's pristine PipeWire implementation.
  • Deadlock Eradication: Canceling the native OS screen picker no longer permanently freezes the host UI or crashes the underlying WebRTC engine.

WebRTC Quality & Congestion Control
The dynamic congestion monitor has been recalibrated to correctly respect user preferences regarding stream degradation.

  • True "Crisp" Mode: When prioritizing quality over latency, the network monitor will now enforce a strict 2.5 Mbps minimum floor. Instead of aggressively slashing the bitrate into a blurry mosaic during network lag, WebRTC will now correctly drop framerates to maintain a razor-sharp image.

Under the Hood

  • Host UI State Sync: Fixed a WebSocket bug where viewers' active controller slots would turn into "ghosts" if the host performed a Ctrl+R page refresh.
  • Windows Audio Failsafe: Rewrote the Windows fallback capturer to safely stitch Desktop Audio and Window Video together manually, preventing Chromium OverconstrainedError crashes when capturing specific applications.

Full Changelog: v2.0.3...v2.0.4

Release v2.0.3: Native Linux Audio Architecture, Global Translations, and UX Overhaul

Choose a tag to compare

@github-actions github-actions released this 03 Jun 04:32

This release marks a large foundational shift for the Nearsec Together architecture. Version 2.0.3 moves us away from legacy fallbacks and hardcoded strings, introducing a robust, native audio pipeline for Linux and laying the groundwork for a globally accessible interface.

Alongside these core engine upgrades, this patch brings critical quality-of-life fixes to the web viewer and ensures maximum compatibility across diverse hardware setups.

Native PipeWire Audio & Routing

The Linux audio capture pipeline has been completely rewritten. We have stripped out the reliance on the Python OS-level audio fallback and fully integrated native PipeWire capture.

  • Virtual Cable Generation: The host now reliably generates and targets NearsecVirtual sinks, allowing hosts to isolate game audio from desktop notifications seamlessly.
  • Hardware Voice Routing: Viewer voice chat is now explicitly routed directly to the host's physical hardware sink. This bypasses the virtual cable loopback, entirely eliminating the stream echo that previously occurred when viewers spoke.
  • Stream Amplification: The underlying Web Audio API gain nodes have been recalibrated, applying a clean 1.4x amplification to the desktop audio before it hits the WebRTC stream, ensuring viewers receive a full, loud signal.

Global Translations & i18n Support

Thanks to a community pull request, the entire frontend interface has been thoroughly decentralized from hardcoded English strings.

  • Dynamic Translation Map: Both the Host and Viewer clients now utilize a bulletproof, asynchronous I18N.t() translation map.
  • Language Support: This framework allows the interface to seamlessly swap languages without breaking UI layouts, officially introducing community-driven localization (starting with Portuguese) to the project.

UI & Mobile Experience Fixes

We have squashed several long-standing frontend quirks that degraded the experience for mobile viewers and desktop users alike.

  • Mobile Sidebar Bug Resolved: The slide-out control bar no longer gets permanently "stuck" open on iOS and Android devices. Touchscreen interfaces now bypass legacy CSS hover states in favor of dedicated swipe and tap-away event listeners.
  • Smart HUD Auto-Hide: The top status bar in the viewer client now operates on a smart timer. It will display for exactly 10 seconds when a stream connects, then fade away for maximum immersion. It can be summoned back for 3 seconds by aggressively moving the mouse upward, ensuring it never obstructs the gameplay canvas.
  • Legacy Host Parity: Hardware H.265 encoding support has been successfully backported and exposed in the legacy Host UI drop-down menus.

Under the Hood

  • Bulletproofed the JavaScript execution order to prevent cascading failures during WebSocket initializations.
  • Fixed an async race condition where translation UI elements would attempt to render before the language JSON dictionaries finished fetching.
  • Hardened the Headless Arcade Worker boot sequence to ensure it properly locks onto isolated virtual displays and handles automatic tunneling without manual intervention.

v2.0.2: Controller Translation Fixes & Input Stability

Choose a tag to compare

@github-actions github-actions released this 31 May 23:40

This hotfix patch targets post-deployment edge cases regarding missing keymaps, incorrectly mapped controller buttons, and Windows-specific WebRTC capture failures.

Input Pipeline Architecture

Hotfix: Fixed a translation drop in the W3C Gamepad API where the left and right triggers (L2/R2) were not being correctly mapped to analog Linux axes (ABS_Z, ABS_RZ).

Hotfix: Expanded the internal keyboard dictionary to include the full alphabet, numbers, and modifiers.

Hotfix: Swapped the X and Y button mapping to correctly align native PlayStation profiles with the Linux kernel.

Streaming & Browser Stability

Hotfix: Fixed a regression preventing Windows 11 host capture. Chromium PipeWire launch flags are now safely isolated behind an OS-check to prevent breaking DXGI/GDI capture engines on Windows.

Full Changelog: v2.0.1...v2.0.2

v2.0.1 Venmic & Windows Quick Patch.

Choose a tag to compare

@github-actions github-actions released this 25 May 00:09

Full Changelog: v2.0.0...v2.0.1