diff --git a/app/src/main/assets/wincomponents/wincomponents.json b/app/src/main/assets/wincomponents/wincomponents.json index 4f75ed90b..b26767253 100644 --- a/app/src/main/assets/wincomponents/wincomponents.json +++ b/app/src/main/assets/wincomponents/wincomponents.json @@ -5,5 +5,6 @@ "directshow" : ["amstream", "qasf", "qcap", "qdvd", "qedit", "quartz"], "directplay" : ["dplaysvr.exe", "dplayx", "dpmodemx", "dpnet", "dpnhpast", "dpnhupnp", "dpnsvr.exe", "dpwsockx"], "xaudio" : ["x3daudio1_0", "x3daudio1_1", "x3daudio1_2", "x3daudio1_3", "x3daudio1_4", "x3daudio1_5", "x3daudio1_6", "x3daudio1_7", "xactengine2_0", "xactengine2_1", "xactengine2_2", "xactengine2_3", "xactengine2_4", "xactengine2_5", "xactengine2_6", "xactengine2_7", "xactengine2_8", "xactengine2_9", "xactengine2_10", "xactengine3_0", "xactengine3_1", "xactengine3_2", "xactengine3_3", "xactengine3_4", "xactengine3_5", "xactengine3_6", "xactengine3_7", "xapofx1_0", "xapofx1_1", "xapofx1_2", "xapofx1_3", "xapofx1_4", "xapofx1_5", "xaudio2_0", "xaudio2_1", "xaudio2_2", "xaudio2_3", "xaudio2_4", "xaudio2_5", "xaudio2_6", "xaudio2_7"], + "dinput8" : ["dinput8"], "vcrun2010" : ["msvcp100", "msvcr100", "vcomp100", "atl100"] } diff --git a/app/src/main/runtime/container/Container.java b/app/src/main/runtime/container/Container.java index 96e6812b1..1d410b6d3 100644 --- a/app/src/main/runtime/container/Container.java +++ b/app/src/main/runtime/container/Container.java @@ -31,8 +31,8 @@ public class Container { public static final String DEFAULT_GRAPHICSDRIVERCONFIG = "vulkanVersion=1.3" + ";version=" + ";blacklistedExtensions=" + ";maxDeviceMemory=0" + ";presentMode=mailbox" + ";syncFrame=0" + ";disablePresentWait=1" + ";resourceType=auto" + ";bcnEmulation=auto" + ";bcnEmulationType=compute" + ";bcnEmulationCache=0" + ";gpuName=Device"; public static final String DEFAULT_DDRAWRAPPER = "none"; - public static final String DEFAULT_WINCOMPONENTS = "direct3d=1,directsound=0,directmusic=0,directshow=0,directplay=0,xaudio=0,vcrun2010=1"; - public static final String FALLBACK_WINCOMPONENTS = "direct3d=1,directsound=1,directmusic=1,directshow=1,directplay=1,xaudio=1,vcrun2010=1"; + public static final String DEFAULT_WINCOMPONENTS = "direct3d=1,directsound=0,directmusic=0,directshow=0,directplay=0,xaudio=0,dinput8=1,vcrun2010=1"; + public static final String FALLBACK_WINCOMPONENTS = "direct3d=1,directsound=1,directmusic=1,directshow=1,directplay=1,xaudio=1,dinput8=1,vcrun2010=1"; public static final String DEFAULT_DRIVES = "D:" + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + "F:" + Environment.getExternalStorageDirectory().getAbsolutePath(); public static final byte STARTUP_SELECTION_NORMAL = 0; public static final byte STARTUP_SELECTION_ESSENTIAL = 1; diff --git a/app/src/main/runtime/container/WinComponentSetup.kt b/app/src/main/runtime/container/WinComponentSetup.kt index 2e0a1f551..8c811c7d0 100644 --- a/app/src/main/runtime/container/WinComponentSetup.kt +++ b/app/src/main/runtime/container/WinComponentSetup.kt @@ -37,13 +37,15 @@ object WinComponentSetup { val wincomponentsStr = FileUtils.readString(context, "wincomponents/wincomponents.json") val wincomponentsJson = JSONObject(wincomponentsStr ?: "{}") val dlls = ArrayList() - val oldWinComponentsIter = - KeyValueSet(previousWincomponents.ifEmpty { Container.FALLBACK_WINCOMPONENTS }).iterator() + val oldValues = HashMap() + for (old in KeyValueSet(previousWincomponents.ifEmpty { Container.FALLBACK_WINCOMPONENTS })) { + oldValues[old[0]] = old[1] + } for (wincomponent in KeyValueSet(wincomponents)) { val identifier = wincomponent[0] val useNative = wincomponent[1] == "1" - val oldValue = oldWinComponentsIter.next()[1] + val oldValue = oldValues[identifier] if (wincomponent[1] == oldValue && !firstTimeBoot) continue if (useNative) { diff --git a/app/src/main/runtime/wine/WineUtils.java b/app/src/main/runtime/wine/WineUtils.java index 820666707..b01e54312 100644 --- a/app/src/main/runtime/wine/WineUtils.java +++ b/app/src/main/runtime/wine/WineUtils.java @@ -672,7 +672,7 @@ public static void applySystemTweaks(Context context, WineInfo wineInfo) { "dxgi", "wined3d" }; - final String[] dinputLibs = {"dinput", "dinput8"}; + final String[] dinputLibs = {"dinput"}; final String dllOverridesKey = "Software\\Wine\\DllOverrides"; @@ -890,6 +890,8 @@ public static void overrideWinComponentDlls( String dlname = dlnames.getString(i); if (useNative) { registryEditor.setStringValue(dllOverridesKey, dlname, "native,builtin"); + } else if (identifier.equals("dinput8")) { + registryEditor.setStringValue(dllOverridesKey, dlname, "builtin"); } else registryEditor.removeValue(dllOverridesKey, dlname); } } catch (JSONException e) {