How to run Parsec without monitor? Here’s a virtual monitor solution for you (Indirect Display)
I have been gaming remotely for years. Though there are serval approaches for streaming from your computer, there’s no doubt that Parsec is the most outstanding one from my perspective. The NAT-traversal technology Parsec used is so advanced that it can be widely used in complex network environment. And the video encoding is very efficient too. Overall, considering the latency and the accessibility, Parsec is way better than RDP, Steam Remote Play, Moonlight, Dixper, etc.
However, most of those solutions — including Parsec — require a working monitor, no matter a real one, a fake one or a virtual one, as far as your operating system recognizes it. So now you have five choices:
- You can directly inject the EDID to Professional workstations GPUs via your GPU control panel
- You have HDMI Dummy Plug on amazons for only 7.5$
- Virtual Display from SplashTop and VNC, which I have never succeed.
- For Windows versions below 1607, you can force Windows to create a virtual monitor via Control Panel - Display - Screen Resolution - Multiple Displays - Try Connect anyway on: VGA
- Indirect Display Driver for Windows 10
You can choose any approach you like, but the most flexible way I think is the last one. So let’s check it out. (Maybe those procedures are a little too Geek for you, so you can just scroll down to the end and get the compiled driver and executable.)
Building the Driver
Assuming that you have the latest Visual Studio installed, if not, then it is recommended to scroll directly to the end.
First, check out the code from this repo. Since we just need the code in video/IndirectDisplay, I recommend using GitZip to download it.
Implements a sample IddCx 1.4 driver and a sample application that instantiates a software device using it. This is a…
Then, install WDK from https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk. Don’t forget the VSIX, which should be automatically installed after WDK finished.
Unarchive the zip file and open IddSampleDriver.sln with your Visual Studio. Check on the Solution Explorer, open Driver.h and Driver.cpp.
Navigate to Line 27 in Driver.cpp, change the monitor count to 1 (if you need more, modify as needed)
static constexpr DWORD IDD_SAMPLE_MONITOR_COUNT = 1;
Delete Line 58–75 (If you need more displays, keep it)
Add the modes you need after Line 54. Now the code should look like this:
Navigate to Line 755, if the mode you add above not listed here, then add it.
Finally, navigate to Line 42 in Driver.h, change the mode count.
static constexpr size_t szModeList = 4;
Save all the file, and build solution (Ctrl+Shift+B or via toolbar).
Don’t forget to change the platform to Release@x64(or x86 depending on your OS architecture)
You may receive an error coded MSB8040, you can just disable the check(Right-click IddSampleDriver in solution explorer - Properties), or install the patch.
After compilation, the driver should be situated in x64\Release.
Installing the Driver
First, install IddSampleDriver.cer to Trusted Root Certification Authorities stor in your Local Machine. You can refer to Microsoft’s Official document.
Then use device manager to install the inf. You may refer to https://www.howto-connect.com/how-to-add-a-legacy-hardware-on-windows-10/.
Notice: the inf in x64\Release\IddSampleDriver is the signed driver we need, the one in the upper directory is not signed so you can’t install it.
After installation, you can see a new display connected to “IddSampleDriver Device” in the control panel. Look at so many resolutions options!
If you don’t need it any longer, just uninstall it from device manager.
It works pretty well for my Parsec; Of course you can use Dixper or any other streaming software.
Download Precompiled Driver
If you have any doubts about the security of executable files and drivers, I recommend compiling by yourself according to the method above.