Cactus is being completely rewritten for Linux (and FreeBSD*) in Zig/DVUI and Windows support will be completely dropped.

fearedbliss

Administrator
Staff member
Joined
Dec 19, 2021
Messages
1,186
Points
83
(This post has been cross posted to the Zig community)

Hello all,

I hope everyone is doing well and are safe. I've been working on Cactus (and previously Bliss Version Switcher) for a very long time, specifically 13 years to be exact. All of these versions have been designed for Windows as the primarily platform. However, over the past decade, Microsoft and Windows have become unbearable, so much so that I literally disconnected my Windows gaming computer from the internet, switched to only playing Offline, Single Player, DRM free games, and stopped streaming (occasionally) given that my Windows gaming machine is completely offline. I even got my own gaming VM with GPU passthrough working through FreeBSD's Bhyve hypervisor! At the time, many years ago I also stated that Cactus will never support Windows 11, and Windows 7/10 are the only supported platforms. I even experimented with going backwards and implementing Windows XP support. Through the previous explorations, I was able to very easily get Diablo II (Vanilla) to work easily on Linux and FreeBSD through Wine and Wine Mono. This allows Cactus to run essentially perfectly on these UNIX platforms. However, the path forward is ultimately to get off Windows completely. Given my strong position against Windows 11, and considering Windows a dead platform (for myself), after many years of thinking about it, I've decided to completely rewrite Cactus from the ground up for Linux (and hopefully one day it will come over to FreeBSD as well). I've been working on the full rewrite for a few weeks now in Zig (0.16.0 currently) and I'm using DVUI for the UI layer. Things are working beautifully. I can already create and execute multiple versions of Diablo II fully isolated from each other and all of that good stuff. Cactus is fully integrating with Wine to achieve this. However there is still a lot of work to do. There are MANY benefits for moving over to Linux, but on Cactus side, we are no longer using .NET/C#/WPF therefore what you are seeing here is optimized native code, not managed code that runs through the .NET runtime. All memory allocations internally are explicitly managed and intentional with no memory leaks, guaranted by Zig's memory leak allocator checks.

In addition, since Wine prefixes are considered fully isolated environments, with their own separate registries, this allows us to run multiple versions of Diablo II in parallel with no conflicts! This is a brand new Cactus feature enabled by Wine's architecture. I'm extremely excited about this and can't wait to get this out there eventually. For everyone who is on Windows, you can continue to use Cactus 4.0.X series which will be placed in maintenance mode and archived. However, the main Cactus repository, all documentation, and files, will be switched to Linux only instructions. So you should start backing up your Cactus files now. As mentioned before, Cactus 5.0.0 will be Linux only. It's time for us Diablo II players to be free from Microsoft/Windows BS once and for all. No more spying, no more force telemetry, no more forced updates, no more forced AI integration into your OS, no more ads. This is also running in Wayland using Wine's Native Wayland Driver. However, you can easily disable Wayland and use the X11 driver with a simple checkbox. So I believe X11 should be already perfectly supported.

With that said, it also means that I can ocassionally start streaming my Diablo II sessions again since I will have internet on Linux. I also have a bunch of new features that I want to implement once the MVP is released, including but limited to easily importing and exporting Platforms. This should allow people to easily make a platform, and have Cactus automatically tar.xz it or something, share the archive, and have someone easily import it back into their system. Also, given the clean separation between the Zig Backend, and the Zig DVUI frontend, it means that I should relatively easily be able to implement a CLI mode for people that don't need a UI. This may be the easiest way to bring FreeBSD support since the blocker for FreeBSD isn't Wine or Diablo II (those already work), it's DVUI and its C dependencies. I will explore these things post MVP. The code is not out yet but it will be open sourced under a permissive license as all of my usual projects once ready. The Zig re-write is fully handcoded with no AI vibe coding allowed (or even agentic engineering). Of course we can't escape AI in this world at this point since it is useful for various ancillary things, so if I do need to use AI as a search engine, or for other tasks, then I will do so.

I wanted to let everyone know now since I can't hold it in anymore and I'm excited lol. Stay safe in the world of Sanctuary folks,

Jonathan

Lastly, in the below screenshot we can see multiple Diablo II versions running in parallel through Wine 11.0 in Fedora Linux 44 (Workstation/GNOME 50.2/x86_64) running Cactus built with Zig/DVUI. Currently on Linux Kernel 7.0.11.

Screenshot From 2026-06-18 12-19-13.png
 
Last edited:
Bravo @fearedbliss! This has to be a ton of work so RESPECT. And I concur regarding Windows being dead. For me I haven't truly enjoyed it since 7, that was peak UI for me. But yeah nowadays it feels like every step Microsoft takes is anti-privacy and anti-freedom, and we're all pretty much over it. You have great timing too, seeing as recently I've been gathering parts for a new build that should be my main system for the next 7+ years. My goal is to complete it on or around Black Friday 2026. Given current hardware prices I am being super choosy and patient while I look for deals, and I am aiming to use Linux Mint (the Ubuntu LTS variant) as my default OS indefinitely. I've experimented in the past with about a dozen different distros, and Mint for me is just the simplest to use with very accessible support for when I'm lost or have questions. Anyways I'm thinking that should work quite harmoniously with your new and improved Cactus (which for me is an essential app :D)! Thanks for all the hard work bro. :)
 
Much appreciated @Manny. Mint is the one I also recommend to all beginners or people that just want a nice, easy, experience that's similar to Windows. I've also tested a bunch of stuff in the past on Mint and I know Wine and Diablo II work there beautifully. So Cactus should work there as well. I'll also make sure to test on Mint once I'm ready to launch and do testing on a few Linux distros. The goal is to make Cactus generic to the underlying UNIX system. As long as it's Linux (or FreeBSD), and have some predictable stuff, it should just work.
 
Back
Top