Skip to content

Add DSU controller input and auxiliary/multi screen streaming support#19019

Open
danprice142 wants to merge 9 commits into
libretro:masterfrom
danprice142:master
Open

Add DSU controller input and auxiliary/multi screen streaming support#19019
danprice142 wants to merge 9 commits into
libretro:masterfrom
danprice142:master

Conversation

@danprice142
Copy link
Copy Markdown
Contributor

@danprice142 danprice142 commented May 9, 2026

These commits implements a extended DSU (Cemuhook) input for receiving controller/mouse/touch/keyboard/motion data over UDP as well as launching games and starting streams, adds libretro multi-screen API support for cores with multiple displays (e.g., Nintendo DS), and enable auxiliary screen streaming/recording. The changes include UI integration for aux streaming controls, DSU controller attachment notifications, video-only FFmpeg recording for aux streams, and configuration options for DSU & AUX Screen settings.

Example how cores can make use of the AUX screen stream feature
libretro/melonDS@master...danprice142:melonDS:master

Could close #3372 and could close #7109

Cleanup and small feature: remove unused variables and dead switch blocks, fix a missing return, and fix a stop-recording quick menu entry.
Add support for auxiliary screen streaming in the UI and runtime: add sublabel strings for start/stop aux streaming, register sublabel macros and menu bindings, and update menu display logic to account for aux streaming/recording state. Adjust streaming action handlers to check recording/aux state and avoid conflicting starts (early-return to resume when appropriate). Also add DSU-side logging and a runloop message push when a controller is attached to provide user feedback.
@danprice142 danprice142 marked this pull request as draft May 9, 2026 16:42
Add HAVE_DSU defines to numerous platform Makefiles (ctr, griffin, libnx, vita, wii, wiiu and related config) and enable -DHAVE_DSU in build CFLAGS. Clean up minor whitespace/trailing-space issues in Makefiles. Refactor input code: split variable declarations and assignments in input/drivers/uwp_input.c and input/input_dsu.c for clarity and to avoid potential uninitialized-use warnings; restructure polling logic (braces, poll_count placement) and simplify/initialize temporaries. Fix runloop.c by declaring init_result before use and correct the active-screen iteration so screens are only counted/added when the active mask bit is set. These changes enable DSU across platforms and improve code clarity and correctness.
Include command.h for required declarations and change the address-family check to use the generic sa_family via a cast to struct sockaddr. This avoids directly accessing ss_family on the passed storage pointer and improves portability/safety when validating AF_INET addresses.
@danprice142 danprice142 marked this pull request as ready for review May 24, 2026 10:14
@danprice142 danprice142 changed the title Add DSU controller input and auxiliary screen streaming support Add DSU controller input and auxiliary/multi screen streaming support May 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Dual Monitor Support Multiple Monitor Support

1 participant