What is Duo?
Duo is an HDR-compatible, headless, bare-metal, multi-seat streaming server based around TermWrap, Sunshine, Moonlight and a variety of custom drivers & libraries.
You can think of it as a version of Sunshine that allows multiple users to use the same computer at the same time without occupying the computer's physical session or otherwise interfering with each other.
Each session's resolution, refresh rate, scaling and dynamic range are controlled directly via Moonlight.
The typical "1 PC, multiple users" scenario that we all know and love.
Let it empower your handheld device
You own a handheld device that can't handle the latest games, but still want to play them?
Start a Duo instance on your gaming computer, connect to it, and play that game, all while still being able to use your computer normally.
Share your gaming hardware with friends or family
Your friend / family member doesn't own a decent enough computer but you do?
Start a Duo instance on your gaming computer, let them connect to it, and play that fancy multiplayer game together that they just can't run right.
Host your own cloud gaming server
Enable UPnP on your router, toggle the according setting in your instance's admin panel and your computer is now reachable anywhere in the world.
Setup Guide
A step-by-step guide on how to get started with Duo.
Troubleshooting
A list of frequently asked-about issues and how to resolve them.
Known Issues
A list of known issues that we really can't do all too much about due to technical limitations.
Changelog
Version 1.5.2
Fixed a sandbox start issue
Fixed a ViGEmBus sandbox installation error
Removed unnecessary ViGEmBus architectures
Fixed a cloudflare related navigation error
Version 1.5.1
Added Steam multiboxing support (shortcut updates might be required, see assets/apps.json for reference)
Reduced idle CPU & GPU usage
Improved HID isolation support
Disabled Windows' ControllerToVKMapping because it ignores the DEVPKEY_Device_SessionId attribute, breaking HID isolation in the process
Modernized the graphical user interface
Merged GitHub & Patreon builds into a single binary
HDR display parameters are now configured automatically
Fixed a service start issue
Fixed a sandbox start issue
Fixed a sandbox stop race condition that caused RTSP errors on subsequent instance starts
Fixed a screen tearing issue caused by the display driver
Fixed a framebuffer mix-up between sessions that occured when a newly spawned session received an out-of-order session ID
Fixed an issue with host-connected Bluetooth devices
Fixed an issue with passwords containing special symbols
Fixed a user authentication issue that prevented instance starts
Fixed the ms-gamebar error message in sandboxed instances
Fixed an issue that caused the setup window to slip behind other open windows
Epic Games installed in non-standard directories now get passed through into the Sandbox (but without their install manifest)
Updated Sunshine
Version 1.5.0
Added sandbox support for Windows 11 24H2+
Added experimental support for persistent sandbox storage
Failed sandbox starts are now logged properly
Host HID isolation can now be toggled on or off (default on)
The scale factor settings can now be set to a static value (ranging from 100~500%)
The scale factor is now properly applied to sandboxed instances
The host's Visual C++ and DirectX runtimes are now accessible inside the sandox
The host's Steam installation is now accessible inside the sandbox
The host's Epic Games installation is now accessible inside the sandbox
Fixed a bug in the setup that broke the Windows 11 24H2 component store
Updated Sunshine
Version 1.4.9
Fixed a timing issue that caused applications to use the wrong display resolution
Fixed a field enable issue in the manager application
Removed the multiple instance warning from the manager application
Account passwords no longer expire
Added experimental sandbox support for supporters (Windows 11 23H2+ only, see Wiki for details)
Updated Sunshine
Version 1.4.8
Improved gamepad jailing support
Version 1.4.7
Added Windows 11 24H2 support
Updated Visual C++ runtime components
Enabled RDP-Tcp listeners in Core OS containers
Version 1.4.6
Added support for Memory Integrity
Optimized instance startup times
Replaced RdpWrap with TermWrap
Updated Sunshine
Version 1.4.5
Added support for Windows Core OS containers
Added support for non-administrative Users on Windows Home
The Auto Start setting can now be changed while the service is running
Updated RdpWrap
Version 1.4.4
Instances now pause whenever the host suspends
Updated the AV exclusion list to improve hooking speed
Updated the bundled RdpWrap.dll & RdpWrap.ini
Version 1.4.3
Improved the RdpWrap.ini updater
Updated built-in RdpWrap.ini
Version 1.4.2
The scale factor adjustment range has been changed to 50~200%
Version 1.4.1
Fixed a memory leak in Duo.exe
Version 1.4.0
Fixed a hook timing issue
Fixed a bug in the termsrv.dll version reader
Disabled some no-longer-needed debug messages
Updated built-in RdpWrap.ini
Version 1.3.9
Updated Sunshine (fixes pairing issue)
Updated built-in RdpWrap.ini (adds support for Windows 11 10.0.22621.2080)
Version 1.3.8
Inlined RdpWrap
Inlined aardwolf
Inlined TaskScheduler
RdpWrap.ini updates are now automated
Instances can now recover from adapter errors
Instances can now be started & stopped on-demand via a WebUI
Removed no-longer-needed python dependency
Reduced service & session startup time
Updated Duo Manager
Updated Sunshine
Version 1.3.7
Improved capture performance
Fixed an issue that corrupted instance setting files after web admin panel configuration changes
Version 1.3.6
The UI scale factor can now be adjusted with a multiplier (0.13888 * height * multiplier)
Removed unneeded python components
Version 1.3.5
Memory integrity is now disabled (to ensure RdpIdd.dll & IddCx.dll can be patched properly)
Version 1.3.4
Updated Sunshine
Duo's unlock status is now visible in the title bar (as a + symbol in the version number)
Duo's revision number has been removed from the title bar
The web admin panel button now doubles as an online indicator
Version 1.3.3
Duo can now spawn multiple instances of Steam out-of-the-box (see assets\apps.json)
Version 1.3.2
Added support for Windows 10 21H2
Network Level Authentication is now force-enabled
Render adapters are now chosen based on their available dedicated video memory
Instances linked to expired user passwords will now be skipped
Left-over python processes are now being detected & garbage-collected
Version 1.3.1
Added support for Windows 10 22H2
Scale factors are now notched to 25% increments
Improved the display configuration change response time
Improved the instance start time
Fixed a rare black screen error
Fixed a session join error
Fixed a session stop error
Version 1.3.0
Fixed an issue with UI scaling at sub-720p resolutions
Version 1.2.9
Fixed a gamepad isolation issue
Resolution, refresh rate, scaling and HDR can now be controlled via Moonlight
The version number is now visible in Duo Manager
Version 1.2.8
Improved gamepad isolation
Removed no-longer-needed libraries
Passwords are now hidden
Instances can now be disabled
Each instance has its own application list now
Version 1.2.7
Fixed several input issues
Version 1.2.6
Improved capture performance
Version 1.2.5
Fixed the XBOX360 gamepad mode
Fixed a screen tearing issue
Version 1.2.4
Optimized frame capture performance
Reworked gamepad isolation algorithm
Version 1.2.3
Fixed a framedrop issue
Fixed a desktop render glitch
Fixed a gamepad isolation bug
Version 1.2.2
Optimized the framebuffer capture code
Optimized the service start code
Version 1.2.1
Implemented PnP device redirection (deprecating HIDHide)
Implemented a physical HID device watchdog
Moved WTS API calls into their own subprocesses (to work around a known API issue)
Fixed several instance start errors
Version 1.2.0
Added HDR support
Updated Sunshine
Fixed two instance start deadlocks
Fixed custom scale factors (again)
Rewrote RdpIdd.dll & IddCx.dll patches so that Windows Update can't break them anymore
Version 1.1.1
Fixed a service shutdown deadlock
Fixed a desktop scaling issue
Fixed animated mouse cursors
Fixed monochrome mouse cursors
Fixed mouse cursor scaling
Optimized mouse cursor blending
Increased the default log verbosity
Raised minimum system requirements to Windows 11 23H2 (in preparation for HDR support)
Version 1.1.0
HidHide segregation code is now more resilient
Physical devices now get jailed to the active WTS console session on Sunshine ViGEmBus callback invocation
Virtual DS4 gamepads now get jailed properly
Version 1.0.9
Automatically enables HidHide cloaking when required now
Version 1.0.8
Updated Sunshine
Removed sunshinesvc.exe (Duo doesn't need it)
Gamepad segregation is now provided via ViGEmBus & HidHide (no longer experimental)
Version 1.0.7
Removed version update message (as Duo isn't compatible with upstream Sunshine)
Sunshine applications now launch in the right user session
I had to re-upload this one because Windows Defender ate a file (please re-download & re-install if your Duo service refuses to start)
Version 1.0.6
Fixed an issue with spaces in usernames
Version 1.0.5
Fixed an issue that affected Windows 11 Home Edition
Version 1.0.4
Fixed desktop scaling (after KB5030310 broke it)
Version 1.0.3
Fixed the software encoder's video format settings
Removed the DXGI test code as its no longer needed
Version 1.0.2
Added support for Microsoft's new IddCx20 API
Version 1.0.1
Added support for KB5030310 (23H2 Preview)
Version 1.0.0
Initial release
Downloads