Steam-in-a-bottle works for a lot of Mac ESO players, but I wanted the standalone ZeniMax / Bethesda.net launcher — no Steam layer, no extra library.
Here is a CrossTie that installs and runs that path on CrossOver 26.x.
Download: eso_standalone.tie
ESO Standalone Code
Show CrossTie XML
<?xml version="1.0" encoding="UTF-8"?>
<c4p>
<applications>
<app appid="com.example.eso.standalone">
<cxversion product="cxoffice">26.0</cxversion>
<name>The Elder Scrolls Online (Standalone)</name>
<appprofile>
<description><p>The standalone (non-Steam) client for The Elder Scrolls Online, installed via the ZeniMax Online / Bethesda.net launcher. The launcher downloads and patches the game itself; this recipe just gets the launcher installed and working.</p></description>
<comment>20260820 - Rebuilt as a valid c4p CrossTie for CrossOver 26.x. Based on the shipped
com.codeweavers.c4.11974 profile (cxversion 16.0, win7_64) but retargeted at win10_64 and with the
Microsoft Edge WebView2 runtime added, which the current launcher UI requires.
20260820 - Do NOT add a Visual C++ 2015/2022 predependency (com.codeweavers.c4.14327). The ESO
installer's prereq step logs "checkVCRedistVersion: installed: [14.42.34433.0] required:
[14.38.33135.0] result: [false]" and then skips DOWNLOADING vc_redist.2022.x64.exe - but its
installVCRedist workflow task still tries to execute that file unconditionally. The result is
"Platform_ExecuteNormal failed to execute (...vc_redist.2022.x64.exe) [LE: 2]",
Installer_Error_VCRedist, and a full rollback. Letting the installer supply its own VC++ runtime
is what makes the install succeed. DirectX is bundled in the installer, so c4.14037 stays out
too.
20260822 - On macOS, postdependency com.codeweavers.c4.21821 (Enable MSync) and a Mac-only
installprofile set Steam-matching tuning vars (WINEMSYNC via MSync dep, D3DM_ENABLE_METALFX=0,
DXMT_ENABLE_NVEXT=0). Bottle Graphics must stay Auto (never bottle-wide DXMT—breaks Bethesda
launcher WebView2). Daily play uses ESO (skip launcher) with per-shortcut env
CX_GRAPHICS_BACKEND=dxmt in cxmenu.conf after game install; launcher shortcuts stay on
Bethesda.net_Launcher.exe for patches only.</comment>
<category>Games/Online Games</category>
<flag>application</flag>
<bottletemplate>win10_64</bottletemplate>
<installedfileglob>c:\Program Files (x86)\Zenimax Online\Launcher\Bethesda.net_Launcher.exe</installedfileglob>
<downloadurl>http://elderscrolls-a.akamaihd.net/products/BNA_Launcher/Install_ESO.exe</downloadurl>
<downloadpageurl>https://www.elderscrollsonline.com/en-us/download</downloadpageurl>
<downloadglob>Install_ESO.exe</downloadglob>
</appprofile>
<installprofile>
<installnotes><p>This installs the ESO launcher only (about 200 MB). The launcher must then be run once to download the game itself, which is roughly 110 GB - make sure the bottle's disk has room.</p>
<p>Install into a NEW bottle. If the bottle already has the Visual C++ 2015-2022 runtime, the ESO installer skips downloading its own copy but still tries to run it, and the install rolls back.</p>
<p>On macOS (CrossOver 25+), after install set bottle <b>Graphics: Auto</b> and <b>MSync: ON</b> (never bottle-wide DXMT—the Bethesda launcher times out on WebView2).</p>
<p><b>Play The Elder Scrolls Online</b> — run the Bethesda launcher to download patches and update the client.</p>
<p><b>ESO (skip launcher)</b> — use for normal play with DXMT. After the game is installed, edit <code>cxmenu.conf</code> so the skip-launcher entry is <code>Type = raw</code> with:<br/>
<code>env CX_GRAPHICS_BACKEND=dxmt "${CX_ROOT}/bin/wine" --bottle "${CX_BOTTLE}" --check --wait-children --workdir "C:\Program Files (x86)\Zenimax Online\The Elder Scrolls Online\game\client" "C:\Program Files (x86)\Zenimax Online\The Elder Scrolls Online\game\client\eso64.exe"</code><br/>
Then run <code>cxmenu --bottle "Elder Scrolls Online (Standalone)" --install</code>. Reinstalling this tie into an existing bottle does not replace <code>cxmenu.conf</code>—re-apply the menu block from these notes.</p>
<p>If you share <code>live</code> with a Steam bottle, both installs can use the same <code>UserSettings.txt</code> once graphics backends match.</p></installnotes>
<predependency>com.codeweavers.c4.6959</predependency>
<predependency>com.codeweavers.c4.7994</predependency>
<predependency>com.codeweavers.c4.19373</predependency>
<postdependency>com.codeweavers.c4.21821</postdependency>
<installerglob>Install_ESO.exe</installerglob>
<localinstallerglob>Install_ESO.exe</localinstallerglob>
<installerenvironment>
<name>WINE_WAIT_CHILD_PIPE_IGNORE</name>
<value>Bethesda.net_Launcher.exe</value>
</installerenvironment>
<lnkfile>
<shortcut>%StartMenu%\%Programs%\ESO (skip launcher)</shortcut>
<target>c:\Program Files (x86)\Zenimax Online\The Elder Scrolls Online\game\client\eso64.exe</target>
<workdir>c:\Program Files (x86)\Zenimax Online\The Elder Scrolls Online\game\client</workdir>
</lnkfile>
</installprofile>
<installprofile>
<useif>
<equal name="platform">Mac</equal>
</useif>
<comment>Apple Silicon / macOS: match tuned Steam bottle env (D3DM_ENABLE_METALFX=0, DXMT_ENABLE_NVEXT=0). Set bottle Graphics: Auto after install; DXMT only via ESO (skip launcher) raw cxmenu wrapper (env CX_GRAPHICS_BACKEND=dxmt). Never set CX_GRAPHICS_BACKEND in cxbottle.conf.</comment>
<preinstallenvironment>
<name>D3DM_ENABLE_METALFX</name>
<value>0</value>
</preinstallenvironment>
<preinstallenvironment>
<name>DXMT_ENABLE_NVEXT</name>
<value>0</value>
</preinstallenvironment>
<preinstallenvironment>
<name>WINEMSYNC</name>
<value>1</value>
</preinstallenvironment>
</installprofile>
</app>
</applications>
</c4p>
What it does
- Targets a Windows 10 64-bit bottle (
win10_64), not the old win7 profile. - Pulls the official standalone installer (
Install_ESO.exe) from ZeniMax’s CDN. - Installs the launcher only (~200 MB). You still need to run Bethesda.net once so it can download the game (~110 GB) into the bottle.
- Ships useful shortcuts, including one that launches
eso64.exeand skips the launcher after the game is present. - Pre-deps include runtimes the launcher UI needs today — notably Microsoft Edge WebView2 (the current UI depends on it).
- On macOS, installs MSync as a post-dependency and sets Steam-matching tuning env vars (
D3DM_ENABLE_METALFX=0,DXMT_ENABLE_NVEXT=0,WINEMSYNC=1).
The VC++ trap (why most recipes fail)
Do not pre-install Visual C++ 2015/2022 into the bottle before the ESO installer runs.
If that runtime is already present, the installer logs something like: required VC++ is “not installed” relative to its check, skips downloading vc_redist.2022.x64.exe, then still tries to execute that missing file. You get Platform_ExecuteNormal / Installer_Error_VCRedist and a full rollback.
Letting the ESO installer supply its own VC++ redistributable is what makes standalone install succeed. Same idea for DirectX — leave CrossOver’s bundled DirectX recipe out and let the installer bring what it needs.
Use a new bottle. A bottle that already has VC++ 2015–2022 is a good way to reproduce the rollback.
After install
Set bottle Graphics: Auto and MSync: ON. Do not enable bottle-wide DXMT — the Bethesda launcher times out on WebView2 when you do.
Use Play The Elder Scrolls Online (Bethesda.net launcher) for patches and client updates. For daily play, use ESO (skip launcher) with DXMT via a per-shortcut cxmenu.conf raw entry:
env CX_GRAPHICS_BACKEND=dxmt "${CX_ROOT}/bin/wine" --bottle "${CX_BOTTLE}" --check --wait-children --workdir "C:\Program Files (x86)\Zenimax Online\The Elder Scrolls Online\game\client" "C:\Program Files (x86)\Zenimax Online\The Elder Scrolls Online\game\client\eso64.exe"
Then run cxmenu --bottle "Elder Scrolls Online (Standalone)" --install. Reinstalling the tie into an existing bottle does not replace cxmenu.conf — re-apply the menu block from the tie notes.
If you share live with a Steam bottle, both installs can use the same UserSettings.txt once graphics backends match.
Prefer in-game Full Screen (windowed) over exclusive fullscreen if the cursor or focus feels wrong — a common CrossOver/ESO quirk.
How to use the file
- Install CrossOver 26.x on macOS.
- Open / import eso_standalone.tie (Install Software → use local CrossTie, or drag the file in — depending on your CrossOver UI).
- Let it create a new win10_64 bottle and install the launcher.
- Run the Bethesda.net launcher once; wait out the game download.
- Confirm bottle Graphics: Auto and MSync: ON, then configure the ESO (skip launcher) shortcut in
cxmenu.conffor DXMT play (see above).
This is for the standalone client only — not the Steam build. If you already live in Steam-under-CrossOver, you do not need this recipe.
eso crossover macos gaming