Example program for "seamless applications" video

Hey @Wendell,

Saw your latest Code 43 is no more video and you noted a method to do seamless use of a single Windows program a la Parallels or VMware Workstation.

The people that will find this the most useful are Speedrunners. They exclusively use a program called “LiveSplit” built in .NET with many DLL based plugins. Their attempt to go multiplatform is a webapp called LiveSplit One, but that’s nowhere near ready with the rich integration that the OG LiveSplit does. (Standalone only really works if you package it as a Electron app, but no one is taking the effort to port as much stuff from OG to webapp and no one has made a pre-made Electron app, it’s only provided as “build it yourself”)

If you can demonstrate this “seamless” method working without the actual VMware and using LiveSplit, so many people would jump on this opportunity meaning they can easily join races from the app itself without spinning up Wine, a full GPU Passthrough VM, or etc. The issue with Wine are the plugin DLLs used for auto-splitting. They simply don’t work. To be fair, virtualizing it into a seamless application still means it can’t use memory watching to do auto-splitting, (but some splitters use DirectX capture APIs rather than memory watching) but at least it’s a lot more seamless than using Wine where you have to deal with stubbing of Windows components to a greater degree. (And DirectX capture APIs are super flaky on Wine)

So my request is one of the first example applications for the seamless applications demonstration video be LiveSplit. LiveSplit is the number one reason people privacy conscious and still want to speedrun still use a GPU Passthrough VM for LiveSplit, but if it can be turned into a seamless application, most people doing manual splits would find it a LOT less hard to switch to Linux for LiveSplit with the same performance as it running on Windows.

Oh. I just saw how it’s done…

Okay, Looking Glass or your DP repeater is actually better in this regard for low latency capture of a speedrun timer.

Or, only count seconds and not fractions of a second. This would work for if you need to use Livesplit with lower accuracy.