====== Information ======
* World of Warcraft: Wrath of the Lich King ((https://web.archive.org/web/20200911184050/https://www.blizzard.com/en-us/games/wrath/))
* Patch 3.3.5a
* 2024/10/28: ''graphics=wayland'', ''renderer=vulkan'', ''d3d9'', DXVK 2.4.1, Wine Staging 9.15 (old WoW64), GNOME 47 (F41) Wayland, Intel UHD 630
* [[linux:notes:wine_wayland_vulkan_wow_335|Wine Wayland/Vulkan notes]]
===== Prerequisites =====
* [[linux;distros;fedora_workstation_gnome|Fedora Workstation]]
* [[linux;notes;wine|Wine]]
===== Notes =====
* :!: This is for private server use
* See [[servers;linux;games;trinitycore_3.3.5_localhost|TrinityCore 3.3.5 localhost]] to set-up a local server
====== Install ======
===== World of Warcraft =====
* [[https://wowdl.net/client/3.3.5a-win-us|World-of-Warcraft-3.3.5a.12340-enUS.zip]] ((2024/10/26: Link looks broken; TODO: Find alt source or re-mirror; md5 below is accurate to what was hosted))
mkdir -p ~/'.wine' && WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' WINEARCH='win32' winecfg /v 'winxp' && sync
md5sum ~/'Downloads/World-of-Warcraft-3.3.5a.12340-enUS.zip' | grep 'ab8284d28a063e8594d03636fbe28dc7' && unzip -qq -b -d ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files' ~/'Downloads/World-of-Warcraft-3.3.5a.12340-enUS.zip' && sync
====== Settings ======
===== In-game =====
* Windowed ''d3d9''
* First-time start to create ''Config.wtf'' and do in-game Settings ((also avoids first-time fullscreen cropped-window on Wayland))
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && WINEDEBUG='' MESA_SHADER_CACHE_DIR=~/'.wine/World of Warcraft 3.3.5' WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' -windowed -d3d9
===== Config.wtf =====
gnome-text-editor ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/WTF/Config.wtf'
nano ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/WTF/Config.wtf'
SET gxRefresh "73"
SET environmentDetail "2"
SET gxApi "d3d9"
SET textureCacheSize "64"
SET violenceLevel "5"
SET SmallCull "0"
SET spellEffectLevel "250"
SET basemip "0"
SET SkyCloudLOD "3"
SET componentCompress "0"
cvar_default x
===== realmlist.wtf =====
echo 'set realmlist 127.0.0.1' | tee ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Data/'*'/realmlist.wtf'
nano ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Data/'*'/realmlist.wtf'
===== Macros =====
==== Hide Time/Clock ====
* https://us.forums.blizzard.com/en/wow/t/hide-clock-on-df-minimap/1685525/2
* Hides the time on the minimap along with the hiding the time being shown on Calendar-button hover
* :!: Interface -> Display -> [x] Show Clock needs to be enabled in order for this macro to hide both it and the Calendar hover ((it doesn't run/hide the calendar hover otherwise))
/run TimeManagerClockButton:Hide() TimeManagerClockButton:HookScript("OnShow", function(self) self:Hide() end) GameTimeFrame:HookScript("OnEnter", function() GameTooltip:SetOwner(UIParent) end)
====== Desktop Launcher ======
===== 3.3.5 =====
* See [[servers:linux:games:trinitycore_3.3.5_localhost#scripts|localhost Server Scripts]]
mkdir -p ~/'.local/share/applications/wine/Programs/World of Warcraft' && nano ~/'.local/share/applications/wine/Programs/World of Warcraft/World of Warcraft 3.3.5.desktop' && update-desktop-database --quiet ~/'.local/share/applications'
[Desktop Entry]
Name=World of Warcraft 3.3.5
Categories=Game;
Exec='/bin/bash' -c "cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && MESA_SHADER_CACHE_DIR=~/'.wine/World of Warcraft 3.3.5' WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' -d3d9"
Type=Application
StartupNotify=true
StartupWMClass=wow.exe
Icon=WBE5_Wow.0
Actions=Kill;Server;Update;Saves;Notes;
[Desktop Action Kill]
Exec='/bin/bash' -c "WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wineserver --kill"
Name=Force-close WoW 3.3.5
[Desktop Action Server]
StartupNotify=false
Exec='/bin/bash' -c "~/'Projects/trinity-335/scripts/tc-335-server-start.sh'"
Name=Launch Local Server
[Desktop Action Update]
StartupNotify=false
Exec='/bin/bash' -c "ptyxis --standalone --title='WoW 3.3.5 localhost Server Updater — ' -- ~/'Projects/trinity-335/scripts/tc-335-server-update.sh'"
Name=Local Server Update
[Desktop Action Saves]
StartupNotify=false
Exec='/bin/bash' -c "ptyxis --standalone --title='WoW 3.3.5 localhost Save Back-up — ' -- ~/'Projects/trinity-335/scripts/tc-335-save-backup.sh'"
Name=Local Server Databases Back-up
[Desktop Action Notes]
StartupNotify=false
Exec=gio open 'https://wiki.realmofespionage.xyz/games;linux;wine;world_of_warcraft_3.3.5'
Name=Installation Notes
# End
==== Icon ====
****
mkdir -p ~/'.local/share/icons/hicolor/48x48/apps' && cd ~/'.local/share/icons/hicolor/48x48/apps' && wrestool --output='WBE5_Wow.0.png' --extract --name='101' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' && cd ~
====== Quick Commands ======
===== Winecfg =====
****
WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' winecfg
===== Winetricks =====
****
WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' winetricks
===== Registry Editor =====
****
WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' regedit
===== Kill =====
WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wineserver --kill
killall -9 'Wow.exe'
===== Full-Reset =====
****
rm -Rf ~/'.wine/World of Warcraft 3.3.5/mesa_shader_cache' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Cache' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Cameras' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Errors' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Logs' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Interface' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/WTF' && sync
===== Execute =====
==== Wrath of the Lich King ====
* ''d3d9''
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && WINEDEBUG='' MESA_SHADER_CACHE_DIR=~/'.wine/World of Warcraft 3.3.5' WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' -console -d3d9
=== Virtual Desktop ===
* 1280x720
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && MESA_SHADER_CACHE_DIR=~/'.wine/World of Warcraft 3.3.5' WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine explorer /desktop='3.3.5','1280x720' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' -console -d3d9
==== Specific Graphics APIs ====
=== D3D9 ===
* Default when no API is specified on command-line nor ''Config.wtf''
-d3d9
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && MESA_SHADER_CACHE_DIR=~/'.wine/World of Warcraft 3.3.5' WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' -console -d3d9
cat ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Logs/gx.log' | grep 'CGxDeviceD3d'
gio open ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Logs/gx.log'
=== D3D9Ex ===
* [[https://web.archive.org/web/20100212202408/http://forums.worldofwarcraft.com/thread.html?topicId=21723843232&sid=1|3.3.0 - d3d9ex mode, ATI, and 134 crashes]]
* :?: This may be more ideal for Vsync, certain compositors, G-SYNC/FreeSync, remote streaming, or ''gamescope''
* 2024/10/26: Had **very** minor lower VRAM and max FPS compared to ''d3d9'' on Intel UHD 630 without any obvious benefit
* :?: 2024/10/26: Odd performance issue with ''gxTextureCacheSize'' ([[https://github.com/doitsujin/dxvk/issues/4403|#4403]])
* 2024/10/28: With DXVK 2.4.1 ''DXVK_HUD=full'', ''d3d9ex'' seemingly doesn't increase mapped GPU memory from ''64'' to ''128'' like ''d3d9'' under load; unsure of effects
-d3d9ex
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && MESA_SHADER_CACHE_DIR=~/'.wine/World of Warcraft 3.3.5' WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' -console -d3d9ex
cat ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Logs/gx.log' | grep 'CGxDeviceD3d9Ex'
gio open ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Logs/gx.log'
=== OpenGL ===
* Disables the in-game Video -> ''Hardware Cursor'' option
* Limits ''Shadow Quality'' to blobs and no dynamic options
* 2024/10/29: Doesn't work with Wine ''graphics=wayland''
-opengl
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && MESA_SHADER_CACHE_DIR=~/'.wine/World of Warcraft 3.3.5' WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Wow.exe' -console -opengl
cat ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Logs/gx.log' | grep 'CGxDeviceOpenGl'
gio open ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Logs/gx.log'
===== File Manager =====
==== Root ====
****
gio open ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/'
==== Addons ====
****
gio open ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Interface/AddOns'
===== Copy Addons =====
****
cp -R ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/Interface/AddOns' ~/'Downloads'