A patcher to upgrade CrossOver dependencies and improve compatibility
This is an unofficial patcher for CrossOver and CodeWeavers is not - by any means - involved in this or has anything to do with this app, and although has been tested, this software may render the app unusable or unstable, USE AT YOUR OWN RISK, this also will void any official support from CodeWeavers, If you still need support from CodeWeavers, download the original unmodified app and please don't report problems to them after your app is patched.
If you have any issues after your app has been patched you can download a new copy of CrossOver.
For more info: https://www.codeweavers.com/support/forums/general/?t=27;msg=257865
CXPatcher up to 0.3 will support only 22.x.x CXPatcher from 0.4 on will support 23.x.x but keep an eye on the specific verson
Ventura (13) or newer Currently GPTK requires MacOS Sonoma
This patcher will upgrade your CrossOver app with the latest DXVK and MoltenVK patched for improved compatibility, and dramatically extends compatibility with Unreal engine 4 games.
-
Games with anti-cheat or anti-tamper will not work
-
DX12 games will not work unless playable via the popular -dx11 optionDX12 games will now work via GPTK
You need to have an unmodified version of CrossOver, you can download it at: https://www.codeweavers.com/account/downloads. Please make sure the app has been registered or ran at least once, to make sure the latest DXVK is activated properly. You may need to switch off DXVK and on again, if you don't you will need to re-download it. If the patcher renders the app unusable you can either use the restore function (see instructions below) or download it again from the website, it doesn't do any permanent modifications to your 'bottles'.
You can download the latest version directly from the Release Page.
Alternatively, you may use Homebrew. See the homebrew-CXPatcher repo for detailed instructions.
CXPatcher will override the default bottle path to have its own folder prefixed with 'CXP' in the same one that contains the 'Bottles' folder. That's because lots of users keep having trouble when using old bottles created with the original Crossover. This way you'll be forced to create a new bottle just for the Patched Crossover so that you'll no longer have this kind of issue.
If you don't like that you can disable it, it's enabled by default as you can see in the picture below:
![Screenshot 2023-09-24 at 18 09 09](https://private-user-images.githubusercontent.com/12135454/270181453-b421b96e-5951-48e9-a333-42977021ca54.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU2MDI1NDEsIm5iZiI6MTcyNTYwMjI0MSwicGF0aCI6Ii8xMjEzNTQ1NC8yNzAxODE0NTMtYjQyMWI5NmUtNTk1MS00OGU5LWEzMzMtNDI5NzcwMjFjYTU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA2VDA1NTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThjNTFlODBmMWIxMTY3ZjdlMzIzMTA4NDljMDI3NTk4NmJjOTA3YWJiNjU3M2JiOTBhZWM3NzRlODAyODk1OTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.tM7TxKIiXHwURTW9N4cTBceivtMgEi2CSPGW9SrX-1w)
There are new upcoming technologies developed this year that are capable of running DirectX 12 games and now you can have those embedded in CrossOver! In order to integrate that in CrossOver you just need switch on "Integrate D3DMetal (GPTK)"
![integrate external resources](https://private-user-images.githubusercontent.com/12135454/257078167-0da08a95-5003-46c1-985c-80f2ff6dd256.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU2MDI1NDEsIm5iZiI6MTcyNTYwMjI0MSwicGF0aCI6Ii8xMjEzNTQ1NC8yNTcwNzgxNjctMGRhMDhhOTUtNTAwMy00NmMxLTk4NWMtODBmMmZmNmRkMjU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA2VDA1NTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFjNTZmYWM4OTVmMGZhZjQ2NDI3Mzc2NzM0NTZhMWU2NmE1ODRlMGM5YWNmMWJjZDBiMWYyNDZlMGYxZjFlNmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.goimlxW79v3eZ4uvGMmYQrvTPTFu4gApxUa0J6VFtck)
![integrate external resources](https://private-user-images.githubusercontent.com/12135454/257078273-9f709365-cd25-4d34-a737-6f68ff2bb491.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU2MDI1NDEsIm5iZiI6MTcyNTYwMjI0MSwicGF0aCI6Ii8xMjEzNTQ1NC8yNTcwNzgyNzMtOWY3MDkzNjUtY2QyNS00ZDM0LWE3MzctNmY2OGZmMmJiNDkxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA2VDA1NTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBmY2M1MzA3ZGZhNDI3YzFmNDYwYzk2NmVlN2UzNWRmZTBiMmM5ODNhMDM2MTk0Y2MyMjE2NDMwM2E4ZDBjNmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.riqcwFCwvO8u88hDvDSQUv3ut5z3cuE_JbqSaw11SYU)
- now you can patch CrossOver as usual via either drag'n'drop or file selector (click in the drop area)
- enjoy your DX12 games!
Maybe you changed your mind and prefer to use your original CrossOver app.
You can restore by going to the file -> restore menu
![restore](https://private-user-images.githubusercontent.com/12135454/257078200-81a09c09-4209-4af1-911b-461efcaf2421.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU2MDI1NDEsIm5iZiI6MTcyNTYwMjI0MSwicGF0aCI6Ii8xMjEzNTQ1NC8yNTcwNzgyMDAtODFhMDljMDktNDIwOS00YWYxLTkxMWItNDYxZWZjYWYyNDIxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA2VDA1NTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk4ZDk1NTI4ODA1Y2Q5NjBhZmFlYTAwMDA5ZmEzNjMxOGVlYTlmYjNhZjAyMWIwMjYxMTUxM2RkNTI2NDU2Y2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.nA11kXWTPzDc1q2Oo2EqBACza7sDtFL7H2hkASwlQts)
If you patched from an old version and you just want to update the patched CrossOver app just turn on the option and drag 'n drop
![repatch](https://private-user-images.githubusercontent.com/12135454/257078202-8f8295ed-5da3-4a5f-93c0-4daa4851b0ec.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU2MDI1NDEsIm5iZiI6MTcyNTYwMjI0MSwicGF0aCI6Ii8xMjEzNTQ1NC8yNTcwNzgyMDItOGY4Mjk1ZWQtNWRhMy00YTVmLTkzYzAtNGRhYTQ4NTFiMGVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA2VDA1NTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk2MmVkYmE5ZWY4ZWRjNjQ3Y2RiY2E3NTg5YWE0MzM3MDZmMGNmMDA1MTVmNTcyYTE5NzM0ZmMwMzk3MTg2NjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.go1ltdhF9Ew4uuX0lO5e2cWSY0bfqs0-XmqTvH7gz8g)
If your env vars doesn't work anymore or can't enable/disable fast math:
use the env variable CXPATCHER_SKIP_NTDLLHACKS=1
and then any env var should
work as usual
For other issues:
try: NAS_DISABLE_UE4_HACK=1
You can change the way the colors are processed in UE4 games.
(old greyish colors but may improve performance or fix dark or oversaturated colors)
NAS_TONEMAP_C=0
NAS_TONEMAP_C=clamp({inputColor} * float3x3( 0.2126 + 0.7874 * 1.5, 0.7152 - 0.7152 * 1.5, 0.0722 - 0.0722 * 1.5, 0.2126 - 0.2126 * 1.5, 0.7152 + 0.2848 * 1.5, 0.0722 - 0.0722 * 1.5, 0.2126 - 0.2126 * 1.5, 0.7152 - 0.7152 * 1.5, 0.0722 + 0.9278 * 1.5 ) * 2 - float3(0.28, 0.2, 0.16), 0.0, 1.0)
NAS_TONEMAP_C
uses standard MSL shading language, as long as it's done in one
line, you can use {inputColor} as a variable and modify the colors, or give any
effect you like using matrix transforms, WARNING: do not copy paste any code
from unknown sources, and do this only if you know what you're doing, otherwise,
have fun!
Note: you may need to use CXPATCHER_SKIP_DXVK_ENV=1
to override built in
settings for games that already have a profile NAS_TONEMAP_C
, also only works
for UE4 games.
Many thanks to the developers behind DXVK and MoltenVK patches:
- @gcenx https://github.com/Gcenx
- @nastys https://github.com/nastys
thanks for the great help and for providing the latest binaries.