Skip to content

Commit c9b088a

Browse files
committed
fix(apps,config,prefix): configure EA and its bg services + create/export DXVK
install: - EA Desktop: post-install regedit /s creates HKLM\SOFTWARE\Electronic Arts\ EA Desktop install key (EADesktop.exe checks this; absent = bootstrapper mode) - Epic/EA services: Start=0x3 (DEMAND_START, was 0x4=DISABLED); FailureActions = 16 zero-bytes = no restart on failure (was looping on failure) - regedit /s is truly silent (no window); was using reg.exe add which shows window prefix/config: - DXVK_CONFIG_FILE exported globally; dxvk.conf created in init() — upstream DXVK has no enableOpenVR option; OpenVR warnings are benign
1 parent 7887101 commit c9b088a

3 files changed

Lines changed: 46 additions & 0 deletions

File tree

lib/apps.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,40 @@ install_app() {
114114
# verify the real executable exists before claiming success.
115115
if find_app_exe "$app_key" >/dev/null 2>&1; then
116116
print_success "$APP_NAME installed successfully"
117+
# Use regedit /s (truly silent, no window) to disable background services that
118+
# restart-loop under Wine when they can't initialize OpenVR or missing dependencies.
119+
local _svc_reg="$WINEPREFIX/pfx/drive_c/windows/temp/disable-bg-svc.reg"
120+
case "$app_key" in
121+
epic-games)
122+
# DEMAND_START (3): launcher can start the service; FailureActions=0 prevents restart loops.
123+
printf 'Windows Registry Editor Version 5.00\n\n'\
124+
'[HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\EpicGamesUpdater]\n'\
125+
'"Start"=dword:00000003\n'\
126+
'"FailureActions"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n' \
127+
> "$_svc_reg"
128+
"$PROTON_DIR/proton" run regedit /s \
129+
"C:\\windows\\temp\\disable-bg-svc.reg" >/dev/null 2>&1 || true
130+
;;
131+
ea-desktop)
132+
# DEMAND_START + no restart; also create install registry key that EADesktop.exe
133+
# checks on startup — if absent it falls back to bootstrapper/repair mode.
134+
local _ea_ver
135+
_ea_ver=$(basename "${installer_path:-}" | grep -oP '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1)
136+
_ea_ver="${_ea_ver:-13.759.0.0}"
137+
printf 'Windows Registry Editor Version 5.00\n\n'\
138+
'[HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\EABackgroundService]\n'\
139+
'"Start"=dword:00000003\n'\
140+
'"FailureActions"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00\n\n'\
141+
'[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Desktop]\n'\
142+
'"InstallDir"="C:\\\\Program Files\\\\Electronic Arts\\\\EA Desktop\\\\EA Desktop\\\\"\n'\
143+
'"Version"="'"$_ea_ver"'"\n\n'\
144+
'[HKEY_LOCAL_MACHINE\\SOFTWARE\\Electronic Arts\\EA Desktop\\Install]\n'\
145+
'"InstallDir"="C:\\\\Program Files\\\\Electronic Arts\\\\EA Desktop\\\\EA Desktop\\\\"\n' \
146+
> "$_svc_reg"
147+
"$PROTON_DIR/proton" run regedit /s \
148+
"C:\\windows\\temp\\disable-bg-svc.reg" >/dev/null 2>&1 || true
149+
;;
150+
esac
117151
create_shortcut "$app_key" && print_success "Desktop shortcut created" || true
118152
return 0
119153
else

lib/config.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ BIN_DIR="${WINE_DIR}/bin"
1212
APPS_DIR="${WINE_GAMING_APPS_DIR:-${HOME}/.local/share/applications}"
1313

1414
export WINEPREFIX WINEARCH=win64
15+
# DXVK reads this to disable OpenVR/OpenXR init on non-VR setups
16+
DXVK_CONFIG_FILE="$WINE_DIR/dxvk.conf"
17+
export DXVK_CONFIG_FILE
1518

1619
# Ensure necessary directories exist
1720
mkdir -p "$WINE_DIR" "$BACKUP_DIR" "$CACHE_DIR" "$BIN_DIR" "$APPS_DIR" 2>/dev/null || true

lib/prefix.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,15 @@ init() {
190190

191191
_install_winetricks_verbs
192192

193+
# Create DXVK config once; upstream DXVK has no OpenVR option — warnings are benign.
194+
if [ ! -f "$WINE_DIR/dxvk.conf" ]; then
195+
cat > "$WINE_DIR/dxvk.conf" << 'EOF'
196+
# wine-gaming DXVK configuration
197+
# See https://github.com/doitsujin/dxvk/blob/master/dxvk.conf for all options.
198+
# OpenVR/OpenXR warnings are informational only; DXVK has no config option to suppress them.
199+
EOF
200+
fi
201+
193202
print_success "Wine prefix initialised"
194203

195204
# Auto-install the wig wrapper and aliases so wine-gaming commands work globally.

0 commit comments

Comments
 (0)