From 3d50e6b1ae8e4d4c699bd0f8045f86ac3f7ae3a9 Mon Sep 17 00:00:00 2001
From: The412Banner <205237651+The412Banner@users.noreply.github.com>
Date: Sat, 10 Oct 2026 00:24:14 -0400
Subject: [PATCH] Windows components: hide Vulkan RT and the IE8 update; honest
captions for the waiting section (#502)
* Windows components: hide Vulkan RT, whose loader every Proton here ships
vulkan-1.dll is in lib/wine/x86_64-windows and i386-windows of Proton Experimental (ARM64),
GE-Proton and proton-cachyos alike, so the catalog's VulkanRT entry would only shadow it. It
joins the list the page leaves out.
* Windows components: the waiting section says what is really missing (a recording), not 'coming next'
* Windows components: leave out the IE8 security update, which patches a browser no prefix has
* Windows components: the waiting caption without an apostrophe the resource compiler rejects
---
.../com/droiddeck/launcher/session/WinComponents.kt | 11 +++++++----
app/src/main/res/values/strings.xml | 4 ++--
.../launcher/session/WinComponentsSupportTest.kt | 2 ++
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/com/droiddeck/launcher/session/WinComponents.kt b/app/src/main/java/com/droiddeck/launcher/session/WinComponents.kt
index cbe6b7b9c..a21de38a4 100644
--- a/app/src/main/java/com/droiddeck/launcher/session/WinComponents.kt
+++ b/app/src/main/java/com/droiddeck/launcher/session/WinComponents.kt
@@ -68,10 +68,10 @@ object WinComponents {
/**
* Catalog entries every Proton here already ships, which an install would only shadow: Wine
* Gecko and Mono, the Chinese/Japanese/Korean fonts (Malgun, MS Gothic, YaHei, SimSun are in
- * share/fonts of Proton Experimental, GE-Proton and proton-cachyos alike) and Wine's own
- * PowerShell wrapper.
+ * share/fonts of Proton Experimental, GE-Proton and proton-cachyos alike), Wine's own
+ * PowerShell wrapper and the Vulkan loader (vulkan-1.dll, 32- and 64-bit, in all three).
*/
- private val PROTON_PROVIDES = setOf("gecko", "mono", "cjkfonts", "powershell")
+ private val PROTON_PROVIDES = setOf("gecko", "mono", "cjkfonts", "powershell", "VulkanRT")
/** The keys the catalog nests under "environment" on a few .NET entries. */
private val NESTED_KEYS = setOf("url", "file_name", "file_checksum", "file_size")
@@ -118,7 +118,10 @@ object WinComponents {
(step.action == "install_msi" || listOf(step.str("file_name"), step.str("url").substringBefore('?'))
.any { it.endsWith(".msi", ignoreCase = true) || it.endsWith(".exe", ignoreCase = true) })
- private fun protonProvides(name: String): Boolean = name in PROTON_PROVIDES || name.startsWith("mono-")
+ /** Catalog entries nothing here can use: the IE8 security update patches a browser no prefix has. */
+ private val POINTLESS = setOf("ie8_kb2936068")
+
+ private fun protonProvides(name: String): Boolean = name in PROTON_PROVIDES || name in POINTLESS || name.startsWith("mono-")
fun hasSnapshot(c: Component): Boolean = c.snapshot.startsWith("https://github.com/") && c.snapshot.endsWith(".snapshot.json")
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1d81dbcc3..29f00e457 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -333,10 +333,10 @@
Installed for this game (%1$d)
All components (%1$d)
Need a Windows installer (%1$d)
- These are their own setup programs (codec packs, browsers, old runtimes) with no package inside to take apart. DroidDeck cannot run a Windows setup program yet; it is coming next.
+ These are their own setup programs with no package inside to take apart, and no recording of what they install yet. Most are old runtimes the Mono inside Proton already stands in for; recordings are added as they are made.
Show
Hide
- Runs its own setup program (coming)
+ Runs its own setup program (no recording yet)
Not supported here yet
Loading the components…
Could not install: %1$s
diff --git a/app/src/test/java/com/droiddeck/launcher/session/WinComponentsSupportTest.kt b/app/src/test/java/com/droiddeck/launcher/session/WinComponentsSupportTest.kt
index e64350cc3..945d7a40e 100644
--- a/app/src/test/java/com/droiddeck/launcher/session/WinComponentsSupportTest.kt
+++ b/app/src/test/java/com/droiddeck/launcher/session/WinComponentsSupportTest.kt
@@ -94,5 +94,7 @@ class WinComponentsSupportTest {
assertEquals(Support.UNSUPPORTED, support(component("mono-10.4.1", step("install_msi", "url" to "$base/mono.msi"))))
assertEquals(Support.UNSUPPORTED, support(component("cjkfonts", step("install_fonts", "url" to "temp/SourceHanSans.ttc"))))
assertEquals(Support.UNSUPPORTED, support(component("powershell", step("copy_file", "file_name" to "profile.ps1", "dest" to "win64"))))
+ assertEquals(Support.UNSUPPORTED, support(component("VulkanRT", step("install_exe", "url" to "$base/VulkanRT.exe"))))
+ assertEquals(Support.UNSUPPORTED, support(component("ie8_kb2936068", step("install_exe", "url" to "$base/ie8_kb2936068.exe"))))
}
}