XaiJu
blackseraph
blackseraph

patreon


Duo 1.5.0 is now available (with proper sandbox support)

Consider this a late New-Year's Eve update

I originally hoped to have all of this ready for New Year’s Eve, but debugging took way longer than expected.

A lot of this post will focus on this update's new and improved sandbox support, but you'll find that this is just as much a bug-fix update as it is a feature update.

And yes, I've been hammering away at this, on and off, since October 16th...

It really shows you how much work goes into these passion projects.

Either way. Let’s start with a primer for the uninitiated, explaining what Duo does, before diving into the pros and cons of sandboxing with Duo 1.5.0 and onward.

What is Duo?

Duo is my take on multiseated computing and video game streaming, built around Sunshine, Moonlight, and several custom userspace drivers and services.

Its biggest differentiator, compared to a regular Sunshine + Moonlight setup, is its ability to support multiple separate users on a single computer, with each user having their own independent environment.

Essentially, it allows you to split a single computer into multiple virtual systems, enabling multiple users to stream software and games simultaneously.

Duo's Achilles' Heel: The Segregation Dilemma

Most of Duo’s original issues have been ironed out over countless updates, but the issue of segregation between clients remains a recurring challenge, especially with host-connected Bluetooth input devices.

If I had to explain it in layman's terms, its the issue of certain resources, like input devices, not being assigned to the right user or any user at all.

Without delving too deeply into why this issue exists, the root cause lies in the way Microsoft certifies kernel drivers. Anti-Cheat systems in certain games compound the problem by preventing the deployment of custom kernel-level filter drivers that don’t meet those very same certification requirements.

This issue has persisted since Windows 10 version 1607, and while there’s no universal solution accessible to us yet, there’s still room for improvement on our end, even without access to custom kernel-level filter drivers.

Fun fact: Duo isn’t the only software affected by this. Many other tools, like Handheld Companion, DS4Windows, and virtually any software that uses HidHide, encounter similar challenges. Particularly with Bluetooth peripherals.

Solving the Segregation Issue: Enter Sandbox Support

A sandboxed instance is, for all intents and purposes, a separate virtual computer. However, unlike virtual machines, a sandbox requires significantly less storage space.

To put this into perspective, a typical Windows virtual machine consumes about 30GB of storage, while a sandbox can require as little as 400MB.

Additional benefits of sandboxed instances include:

This isolation eliminates the need for Duo to manually segregate devices by setting their session ID device property, effectively solving the segregation issue without requiring a custom kernel-level filter driver.

Another major advantage is the ability to run multiple instances of software like Steam or other global-exclusive applications, thanks to the unique global namespace provided by sandboxes.

The Cons of Sandboxed Instances

While sandboxing offers significant benefits, there are some drawbacks:

To address this last issue, Duo selectively synchronizes specific registry subkeys with the sandbox, effectively passing through host-installed software for seamless use. Duo 1.5.0 already handles this for Steam and Epic Games, with plans to extend support to additional storefronts and software in future updates.

Another Tool in the Belt

While sandboxing isn’t a universal solution to every issue, it addresses several previously unsolvable problems, albeit with some manageable trade-offs.

To clarify, sandboxing is entirely optional and can be enabled or disabled for individual instances via the Duo Manager application. Consider it another tool at your disposal to use when needed.

Looking Ahead: Sandbox Improvements, Custom Filter Drivers, and better HDR Support

There's three key points I want to spend more time on in the future:

Getting Duo

All builds of Duo, dating back to the initial release, can be found in it's original release post.

A reduced-functionality build can be freely downloaded from Duo's GitHub page as well.

Consider it a freely available demo that should be sufficiently featured for most casual people's needs.

Additionally, GitHub builds can be used to upgrade Patreon builds at no cost, letting you maintain the full feature set without requiring a long-term subscription.

Building Cool Stuff Together

I love creating cool projects like Duo for all of you and don’t want anyone to feel pressured to contribute more than they’re able.

I’m incredibly grateful for your support, as it enables me to pursue these passion projects. However, I completely understand that not everyone is in a position to contribute financially.

Give only what you can and are comfortable with. Your support, no matter the form, means the world to me.

See you in the next post!

- Black-Seraph

Duo 1.5.0 is now available (with proper sandbox support) Duo 1.5.0 is now available (with proper sandbox support)

Comments

Bonjour , déjà merci pour ton projet . J’ai un problème avec duo, les ports désigné par duo marche une fois sur deux ce qui fais que je ne peux pas me connecter avec Moonlight dessus car une fois duo le charge et une fois non . Ou des fois faut patienter pour qu un seul se lance des fois alors que les autres non . As tu une solution ??

yoann ouchen

Awesome project. Been supporting for a while and just got around to implementing. I think there is a bug with password input for User/Password field in what I'd guess would be called the Sunshine settings tab. Could not get the sunshine component to start until I changed my Windows User Password. My guess is that the bug is with how the password is stored. The password I used contained '#', '(', and ')' as the only 3 special characters. My guess is that the '#' is the culprit, and may have commented out the password.

ThoreauPro Bellevue, WA

Been looking everywhere to find an answer... can't find one... for some reason with this latest version my Steamdeck when connecting back the controls will not work in big picture mode... as soon as I launch a game the controls begin to work... If I switch the Steamdeck from game mode to desktop mode and try moonlight there suddenly it works... I am at a loss... I have no idea what is happening Prior releases did not seem to have this issue

Kakashisma

Hey Black Seraph, thanks a lot for the update, appreciated a lot. I am having issues with sandbox functionality. It takes ages for sandboxed instances to load and time ramps up the more folders you share with the sandbox, but that's ok afterall. But my great problem is that sandboxed instances are offline, they can't access internet. I see they use a virtualized adapter but that adapter uses some strange IP (static) starting with 172 that can't work with my home network that starts with 192 like usual and changing the IP of the virtual network adapter makes the instances unusable. Steam and Epic games store do work but how do I make them access internet from the sandbox? EDIT: ok typing in some real DNSs and keeping the strange IP fixed the problem, they can access to internet now. ANYWAY, that's an extra setup step I would have loved to avoid.

Matteo Gazzetti

Also check this: https://github.com/DuoStream/Duo/wiki/Troubleshooting last time I had any issues then the account on windows I was using had its password expired. You need to set up a non-online account with correct rights and then duo uses that one.

Christian Bekkhus

Have you installed any different versions of sunshine that are running? You need to remove these first

Christian Bekkhus

Hi, I've made at least 3 x $10 dollar payments and now I see the latest version is out. I had to re-format my PC due to the problems with previous versions, so how can I now try the latest without paying again for the 4th time, surely the fact I have made at least $30 dollars and the previous versions of software have caused issues should mean either a refund or a free upgrade , please advise...

steven bowden

I followed other post here to upgrade my device and it crushed now it turned to black screen should have mentioned if its not compatible. now can any one help me to fix my device

Za1

Could we stream two sessions at the same time or only host with 1 session is ok or only 1 session.

Alexandre JACQ

Thanks for the update!

Patrick Passaro

i have a problem with DUO, it keeps shutting down the service when i start it. It's driving me crazy! any ideas?

Sander Sonnega

Hey! A wise man once said "better late than never". Going to give this a try asap. Hope you're having a nice day.

Zipper


More Creators