Some Windows games refuse to start in CrossOver because they expect a specific
Microsoft Visual C++ runtime. Installing an older runtime usually fails when a
newer one is already present, often with error 0x80070666.
This tool handles that process for you. It scans your CrossOver bottles, finds the Steam games installed in each one, and lets you choose both the game and the VC++ x64 version to use. Before changing anything, it backs up the bottle and shows exactly what it plans to do.
- Finds CrossOver and CrossOver Preview bottles automatically
- Reads Steam
appmanifest_*.acffiles to list installed games - Supports the default Steam library and additional libraries from
libraryfolders.vdf - Looks for existing
VC_redist.x64.exeinstallers in:- the tool's
resources/folder - your Downloads folder
- the selected game's files
- Steam's shared redistributables
- the bottle's Package Cache
- the tool's
- Lets you download the latest Microsoft release or a fixed version from 14.30 through 14.44
- Checks both the file version and SHA-256 hash for fixed-version downloads
- Backs up the registry, VC++ DLLs, and installer cache before making changes
- Removes the current x64 runtime when necessary, then installs the version you selected
- Adds
native,builtinDLL overrides only for executables found in the selected game - Includes
--listand--dry-runmodes for checking the setup safely
CrossOver must already be installed, and the game must be installed through Steam inside a CrossOver bottle.
Clone or download this repository, then make the script executable:
chmod +x bin/crossover-steam-vc-fix.commandRun it from Terminal:
./bin/crossover-steam-vc-fix.commandYou can also double-click the .command file in Finder. Follow the prompts to
choose a bottle, a Steam game, and a VC++ x64 version. The script prints a final
summary and waits for you to type YES before it closes any programs or changes
the bottle.
To scan without making changes:
./bin/crossover-steam-vc-fix.command --listTo go through the full selection process without closing programs or modifying the bottle:
./bin/crossover-steam-vc-fix.command --dry-runYou can also provide everything on the command line:
./bin/crossover-steam-vc-fix.command \
--bottle Steam \
--game 123456 \
--installer "/path/to/VC_redist.x64.exe"Microsoft owns and licenses the Visual C++ Redistributable installers, so this repository does not include them.
The script can use an installer you place in resources/, reuse one already on
your Mac, or download one directly from Microsoft. Its built-in catalog includes
the latest v14 x64 release and these fixed Visual Studio 2022 versions:
14.30, 14.32, 14.34, 14.36, 14.38, 14.40, 14.42, and 14.44.
Fixed downloads use Microsoft's versioned URL format and are checked against their expected file version and SHA-256 hash. The "latest" URL changes whenever Microsoft publishes an update, so the script reads and reports that version after downloading it.
Microsoft references:
- Latest supported Visual C++ Redistributable downloads
- Official URL format for older VC++ Redistributable installers
If your game needs a version that is not in the catalog, obtain the x64
installer from a trusted source and place it in resources/, or choose it
manually when prompted.
The VC++ runtime belongs to the entire bottle, not to one game. Switching versions may affect other programs in the same bottle. Game selection only limits which executable names receive DLL overrides.
The tool changes the x64 runtime only. It does not touch the x86 runtime, game files, save data, or any CrossOver licensing or trial settings. Backups are stored in:
~/Documents/CrossOver-VC-Backups/
The scanner cannot determine the exact minimum VC++ build required by every game. Choosing the correct version is still up to you.
Run the syntax check and fixture tests with:
bash -n bin/crossover-steam-vc-fix.command
./tests/test.shThe tests build a temporary fake bottle and never touch your CrossOver data.