Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CrossOver Steam VC++ Runtime Fix

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.

What it does

  • Finds CrossOver and CrossOver Preview bottles automatically
  • Reads Steam appmanifest_*.acf files to list installed games
  • Supports the default Steam library and additional libraries from libraryfolders.vdf
  • Looks for existing VC_redist.x64.exe installers in:
    • the tool's resources/ folder
    • your Downloads folder
    • the selected game's files
    • Steam's shared redistributables
    • the bottle's Package Cache
  • 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,builtin DLL overrides only for executables found in the selected game
  • Includes --list and --dry-run modes for checking the setup safely

Getting started

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.command

Run it from Terminal:

./bin/crossover-steam-vc-fix.command

You 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 --list

To go through the full selection process without closing programs or modifying the bottle:

./bin/crossover-steam-vc-fix.command --dry-run

You 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"

VC++ downloads

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:

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.

Before you use it

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.

Development

Run the syntax check and fixture tests with:

bash -n bin/crossover-steam-vc-fix.command
./tests/test.sh

The tests build a temporary fake bottle and never touch your CrossOver data.

License

MIT

About

Scan CrossOver Steam games and safely switch Microsoft VC++ x64 runtime versions on macOS

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages