├── .github
└── workflows
│ └── objective-c-xcode.disabled
├── .gitignore
├── CXPatcherDebug.entitlements
├── Crossover patcher.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcuserdata
│ │ └── italomandara.xcuserdatad
│ │ └── IDEFindNavigatorScopes.plist
├── xcshareddata
│ └── xcschemes
│ │ └── Crossover patcher.xcscheme
└── xcuserdata
│ └── italomandara.xcuserdatad
│ ├── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
│ └── xcschemes
│ └── xcschememanagement.plist
├── Crossover patcher
├── Assets.xcassets
│ ├── .DS_Store
│ ├── AccentColor.colorset
│ │ └── Contents.json
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── pacher icon 1.png
│ │ └── pacher icon.png
│ ├── Contents.json
│ └── Logo.imageset
│ │ ├── Contents.json
│ │ ├── pacher icon 1.png
│ │ ├── pacher icon 2.png
│ │ └── pacher icon.png
├── Buttons
│ ├── CustomButton.swift
│ ├── ExternalResButton.swift
│ ├── OptionsButton.swift
│ └── RestoreButtonDialog.swift
├── Config.swift
├── ContentView.swift
├── Crossover_patcher.entitlements
├── Crossover_patcherApp.swift
├── Dialogs
│ └── ProgressDialog.swift
├── Disclaimer.swift
├── Instructions.swift
├── Logo.swift
├── Options.swift
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── Resources
│ ├── .DS_Store
│ └── lib
│ │ ├── 64
│ │ ├── 32
│ │ │ ├── d3d10.dll
│ │ │ ├── d3d10_1.dll
│ │ │ ├── d3d10core.dll
│ │ │ ├── d3d11.dll
│ │ │ ├── d3d9.dll
│ │ │ └── dxgi.dll
│ │ ├── d3d10.dll
│ │ ├── d3d10_1.dll
│ │ ├── d3d10core.dll
│ │ ├── d3d11.dll
│ │ ├── d3d9.dll
│ │ └── dxgi.dll
│ │ ├── i386-windows
│ │ └── ntdll.dll
│ │ └── wine64-preloader
├── Selectors
│ ├── AppSelector.swift
│ └── ExternalResourcesSelector.swift
├── Toggles
│ ├── AutoUpdateDisableToggle.swift
│ ├── BottlePathToggle.swift
│ ├── DXVKAsyncToggle.swift
│ ├── DXVKToggle.swift
│ ├── DisableUE4HackToggle.swift
│ ├── FastMathToggle.swift
│ ├── IntegrateExternalsToggle.swift
│ ├── MTLHUDToggle.swift
│ ├── MoltenVKToggle.swift
│ ├── RemoveSignatureToggle.swift
│ ├── RepatchToggle.swift
│ └── SkipVersionCheckToggle.swift
├── Utils.swift
├── de.lproj
│ └── Localizable.strings
├── en.lproj
│ └── Localizable.strings
├── es.lproj
│ └── Localizable.strings
├── fr.lproj
│ └── Localizable.strings
├── it.lproj
│ └── Localizable.strings
├── ja.lproj
│ └── Localizable.strings
├── pl.lproj
│ └── Localizable.strings
├── pt-PT.lproj
│ └── Localizable.strings
├── ro.lproj
│ └── Localizable.strings
├── sv.lproj
│ └── Localizable.strings
├── uk.lproj
│ └── Localizable.strings
└── zh-Hans.lproj
│ └── Localizable.strings
├── Crossover-patcher-Info.plist
├── LICENSE
├── README.md
├── lib
└── CrossOver
│ ├── CrossOver-Hosted Application
│ └── wineserver
│ ├── etc
│ └── CrossOver.conf
│ ├── lib
│ └── wine
│ │ ├── dxvk
│ │ ├── d3d10.dll
│ │ ├── d3d10_1.dll
│ │ ├── d3d10core.dll
│ │ ├── d3d11.dll
│ │ ├── d3d9.dll
│ │ └── dxgi.dll
│ │ ├── i386-windows
│ │ ├── kernelbase.dll
│ │ ├── ntdll.dll
│ │ ├── wineboot.exe
│ │ ├── winecfg.exe
│ │ └── winegstreamer.dll
│ │ ├── x86_64-unix
│ │ ├── ntdll.so
│ │ └── winegstreamer.so
│ │ └── x86_64-windows
│ │ ├── kernelbase.dll
│ │ ├── ntdll.dll
│ │ ├── wineboot.exe
│ │ ├── winecfg.exe
│ │ └── winegstreamer.dll
│ ├── lib64
│ ├── apple_gpt
│ │ ├── Acknowledgements.rtf
│ │ ├── License.rtf
│ │ ├── Read Me.rtf
│ │ ├── external
│ │ │ ├── D3DMetal.framework
│ │ │ │ ├── D3DMetal
│ │ │ │ ├── Resources
│ │ │ │ └── Versions
│ │ │ │ │ ├── A
│ │ │ │ │ ├── D3DMetal
│ │ │ │ │ ├── Resources
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── default.metallib
│ │ │ │ │ │ ├── libdxccontainer.dylib
│ │ │ │ │ │ ├── libdxcompiler.dylib
│ │ │ │ │ │ ├── libdxilconv.dylib
│ │ │ │ │ │ ├── libmetalirconverter.dylib
│ │ │ │ │ │ └── version.plist
│ │ │ │ │ └── _CodeSignature
│ │ │ │ │ │ └── CodeResources
│ │ │ │ │ └── Current
│ │ │ └── libd3dshared.dylib
│ │ └── wine
│ │ │ ├── x86_64-unix
│ │ │ ├── atidxx64.so
│ │ │ ├── d3d10.so
│ │ │ ├── d3d11.so
│ │ │ ├── d3d12.so
│ │ │ ├── d3d9.so
│ │ │ └── dxgi.so
│ │ │ └── x86_64-windows
│ │ │ ├── atidxx64.dll
│ │ │ ├── d3d10.dll
│ │ │ ├── d3d11.dll
│ │ │ ├── d3d12.dll
│ │ │ ├── d3d9.dll
│ │ │ └── dxgi.dll
│ ├── libMoltenVK-latest.dylib
│ ├── libMoltenVK.dylib
│ ├── libinotify.0.dylib
│ ├── libinotify.dylib
│ └── wine
│ │ └── dxvk
│ │ ├── d3d10.dll
│ │ ├── d3d10_1.dll
│ │ ├── d3d10core.dll
│ │ ├── d3d11.dll
│ │ ├── d3d9.dll
│ │ └── dxgi.dll
│ └── share
│ ├── crossover
│ └── bottle_data
│ │ └── crossover.inf
│ └── wine
│ └── wine.inf
├── pacher icon.afdesign
└── pacher icon.png
/.github/workflows/objective-c-xcode.disabled:
--------------------------------------------------------------------------------
1 | name: Xcode - Build and Analyze
2 |
3 | on:
4 | push:
5 | branches: [ "main" ]
6 | pull_request:
7 | branches: [ "main" ]
8 |
9 | jobs:
10 | build:
11 | name: Build and analyse default scheme using xcodebuild command
12 | runs-on: macos-latest
13 |
14 | steps:
15 | - name: Select Xcode version
16 | run: |
17 | sudo xcode-select -switch '/Applications/Xcode_13.1.app/Contents/Developer'
18 | - name: Checkout
19 | uses: actions/checkout@v3
20 | - name: Set Default Scheme
21 | run: |
22 | scheme_list=$(xcodebuild -list -json | tr -d "\n")
23 | default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['project']['targets'][0]")
24 | echo $default | cat >default
25 | echo Using default scheme: $default
26 | - name: Build
27 | env:
28 | scheme: ${{ 'default' }}
29 | run: |
30 | if [ $scheme = default ]; then scheme=$(cat default); fi
31 | if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi
32 | file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
33 | xcodebuild clean build analyze | xcpretty && exit ${PIPESTATUS[0]}
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled source #
2 | ###################
3 | *.com
4 | *.class
5 | *.o
6 |
7 | # Packages #
8 | ############
9 | # it's better to unpack these files and commit the raw source
10 | # git has its own built in compression methods
11 | *.7z
12 | *.dmg
13 | *.gz
14 | *.iso
15 | *.jar
16 | *.rar
17 | *.tar
18 | *.zip
19 |
20 | # Logs and databases #
21 | ######################
22 | *.log
23 | *.sql
24 | *.sqlite
25 |
26 | # OS generated files #
27 | ######################
28 | .DS_Store
29 | .DS_Store?
30 | ._*
31 | .Spotlight-V100
32 | .Trashes
33 | ehthumbs.db
34 | Thumbs.db
35 |
36 | # Xcode
37 | ######################
38 |
39 | build/
40 | *.xcuserstate
41 | project.xcworkspace/*
42 | .nova
43 |
--------------------------------------------------------------------------------
/CXPatcherDebug.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Crossover patcher.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Crossover patcher.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Crossover patcher.xcodeproj/project.xcworkspace/xcuserdata/italomandara.xcuserdatad/IDEFindNavigatorScopes.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Crossover patcher.xcodeproj/xcshareddata/xcschemes/Crossover patcher.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
43 |
45 |
51 |
52 |
53 |
56 |
57 |
58 |
64 |
66 |
72 |
73 |
74 |
75 |
77 |
78 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/Crossover patcher.xcodeproj/xcuserdata/italomandara.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/Crossover patcher.xcodeproj/xcuserdata/italomandara.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Crossover patcher.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 38ACB39029D773CA00A450A0
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Assets.xcassets/.DS_Store
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "platform" : "osx",
6 | "reference" : "systemRedColor"
7 | },
8 | "idiom" : "mac"
9 | }
10 | ],
11 | "info" : {
12 | "author" : "xcode",
13 | "version" : 1
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "pacher icon.png",
5 | "idiom" : "universal",
6 | "platform" : "ios",
7 | "size" : "1024x1024"
8 | },
9 | {
10 | "idiom" : "mac",
11 | "scale" : "1x",
12 | "size" : "16x16"
13 | },
14 | {
15 | "idiom" : "mac",
16 | "scale" : "2x",
17 | "size" : "16x16"
18 | },
19 | {
20 | "idiom" : "mac",
21 | "scale" : "1x",
22 | "size" : "32x32"
23 | },
24 | {
25 | "idiom" : "mac",
26 | "scale" : "2x",
27 | "size" : "32x32"
28 | },
29 | {
30 | "idiom" : "mac",
31 | "scale" : "1x",
32 | "size" : "128x128"
33 | },
34 | {
35 | "idiom" : "mac",
36 | "scale" : "2x",
37 | "size" : "128x128"
38 | },
39 | {
40 | "idiom" : "mac",
41 | "scale" : "1x",
42 | "size" : "256x256"
43 | },
44 | {
45 | "idiom" : "mac",
46 | "scale" : "2x",
47 | "size" : "256x256"
48 | },
49 | {
50 | "idiom" : "mac",
51 | "scale" : "1x",
52 | "size" : "512x512"
53 | },
54 | {
55 | "filename" : "pacher icon 1.png",
56 | "idiom" : "mac",
57 | "scale" : "2x",
58 | "size" : "512x512"
59 | }
60 | ],
61 | "info" : {
62 | "author" : "xcode",
63 | "version" : 1
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/AppIcon.appiconset/pacher icon 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Assets.xcassets/AppIcon.appiconset/pacher icon 1.png
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/AppIcon.appiconset/pacher icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Assets.xcassets/AppIcon.appiconset/pacher icon.png
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/Logo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "pacher icon 2.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "pacher icon 1.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "pacher icon.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/Logo.imageset/pacher icon 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Assets.xcassets/Logo.imageset/pacher icon 1.png
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/Logo.imageset/pacher icon 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Assets.xcassets/Logo.imageset/pacher icon 2.png
--------------------------------------------------------------------------------
/Crossover patcher/Assets.xcassets/Logo.imageset/pacher icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Assets.xcassets/Logo.imageset/pacher icon.png
--------------------------------------------------------------------------------
/Crossover patcher/Buttons/CustomButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CustomButton.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 29/09/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct CustomButton: View {
12 | @State var title: String
13 | @State var action: () -> Void
14 | @State var color: Color
15 | var body: some View {
16 | Button {
17 | action()
18 | } label: {
19 | ZStack {
20 | RoundedRectangle(cornerRadius: 5)
21 | .foregroundColor(color)
22 | Text(title)
23 | .font(.system(size: 10, weight: .bold))
24 | .foregroundColor(.white)
25 | .padding(.vertical, 10)
26 | .padding(.horizontal, 20)
27 |
28 | }
29 | }
30 | .buttonStyle(.plain)
31 | .fixedSize(horizontal: true, vertical: true)
32 |
33 | }
34 | }
35 |
36 | struct CustomButton_Previews: PreviewProvider {
37 | static var previews: some View {
38 | CustomButton(title: "My Button", action: {}, color: .red)
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Crossover patcher/Buttons/ExternalResButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ExternalResButton.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 15/06/2023.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct ExternalResButtonDialog: View {
11 | @Binding var externalUrl: URL?
12 | var body: some View {
13 | if(externalUrl != nil) {
14 | Text("\(localizedCXPatcherString(forKey: "ExternalResourcesPathLabelText")): \(externalUrl!.path)")
15 | } else {
16 | Button(localizedCXPatcherString(forKey: "ExternalResourcesButtonText")) {
17 | let panel = NSOpenPanel()
18 | panel.allowsMultipleSelection = false
19 | panel.canChooseDirectories = true
20 | panel.canChooseFiles = false
21 | let response = panel.runModal()
22 | if (response == .OK && panel.urls.first != nil){
23 | externalUrl = panel.urls.first!
24 | } else {
25 | print("aborted by user")
26 | }
27 | }.buttonStyle(.borderedProminent)
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Crossover patcher/Buttons/OptionsButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // OptionsButton.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 29/10/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 | struct OptionsButton: View {
11 | @Environment(\.openWindow) var openWindow
12 |
13 | var body: some View {
14 | Button() {
15 | openWindow(id: "options")
16 | } label: {
17 | Image(systemName: "gear")
18 | Text(localizedCXPatcherString(forKey: "optionsButtonText"))
19 | }.padding(.top, 6.0)
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Crossover patcher/Buttons/RestoreButtonDialog.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RestoreButtonDialog.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 09/05/2023.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct RestoreButtonDialog: View {
11 | @State private var showingAlert = false
12 | @State private var message = ""
13 | @State var opts: Opts
14 |
15 | var body: some View {
16 | Button {
17 | if let url = openAppSelectorPanel() {
18 | let restoreResult = restoreApp(url: url, opts: &opts)
19 | if restoreResult {
20 | message = localizedCXPatcherString(forKey: "RestoreSuccess")
21 | showingAlert = true
22 | } else {
23 | message = localizedCXPatcherString(forKey: "RestoreFailure")
24 | showingAlert = true
25 | }
26 | }
27 | } label: {
28 | Image(systemName: "arrow.uturn.backward")
29 | Text(localizedCXPatcherString(forKey: "RestoreButtonLabel"))
30 | }
31 | .alert(isPresented: $showingAlert) {
32 | Alert(title: Text(localizedCXPatcherString(forKey: "RestoreStatusLabel")), message: Text(message), dismissButton: .default(Text(localizedCXPatcherString(forKey: "RestoreConfirm"))))
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Crossover patcher/Config.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Config.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 24/06/2023.
6 | //
7 |
8 | import Foundation
9 |
10 | let SKIP_VENTURA_CHECK = false
11 |
12 | #if DEBUG
13 | let SKIP_DISCLAIMER_CHECK = true
14 | #else
15 | let SKIP_DISCLAIMER_CHECK = false
16 | #endif
17 |
18 | let ENABLE_SKIP_VERSION_CHECK_TOGGLE = false
19 |
20 | let ENABLE_RESTORE = false
21 | let ENABLE_REPATCH_TOGGLE = ENABLE_RESTORE
22 | let ENABLE_BACKUP = !ENABLE_RESTORE
23 |
24 | let SUPPORTED_CROSSOVER_VERSION = "23.7"
25 | let ENABLE_GSTREAMER = true
26 |
27 | let SHARED_SUPPORT_PATH = "/Contents/SharedSupport/CrossOver"
28 | let DEFAULT_CX_BOTTLES_PATH = "/Users/${USER}/CXPBottles"
29 | let LIB_PATH = "/lib/"
30 |
31 | let EXTERNAL_RESOURCES_ROOT = "/lib64/apple_gpt"
32 | let EXTERNAL_WINE_PATHS: [String] = [
33 | "/external",
34 | "/wine/x86_64-unix/atidxx64.so",
35 | "/wine/x86_64-unix/d3d11.so",
36 | "/wine/x86_64-unix/d3d12.so",
37 | "/wine/x86_64-unix/dxgi.so",
38 | "/wine/x86_64-windows/atidxx64.dll",
39 | "/wine/x86_64-windows/d3d11.dll",
40 | "/wine/x86_64-windows/d3d12.dll",
41 | "/wine/x86_64-windows/dxgi.dll",
42 | ]
43 |
44 | let BUILTIN_LIBS_GSTREAMER = [
45 | "/Contents/SharedSupport/CrossOver/lib/gstreamer-1.0",
46 | "/Contents/SharedSupport/CrossOver/lib/libffi.8.dylib",
47 | "/Contents/SharedSupport/CrossOver/lib/libffi.dylib",
48 | "/Contents/SharedSupport/CrossOver/lib/libgio-2.0.0.dylib",
49 | "/Contents/SharedSupport/CrossOver/lib/libgio-2.0.dylib",
50 | "/Contents/SharedSupport/CrossOver/lib/libglib-2.0.0.dylib",
51 | "/Contents/SharedSupport/CrossOver/lib/libglib-2.0.dylib",
52 | "/Contents/SharedSupport/CrossOver/lib/libgmodule-2.0.0.dylib",
53 | "/Contents/SharedSupport/CrossOver/lib/libgmodule-2.0.dylib",
54 | "/Contents/SharedSupport/CrossOver/lib/libgobject-2.0.0.dylib",
55 | "/Contents/SharedSupport/CrossOver/lib/libgobject-2.0.dylib",
56 | "/Contents/SharedSupport/CrossOver/lib/libgstadaptivedemux-1.0.0.dylib",
57 | "/Contents/SharedSupport/CrossOver/lib/libgstadaptivedemux-1.0.dylib",
58 | "/Contents/SharedSupport/CrossOver/lib/libgstallocators-1.0.0.dylib",
59 | "/Contents/SharedSupport/CrossOver/lib/libgstallocators-1.0.dylib",
60 | "/Contents/SharedSupport/CrossOver/lib/libgstapp-1.0.0.dylib",
61 | "/Contents/SharedSupport/CrossOver/lib/libgstapp-1.0.dylib",
62 | "/Contents/SharedSupport/CrossOver/lib/libgstaudio-1.0.0.dylib",
63 | "/Contents/SharedSupport/CrossOver/lib/libgstaudio-1.0.dylib",
64 | "/Contents/SharedSupport/CrossOver/lib/libgstbadaudio-1.0.0.dylib",
65 | "/Contents/SharedSupport/CrossOver/lib/libgstbadaudio-1.0.dylib",
66 | "/Contents/SharedSupport/CrossOver/lib/libgstbase-1.0.0.dylib",
67 | "/Contents/SharedSupport/CrossOver/lib/libgstbase-1.0.dylib",
68 | "/Contents/SharedSupport/CrossOver/lib/libgstbasecamerabinsrc-1.0.0.dylib",
69 | "/Contents/SharedSupport/CrossOver/lib/libgstbasecamerabinsrc-1.0.dylib",
70 | "/Contents/SharedSupport/CrossOver/lib/libgstcodecparsers-1.0.0.dylib",
71 | "/Contents/SharedSupport/CrossOver/lib/libgstcodecparsers-1.0.dylib",
72 | "/Contents/SharedSupport/CrossOver/lib/libgstcodecs-1.0.0.dylib",
73 | "/Contents/SharedSupport/CrossOver/lib/libgstcodecs-1.0.dylib",
74 | "/Contents/SharedSupport/CrossOver/lib/libgstcontroller-1.0.0.dylib",
75 | "/Contents/SharedSupport/CrossOver/lib/libgstcontroller-1.0.dylib",
76 | "/Contents/SharedSupport/CrossOver/lib/libgstfft-1.0.0.dylib",
77 | "/Contents/SharedSupport/CrossOver/lib/libgstfft-1.0.dylib",
78 | "/Contents/SharedSupport/CrossOver/lib/libgstgl-1.0.0.dylib",
79 | "/Contents/SharedSupport/CrossOver/lib/libgstgl-1.0.dylib",
80 | "/Contents/SharedSupport/CrossOver/lib/libgstinsertbin-1.0.0.dylib",
81 | "/Contents/SharedSupport/CrossOver/lib/libgstinsertbin-1.0.dylib",
82 | "/Contents/SharedSupport/CrossOver/lib/libgstisoff-1.0.0.dylib",
83 | "/Contents/SharedSupport/CrossOver/lib/libgstisoff-1.0.dylib",
84 | "/Contents/SharedSupport/CrossOver/lib/libgstmpegts-1.0.0.dylib",
85 | "/Contents/SharedSupport/CrossOver/lib/libgstmpegts-1.0.dylib",
86 | "/Contents/SharedSupport/CrossOver/lib/libgstnet-1.0.0.dylib",
87 | "/Contents/SharedSupport/CrossOver/lib/libgstnet-1.0.dylib",
88 | "/Contents/SharedSupport/CrossOver/lib/libgstpbutils-1.0.0.dylib",
89 | "/Contents/SharedSupport/CrossOver/lib/libgstpbutils-1.0.dylib",
90 | "/Contents/SharedSupport/CrossOver/lib/libgstphotography-1.0.0.dylib",
91 | "/Contents/SharedSupport/CrossOver/lib/libgstphotography-1.0.dylib",
92 | "/Contents/SharedSupport/CrossOver/lib/libgstplay-1.0.0.dylib",
93 | "/Contents/SharedSupport/CrossOver/lib/libgstplay-1.0.dylib",
94 | "/Contents/SharedSupport/CrossOver/lib/libgstplayer-1.0.0.dylib",
95 | "/Contents/SharedSupport/CrossOver/lib/libgstplayer-1.0.dylib",
96 | "/Contents/SharedSupport/CrossOver/lib/libgstreamer-1.0.0.dylib",
97 | "/Contents/SharedSupport/CrossOver/lib/libgstreamer-1.0.dylib",
98 | "/Contents/SharedSupport/CrossOver/lib/libgstriff-1.0.0.dylib",
99 | "/Contents/SharedSupport/CrossOver/lib/libgstriff-1.0.dylib",
100 | "/Contents/SharedSupport/CrossOver/lib/libgstrtp-1.0.0.dylib",
101 | "/Contents/SharedSupport/CrossOver/lib/libgstrtp-1.0.dylib",
102 | "/Contents/SharedSupport/CrossOver/lib/libgstrtsp-1.0.0.dylib",
103 | "/Contents/SharedSupport/CrossOver/lib/libgstrtsp-1.0.dylib",
104 | "/Contents/SharedSupport/CrossOver/lib/libgstsctp-1.0.0.dylib",
105 | "/Contents/SharedSupport/CrossOver/lib/libgstsctp-1.0.dylib",
106 | "/Contents/SharedSupport/CrossOver/lib/libgstsdp-1.0.0.dylib",
107 | "/Contents/SharedSupport/CrossOver/lib/libgstsdp-1.0.dylib",
108 | "/Contents/SharedSupport/CrossOver/lib/libgsttag-1.0.0.dylib",
109 | "/Contents/SharedSupport/CrossOver/lib/libgsttag-1.0.dylib",
110 | "/Contents/SharedSupport/CrossOver/lib/libgsttranscoder-1.0.0.dylib",
111 | "/Contents/SharedSupport/CrossOver/lib/libgsttranscoder-1.0.dylib",
112 | "/Contents/SharedSupport/CrossOver/lib/libgsturidownloader-1.0.0.dylib",
113 | "/Contents/SharedSupport/CrossOver/lib/libgsturidownloader-1.0.dylib",
114 | "/Contents/SharedSupport/CrossOver/lib/libgstvideo-1.0.0.dylib",
115 | "/Contents/SharedSupport/CrossOver/lib/libgstvideo-1.0.dylib",
116 | "/Contents/SharedSupport/CrossOver/lib/libgstwebrtc-1.0.0.dylib",
117 | "/Contents/SharedSupport/CrossOver/lib/libgstwebrtc-1.0.dylib",
118 | "/Contents/SharedSupport/CrossOver/lib/libgthread-2.0.0.dylib",
119 | "/Contents/SharedSupport/CrossOver/lib/libgthread-2.0.dylib",
120 | "/Contents/SharedSupport/CrossOver/lib/libintl.8.dylib",
121 | "/Contents/SharedSupport/CrossOver/lib/libintl.dylib",
122 | "/Contents/SharedSupport/CrossOver/lib/libpcre2-8.0.dylib",
123 | "/Contents/SharedSupport/CrossOver/lib/libpcre2-8.dylib",
124 | "/Contents/SharedSupport/CrossOver/lib/libpcre2-posix.3.dylib",
125 | "/Contents/SharedSupport/CrossOver/lib/libpcre2-posix.dylib",
126 | ]
127 |
128 | let BUILTIN_LIBS_GSTREAMER64 = [
129 | "/Contents/SharedSupport/CrossOver/lib64/libffi.8.dylib",
130 | "/Contents/SharedSupport/CrossOver/lib64/libffi.dylib",
131 | "/Contents/SharedSupport/CrossOver/lib64/libgio-2.0.0.dylib",
132 | "/Contents/SharedSupport/CrossOver/lib64/libgio-2.0.dylib",
133 | "/Contents/SharedSupport/CrossOver/lib64/libglib-2.0.0.dylib",
134 | "/Contents/SharedSupport/CrossOver/lib64/libglib-2.0.dylib",
135 | "/Contents/SharedSupport/CrossOver/lib64/libgmodule-2.0.0.dylib",
136 | "/Contents/SharedSupport/CrossOver/lib64/libgmodule-2.0.dylib",
137 | "/Contents/SharedSupport/CrossOver/lib64/libgobject-2.0.0.dylib",
138 | "/Contents/SharedSupport/CrossOver/lib64/libgobject-2.0.dylib",
139 | "/Contents/SharedSupport/CrossOver/lib64/libgstadaptivedemux-1.0.0.dylib",
140 | "/Contents/SharedSupport/CrossOver/lib64/libgstadaptivedemux-1.0.dylib",
141 | "/Contents/SharedSupport/CrossOver/lib64/libgstallocators-1.0.0.dylib",
142 | "/Contents/SharedSupport/CrossOver/lib64/libgstallocators-1.0.dylib",
143 | "/Contents/SharedSupport/CrossOver/lib64/libgstapp-1.0.0.dylib",
144 | "/Contents/SharedSupport/CrossOver/lib64/libgstapp-1.0.dylib",
145 | "/Contents/SharedSupport/CrossOver/lib64/libgstaudio-1.0.0.dylib",
146 | "/Contents/SharedSupport/CrossOver/lib64/libgstaudio-1.0.dylib",
147 | "/Contents/SharedSupport/CrossOver/lib64/libgstbadaudio-1.0.0.dylib",
148 | "/Contents/SharedSupport/CrossOver/lib64/libgstbadaudio-1.0.dylib",
149 | "/Contents/SharedSupport/CrossOver/lib64/libgstbase-1.0.0.dylib",
150 | "/Contents/SharedSupport/CrossOver/lib64/libgstbase-1.0.dylib",
151 | "/Contents/SharedSupport/CrossOver/lib64/libgstbasecamerabinsrc-1.0.0.dylib",
152 | "/Contents/SharedSupport/CrossOver/lib64/libgstbasecamerabinsrc-1.0.dylib",
153 | "/Contents/SharedSupport/CrossOver/lib64/libgstcodecparsers-1.0.0.dylib",
154 | "/Contents/SharedSupport/CrossOver/lib64/libgstcodecparsers-1.0.dylib",
155 | "/Contents/SharedSupport/CrossOver/lib64/libgstcodecs-1.0.0.dylib",
156 | "/Contents/SharedSupport/CrossOver/lib64/libgstcodecs-1.0.dylib",
157 | "/Contents/SharedSupport/CrossOver/lib64/libgstcontroller-1.0.0.dylib",
158 | "/Contents/SharedSupport/CrossOver/lib64/libgstcontroller-1.0.dylib",
159 | "/Contents/SharedSupport/CrossOver/lib64/libgstfft-1.0.0.dylib",
160 | "/Contents/SharedSupport/CrossOver/lib64/libgstfft-1.0.dylib",
161 | "/Contents/SharedSupport/CrossOver/lib64/libgstgl-1.0.0.dylib",
162 | "/Contents/SharedSupport/CrossOver/lib64/libgstgl-1.0.dylib",
163 | "/Contents/SharedSupport/CrossOver/lib64/libgstinsertbin-1.0.0.dylib",
164 | "/Contents/SharedSupport/CrossOver/lib64/libgstinsertbin-1.0.dylib",
165 | "/Contents/SharedSupport/CrossOver/lib64/libgstisoff-1.0.0.dylib",
166 | "/Contents/SharedSupport/CrossOver/lib64/libgstisoff-1.0.dylib",
167 | "/Contents/SharedSupport/CrossOver/lib64/libgstmpegts-1.0.0.dylib",
168 | "/Contents/SharedSupport/CrossOver/lib64/libgstmpegts-1.0.dylib",
169 | "/Contents/SharedSupport/CrossOver/lib64/libgstnet-1.0.0.dylib",
170 | "/Contents/SharedSupport/CrossOver/lib64/libgstnet-1.0.dylib",
171 | "/Contents/SharedSupport/CrossOver/lib64/libgstpbutils-1.0.0.dylib",
172 | "/Contents/SharedSupport/CrossOver/lib64/libgstpbutils-1.0.dylib",
173 | "/Contents/SharedSupport/CrossOver/lib64/libgstphotography-1.0.0.dylib",
174 | "/Contents/SharedSupport/CrossOver/lib64/libgstphotography-1.0.dylib",
175 | "/Contents/SharedSupport/CrossOver/lib64/libgstplay-1.0.0.dylib",
176 | "/Contents/SharedSupport/CrossOver/lib64/libgstplay-1.0.dylib",
177 | "/Contents/SharedSupport/CrossOver/lib64/libgstplayer-1.0.0.dylib",
178 | "/Contents/SharedSupport/CrossOver/lib64/libgstplayer-1.0.dylib",
179 | "/Contents/SharedSupport/CrossOver/lib64/libgstreamer-1.0.0.dylib",
180 | "/Contents/SharedSupport/CrossOver/lib64/libgstreamer-1.0.dylib",
181 | "/Contents/SharedSupport/CrossOver/lib64/libgstriff-1.0.0.dylib",
182 | "/Contents/SharedSupport/CrossOver/lib64/libgstriff-1.0.dylib",
183 | "/Contents/SharedSupport/CrossOver/lib64/libgstrtp-1.0.0.dylib",
184 | "/Contents/SharedSupport/CrossOver/lib64/libgstrtp-1.0.dylib",
185 | "/Contents/SharedSupport/CrossOver/lib64/libgstrtsp-1.0.0.dylib",
186 | "/Contents/SharedSupport/CrossOver/lib64/libgstrtsp-1.0.dylib",
187 | "/Contents/SharedSupport/CrossOver/lib64/libgstsctp-1.0.0.dylib",
188 | "/Contents/SharedSupport/CrossOver/lib64/libgstsctp-1.0.dylib",
189 | "/Contents/SharedSupport/CrossOver/lib64/libgstsdp-1.0.0.dylib",
190 | "/Contents/SharedSupport/CrossOver/lib64/libgstsdp-1.0.dylib",
191 | "/Contents/SharedSupport/CrossOver/lib64/libgsttag-1.0.0.dylib",
192 | "/Contents/SharedSupport/CrossOver/lib64/libgsttag-1.0.dylib",
193 | "/Contents/SharedSupport/CrossOver/lib64/libgsttranscoder-1.0.0.dylib",
194 | "/Contents/SharedSupport/CrossOver/lib64/libgsttranscoder-1.0.dylib",
195 | "/Contents/SharedSupport/CrossOver/lib64/libgsturidownloader-1.0.0.dylib",
196 | "/Contents/SharedSupport/CrossOver/lib64/libgsturidownloader-1.0.dylib",
197 | "/Contents/SharedSupport/CrossOver/lib64/libgstvideo-1.0.0.dylib",
198 | "/Contents/SharedSupport/CrossOver/lib64/libgstvideo-1.0.dylib",
199 | "/Contents/SharedSupport/CrossOver/lib64/libgstwebrtc-1.0.0.dylib",
200 | "/Contents/SharedSupport/CrossOver/lib64/libgstwebrtc-1.0.dylib",
201 | "/Contents/SharedSupport/CrossOver/lib64/libgthread-2.0.0.dylib",
202 | "/Contents/SharedSupport/CrossOver/lib64/libgthread-2.0.dylib",
203 | "/Contents/SharedSupport/CrossOver/lib64/libintl.8.dylib",
204 | "/Contents/SharedSupport/CrossOver/lib64/libintl.dylib",
205 | "/Contents/SharedSupport/CrossOver/lib64/libpcre2-8.0.dylib",
206 | "/Contents/SharedSupport/CrossOver/lib64/libpcre2-8.dylib",
207 | "/Contents/SharedSupport/CrossOver/lib64/libpcre2-posix.3.dylib",
208 | "/Contents/SharedSupport/CrossOver/lib64/libpcre2-posix.dylib",
209 | ]
210 |
211 | let FILES_TO_DISABLE: [String] = [
212 | "/Contents/CodeResources",
213 | "/Contents/_CodeSignature",
214 | ] + BUILTIN_LIBS_GSTREAMER + BUILTIN_LIBS_GSTREAMER64
215 |
216 | let WINE_RESOURCES_ROOT = "Crossover"
217 |
218 | let MOLTENVK_BASELINE = "/lib64/libMoltenVK.dylib"
219 |
220 | let WINE_RESOURCES_PATHS: [String] = [
221 | MOLTENVK_BASELINE,
222 | "/lib64/libinotify.0.dylib",
223 | "/lib64/libinotify.dylib",
224 | "/lib64/wine/dxvk",
225 | "/lib/wine/dxvk",
226 | "/lib/wine/i386-windows/kernelbase.dll",
227 | "/lib/wine/i386-windows/ntdll.dll",
228 | "/lib/wine/i386-windows/winegstreamer.dll",
229 | "lib/wine/i386-windows/wineboot.exe",
230 | "/lib/wine/i386-windows/winecfg.exe",
231 | "/lib/wine/x86_64-unix/ntdll.so",
232 | "/lib/wine/x86_64-unix/winegstreamer.so",
233 | "/lib/wine/x86_64-windows/kernelbase.dll",
234 | "/lib/wine/x86_64-windows/ntdll.dll",
235 | "/lib/wine/x86_64-windows/wineboot.exe",
236 | "/lib/wine/x86_64-windows/winecfg.exe",
237 | "/lib/wine/x86_64-windows/winegstreamer.dll",
238 | "/share/crossover/bottle_data/crossover.inf",
239 | "/CrossOver-Hosted Application/wineserver",
240 | "/share/wine/wine.inf",
241 | ]
242 |
243 | let MOLTENVK_LATEST = "/lib64/libMoltenVK-latest.dylib"
244 |
245 | let BOTTLE_PATH_OVERRIDE = "/etc/CrossOver.conf"
246 |
247 | let PLIST_PATH = "Contents/Info.plist"
248 |
--------------------------------------------------------------------------------
/Crossover patcher/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 31/03/2023.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct ContentView: View {
11 | @Environment(\.openWindow) var openWindow
12 | @Binding public var opts: Opts
13 |
14 | var body: some View {
15 | VStack(alignment: .center) {
16 | Logo()
17 | if(opts.showDisclaimer) {
18 | Disclaimer(showDisclaimer: $opts.showDisclaimer)
19 | } else {
20 | Button() {
21 | openWindow(id: "instructions")
22 | } label: {
23 | Image(systemName: "info.circle.fill")
24 | Text(localizedCXPatcherString(forKey: "InstructionsButtonText"))
25 | }
26 | .padding(.bottom, 15.0)
27 | .buttonStyle(.borderedProminent)
28 |
29 | AppSelector(
30 | opts: $opts
31 | )
32 | VStack(alignment: .center) {
33 | if(ENABLE_SKIP_VERSION_CHECK_TOGGLE) {
34 | Divider()
35 | SkipVersionCheckToggle(skipVersionCheck: $opts.skipVersionCheck)
36 | }
37 | if(ENABLE_SKIP_VERSION_CHECK_TOGGLE) {
38 | Divider()
39 | SkipVersionCheckToggle(skipVersionCheck: $opts.skipVersionCheck)
40 | }
41 | if(ENABLE_REPATCH_TOGGLE) {
42 | Divider()
43 | RepatchToggle(repatch: $opts.repatch)
44 | Divider()
45 | }
46 | HStack {
47 | if(ENABLE_RESTORE) {
48 | RestoreButtonDialog(opts: opts)
49 | .padding(.top, 6.0)
50 | }
51 | OptionsButton()
52 | }
53 | }
54 | .padding(.top, 12.0)
55 | }
56 | }
57 | .padding(20)
58 | .frame(width: 400.0)
59 | .fixedSize()
60 | }
61 |
62 | }
63 |
64 | struct ContentView_Previews: PreviewProvider {
65 | static var previews: some View {
66 | @State var opts = Opts()
67 | ContentView(opts: $opts)
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Crossover patcher/Crossover_patcher.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Crossover patcher/Crossover_patcherApp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Crossover_patcherApp.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 31/03/2023.
6 | //
7 |
8 | import SwiftUI
9 |
10 | @main
11 | struct Crossover_patcherApp: App {
12 | @State private var opts = Opts()
13 | var body: some Scene {
14 | WindowGroup {
15 | ContentView(opts: $opts).fixedSize()
16 | }
17 | .windowResizability(.contentSize)
18 | .commands {
19 | CommandGroup(after: .newItem) {
20 | if(ENABLE_RESTORE) {
21 | RestoreButtonDialog(opts: opts)
22 | }
23 | }
24 | }
25 | Window("Instructions", id: "instructions") {
26 | Instructions().fixedSize()
27 | }
28 | Window("Options", id: "options") {
29 | Options(opts: $opts).fixedSize()
30 | }
31 | .windowResizability(.contentSize)
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Crossover patcher/Dialogs/ProgressDialog.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ProgressDialog.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 29/09/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct ProgressDialog: View {
12 | @Binding public var opts: Opts
13 | @Binding public var visible: Bool
14 | @Binding public var total: Int32
15 | private func action() -> Void {
16 | visible = false
17 | opts.status = .unpatched
18 | opts.progress = 0.0
19 | }
20 | private var computedValue: Float {
21 | return opts.progress / Float(total) * 100
22 | }
23 | var body: some View {
24 | ZStack {
25 | if(visible) {
26 | VStack{
27 | if(!opts.busy){
28 | CustomButton(title: "Continue", action: action, color: .green)
29 | } else {
30 | ProgressView(value: computedValue).accentColor(.gray)
31 | }
32 | }.padding(.horizontal, 30)
33 | .fixedSize(horizontal: false, vertical: true)
34 | }
35 | }
36 | }
37 | }
38 |
39 | struct ProgressDialog_Previews: PreviewProvider {
40 | static var previews: some View {
41 | @State var opts = Opts(progress: 30.0)
42 | @State var visible = true
43 | @State var total: Int32 = 300
44 | ProgressDialog(opts: $opts, visible: $visible, total: $total)
45 | }
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/Crossover patcher/Disclaimer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Disclaimer.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 04/04/2023.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct Disclaimer: View {
11 | @State public var inputText: String = ""
12 | @State private var valid: Bool = false
13 | @Binding var showDisclaimer: Bool
14 |
15 | var body: some View {
16 | Text(localizedCXPatcherString(forKey: "DisclaimerPleaseNoteLabelText"))
17 | .font(.title2)
18 | .multilineTextAlignment(.center)
19 | .fontWeight(.bold)
20 | .foregroundColor(.red)
21 | Text(localizedCXPatcherString(forKey: "DisclaimerText"))
22 | .multilineTextAlignment(.center)
23 | .padding(10)
24 | .foregroundColor(.white)
25 | .background(Color.red)
26 | .cornerRadius(10)
27 | Spacer()
28 | //localization breaks hyperlinks. demons lurk
29 | Text("\(localizedCXPatcherString(forKey: "CWWebsite")) [CodeWeavers forums](https://www.codeweavers.com/support/forums/general/?t=27;msg=257865)")
30 | .multilineTextAlignment(.center)
31 | .padding(.top, 1.0)
32 | if(SKIP_DISCLAIMER_CHECK) {
33 | Button() {
34 | showDisclaimer = false
35 | } label: {
36 | Image(systemName: "exclamationmark.triangle.fill")
37 | Text(localizedCXPatcherString(forKey: "AgreeAndProceedButtonText"))
38 | }
39 | .padding(.vertical, 20.0)
40 | .buttonStyle(.borderedProminent)
41 | .tint(.red)
42 | .controlSize(.large)
43 | } else {
44 | Text(localizedCXPatcherString(forKey:"confirmation"))
45 | .padding(.vertical, 20)
46 | .fontWeight(.bold)
47 | .foregroundColor(.red)
48 |
49 | TextField("",
50 | text: $inputText
51 | )
52 | .onSubmit {
53 | if (valid) {
54 | showDisclaimer = false
55 | }
56 | }
57 | .onChange(of: inputText) { newValue in
58 | valid = validate(input: newValue)
59 | }
60 | .disableAutocorrection(true)
61 | Button() {
62 | showDisclaimer = false
63 | } label: {
64 | Image(systemName: "exclamationmark.triangle.fill")
65 | if(valid) {
66 | Text(localizedCXPatcherString(forKey: "AgreeAndProceedButtonText"))
67 | } else {
68 | Text("\(localizedCXPatcherString(forKey: "waitFor"))")
69 | }
70 | }
71 | .padding(.vertical, 20.0)
72 | .buttonStyle(.borderedProminent)
73 | .tint(.red)
74 | .controlSize(.large)
75 | .disabled(!valid)
76 | }
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/Crossover patcher/Instructions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DisclaimerView.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 03/04/2023.
6 | //
7 | import SwiftUI
8 |
9 | struct Instructions: View {
10 | @Environment(\.dismiss) private var dismiss
11 | @Environment(\.openWindow) var openWindow
12 |
13 | var body: some View {
14 | VStack(alignment: .center) {
15 | Image("Logo")
16 | .resizable(resizingMode: .stretch)
17 | .frame(width: 60.0, height: 60.0)
18 | Text(localizedCXPatcherString(forKey: "CrossOverPatcher"))
19 | .font(.title)
20 | .padding(.top, 1.0)
21 | Text(localizedCXPatcherString(forKey: "InstructionsAskWhatDo"))
22 | .font(.title2)
23 | .padding(.top, 30.0)
24 | Text(localizedCXPatcherString(forKey: "InstructionsFunctionDescription"))
25 | .padding(.top, 1.0)
26 | .multilineTextAlignment(.center)
27 | Text("\(localizedCXPatcherString(forKey: "Instructions")):")
28 | .font(.title2)
29 | .multilineTextAlignment(.center)
30 | .padding(.top, 20.0)
31 | Text(localizedCXPatcherString(forKey: "InstructionsText"))
32 | .multilineTextAlignment(.center)
33 | .padding(.top, 1.0)
34 | Text("https://codeweavers.com/account/downloads")
35 | .multilineTextAlignment(.center)
36 | .padding(.top, 1.0)
37 | Text(localizedCXPatcherString(forKey: "Credits"))
38 | .font(.title2)
39 | .multilineTextAlignment(.center)
40 | .padding(.top, 20.0)
41 | Text(localizedCXPatcherString(forKey: "CreditsText"))
42 | .multilineTextAlignment(.center)
43 | .padding(.top, 1.0)
44 | //localization breaks hyperlinks. demons lurk
45 | Text("@gcenx (https://github.com/Gcenx)\n@nastys (https://github.com/nastys)")
46 | .multilineTextAlignment(.center)
47 | .padding(.top, 1.0)
48 | }.padding(40)
49 | .frame(width: 400.0)
50 | .fixedSize()
51 | }
52 |
53 | }
54 |
55 | struct Disclaimer_Previews: PreviewProvider {
56 | static var previews: some View {
57 | Instructions()
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Crossover patcher/Logo.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Logo.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 11/07/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct Logo: View {
12 | var body: some View {
13 | Image("Logo")
14 | .resizable(resizingMode: .stretch)
15 | .frame(width: 80.0, height: 80.0)
16 | Text(localizedCXPatcherString(forKey: "CXPatcherName"))
17 | .font(.title)
18 | .padding(.vertical, 1.0)
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Crossover patcher/Options.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Options.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 29/10/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct Options: View {
12 | @Environment(\.dismiss) private var dismiss
13 | @Environment(\.openWindow) var openWindow
14 | @Binding var opts: Opts
15 | var body: some View {
16 | VStack(alignment: .center) {
17 | // IntegrateExternalsToggle(
18 | // copyGptk: $opts.copyGptk
19 | // )
20 | // .help(localizedCXPatcherString(forKey: "gptkToggleHelp"))
21 | MoltenVKToggle(
22 | opts: $opts
23 | )
24 | .help(localizedCXPatcherString(forKey: "mkvToggleHelp"))
25 | DXVKToggle(
26 | opts: $opts
27 | )
28 | .help(localizedCXPatcherString(forKey: "dxvkToggleHelp"))
29 | BottlesPathToggle(
30 | opts: $opts
31 | )
32 | RemoveSignatureToggle(
33 | opts: $opts
34 | )
35 | .help(localizedCXPatcherString(forKey: "signatureToggleHelp"))
36 | AutoUpdateDisableToggle(
37 | opts: $opts
38 | )
39 | .help(localizedCXPatcherString(forKey: "autoUpdateToggleHelp"))
40 | Divider().padding(.vertical, 2)
41 | Text(localizedCXPatcherString(forKey: "Environment Globals")).padding(.top, 2)
42 | DXVKAsyncToggle(
43 | opts: $opts
44 | )
45 | .help(localizedCXPatcherString(forKey: "DXVKAsyncToggleHelp"))
46 | FastMathToggle(
47 | opts: $opts
48 | )
49 | .help(localizedCXPatcherString(forKey: "fastMathToggleHelp"))
50 | MTLHUDToggle(
51 | opts: $opts
52 | )
53 | .help(localizedCXPatcherString(forKey: "hudToggleHelp"))
54 | DisableUE4HackToggle(
55 | opts: $opts
56 | )
57 | .help(localizedCXPatcherString(forKey: "DisableUE4HackToggleHelp"))
58 | }.padding(20)
59 | .frame(width: 400.0)
60 | .fixedSize()
61 | }
62 |
63 | }
64 |
65 | struct Options_Previews: PreviewProvider {
66 | static var previews: some View {
67 | @State var opts = Opts()
68 | Options(opts: $opts)
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/Crossover patcher/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Crossover patcher/Resources/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/.DS_Store
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/32/d3d10.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/32/d3d10.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/32/d3d10_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/32/d3d10_1.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/32/d3d10core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/32/d3d10core.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/32/d3d11.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/32/d3d11.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/32/d3d9.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/32/d3d9.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/32/dxgi.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/32/dxgi.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/d3d10.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/d3d10.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/d3d10_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/d3d10_1.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/d3d10core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/d3d10core.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/d3d11.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/d3d11.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/d3d9.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/d3d9.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/64/dxgi.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/64/dxgi.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/i386-windows/ntdll.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/i386-windows/ntdll.dll
--------------------------------------------------------------------------------
/Crossover patcher/Resources/lib/wine64-preloader:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/Crossover patcher/Resources/lib/wine64-preloader
--------------------------------------------------------------------------------
/Crossover patcher/Selectors/AppSelector.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppSelector.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 11/07/2023.
6 | //
7 |
8 | import Foundation
9 |
10 | import SwiftUI
11 |
12 | struct AppSelector: View {
13 | @Binding var opts: Opts
14 | @State private var progressVisible: Bool = false
15 | @State private var total: Int32 = 300
16 | private func onPatch() {
17 | total = opts.getTotalProgress()
18 | progressVisible = true
19 | }
20 | var body: some View {
21 | VStack {
22 | RoundedRectangle(cornerRadius: 25)
23 | .stroke(getColorBy(status: opts.status), style: StrokeStyle(lineWidth: 6, dash: [11.7]))
24 | .foregroundColor(Color.black.opacity(0.5))
25 | .frame(width: 340, height: 300)
26 | .overlay(
27 | ZStack{
28 | VStack() {
29 | Image(systemName: getIconBy(status: opts.status)).foregroundColor(getColorBy(status: opts.status)).font(.system(size: 60))
30 | Text(getTextBy(status: opts.status))
31 | .foregroundColor(getColorBy(status: opts.status))
32 | .font(.title2)
33 | .fontWeight(.bold)
34 | .multilineTextAlignment(.center)
35 | .padding(20.0)
36 | ProgressDialog(opts: $opts, visible: $progressVisible, total: $total)
37 | }
38 | }
39 | )
40 | .contentShape(RoundedRectangle(cornerRadius: 25))
41 | .onTapGesture {
42 | if let url = openAppSelectorPanel() {
43 | restoreAndPatch(url: url, opts: &opts, onPatch: onPatch)
44 | }
45 | }
46 | .onDrop(of: [.fileURL], delegate: FileDropDelegate(opts: $opts, onPatch: onPatch))
47 | if(ENABLE_GSTREAMER == true) {
48 | if(isGStreamerInstalled()) {
49 | HStack(alignment: .center) {
50 | Image(systemName: "checkmark.seal.fill").foregroundColor(.green)
51 | Text(localizedCXPatcherString(forKey: "GStreamerInstalled"))
52 | }
53 | .padding(.top, 16.0)
54 | } else {
55 | Text(localizedCXPatcherString(forKey: "MediaFoundation"))
56 | .padding(.top, 6.0)
57 | .frame(alignment: .center)
58 | Link(localizedCXPatcherString(forKey: "DownloadGStreamer"), destination: URL(string: "https://gstreamer.freedesktop.org/data/pkg/osx/1.22.4/gstreamer-1.0-1.22.4-universal.pkg")!)
59 | .padding(.top, 6.0)
60 | .buttonStyle(.borderedProminent)
61 | }
62 | }
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Crossover patcher/Selectors/ExternalResourcesSelector.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ExternalResourcesSelector.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 11/07/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct ExternalResourcesSelector: View {
12 | @Binding var externalUrl: URL?
13 |
14 | var body: some View {
15 | RoundedRectangle(cornerRadius: 25)
16 | .foregroundColor(Color.white.opacity(0.5))
17 | .frame(width: 340, height: 200)
18 | .overlay(
19 | VStack(alignment: .center) {
20 | Text(localizedCXPatcherString(forKey: "ExternalResourcesLabel"))
21 | .font(.title2)
22 | Text(localizedCXPatcherString(forKey: "ExternalResourcesLocateText"))
23 | .padding(.vertical, 1.0)
24 | .multilineTextAlignment(.center)
25 | ExternalResButtonDialog(externalUrl: $externalUrl)
26 | .padding(.top, 6.0).controlSize(.large)
27 | }
28 | )
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/AutoUpdateDisableToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AutoUpdateDisableToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 05/11/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct AutoUpdateDisableToggle: View {
12 | @Binding var opts: Opts
13 |
14 | var body: some View {
15 | Toggle(isOn: $opts.autoUpdateDisable) {
16 | HStack(alignment: .center) {
17 | Image(systemName: "arrow.triangle.2.circlepath.circle")
18 | Text(localizedCXPatcherString(forKey: "DisableAutoUpdate"))
19 | Spacer()
20 | }
21 | }
22 | .padding(.vertical, 6.0)
23 | .toggleStyle(.switch)
24 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/BottlePathToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BottlePathToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 11/07/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct BottlesPathToggle: View {
12 | @Binding var opts: Opts
13 | @State var isEditable = false
14 | var customColor: Color? {
15 | return (opts.cxbottlesPath != DEFAULT_CX_BOTTLES_PATH) ? Color.green : nil
16 | }
17 | var body: some View {
18 | Toggle(isOn: $opts.overrideBottlePath) {
19 | VStack(alignment: .leading) {
20 | HStack(alignment: .center) {
21 | if(isEditable) {
22 | TextField("",
23 | text: $opts.cxbottlesPath
24 | )
25 | } else {
26 | Image(systemName: "waterbottle")
27 | Text(localizedCXPatcherString(forKey: "bottlesPathToggle"))
28 | .help(localizedCXPatcherString(forKey: "bottlesToggleHelp"))
29 | Spacer()
30 | Button() {
31 | let panel = NSOpenPanel()
32 | panel.allowsMultipleSelection = false
33 | panel.canChooseDirectories = true
34 | panel.canChooseFiles = false
35 | if panel.runModal() == .OK {
36 | opts.cxbottlesPath = panel.url?.path ?? DEFAULT_CX_BOTTLES_PATH
37 | }
38 | } label: {
39 | Image(systemName: "gear").foregroundColor(customColor)
40 | }
41 | .buttonStyle(.plain)
42 | .help(opts.cxbottlesPath)
43 |
44 | }
45 | }
46 | }
47 | }
48 | .padding(.vertical, 6.0)
49 | .toggleStyle(.switch)
50 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
51 | .disabled(isVentura)
52 | }
53 | }
54 |
55 | struct BottlesPathToggle_Previews: PreviewProvider {
56 | static var previews: some View {
57 | @State var opts = Opts()
58 | BottlesPathToggle(opts: $opts)
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/DXVKAsyncToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DXVKAsyncToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 04/12/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct DXVKAsyncToggle: View {
12 | @Binding var opts: Opts
13 |
14 | var body: some View {
15 | Toggle(isOn: $opts.globalEnvs.dxvkAsync) {
16 | HStack(alignment: .center) {
17 | Text(localizedCXPatcherString(forKey: "DXVKAsyncToggle"))
18 | Spacer()
19 | }
20 | }
21 | .padding(.vertical, 6.0)
22 | .toggleStyle(.switch)
23 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/DXVKToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DXVKToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 24/10/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct DXVKToggle: View {
12 | @Binding var opts: Opts
13 |
14 | var body: some View {
15 | Toggle(isOn: $opts.patchDXVK) {
16 | HStack(alignment: .center) {
17 | Image(systemName: "square.3.layers.3d.down.right")
18 | Text(localizedCXPatcherString(forKey: "Patch DXVK"))
19 | Spacer()
20 | }
21 | }
22 | .padding(.vertical, 6.0)
23 | .toggleStyle(.switch)
24 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/DisableUE4HackToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DisableUE4HackToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 08/12/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct DisableUE4HackToggle: View {
12 | @Binding var opts: Opts
13 |
14 | var body: some View {
15 | Toggle(isOn: $opts.globalEnvs.disableUE4Hack) {
16 | HStack(alignment: .center) {
17 | Text(localizedCXPatcherString(forKey: "DisableUE4HackToggle"))
18 | Spacer()
19 | }
20 | }
21 | .padding(.vertical, 6.0)
22 | .toggleStyle(.switch)
23 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/FastMathToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // FastMathToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 02/11/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct FastMathToggle: View {
12 | @Binding var opts: Opts
13 |
14 | var body: some View {
15 | Toggle(isOn: $opts.globalEnvs.fastMathDisabled) {
16 | HStack(alignment: .center) {
17 | // Image(systemName: "wand.and.stars")
18 | Text(localizedCXPatcherString(forKey: "DisableFastMathToggle"))
19 | Spacer()
20 | }
21 | }
22 | .padding(.vertical, 6.0)
23 | .toggleStyle(.switch)
24 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/IntegrateExternalsToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // IntegrateExternalsToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 11/07/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct IntegrateExternalsToggle: View {
12 | @Binding var copyGptk: Bool
13 | // @Binding var externalUrl: URL?
14 |
15 | var body: some View {
16 | Toggle(isOn: $copyGptk) {
17 | VStack(alignment: .leading) {
18 | HStack(alignment: .center) {
19 | Image(systemName: "wand.and.stars")
20 | Text(localizedCXPatcherString(forKey: "ExternalResourcesToggle"))
21 | Spacer()
22 | }
23 | if(isVentura) {
24 | HStack(alignment: .center) {
25 | Image(systemName: "exclamationmark.triangle.fill")
26 | Text("MacOS \(String(ProcessInfo().operatingSystemVersion.majorVersion)) \(localizedCXPatcherString(forKey: "unsupported"))")
27 | }.foregroundColor(.red)
28 | }
29 | }
30 | }
31 | .padding(.vertical, 6.0)
32 | .toggleStyle(.switch)
33 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
34 | .disabled(isVentura)
35 | .help(isVentura ? "GPTK is supported on Sonoma only" : "Enables installation of D3dMetal")
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/MTLHUDToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MTLHUDToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 02/11/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct MTLHUDToggle: View {
12 | @Binding var opts: Opts
13 |
14 | var body: some View {
15 | Toggle(isOn: $opts.globalEnvs.mtlHudEnabled) {
16 | HStack(alignment: .center) {
17 | // Image(systemName: "wand.and.stars")
18 | Text(localizedCXPatcherString(forKey: "MTLHUDToggle"))
19 | Spacer()
20 | }
21 | }
22 | .padding(.vertical, 6.0)
23 | .toggleStyle(.switch)
24 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/MoltenVKToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MoltenVKToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 24/10/2023.
6 | //
7 | import Foundation
8 | import SwiftUI
9 |
10 | struct MoltenVKToggle: View {
11 | @Binding var opts: Opts
12 |
13 | var body: some View {
14 | Picker(selection: $opts.patchMVK, label:
15 | HStack(alignment: .center) {
16 | Image(systemName: "square.3.layers.3d.down.right")
17 | Text(localizedCXPatcherString(forKey: "Patch MoltenVK"))
18 | }
19 | ) {
20 | Text(localizedCXPatcherString(forKey:"MVKdontPatch")).tag(PatchMVK.none)
21 | Text(localizedCXPatcherString(forKey:"MVKbaseline")).tag(PatchMVK.legacyUE4)
22 | Text(localizedCXPatcherString(forKey:"MVKexperimental")).tag(PatchMVK.latestUE4)
23 | }.pickerStyle(.menu)
24 | .padding(.vertical, 6.0)
25 | }
26 | }
27 |
28 | struct MoltenVKToggle_Previews: PreviewProvider {
29 | static var previews: some View {
30 | @State var opts = Opts()
31 | MoltenVKToggle(opts: $opts)
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/RemoveSignatureToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RemoveSignatureToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 24/10/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct RemoveSignatureToggle: View {
12 | @Binding var opts: Opts
13 |
14 | var body: some View {
15 | Toggle(isOn: $opts.removeSignaure) {
16 | HStack(alignment: .center) {
17 | Image(systemName: "signature")
18 | Text(localizedCXPatcherString(forKey: "Remove signature"))
19 | Spacer()
20 | }
21 | }
22 | .padding(.vertical, 6.0)
23 | .toggleStyle(.switch)
24 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/RepatchToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RepatchToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 11/07/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct RepatchToggle: View {
12 | @Binding var repatch: Bool
13 |
14 | var body: some View {
15 | Toggle(isOn: $repatch) {
16 | HStack(alignment: .center) {
17 | Image(systemName: "arrow.3.trianglepath")
18 | Text(localizedCXPatcherString(forKey: "AllowRepatchUpgradeToggle"))
19 | Spacer()
20 | }
21 | }
22 | .padding(.vertical, 6.0)
23 | .toggleStyle(.switch)
24 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Crossover patcher/Toggles/SkipVersionCheckToggle.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SkipVersionCheckToggle.swift
3 | // CXPatcher
4 | //
5 | // Created by Italo Mandara on 11/07/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct SkipVersionCheckToggle: View {
12 | @Binding var skipVersionCheck: Bool
13 |
14 | var body: some View {
15 | Toggle(isOn: $skipVersionCheck) {
16 | HStack(alignment: .center) {
17 | Image(systemName: "hazardsign.fill")
18 | Text(localizedCXPatcherString(forKey: "ForcePatch"))
19 | Spacer()
20 | }
21 | }
22 | .padding(.vertical, 6.0)
23 | .toggleStyle(.switch)
24 | .controlSize(/*@START_MENU_TOKEN@*/.mini/*@END_MENU_TOKEN@*/)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Crossover patcher/Utils.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Utils.swift
3 | // Crossover patcher
4 | //
5 | // Created by Italo Mandara on 03/04/2023.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | var isVentura: Bool {
12 | SKIP_VENTURA_CHECK ? false : ProcessInfo().operatingSystemVersion.majorVersion < 14
13 | }
14 |
15 | enum Status {
16 | case alreadyPatched
17 | case success
18 | case unpatched
19 | case error
20 | }
21 |
22 | struct Env {
23 | var key: String
24 | var value: String
25 | }
26 |
27 | struct GlobalEnvs {
28 | var fastMathDisabled = false
29 | var mtlHudEnabled = false
30 | var dxvkAsync = true
31 | var disableUE4Hack = false
32 | }
33 |
34 | enum PatchMVK {
35 | case legacyUE4
36 | case latestUE4
37 | case none
38 | }
39 |
40 | struct Opts {
41 | var showDisclaimer: Bool = true
42 | var status: Status = .unpatched
43 | var skipVersionCheck: Bool = false
44 | var repatch: Bool = false
45 | var overrideBottlePath: Bool = true
46 | var copyGptk = false
47 | var progress: Float = 0.0
48 | var busy: Bool = false
49 | var cxbottlesPath = DEFAULT_CX_BOTTLES_PATH
50 | var patchMVK: PatchMVK = PatchMVK.legacyUE4
51 | var autoUpdateDisable = true
52 | var patchDXVK = true
53 | var globalEnvs = GlobalEnvs()
54 | var removeSignaure = true
55 | func getTotalProgress() -> Int32 {
56 | if(self.copyGptk && self.repatch) {
57 | return 136
58 | }
59 | if(self.copyGptk) {
60 | return 75
61 | }
62 | if(self.repatch) {
63 | return 124
64 | }
65 | return 63
66 | }
67 | }
68 |
69 | var f = FileManager()
70 |
71 | private func getResourcesListFrom(url: URL) -> [(String, String)]{
72 | let list: [(String, String)] = WINE_RESOURCES_PATHS.map { path in
73 | (
74 | WINE_RESOURCES_ROOT + path,
75 | url.path + SHARED_SUPPORT_PATH + path
76 | )
77 | }
78 | return list
79 | }
80 |
81 | private func getDisableListFrom(url: URL) -> [String]{
82 | let list: [String] = FILES_TO_DISABLE.map { path in
83 | url.path + path
84 | }
85 | return list
86 | }
87 |
88 | private func getExternalResourcesList(url: URL) -> [(String, String)]{
89 | return EXTERNAL_WINE_PATHS.map { path in
90 | (
91 | "Crossover" + EXTERNAL_RESOURCES_ROOT + path,
92 | url.path + SHARED_SUPPORT_PATH + EXTERNAL_RESOURCES_ROOT + path
93 | )
94 | }
95 | }
96 |
97 | private func getBackupListFrom(url: URL) -> [String] {
98 | let internalRes = getResourcesListFrom(url: url).map { (_, path) in
99 | path + "_orig"
100 | }
101 | return internalRes
102 | }
103 |
104 | private func getExternalBackupListFrom(url: URL) -> [String] {
105 | let externalRes = EXTERNAL_WINE_PATHS.map { path in
106 | url.path + SHARED_SUPPORT_PATH + path + "_orig"
107 | }
108 | return externalRes
109 | }
110 |
111 | private func resCopy(res: String, dest: String) {
112 | if let sourceUrl = Bundle.main.url(forResource: res, withExtension: nil) {
113 | do { try f.copyItem(at: sourceUrl, to: URL(filePath: dest))
114 | print("\(res) copied")
115 | } catch {
116 | print(error)
117 | }
118 | } else {
119 | print("\(res) not found")
120 | }
121 | }
122 |
123 | private func safeResCopy(res: String, dest: String) {
124 | // print("moving \(dest + maybeExt(ext))")
125 | if(f.fileExists(atPath: dest)) {
126 | do {try f.moveItem(atPath: dest, toPath: dest + "_orig")
127 | } catch {
128 | print("\(dest) does not exist!")
129 | }
130 | } else {
131 | print("unexpected error: \(dest) doesn't have an original copy will just copy then")
132 | }
133 | resCopy(res: res, dest: dest)
134 | }
135 |
136 | private func safeFileCopy(source: String, dest: String) {
137 | // print("moving \(dest + maybeExt(ext))")
138 | if(f.fileExists(atPath: dest)) {
139 | do {try f.moveItem(atPath: dest, toPath: dest + "_orig")
140 | } catch {
141 | print("\(dest) does not exist!")
142 | }
143 | } else {
144 | print("file doesn't exist I'll just copy then")
145 | }
146 |
147 | do { try f.copyItem(at: URL(filePath: source), to: URL(filePath: dest))
148 | print("\(source) copied")
149 | } catch {
150 | print(error)
151 | }
152 |
153 | }
154 |
155 | private func restoreFile(dest: String) {
156 | if(f.fileExists(atPath: dest)) {
157 | do {try f.removeItem(atPath: dest)
158 | print("deleting \(dest)")
159 | } catch {
160 | print("can't delete file \(dest)")
161 | }
162 | } else {
163 | print("file \(dest) doesn't exist... ignoring and deleting just _orig if found")
164 | }
165 | if(f.fileExists(atPath: dest + "_orig")) {
166 | do {try f.moveItem(atPath: dest + "_orig", toPath: dest)
167 | print("copying \(dest)")
168 | } catch {
169 | print("can't move file \(dest)")
170 | }
171 | } else {
172 | print("file \(dest) doesn't exist... ignoring")
173 | }
174 | }
175 |
176 | private func disable(dest: String) {
177 | do {try f.moveItem(atPath: dest, toPath: dest + "_disabled")
178 | print("disabling \(dest)")
179 | } catch {
180 | print("can't move file \(dest)")
181 | }
182 | }
183 |
184 | private func enable(dest: String) {
185 | do {try f.moveItem(atPath: dest + "_disabled", toPath: dest)
186 | print("disabling \(dest)")
187 | } catch {
188 | print("can't move file \(dest)")
189 | }
190 | }
191 |
192 | func isAlreadyPatched(url: URL) -> Bool {
193 | let filesToCheck = getBackupListFrom(url: url)
194 | return filesToCheck.contains { path in
195 | return f.fileExists(atPath: path)
196 | }
197 | }
198 |
199 | struct CXPlist: Decodable {
200 | private enum CodingKeys: String, CodingKey {
201 | case CFBundleIdentifier, CFBundleShortVersionString
202 | }
203 |
204 | let CFBundleIdentifier: String
205 | let CFBundleShortVersionString: String
206 | }
207 |
208 | func parseCXPlist(plistPath: String) -> CXPlist {
209 | let data = try! Data(contentsOf: URL(filePath: plistPath))
210 | let decoder = PropertyListDecoder()
211 | return try! decoder.decode(CXPlist.self, from: data)
212 | }
213 |
214 | func isCrossoverApp(url: URL, version: String? = nil, skipVersionCheck: Bool? = false) -> Bool {
215 | let plistPath = url.path + "/Contents/Info.plist"
216 | if (f.fileExists(atPath: plistPath)) {
217 | let plist = parseCXPlist(plistPath: plistPath)
218 | if (plist.CFBundleIdentifier == "com.codeweavers.CrossOver" && skipVersionCheck == true) {
219 | return true
220 | }
221 | if (plist.CFBundleIdentifier == "com.codeweavers.CrossOver" && plist.CFBundleShortVersionString.starts(with: SUPPORTED_CROSSOVER_VERSION) ) {
222 | print("app version is ok: \(plist.CFBundleShortVersionString)")
223 | return true
224 | }
225 | }
226 | print("file doesn't exist at \(plistPath)")
227 | return false
228 | }
229 |
230 | func isGStreamerInstalled() -> Bool {
231 | if(f.fileExists(atPath: "/Library/Frameworks/GStreamer.framework")) {
232 | return true
233 | }
234 | return false
235 | }
236 |
237 | struct FileDropDelegate: DropDelegate {
238 | @Binding var opts: Opts
239 | public var onPatch: () -> Void = {}
240 | func performDrop(info: DropInfo) -> Bool {
241 | if let item = info.itemProviders(for: [.fileURL]).first {
242 | let _ = item.loadObject(ofClass: URL.self) { object, error in
243 | if let url = object {
244 | restoreAndPatch(url: url, opts: &opts, onPatch: onPatch)
245 | }
246 | }
247 | } else {
248 | return false
249 | }
250 | return true
251 | }
252 | }
253 |
254 | func openAppSelectorPanel() -> URL? {
255 | let panel = NSOpenPanel()
256 | panel.title = "Select the CrossOver app";
257 | panel.allowsMultipleSelection = false;
258 | panel.canChooseDirectories = false;
259 | panel.allowedContentTypes = [.application]
260 | return panel.runModal() == .OK ? panel.url?.absoluteURL : nil
261 | }
262 |
263 | func getColorBy(status: Status) -> Color {
264 | switch status {
265 | case .unpatched:
266 | return .gray
267 | case .success:
268 | return .green
269 | case .alreadyPatched:
270 | return .orange
271 | case .error:
272 | return .red
273 | }
274 | }
275 |
276 | func getIconBy(status: Status) -> String {
277 | switch status {
278 | case .unpatched:
279 | return "plus.app"
280 | case .success:
281 | return "checkmark.circle.fill"
282 | case .alreadyPatched:
283 | return "hand.raised.app.fill"
284 | case .error:
285 | return "x.circle.fill"
286 | }
287 | }
288 |
289 | func getTextBy(status: Status) -> String {
290 | switch status {
291 | case .error:
292 | return localizedCXPatcherString(forKey: "PatchStatusError")
293 | case .unpatched:
294 | return localizedCXPatcherString(forKey: "PatchStatusReady")
295 | case .success:
296 | return localizedCXPatcherString(forKey: "PatchStatusSuccess")
297 | case .alreadyPatched:
298 | return localizedCXPatcherString(forKey: "PatchStatusAlreadyPatched")
299 | }
300 | }
301 |
302 | func getExternalPathFrom(url: URL) -> String {
303 | return url.path + SHARED_SUPPORT_PATH + EXTERNAL_RESOURCES_ROOT
304 | }
305 |
306 | func hasExternal(url: URL) -> Bool{
307 | let path = getExternalPathFrom(url: url)
308 | return f.fileExists(atPath: path)
309 | }
310 |
311 | func patch(url: URL, opts: inout Opts) {
312 | if(ENABLE_BACKUP) {
313 | do
314 | {
315 | try backup(appRoot: url)
316 | }
317 | catch {
318 | print(error)
319 | print("couldn't create the backup")
320 | return
321 | }
322 | }
323 | let resources = getResourcesListFrom(url: url).filter { elem in
324 | opts.copyGptk ? true : !elem.0.contains("crossover.inf")
325 | }.filter { elem in
326 | opts.patchMVK == PatchMVK.legacyUE4 ? true : !elem.0.contains("libMoltenVK.dylib")
327 | }.filter { elem in
328 | opts.patchDXVK ? true : (!elem.0.contains("dxvk") && !elem.0.contains("dxvk"))
329 | }
330 | opts.progress += 1
331 | let filesToDisable = getDisableListFrom(url: url).filter { elem in
332 | opts.removeSignaure ? true : (!elem.contains("CodeResources") && !elem.contains("_CodeSignature"))
333 | }
334 | opts.progress += 1
335 | if(opts.copyGptk == true) {
336 | print("copying externals...")
337 | let externalResources = getExternalResourcesList(url: url)
338 | externalResources.forEach { resource in
339 | safeResCopy(res: resource.0, dest: resource.1)
340 | opts.progress += 1
341 | }
342 | }
343 | resources.forEach { resource in
344 | safeResCopy(res: resource.0, dest: resource.1)
345 | opts.progress += 1
346 | }
347 | if(opts.patchMVK == PatchMVK.latestUE4) {
348 | let latestMVKResource = (
349 | WINE_RESOURCES_ROOT + MOLTENVK_LATEST,
350 | url.path + SHARED_SUPPORT_PATH + MOLTENVK_BASELINE
351 | )
352 | safeResCopy(res: latestMVKResource.0, dest: latestMVKResource.1)
353 | }
354 | filesToDisable.forEach { file in
355 | disable(dest: file)
356 | opts.progress += 1
357 | }
358 | if(opts.overrideBottlePath == true) {
359 | addGlobals(url: url, opts: opts)
360 | }
361 | opts.progress += 1
362 | if(opts.autoUpdateDisable) {
363 | disableAutoUpdate(url: url)
364 | }
365 | opts.progress += 1
366 | opts.status = .success
367 | }
368 |
369 | func validateAndPatch(url: URL, opts: inout Opts, onPatch: () -> Void = {}) {
370 | if (isAlreadyPatched(url: url)) {
371 | print("App is already patched")
372 | opts.status = .alreadyPatched
373 | return
374 | }
375 | if(!isCrossoverApp(url: url, skipVersionCheck: opts.skipVersionCheck)) {
376 | print("it' s not crossover.app")
377 | opts.status = .error
378 | return
379 | }
380 | print("it's a crossover app")
381 | onPatch()
382 | patch(url: url, opts: &opts)
383 | return
384 | }
385 |
386 | func restoreApp(url: URL, opts: inout Opts, onRestore: () -> Void = {}) -> Bool {
387 | if(!isAlreadyPatched(url: url) || !isCrossoverApp(url: url)) {
388 | if(!isAlreadyPatched(url: url)) {
389 | print("it's not patched")
390 | }
391 | if (!isCrossoverApp(url: url)){
392 | print("it isn't a crossover app")
393 | }
394 |
395 | return false
396 | }
397 | onRestore()
398 | let filesToRestore = getResourcesListFrom(url: url)
399 | let filesToEnable = getDisableListFrom(url: url)
400 | if(hasExternal(url: url)) {
401 | let externalFilesToRestore = getExternalResourcesList(url: url)
402 | externalFilesToRestore.forEach { file in
403 | restoreFile(dest: file.1)
404 | }
405 | }
406 | filesToRestore.forEach { file in
407 | restoreFile(dest: file.1)
408 | opts.progress += 1
409 | }
410 | filesToEnable.forEach { file in
411 | enable(dest: file)
412 | opts.progress += 1
413 | }
414 | restoreAutoUpdate(url: url)
415 | opts.progress += 1
416 | removeGlobals(url: url)
417 | opts.progress += 1
418 | return true
419 | }
420 |
421 | func restoreAndPatch(url: URL, opts: inout Opts, onPatch: () -> Void = {}) {
422 | if (opts.busy) {
423 | return
424 | }
425 | opts.progress = 0.0
426 | opts.busy = true
427 | if opts.repatch && restoreApp(url: url, opts: &opts) {
428 | print("Restoring first...")
429 | }
430 | validateAndPatch(url: url, opts: &opts, onPatch: onPatch)
431 | opts.busy = false
432 | }
433 |
434 | func localizedCXPatcherString(forKey key: String) -> String {
435 | var message = Bundle.main.localizedString(forKey: key, value: nil, table: "Localizable")
436 | if message == key {
437 | let enPath = Bundle.main.path(forResource: "en", ofType: "lproj")
438 | let enBundle = Bundle(path: enPath!)
439 | message = enBundle?.localizedString(forKey: key, value: nil, table: "Localizable") ?? key
440 | }
441 | return message
442 | }
443 |
444 | func validate(input: String) -> Bool {
445 | if(input.lowercased() == localizedCXPatcherString(forKey:"confirmationValue").lowercased()) {
446 | return true
447 | }
448 | return false
449 | }
450 |
451 | private func editInfoPlist(at: URL, key: String, value: String) {
452 | let url = at.appendingPathComponent(PLIST_PATH)
453 | var plist: [String:Any] = [:]
454 | if let data = f.contents(atPath: url.path) {
455 | do {
456 | plist = try PropertyListSerialization.propertyList(from: data, options:PropertyListSerialization.ReadOptions(), format:nil) as! [String:Any]
457 | plist[key] = value
458 | print("set info property list \(key) = \(value)")
459 | } catch {
460 | print("\(error) - there was a problem parsing the xml")
461 | }
462 | }
463 | do {try f.moveItem(atPath: url.path, toPath: url.path + "_orig")
464 | } catch {
465 | print("\(url.path) does not exist!")
466 | }
467 | NSDictionary(dictionary: plist).write(to: url, atomically: true)
468 | }
469 |
470 | func disableAutoUpdate(url: URL) {
471 | editInfoPlist(at: url, key: "SUFeedURL", value: "")
472 | }
473 |
474 | func restoreAutoUpdate(url: URL) {
475 | let plistURL = url.appendingPathComponent(PLIST_PATH)
476 | restoreFile(dest: plistURL.path)
477 | print("restored original Info.plist")
478 | }
479 |
480 | func backup(appRoot: URL) throws {
481 | // let downloadsDirectory = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first!
482 | // var backupUrl = downloadsDirectory
483 | var backupUrl = appRoot
484 | let appName = appRoot.lastPathComponent.replacingOccurrences(of: ".app", with: "")
485 | backupUrl.deleteLastPathComponent()
486 | backupUrl.appendPathComponent(appName + "_original.app")
487 | print(backupUrl)
488 | try f.copyItem(at: appRoot, to: backupUrl)
489 | }
490 |
491 | private func appendLinesToFile(filePath: String, additionalLines: [String]) -> String {
492 | print("tryng to read \(filePath)")
493 | if let sourceUrl = Bundle.main.url(forResource: filePath, withExtension: nil) {
494 | print(sourceUrl)
495 | do { let text = try String(contentsOf: sourceUrl, encoding: .utf8)
496 | var finalLines: String = ""
497 | print("total envs: \(additionalLines.count)")
498 | for additionalLine in additionalLines {
499 | finalLines += additionalLine + "\n"
500 | print(additionalLine)
501 | }
502 | print(finalLines)
503 | return text + finalLines
504 | } catch {
505 | print("failed opening config file")
506 | }
507 | } else {
508 | print("\(filePath) not found")
509 | }
510 | return ""
511 | }
512 |
513 | private func toCrossoverENVString(_ key: String, _ value: String) -> String {
514 | return "\"\(key)\"=\"\(value)\""
515 | }
516 |
517 | private func getENVOverrideConfigfile(envs: [Env]) -> String {
518 | let filePath = WINE_RESOURCES_ROOT + BOTTLE_PATH_OVERRIDE
519 | let additionallines: [String] = envs.map { env in
520 | toCrossoverENVString(env.key, env.value)
521 | }
522 | return appendLinesToFile(filePath: filePath, additionalLines: additionallines)
523 | }
524 |
525 | func addGlobals(url: URL, opts: Opts) {
526 | disable(dest: url.path + SHARED_SUPPORT_PATH + BOTTLE_PATH_OVERRIDE)
527 | var envs: [Env] = [Env(key: "CX_BOTTLE_PATH", value: opts.cxbottlesPath)]
528 | if(opts.globalEnvs.mtlHudEnabled == true) {
529 | print("add mtlHudEnabled env")
530 | envs += [Env(key: "MTL_HUD_ENABLED", value: "1")]
531 | }
532 | if(opts.globalEnvs.fastMathDisabled == true) {
533 | print("add fastMathDisabled env")
534 | envs += [Env(key: "MVK_CONFIG_FAST_MATH_ENABLED", value: "0")]
535 | }
536 | if(opts.globalEnvs.dxvkAsync == true) {
537 | print("add DXVK async env")
538 | envs += [Env(key: "DXVK_ASYNC", value: "1")]
539 | }
540 | if(opts.globalEnvs.disableUE4Hack == true) {
541 | print("add UE4 disable env")
542 | envs += [Env(key: "NAS_DISABLE_UE4_HACK", value: "1")]
543 | }
544 |
545 | let file = getENVOverrideConfigfile(envs: envs)
546 | do {
547 | try file.write(to: url.appendingPathComponent(SHARED_SUPPORT_PATH + BOTTLE_PATH_OVERRIDE), atomically: false, encoding: .utf8)
548 | } catch {
549 | print(error)
550 | }
551 | }
552 |
553 | func removeGlobals(url: URL) {
554 | do {
555 | try f.removeItem(atPath: url.path + SHARED_SUPPORT_PATH + BOTTLE_PATH_OVERRIDE)
556 | } catch {
557 | print(error)
558 | }
559 | enable(dest: url.path + SHARED_SUPPORT_PATH + BOTTLE_PATH_OVERRIDE)
560 | }
561 |
--------------------------------------------------------------------------------
/Crossover patcher/de.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Zustimmen und Fortfahren";
2 | "AllowRepatchUpgradeToggle" = "Repatch/Upgrade zulassen";
3 | "Credits" = "Danksagungen:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Vielen Dank an die Entwickler hinter den DXVK- und MoltenVK-Patches für ihre großartige Hilfe und die Bereitstellung der Binärdateien.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "CodeWeavers-Downloadseite";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "CodeWeavers-Foren";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers unterstützt keine gepatchten oder geänderten CrossOver-Apps, siehe";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "bitte beachten Sie:";
15 | "DisclaimerText" = "Dies ist ein inoffizielles Patch-Programm für CrossOver, an dessen Entwicklung CodeWeavers in keiner Weise beteiligt ist. Obwohl diese Software getestet wurde, kann sie dazu führen, dass Ihre CrossOver-Installation unbrauchbar oder instabil wird. BENUTZUNG AUF EIGENE GEFAHR. Durch die Verwendung dieses Patchers erlischt auch jegliche offizielle Unterstützung von CodeWeavers.
16 |
17 | Sollten nach dem Patchen Ihrer Installation Probleme auftreten, können Sie eine neue Kopie von CrossOver von der CodeWeavers-Website herunterladen.";
18 | "ExternalResourcesButtonText" = "GPTK-Laufwerk finden";
19 | "ExternalResourcesLabel" = "Externes Framework installieren";
20 | "ExternalResourcesLocateText" = "Das GPTK-Laufwerk über die untenstehende Schaltfläche finden:";
21 | "ExternalResourcesPathLabelText" = "Pfad zum externen Ressourcenlaufwerks:";
22 | "ExternalResourcesToggle" = "D3DMetal (GPTK) integrieren";
23 | "ForcePatch" = "Patch erzwingen";
24 | "InstructionsAskWhatDo" = "Was macht dieses Programm?";
25 | "InstructionsButtonText" = "Anweisungen";
26 | "InstructionsFunctionDescription" = "Dieser Patcher ändert Ihre CrossOver-Installation so, dass aktualisierte und optimierte Versionen von DXVK und MoltenVK verwendet werden, was in einigen Fällen die Kompatibilität oder Leistung einiger Spiele verbessert.";
27 | "InstructionsText" = "Stellen Sie sicher, dass Sie über eine unveränderte Release-Version von CrossOver verfügen, die Sie von Ihrer CodeWeavers-Kontoseite heruntergeladen haben. Stellen Sie sicher, dass CrossOver registriert und mindestens einmal ausgeführt wurde, um sicherzustellen, dass das neueste DXVK ordnungsgemäß aktiviert ist. Möglicherweise müssen Sie DXVK in CrossOver ein- und ausschalten. Sollte Ihre CrossOver-Installation aus irgendeinem Grund unbrauchbar werden, können Sie sie erneut von der CodeWeavers-Website herunterladen. Dieser Patcher nimmt keine dauerhaften Änderungen an Ihren CrossOver-Flaschen vor.";
28 | "PatchStatusAlreadyPatched" = "Diese CrossOver.app wurde bereits gepatcht!";
29 | "PatchStatusError" = "CrossOver.app konnte nicht gepatcht werden. Bitte stellen Sie sicher, dass Sie versuchen, die Release-Version von CrossOver 22 von der CodeWeavers-Website zu patchen.";
30 | "PatchStatusReady" = "Ziehen Sie Ihre CrossOver.app hierhin \noder klicken Sie hier, um sie im Finder auszuwählen";
31 | "PatchStatusSuccess" = "CrossOver.app wurde erfolgreich gepatcht";
32 | "RestoreButtonLabel" = "Wiederherstellen";
33 | "RestoreConfirm" = "Cool!";
34 | "RestoreFailure" = "Entweder ist diese CrossOver.app nicht gepatcht oder sie wurde mit einer inkompatiblen Version von CXPatcher gepatcht.";
35 | "RestoreStatusLabel" = "CrossOver.app wiederherstellen";
36 | "RestoreSuccess" = "CrossOver.app wurde erfolgreich wiederhergestellt.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Damit die Media Foundation-Bibliotheken funktionieren, müssen Sie GStreamer installieren (Installation für alle Benutzer erforderlich).";
40 | "DownloadGStreamer" = "GStreamer herunterladen";
41 | "GStreamerInstalled" = "GStreamer ist bereits installiert";
42 | "waitFor" = "Wir warten darauf, dass Sie den Haftungsausschluss lesen und bestätigen";
43 | "confirmationValue" = "Ich werde CodeWeavers nicht um Unterstützung oder Rückerstattung bitten";
44 | "confirmation" = "Bitte geben Sie in das Eingabefeld unten „Ich werde CodeWeavers nicht um Unterstützung oder Rückerstattung bitten“ ein";
45 | "unsupported" = "nicht unterstützt";
46 | "bottlesPathToggle" = "Verwenden Sie einen separaten Flaschenweg";
47 | "optionsButtonText" = "Erweiterte Optionen";
48 | "options" = "Optionen";
49 | "MTLHUDToggle" = "METAL HUD immer aktiviert";
50 | "DisableFastMathToggle" = "Schnelle Mathematik deaktivieren";
51 | "DisableAutoUpdate" = "Automatische Crossover-Aktualisierung deaktivieren";
52 | "bottlesToggleHelp" = "Die Flaschen werden in einem anderen Ordner gespeichert. Crossover wird nicht die mit dem Standard-Crossover generierten Flaschen verwenden. Möglicherweise müssen Sie eine neue Flasche erstellen. Es gibt eine Option, um den Pfad anzupassen, in dem sich die Flaschen befinden.";
53 | "gptkToggleHelp" = "Aktualisiert die aktuellen Bibliotheken des Gameporting Toolkit";
54 | "mkvToggleHelp" = "Aktualisiert die MoltenVK-Bibliotheken (mit dem UE4 Hack)";
55 | "dxvkToggleHelp" = "Aktualisiert die DXVK-Bibliotheken";
56 | "signatureToggleHelp" = "Entfernt die App-Signatur, um GateKeeper-Probleme zu beheben (die App wird mit einem Rechtsklick geöffnet)";
57 | "autoUpdateToggleHelp" = "Deaktiviert die Update-Überprüfung von Crossover";
58 | "fastMathToggleHelp" = "Behebt einige Darstellungsprobleme bei einigen Spielen, die DXVK verwenden (LANGSAMER) für alle Flaschen";
59 | "hudToggleHelp" = "Aktiviert das Metal Hud für alle Flaschen";
60 | "MVKdontPatch" = "Nicht patchen";
61 | "MVKbaseline" = "Basis MVK + UE4 Hack";
62 | "MVKexperimental" = "Neueste MVK + UE4 Hack";
63 | "DXVKAsyncToggle" = "DXVK Asynchron";
64 | "DXVKAsyncToggleHelp" = "Aktiviert die asynchrone Kompilierung von DXVK-Shadern";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Agree and Proceed";
2 | "AllowRepatchUpgradeToggle" = "Allow repatch / upgrade";
3 | "Credits" = "Credits:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Many thanks to the developers behind the DXVK and MoltenVK patches for their great help and for providing the binaries.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "CodeWeavers Downloads Page";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "CodeWeavers forums";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers doesn't support patched or modified CrossOver apps, see the";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Please note:";
15 | "DisclaimerText" = "This is an unofficial patching program for CrossOver, and CodeWeavers is in no way involved in its development. Although it has been tested, this software may render your CrossOver installation unusable or unstable. USE AT YOUR OWN RISK. Use of this patcher will also void any official support from CodeWeavers.
16 |
17 | If you face any issues after your installation has been patched, you may download a new copy of CrossOver from the CodeWeavers website.";
18 | "ExternalResourcesButtonText" = "Locate GPTK drive";
19 | "ExternalResourcesLabel" = "Install external framework";
20 | "ExternalResourcesLocateText" = "Locate the GPTK drive using the button below:";
21 | "ExternalResourcesPathLabelText" = "External resource drive path:";
22 | "ExternalResourcesToggle" = "Integrate D3DMetal (GPTK)";
23 | "ForcePatch" = "Force Patch";
24 | "InstructionsAskWhatDo" = "What does this program do?";
25 | "InstructionsButtonText" = "Instructions";
26 | "InstructionsFunctionDescription" = "This patcher modifies your CrossOver installation to use updated and tweaked versions of DXVK and MoltenVK, which in some instances will improve compatibility or performance for some games.";
27 | "InstructionsText" = "Ensure you have an unmodified release version of CrossOver, as downloaded from your CodeWeavers account page. Make sure CrossOver has been registered and run at least once, to make sure the latest DXVK is activated properly. You may need to toggle DXVK off and on within CrossOver. If for any reason your CrossOver install has been rendered unusable, it can be downloaded again from the CodeWeavers website; this patcher will not make any permanent modifications to your CrossOver bottles.";
28 | "PatchStatusAlreadyPatched" = "This CrossOver.app has already been patched!";
29 | "PatchStatusError" = "This version of CrossOver is not supported. Please use CrossOver 22 from the CodeWeavers website.";
30 | "PatchStatusReady" = "Drop your CrossOver.app here \nor click to select it in Finder";
31 | "PatchStatusSuccess" = "CrossOver.app has been successfully patched";
32 | "RestoreButtonLabel" = "Restore";
33 | "RestoreConfirm" = "Cool!";
34 | "RestoreFailure" = "Either this CrossOver.app is unpatched, or was patched with an incompatible version of CXPatcher.";
35 | "RestoreStatusLabel" = "CrossOver.app Restore";
36 | "RestoreSuccess" = "CrossOver.app has been successfully restored.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "In order to make Media foundation libraries work you'll have to install GStreamer (Install for all users required)";
40 | "DownloadGStreamer" = "Download GStreamer";
41 | "GStreamerInstalled" = "GStreamer is already Installed";
42 | "waitFor" = "Waiting for you to read the disclaimer and confirm";
43 | "confirmationValue" = "I will not ask CodeWeavers for support or refund";
44 | "confirmation" = "Please type 'I will not ask CodeWeavers for support or refund' in the input field below";
45 | "unsupported" = "unsupported";
46 | "bottlesPathToggle" = "Use separate bottles path";
47 | "optionsButtonText" = "Advanced Options";
48 | "options" = "Options";
49 | "MTLHUDToggle" = "METAL HUD always on";
50 | "DisableFastMathToggle" = "Disable fast math";
51 | "DisableAutoUpdate" = "Disable Crossover auto update";
52 | "bottlesToggleHelp" = "Bottles will be saved in a different folder, crossover won't use the bottles generated with stock Crossover, you may need to create a new bottle, there's an option to customize the path where the bottles are located";
53 | "gptkToggleHelp" = "Updates the current Gameporting toolkit libraries";
54 | "mkvToggleHelp" = "Updates MoltenVK (with the UE4 Hack)";
55 | "dxvkToggleHelp" = "Updates DXVK libraries";
56 | "signatureToggleHelp" = "removes app signature to fix GateKeeper issues (app will open with the right click)";
57 | "autoUpdateToggleHelp" = "Disable Crossover's update check prompt";
58 | "fastMathToggleHelp" = "Fixes some rendering issues with some games using DXVK (SLOWER) for all bottles";
59 | "hudToggleHelp" = "Enables The Metal Hud For all bottles";
60 | "MVKdontPatch" = "Don't patch";
61 | "MVKbaseline" = "Base MVK + UE4 hack";
62 | "MVKexperimental" = "Latest MVK + UE4 hack";
63 | "DXVKAsyncToggle" = "DXVK Async";
64 | "DXVKAsyncToggleHelp" = "Enables DXVK Asynchronous Shader compilation";
65 | "DisableUE4HackToggle" = "Disable UE4 Hack";
66 | "DisableUE4HackToggleHelp" = "Disables the UE4 Hack (use this option if you have graphical issues)";
67 |
--------------------------------------------------------------------------------
/Crossover patcher/es.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Aceptar y continuar";
2 | "AllowRepatchUpgradeToggle" = "Permitir volver a parchear / actualizar";
3 | "Credits" = "Créditos:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Muchas gracias a los desarrolladores que están detrás de los parches DXVK y MoltenVK por su gran ayuda y su proporción de los binarios.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "Página de descarga de CodeWeavers";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "Foros de CodeWeavers";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers no ofrece soporte para versiones de su software parcheado o modificado. Ver";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Ten en cuenta:";
15 | "DisclaimerText" = "Este software de parcheo no es oficial de CrossOver, por ende CodeWeavers no está involucrado en ningún ámbito del desarrollo. Aunque el software ha sido probado, puede generar que tu instalación de CrossOver se vuelva inutilizable o inestable. ÚSELO BAJO SU PROPIO RIESGO. El uso de éste parche anulará todo soporte oficial de CodeWeavers.
16 |
17 | Si encuentras algún problema después de parchear CrossOver, puedes descargar una nueva copia desde el sitio web de CodeWeavers.";
18 | "ExternalResourcesButtonText" = "Localizar unidad GPTK";
19 | "ExternalResourcesLabel" = "Instalar framework externo";
20 | "ExternalResourcesLocateText" = "Localiza la unidad GPTK usando el botón a continuación: ";
21 | "ExternalResourcesPathLabelText" = "Ruta de unidad de recursos externos:";
22 | "ExternalResourcesToggle" = "Integrar D3DMetal (GPTK)";
23 | "ForcePatch" = "Forzar parche";
24 | "InstructionsAskWhatDo" = "¿Qué hace este programa?";
25 | "InstructionsButtonText" = "Instrucciones";
26 | "InstructionsFunctionDescription" = "Este parche modifica tu instalación de CrossOver para usar versiones actualizadas y ajustadas de DXVK y MoltenVK, lo que en algunos casos mejorará la compatibilidad y/o el rendimiento para algunos juegos.";
27 | "InstructionsText" = "Asegúrate de tener una versión sin modificar de CrossOver descargada de la página web de CodeWeavers. Verifica que CrossOver esté registrado y se haya ejecutado al menos una vez para asegurarse de que la última versión de DXVK esté activada correctamente. Es posible que debas desactivar y volver a activar DXVK en CrossOver. Si por alguna razón tu instalación de CrossOver se vuelve inutilizable, puedes descargar nuevamente el instalador de la página web de CodeWeavers; este parche no realizará modificaciones permanentes en tus botellas de CrossOver.";
28 | "PatchStatusAlreadyPatched" = "¡La aplicación CrossOver.app ya ha sido parcheada!";
29 | "PatchStatusError" = "No se pudo parchear CrossOver.app. Por favor, verifica que estás intentando parchear la última versión de CrossOver 22 descargada del sitio web de CodeWeavers.";
30 | "PatchStatusReady" = "Suelta CrossOver.app aquí \no haz clic para seleccionarlo desde Finder";
31 | "PatchStatusSuccess" = "¡CrossOver.app ha sido correctamente parcheada!";
32 | "RestoreButtonLabel" = "Restaurar";
33 | "RestoreConfirm" = "¡Listo!";
34 | "RestoreFailure" = "CrossOver.app no tiene parche o fue parcheado con una versión incompatible de CXPatcher.";
35 | "RestoreStatusLabel" = "Restaurar CrossOver.app";
36 | "RestoreSuccess" = "¡CrossOver.app ha sido restaurada correctamente!";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Para que las bibliotecas de Media Foundation funcionen, debe instalar GStreamer. (Instalación requerida en todos los usuarios)";
40 | "DownloadGStreamer" = "Descargar GStreamer";
41 | "GStreamerInstalled" = "GStreamer ya está instalado";
42 | "waitFor" = "Esperando lectura y confirmación de descargo de responsabilidad";
43 | "confirmationValue" = "No demandaré ayuda a CodeWeavers por soporte o reembolso";
44 | "confirmation" = "Por favor, escribe en el campo inferior 'No demandaré ayuda a CodeWeavers por soporte o reembolso'.";
45 | "unsupported" = "sin apoyo";
46 | "bottlesPathToggle" = "Usa una ruta separada para las botellas";
47 | "optionsButtonText" = "Opciones Avanzadas";
48 | "options" = "Opciones";
49 | "MTLHUDToggle" = "METAL HUD siempre activo";
50 | "DisableFastMathToggle" = "Desactivar matemáticas rápidas";
51 | "DisableAutoUpdate" = "Desactivar la actualización automática de CrossOver";
52 | "bottlesToggleHelp" = "Las botellas se guardarán en una carpeta diferente, Crossover no utilizará las botellas generadas con Crossover estándar, es posible que necesite crear una nueva botella, hay una opción para personalizar la ruta donde se encuentran las botellas";
53 | "gptkToggleHelp" = "Actualiza las bibliotecas actuales del Gameporting toolkit";
54 | "mkvToggleHelp" = "Actualiza las bibliotecas de MoltenVK (con el Hack de UE4)";
55 | "dxvkToggleHelp" = "Actualiza las bibliotecas de DXVK";
56 | "signatureToggleHelp" = "Elimina la firma de la aplicación para solucionar problemas de GateKeeper (la aplicación se abrirá con clic derecho)";
57 | "autoUpdateToggleHelp" = "Desactiva la comprobación de actualizaciones de Crossover";
58 | "fastMathToggleHelp" = "Corrige algunos problemas de renderización en algunos juegos que utilizan DXVK (MÁS LENTO) para todas las botellas";
59 | "hudToggleHelp" = "Habilita el Hud de Metal para todas las botellas";
60 | "MVKdontPatch" = "No patch";
61 | "MVKbaseline" = "Base MVK + UE4 fix";
62 | "MVKexperimental" = "Última versión MVK + UE4 fix";
63 | "DXVKAsyncToggle" = "DXVK Asíncrono";
64 | "DXVKAsyncToggleHelp" = "Habilita la compilación de sombreadores asincrónica de DXVK";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/fr.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Accepter et continuer";
2 | "AllowRepatchUpgradeToggle" = "Autoriser le repatch / la mise à niveau";
3 | "Credits" = "Crédits :";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Un grand merci aux développeurs derrière les correctifs DXVK et MoltenVK pour leur précieuse aide et la fourniture des binaires.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "Page de téléchargements de CodeWeavers";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "Forums de CodeWeavers";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers ne prend pas en charge les applications CrossOver modifiées ou patchées, voir";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Veuillez noter :";
15 | "DisclaimerText" = "Il s'agit d'un programme de patch non officiel pour CrossOver, et CodeWeavers n'est en aucun cas impliqué dans son développement. Bien qu'il ait été testé, ce logiciel peut rendre votre installation de CrossOver inutilisable ou instable. UTILISEZ À VOS PROPRES RISQUES. L'utilisation de ce patch annulera également tout support officiel de la part de CodeWeavers.
16 |
17 | Si vous rencontrez des problèmes après avoir appliqué le patch, vous pouvez télécharger une nouvelle copie de CrossOver depuis le site web de CodeWeavers.";
18 | "ExternalResourcesButtonText" = "Localiser le lecteur GPTK";
19 | "ExternalResourcesLabel" = "Installer le framework externe";
20 | "ExternalResourcesLocateText" = "Localisez le lecteur GPTK à l'aide du bouton ci-dessous :";
21 | "ExternalResourcesPathLabelText" = "Chemin du lecteur de ressources externe :";
22 | "ExternalResourcesToggle" = "Intégrer D3DMetal (GPTK)";
23 | "ForcePatch" = "Forcer le patch";
24 | "InstructionsAskWhatDo" = "Que fait ce programme ?";
25 | "InstructionsButtonText" = "Instructions";
26 | "InstructionsFunctionDescription" = "Ce patch modifie votre installation de CrossOver pour utiliser des versions mises à jour et optimisées de DXVK et MoltenVK, ce qui améliorera parfois la compatibilité ou les performances pour certains jeux.";
27 | "InstructionsText" = "Assurez-vous d'avoir une version non modifiée de CrossOver téléchargée depuis votre page de compte CodeWeavers. Assurez-vous que CrossOver est enregistré et exécuté au moins une fois, pour vous assurer que la dernière version de DXVK est activée correctement. Vous devrez peut-être activer et désactiver DXVK dans CrossOver. Si, pour une raison quelconque, votre installation de CrossOver devient inutilisable, vous pouvez la télécharger à nouveau depuis le site web de CodeWeavers ; ce patch ne fera aucune modification permanente à vos conteneurs CrossOver.";
28 | "PatchStatusAlreadyPatched" = "Cette application CrossOver.app a déjà été patchée !";
29 | "PatchStatusError" = "Impossible de patcher CrossOver.app. Veuillez vérifier que vous tentez de patcher la version de sortie de CrossOver 22 à partir du site web de CodeWeavers.";
30 | "PatchStatusReady" = "Déposez votre CrossOver.app ici\nou cliquez pour la sélectionner dans Finder";
31 | "PatchStatusSuccess" = "CrossOver.app a été correctement patchée";
32 | "RestoreButtonLabel" = "Restaurer";
33 | "RestoreConfirm" = "Bien !";
34 | "RestoreFailure" = "Soit cette CrossOver.app n'est pas patchée, soit elle a été patchée avec une version incompatible de CXPatcher.";
35 | "RestoreStatusLabel" = "Restauration de CrossOver.app";
36 | "RestoreSuccess" = "CrossOver.app a été restaurée avec succès.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Pour faire fonctionner les bibliothèques de Media Foundation, vous devez installer GStreamer (Installation requise pour tous les utilisateurs)";
40 | "DownloadGStreamer" = "Télécharger GStreamer";
41 | "GStreamerInstalled" = "GStreamer est déjà installé";
42 | "waitFor" = "En attente de votre lecture de la clause de non-responsabilité et de votre confirmation";
43 | "confirmationValue" = "Je ne demanderai pas de support ou de remboursement à CodeWeavers";
44 | "confirmation" = "Veuillez taper 'Je ne demanderai pas de support ou de remboursement à CodeWeavers' dans le champ de saisie ci-dessous";
45 | "unsupported" = "non pris en charge";
46 | "bottlesPathToggle" = "Utilisez un chemin séparé pour les bouteilles";
47 | "optionsButtonText" = "Options Avancées";
48 | "options" = "Options";
49 | "MTLHUDToggle" = "METAL HUD toujours activé";
50 | "DisableFastMathToggle" = "Désactiver les calculs rapides";
51 | "DisableAutoUpdate" = "Désactiver la mise à jour automatique de Crossover";
52 | "bottlesToggleHelp" = "Les bouteilles seront enregistrées dans un dossier différent, Crossover n'utilisera pas les bouteilles générées avec le Crossover standard, vous devrez peut-être créer une nouvelle bouteille, il existe une option pour personnaliser le chemin où sont situées les bouteilles";
53 | "gptkToggleHelp" = "Mise à jour des bibliothèques actuelles de l'outil Gameporting";
54 | "mkvToggleHelp" = "Mise à jour de MoltenVK (avec le Hack UE4)";
55 | "dxvkToggleHelp" = "Mise à jour des bibliothèques DXVK";
56 | "signatureToggleHelp" = "Supprime la signature de l'application pour résoudre les problèmes de GateKeeper (l'application s'ouvrira avec le clic droit)";
57 | "autoUpdateToggleHelp" = "Désactive la vérification des mises à jour de Crossover";
58 | "fastMathToggleHelp" = "Corrige certains problèmes d'affichage dans certains jeux utilisant DXVK (PLUS LENT) pour toutes les bouteilles";
59 | "hudToggleHelp" = "Active le Hud Metal pour toutes les bouteilles";
60 | "MVKdontPatch" = "Ne pas patcher";
61 | "MVKbaseline" = "Base MVK + astuce UE4";
62 | "MVKexperimental" = "Dernière version MVK + astuce UE4";
63 | "DXVKAsyncToggle" = "DXVK Asynchrone";
64 | "DXVKAsyncToggleHelp" = "Active la compilation asynchrone des shaders DXVK";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/it.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Accetta e Procedi";
2 | "AllowRepatchUpgradeToggle" = "Consenti ripatch / aggiornamento";
3 | "Credits" = "Crediti:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Un grande ringraziamento agli sviluppatori dietro le patch DXVK e MoltenVK per il loro grande aiuto e per la fornitura delle librerie.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "Pagina dei download di CodeWeavers";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "Forum di CodeWeavers";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers non supporta applicazioni CrossOver patchate o modificate, consulta il link:";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Nota bene:";
15 | "DisclaimerText" = "Questo è un programma di patching non ufficiale per CrossOver, e CodeWeavers non è in alcun modo coinvolto nel suo sviluppo. Sebbene sia stato testato, questo software potrebbe rendere la tua installazione di CrossOver inutilizzabile o instabile. USALO A TUO RISCHIO. L'utilizzo di questo patcher annullerà anche qualsiasi supporto ufficiale da parte di CodeWeavers.
16 |
17 | Se incontri problemi dopo aver patchato la tua installazione, puoi scaricare una nuova copia di CrossOver dal sito web di CodeWeavers.";
18 | "ExternalResourcesButtonText" = "Imposta drive GPTK";
19 | "ExternalResourcesLabel" = "Installa framework esterno";
20 | "ExternalResourcesLocateText" = "Cerca il drive GPTK utilizzando il pulsante sottostante:";
21 | "ExternalResourcesPathLabelText" = "Percorso dell'unità di risorse esterne:";
22 | "ExternalResourcesToggle" = "Integra D3DMetal (GPTK)";
23 | "ForcePatch" = "Forza Patch";
24 | "InstructionsAskWhatDo" = "Cosa fa questo programma?";
25 | "InstructionsButtonText" = "Istruzioni";
26 | "InstructionsFunctionDescription" = "Questo patcher modifica la tua installazione di CrossOver utilizzando versioni aggiornate e ottimizzate di DXVK e MoltenVK, che in alcuni casi miglioreranno la compatibilità o le prestazioni per alcuni giochi.";
27 | "InstructionsText" = "Assicurati di avere una versione non modificata di CrossOver, scaricata dalla pagina del tuo account CodeWeavers. Assicurati che CrossOver sia stato registrato ed eseguito almeno una volta, per assicurarti che l'ultima versione di DXVK sia attivata correttamente. Potrebbe essere necessario attivare e disattivare DXVK all'interno di CrossOver. Se per qualsiasi motivo la tua installazione di CrossOver diventa inutilizzabile, puoi scaricarla nuovamente dal sito web di CodeWeavers; questo patcher non apporterà modifiche permanenti alle tue bottiglie di CrossOver.";
28 | "PatchStatusAlreadyPatched" = "Questa applicazione CrossOver.app è già stata patchata!";
29 | "PatchStatusError" = "Impossibile applicare la patch a CrossOver.app. Verifica di stai cercando di applicare la patch alla versione ufficiale di CrossOver 22 dal sito web di CodeWeavers.";
30 | "PatchStatusReady" = "Trascina qui la tua applicazione CrossOver.app \no fai clic per selezionarla in Finder";
31 | "PatchStatusSuccess" = "CrossOver.app è stata patchata con successo";
32 | "RestoreButtonLabel" = "Ripristina";
33 | "RestoreConfirm" = "Fatto!";
34 | "RestoreFailure" = "Questa applicazione CrossOver.app non è stata patchata o è stata patchata con una versione incompatibile di CXPatcher.";
35 | "RestoreStatusLabel" = "Ripristino di CrossOver.app";
36 | "RestoreSuccess" = "CrossOver.app è stata ripristinata con successo.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Per far funzionare le librerie di Media Foundation devi installare GStreamer (Installazione richiesta per tutti gli utenti)";
40 | "DownloadGStreamer" = "Scarica GStreamer";
41 | "GStreamerInstalled" = "GStreamer è già installato";
42 | "waitFor" = "In attesa che tu legga il disclaimer e confermi";
43 | "confirmationValue" = "Non chiederò supporto o rimborso a CodeWeavers";
44 | "confirmation" = "Per favore, digita 'Non chiederò supporto o rimborso a CodeWeavers' nel campo di input sottostante";
45 | "unsupported" = "non supportatato";
46 | "bottlesPathToggle" = "Usa un percorso separato per le bottles";
47 | "optionsButtonText" = "Opzioni Avanzate";
48 | "options" = "Opzioni";
49 | "MTLHUDToggle" = "METAL HUD sempre attivo";
50 | "DisableFastMathToggle" = "Disabilita FastMath";
51 | "DisableAutoUpdate" = "Disabilita l'aggiornamento automatico di Crossover";
52 | "bottlesToggleHelp" = "Le bottiglie verranno salvate in una cartella diversa, Crossover non utilizzerà le bottiglie generate con Crossover predefinito, potrebbe essere necessario creare una nuova bottiglia, c'è un'opzione per personalizzare il percorso in cui sono collocate le bottiglie";
53 | "gptkToggleHelp" = "Aggiorna le librerie attuali del Gameporting toolkit";
54 | "mkvToggleHelp" = "Aggiorna MoltenVK (con l'Hack UE4)";
55 | "dxvkToggleHelp" = "Aggiorna le librerie DXVK";
56 | "signatureToggleHelp" = "Rimuove la firma dell'applicazione per risolvere i problemi di GateKeeper (l'applicazione si aprirà con il clic destro)";
57 | "autoUpdateToggleHelp" = "Disabilita la verifica dell'aggiornamento di Crossover";
58 | "fastMathToggleHelp" = "Corregge alcuni problemi di rendering con alcuni giochi che utilizzano DXVK (PIÙ LENTO) per tutte le bottiglie";
59 | "hudToggleHelp" = "Abilita Metal Hud per tutte le bottiglie";
60 | "MVKdontPatch" = "Nessuna patch";
61 | "MVKbaseline" = "Base MVK + trucco UE4";
62 | "MVKexperimental" = "Ultima versione MVK + trucco UE4";
63 | "DXVKAsyncToggle" = "DXVK Asincrono";
64 | "DXVKAsyncToggleHelp" = "Abilita la compilazione asincrona degli shader per DXVK";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/ja.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "同意して進む";
2 | "AllowRepatchUpgradeToggle" = "リパッチ/アップグレードを許可する";
3 | "Credits" = "クレジット:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "DXVKとMoltenVKのパッチを開発してくれた開発者に感謝の意を表します。彼らの素晴らしい助けとバイナリの提供に感謝します。";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "CodeWeaversダウンロードページ";
9 | "CrossOverPatcher" = "CXパッチャー";
10 | "CWForums" = "CodeWeaversフォーラム";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeaversはパッチされたまたは変更されたCrossOverアプリをサポートしていません。以下を参照してください";
13 | "CXPatcherName" = "CXパッチャー";
14 | "DisclaimerPleaseNoteLabelText" = "ご注意ください:";
15 | "DisclaimerText" = "これはCrossOverの非公式のパッチプログラムであり、CodeWeaversはその開発に一切関与していません。テストされていますが、このソフトウェアはCrossOverのインストールを使用不能または不安定にする可能性があります。自己責任で使用してください。このパッチャーの使用により、CodeWeaversの公式サポートは無効になります。
16 |
17 | インストールがパッチされた後に問題が発生した場合は、CodeWeaversのウェブサイトから新しいCrossOverのコピーをダウンロードできます。";
18 | "ExternalResourcesButtonText" = "GPTKドライブの場所を特定する";
19 | "ExternalResourcesLabel" = "外部フレームワークをインストール";
20 | "ExternalResourcesLocateText" = "以下のボタンを使用してGPTKドライブを特定してください:";
21 | "ExternalResourcesPathLabelText" = "外部リソースドライブのパス:";
22 | "ExternalResourcesToggle" = "D3DMetal(GPTK)を統合する";
23 | "ForcePatch" = "パッチを強制する";
24 | "InstructionsAskWhatDo" = "このプログラムは何をするのですか?";
25 | "InstructionsButtonText" = "手順";
26 | "InstructionsFunctionDescription" = "このパッチャーは、CrossOverのインストールを更新および調整されたバージョンのDXVKとMoltenVKを使用するように変更します。これにより、一部のゲームの互換性やパフォーマンスが向上する場合があります。";
27 | "InstructionsText" = "CodeWeaversアカウントページからダウンロードした未変更のリリース版CrossOverを使用してください。最新のDXVKが正しくアクティブ化されるように、CrossOverを登録して少なくとも1回実行してください。CrossOver内でDXVKをオンとオフに切り替える必要があるかもしれません。何らかの理由でCrossOverのインストールが使用不能になった場合は、CodeWeaversのウェブサイトから再度ダウンロードすることができます。このパッチャーはCrossOverのボトルに永続的な変更を加えません。";
28 | "PatchStatusAlreadyPatched" = "このCrossOver.appはすでにパッチが適用されています!";
29 | "PatchStatusError" = "CrossOver.appのパッチを適用できませんでした。CodeWeaversのウェブサイトからリリースバージョンのCrossOver 22をパッチしようとしていることを確認してください。";
30 | "PatchStatusReady" = "CrossOver.appをここにドロップする\nまたはFinderで選択するためにクリックしてください";
31 | "PatchStatusSuccess" = "CrossOver.appは正常にパッチが適用されました";
32 | "RestoreButtonLabel" = "元に戻す";
33 | "RestoreConfirm" = "完了!";
34 | "RestoreFailure" = "このCrossOver.appは未パッチであるか、CXPatcherの互換性のないバージョンでパッチが適用されています。";
35 | "RestoreStatusLabel" = "CrossOver.appの復元";
36 | "RestoreSuccess" = "CrossOver.appは正常に復元されました。";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Media Foundation ライブラリを動作させるためには、GStreamer をインストールする必要があります(すべてのユーザーに対してインストールが必要です)";
40 | "DownloadGStreamer" = "GStreamerをダウンロード";
41 | "GStreamerInstalled" = "GStreamerはすでにインストールされています";
42 | "waitFor" = "免責事項を読んで確認するのを待っています";
43 | "confirmationValue" = "CodeWeaversにサポートや返金を要求しないでください";
44 | "confirmation" = "以下の入力欄に「CodeWeaversにサポートや返金を要求しないでください」と入力してください";
45 | "unsupported" = "サポートされていない";
46 | "bottlesPathToggle" = "別々のボトルの経路を使用してください";
47 | "optionsButtonText" = "詳細オプション";
48 | "options" = "オプション";
49 | "MTLHUDToggle" = "METAL HUD 常にオン";
50 | "DisableFastMathToggle" = "高速計算を無効にする";
51 | "DisableAutoUpdate" = "Crossover の自動更新を無効にする";
52 | "bottlesToggleHelp" = "ボトルは異なるフォルダに保存され、Crossover は標準の Crossover で生成されたボトルを使用しません。新しいボトルを作成する必要がある場合があり、ボトルが保存されるパスをカスタマイズするオプションがあります";
53 | "gptkToggleHelp" = "現在のゲームポーティング ツールキット ライブラリを更新";
54 | "mkvToggleHelp" = "MoltenVK(UE4 ハックを使用)を更新";
55 | "dxvkToggleHelp" = "DXVK ライブラリを更新";
56 | "signatureToggleHelp" = "GateKeeper の問題を修正するためにアプリケーションの署名を削除します(アプリケーションは右クリックで開きます)";
57 | "autoUpdateToggleHelp" = "Crossover の更新チェックプロンプトを無効にする";
58 | "fastMathToggleHelp" = "一部のゲームのレンダリングの問題を修正します(すべてのボトルで DXVK を使用)";
59 | "hudToggleHelp" = "すべてのボトルに Metal Hud を有効にする";
60 | "MVKdontPatch" = "パッチしないでください";
61 | "MVKbaseline" = "基本 MVK + UE4 ハック";
62 | "MVKexperimental" = "最新の MVK + UE4 ハック";
63 | "DXVKAsyncToggle" = "DXVK 非同期";
64 | "DXVKAsyncToggleHelp" = "DXVK 非同期シェーダーコンパイルを有効にします";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/pl.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Zgadzam się i kontynuuj";
2 | "AllowRepatchUpgradeToggle" = "Zezwalaj na ponowne łatanie / aktualizację";
3 | "Credits" = "Podziękowania:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Szczególne podziękowania dla deweloperów odpowiedzialnych za łatki DXVK oraz MoltenVK za ich ogromną pomoc i udostępnienie niezbędnych plików.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "stronę pobierania CodeWeavers";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "forum CodeWeavers";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "Aby uzyskać więcej informacji, odwiedź";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Uwaga:";
15 | "DisclaimerText" = "To jest nieoficjalny program umożliwiający łatanie programu CrossOver. CodeWeavers nie jest w żaden sposób związane z pracami i rozwojem tego programu. Pomimo przeprowadzonych testów, to oprogramowanie może spowodować, że CrossOver będzie działał w nieprawidłowy sposób. KORZYSTASZ NA WŁASNE RYZYKO. Korzystanie z tego oprogramowania narusza warunki oficjalnego wsparcia ze strony CodeWeavers.
16 |
17 | Jeśli napotkasz jakiekolwiek problemy z instalacją CrossOver, możesz pobrać nową kopię CrossOver ze strony CodeWeavers.";
18 | "ExternalResourcesButtonText" = "Zlokalizuj dysk GPTK";
19 | "ExternalResourcesLabel" = "Zainstaluj zewnętrzną platformę";
20 | "ExternalResourcesLocateText" = "Zlokalizuj dysk GPTK za pomocą poniższego przycisku:";
21 | "ExternalResourcesPathLabelText" = "Ścieżka dysku zewnętrznego zasobu:";
22 | "ExternalResourcesToggle" = "Integracja D3DMetal (GPTK)";
23 | "ForcePatch" = "Wymuś łatanie";
24 | "InstructionsAskWhatDo" = "Co umożliwia ten program?";
25 | "InstructionsButtonText" = "Instrukcja";
26 | "InstructionsFunctionDescription" = "Ten program poprzez łatkę modyfikuje Twoją instalację CrossOver, aby używała zaktualizowanych i dostosowanych wersji DXVK i MoltenVK, co w niektórych przypadkach poprawia kompatybilność lub wydajność niektórych gier.";
27 | "InstructionsText" = "Upewnij się, że masz niezmodyfikowaną wydanie CrossOver pobraną ze strony swojego konta w CodeWeavers. Upewnij się, że CrossOver został zarejestrowany i uruchomiony przynajmniej raz, aby upewnić się, że najnowsza wersja DXVK została poprawnie aktywowana. Może być konieczne przełączenie DXVK na wyłączony i ponownie włączony w CrossOver. Jeśli z jakiegoś powodu Twoja instalacja CrossOver stała się nieużywalna, można ją ponownie pobrać ze strony internetowej CodeWeavers. Ten program łatający nie wprowadzi żadnych trwałych modyfikacji do Twoich butelek CrossOver.";
28 | "PatchStatusAlreadyPatched" = "Ta wersja CrossOver.app została juz wcześniej załatana!";
29 | "PatchStatusError" = "Nie udało się załatać CrossOver.app. Proszę upewnij się, że próbujesz załatać stabilną wersję CrossOver 22 ze strony CodeWeavers.";
30 | "PatchStatusReady" = "Upuść CrossOver.app tutaj \nlub kliknij, aby ją zaznaczyć w Finderze";
31 | "PatchStatusSuccess" = "CrossOver.app został załatany pomyślnie";
32 | "RestoreButtonLabel" = "Przywróć";
33 | "RestoreConfirm" = "Super!";
34 | "RestoreFailure" = "Ta wersja CrossOver.app jest nie załatana, lub była załatana przez nieaktualną wersję CXPatcher.";
35 | "RestoreStatusLabel" = "Przywracanie CrossOver.app";
36 | "RestoreSuccess" = "CrossOver.app został pomyślnie przywrócony.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Aby uruchomić Media Foundation, należy zainstalować GStreamer (Wymagana instalacja dla wszystkich użytkowników)";
40 | "DownloadGStreamer" = "Pobieranie Gstreamer";
41 | "GStreamerInstalled" = "GStreamer jest już zainstalowany";
42 | "waitFor" = "Czekam na przeczytanie zastrzeżenia i potwierdzenie";
43 | "confirmationValue" = "Nie będę prosić CodeWeavers o wsparcie ani zwrot pieniędzy";
44 | "confirmation" = "Wpisz 'Nie będę prosić CodeWeavers o wsparcie ani zwrot pieniędzy' w polu wejściowym poniżej";
45 | "unsupported" = "nieobsługiwany";
46 | "bottlesPathToggle" = "Użyj osobnej ścieżki dla butelek";
47 | "optionsButtonText" = "Zaawansowane opcje";
48 | "options" = "Opcje";
49 | "MTLHUDToggle" = "Zawsze włączony METAL HUD";
50 | "DisableFastMathToggle" = "Wyłącz szybką matematykę";
51 | "DisableAutoUpdate" = "Wyłącz automatyczne aktualizacje Crossover";
52 | "bottlesToggleHelp" = "Buteleki zostaną zapisane w innym folderze, Crossover nie będzie używać butelek wygenerowanych z Crossover, możesz potrzebować stworzyć nową butelkę, jest opcja dostosowania ścieżki, gdzie butelki są przechowywane";
53 | "gptkToggleHelp" = "Aktualizuje bieżące biblioteki Gameporting toolkit";
54 | "mkvToggleHelp" = "Aktualizuje biblioteki MoltenVK (z Hackiem UE4)";
55 | "dxvkToggleHelp" = "Aktualizuje biblioteki DXVK";
56 | "signatureToggleHelp" = "Usuwa podpis aplikacji, aby naprawić problemy z GateKeeper (aplikacja otworzy się za pomocą prawego przycisku myszy)";
57 | "autoUpdateToggleHelp" = "Wyłącza sprawdzanie aktualizacji Crossover";
58 | "fastMathToggleHelp" = "Naprawia niektóre problemy z renderowaniem w niektórych grach przy użyciu DXVK (WOLNIEJ) dla wszystkich butelek";
59 | "hudToggleHelp" = "Włącza Metal Hud dla wszystkich butelek";
60 | "MVKdontPatch" = "Nie łataj";
61 | "MVKbaseline" = "Baza MVK + oszustwo UE4";
62 | "MVKexperimental" = "Najnowsza wersja MVK + oszustwo UE4";
63 | "DXVKAsyncToggle" = "Asynchroniczne DXVK";
64 | "DXVKAsyncToggleHelp" = "Włącza asynchroniczną kompilację shaderów DXVK";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/pt-PT.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Concordar e Proceder";
2 | "AllowRepatchUpgradeToggle" = "Permitir repatch / upgrade";
3 | "Credits" = "Créditos:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Muito obrigado aos desenvolvedores por trás dos patches DXVK e MoltenVK por sua grande ajuda e por fornecer os binários.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "Página de Downloads do CodeWeavers";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "Fóruns do CodeWeavers";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "A CodeWeavers não suporta aplicativos CrossOver modificados ou patcheados, consulte o";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Por favor, observe:";
15 | "DisclaimerText" = "Este é um programa de patch não oficial para o CrossOver, e a CodeWeavers não está de forma alguma envolvida em seu desenvolvimento. Embora tenha sido testado, este software pode tornar sua instalação do CrossOver inutilizável ou instável. USE POR SUA CONTA E RISCO. O uso deste patcher também anulará qualquer suporte oficial da CodeWeavers.
16 |
17 | Se você enfrentar problemas após a instalação ser patcheada, você pode baixar uma nova cópia do CrossOver no site da CodeWeavers.";
18 | "ExternalResourcesButtonText" = "Localizar unidade GPTK";
19 | "ExternalResourcesLabel" = "Instalar framework externo";
20 | "ExternalResourcesLocateText" = "Localize a unidade GPTK usando o botão abaixo:";
21 | "ExternalResourcesPathLabelText" = "Caminho da unidade de recursos externos:";
22 | "ExternalResourcesToggle" = "Integrar D3DMetal (GPTK)";
23 | "ForcePatch" = "Forçar Patch";
24 | "InstructionsAskWhatDo" = "O que este programa faz?";
25 | "InstructionsButtonText" = "Instruções";
26 | "InstructionsFunctionDescription" = "Este patcher modifica sua instalação do CrossOver para usar versões atualizadas e ajustadas do DXVK e MoltenVK, o que em alguns casos melhorará a compatibilidade ou desempenho para alguns jogos.";
27 | "InstructionsText" = "Certifique-se de ter uma versão de lançamento não modificada do CrossOver, baixada em sua página de conta da CodeWeavers. Certifique-se de que o CrossOver tenha sido registrado e executado pelo menos uma vez, para garantir que o DXVK mais recente seja ativado corretamente. Talvez seja necessário ativar e desativar o DXVK dentro do CrossOver. Se, por algum motivo, sua instalação do CrossOver ficar inutilizável, você poderá baixá-lo novamente no site da CodeWeavers; este patcher não fará modificações permanentes em seus recipientes do CrossOver.";
28 | "PatchStatusAlreadyPatched" = "Este CrossOver.app já foi patcheado!";
29 | "PatchStatusError" = "Não foi possível patchear o CrossOver.app. Verifique se você está tentando patchear a versão de lançamento do CrossOver 22 do site da CodeWeavers.";
30 | "PatchStatusReady" = "Arraste seu CrossOver.app aqui \nou clique para selecioná-lo no Finder";
31 | "PatchStatusSuccess" = "CrossOver.app foi patcheado com sucesso";
32 | "RestoreButtonLabel" = "Restaurar";
33 | "RestoreConfirm" = "Ótimo!";
34 | "RestoreFailure" = "Este CrossOver.app está sem patch ou foi patcheado com uma versão incompatível do CXPatcher.";
35 | "RestoreStatusLabel" = "Restaurar CrossOver.app";
36 | "RestoreSuccess" = "CrossOver.app foi restaurado com sucesso.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Para fazer com que as bibliotecas do Media Foundation funcionem, você precisará instalar o GStreamer (Instalação necessária para todos os usuários)";
40 | "DownloadGStreamer" = "Baixar GStreamer";
41 | "GStreamerInstalled" = "GStreamer já está instalado";
42 | "waitFor" = "Aguardando você ler o aviso legal e confirmar";
43 | "confirmationValue" = "Eu não solicitarei suporte ou reembolso à CodeWeavers";
44 | "confirmation" = "Digite 'Eu não solicitarei suporte ou reembolso à CodeWeavers' no campo de entrada abaixo";
45 | "unsupported" = "sem suporte";
46 | "bottlesPathToggle" = "Use um caminho separado para as garrafas";
47 | "optionsButtonText" = "Opções Avançadas";
48 | "options" = "Opções";
49 | "MTLHUDToggle" = "METAL HUD sempre ativo";
50 | "DisableFastMathToggle" = "Desativar matemática rápida";
51 | "DisableAutoUpdate" = "Desativar atualização automática do Crossover";
52 | "bottlesToggleHelp" = "As garrafas serão salvas em uma pasta diferente. O Crossover não usará as garrafas geradas com o Crossover padrão. Pode ser necessário criar uma nova garrafa. Existe uma opção para personalizar o caminho onde as garrafas estão localizadas.";
53 | "gptkToggleHelp" = "Atualiza as bibliotecas atuais do Gameporting toolkit";
54 | "mkvToggleHelp" = "Atualiza as bibliotecas do MoltenVK (com o hack UE4)";
55 | "dxvkToggleHelp" = "Atualiza as bibliotecas do DXVK";
56 | "signatureToggleHelp" = "Remove a assinatura do aplicativo para corrigir problemas do GateKeeper (o aplicativo será aberto com o clique direito)";
57 | "autoUpdateToggleHelp" = "Desativa a verificação de atualização do Crossover";
58 | "fastMathToggleHelp" = "Corrige alguns problemas de renderização em alguns jogos que usam o DXVK (MAIS LENTO) para todas as garrafas";
59 | "hudToggleHelp" = "Ativa o Metal Hud para todas as garrafas";
60 | "MVKdontPatch" = "Não patchear";
61 | "MVKbaseline" = "Base MVK + truque UE4";
62 | "MVKexperimental" = "Última versão MVK + truque UE4";
63 | "DXVKAsyncToggle" = "DXVK Assíncrono";
64 | "DXVKAsyncToggleHelp" = "Ativa a compilação assíncrona de shaders do DXVK";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/ro.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Acord și Continuă";
2 | "AllowRepatchUpgradeToggle" = "Permite repatch / upgrade";
3 | "Credits" = "Credite:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Mulțumiri multe dezvoltatorilor din spatele patch-urilor DXVK și MoltenVK pentru ajutorul lor deosebit și pentru furnizarea binarelor.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "Pagina de Descărcări CodeWeavers";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "Forumurile CodeWeavers";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers nu oferă suport pentru aplicații CrossOver modificate sau patch-ate, consultați";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Vă rugăm să rețineți:";
15 | "DisclaimerText" = "Acesta este un program de patch neoficial pentru CrossOver, iar CodeWeavers nu este în niciun fel implicată în dezvoltarea acestuia. Deși a fost testat, acest software poate face instalarea CrossOver inutilizabilă sau instabilă. FOLOSIȚI PE RISCUL PROPRIU. Utilizarea acestui patcher va anula și orice suport oficial oferit de CodeWeavers.
16 |
17 | Dacă întâmpinați probleme după ce instalația a fost patch-uită, puteți descărca o nouă copie a CrossOver de pe site-ul CodeWeavers.";
18 | "ExternalResourcesButtonText" = "Localizați unitatea GPTK";
19 | "ExternalResourcesLabel" = "Instalare framework extern";
20 | "ExternalResourcesLocateText" = "Localizați unitatea GPTK utilizând butonul de mai jos:";
21 | "ExternalResourcesPathLabelText" = "Calea unității de resurse externe:";
22 | "ExternalResourcesToggle" = "Integrare D3DMetal (GPTK)";
23 | "ForcePatch" = "Forțează Patch-ul";
24 | "InstructionsAskWhatDo" = "Ce face acest program?";
25 | "InstructionsButtonText" = "Instrucțiuni";
26 | "InstructionsFunctionDescription" = "Acest patcher modifică instalarea dvs. CrossOver pentru a utiliza versiuni actualizate și ajustate ale DXVK și MoltenVK, ceea ce în unele cazuri va îmbunătăți compatibilitatea sau performanța pentru anumite jocuri.";
27 | "InstructionsText" = "Asigurați-vă că aveți o versiune neluată în modificare a CrossOver, descărcată de pe pagina contului dvs. CodeWeavers. Asigurați-vă că CrossOver a fost înregistrat și rulat cel puțin o dată, pentru a vă asigura că DXVK-ul cel mai recent este activat corect. S-ar putea să fie necesar să dezactivați și să reactivați DXVK în CrossOver. Dacă, din orice motiv, instalarea CrossOver devine inutilizabilă, o puteți descărca din nou de pe site-ul CodeWeavers; acest patcher nu va face modificări permanente în recipienții CrossOver.";
28 | "PatchStatusAlreadyPatched" = "Acest CrossOver.app a fost deja patch-uit!";
29 | "PatchStatusError" = "Nu s-a putut face patch-ul CrossOver.app. Vă rugăm să verificați că încercați să faceți patch la versiunea de lansare a CrossOver 22 de pe site-ul CodeWeavers.";
30 | "PatchStatusReady" = "Trageți CrossOver.app aici \nsau faceți clic pentru a-l selecta în Finder";
31 | "PatchStatusSuccess" = "CrossOver.app a fost patch-uit cu succes";
32 | "RestoreButtonLabel" = "Restabilire";
33 | "RestoreConfirm" = "Foarte bine!";
34 | "RestoreFailure" = "Fie acest CrossOver.app nu are patch sau a fost patch-uit cu o versiune incompatibilă a CXPatcher.";
35 | "RestoreStatusLabel" = "Restabilire CrossOver.app";
36 | "RestoreSuccess" = "CrossOver.app a fost restabilit cu succes.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Pentru a face ca bibliotecile Media Foundation să funcționeze, va trebui să instalați GStreamer (Instalare necesară pentru toți utilizatorii)";
40 | "DownloadGStreamer" = "Descărcați GStreamer";
41 | "GStreamerInstalled" = "GStreamer este deja instalat";
42 | "waitFor" = "Așteptăm să citiți avertismentul și să confirmați";
43 | "confirmationValue" = "Nu voi solicita suport sau rambursare de la CodeWeavers";
44 | "confirmation" = "Vă rugăm să tastați „Nu voi solicita suport sau rambursare de la CodeWeavers” în câmpul de introducere de mai jos";
45 | "unsupported" = "nesuportat";
46 | "bottlesPathToggle" = "Folosește o cale separată pentru sticle";
47 | "optionsButtonText" = "Opțiuni Avansate";
48 | "options" = "Opțiuni";
49 | "MTLHUDToggle" = "METAL HUD mereu activat";
50 | "DisableFastMathToggle" = "Dezactivați matematica rapidă";
51 | "DisableAutoUpdate" = "Dezactivați actualizarea automată a Crossover";
52 | "bottlesToggleHelp" = "Sticlele vor fi salvate într-un folder diferit. Crossover nu va utiliza sticlele generate cu Crossover-ul standard. Este posibil să fie nevoie să creați o sticlă nouă. Există o opțiune pentru personalizarea căii în care se află sticlele.";
53 | "gptkToggleHelp" = "Actualizează bibliotecile curente ale Gameporting toolkit";
54 | "mkvToggleHelp" = "Actualizează bibliotecile MoltenVK (cu hack UE4)";
55 | "dxvkToggleHelp" = "Actualizează bibliotecile DXVK";
56 | "signatureToggleHelp" = "Elimină semnătura aplicației pentru a rezolva problemele cu GateKeeper (aplicația se va deschide cu clic dreapta)";
57 | "autoUpdateToggleHelp" = "Dezactivează verificarea actualizărilor Crossover";
58 | "fastMathToggleHelp" = "Rezolvă unele probleme de redare cu anumite jocuri folosind DXVK (MAI LENT) pentru toate sticlele";
59 | "hudToggleHelp" = "Activează Metal Hud pentru toate sticlele";
60 | "MVKdontPatch" = "Nu faceți patch";
61 | "MVKbaseline" = "Bază MVK + hack UE4";
62 | "MVKexperimental" = "Ultima versiune MVK + hack UE4";
63 | "DXVKAsyncToggle" = "DXVK Asincron";
64 | "DXVKAsyncToggleHelp" = "Activează compilarea asincronă a shaderelor DXVK";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/sv.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Godkänn och Fortsätt";
2 | "AllowRepatchUpgradeToggle" = "Tillåt omförpackning / uppgradering";
3 | "Credits" = "Tack till:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Stort tack till utvecklarna bakom DXVK- och MoltenVK-patcharna för deras stora hjälp och för att de tillhandahåller binärerna.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "CodeWeavers nedladdningssida";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "CodeWeavers-forum";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers stöder inte modifierade eller patchade CrossOver-appar, se";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Observera:";
15 | "DisclaimerText" = "Detta är ett inofficiellt patchningsprogram för CrossOver, och CodeWeavers är inte på något sätt involverade i dess utveckling. Även om det har testats kan denna programvara göra din CrossOver-installation oanvändbar eller instabil. ANVÄND PÅ EGEN RISK. Användning av denna patcher kommer också att ogiltigförklara all officiell support från CodeWeavers.
16 |
17 | Om du stöter på problem efter att din installation har blivit patchad kan du ladda ner en ny kopia av CrossOver från CodeWeavers webbplats.";
18 | "ExternalResourcesButtonText" = "Hitta GPTK-enhet";
19 | "ExternalResourcesLabel" = "Installera extern ramverk";
20 | "ExternalResourcesLocateText" = "Hitta GPTK-enheten genom att använda knappen nedan:";
21 | "ExternalResourcesPathLabelText" = "Sökväg till externa resursenheten:";
22 | "ExternalResourcesToggle" = "Integrera D3DMetal (GPTK)";
23 | "ForcePatch" = "Tvinga patch";
24 | "InstructionsAskWhatDo" = "Vad gör detta program?";
25 | "InstructionsButtonText" = "Instruktioner";
26 | "InstructionsFunctionDescription" = "Denna patcher modifierar din CrossOver-installation för att använda uppdaterade och justerade versioner av DXVK och MoltenVK, vilket i vissa fall kommer att förbättra kompatibilitet eller prestanda för vissa spel.";
27 | "InstructionsText" = "Se till att du har en oförändrad version av CrossOver, som har laddats ner från ditt CodeWeavers-konto. Se till att CrossOver har registrerats och körts minst en gång för att säkerställa att den senaste DXVK-versionen aktiveras korrekt. Du kan behöva slå av och på DXVK i CrossOver. Om din CrossOver-installation av någon anledning blir oanvändbar kan du ladda ner den igen från CodeWeavers webbplats; denna patcher kommer inte att göra några permanenta ändringar i dina CrossOver-flaskor.";
28 | "PatchStatusAlreadyPatched" = "Denna CrossOver.app har redan blivit patchad!";
29 | "PatchStatusError" = "Kunde inte patcha CrossOver.app. Var god kontrollera att du försöker patcha den officiella versionen av CrossOver 22 från CodeWeavers webbplats.";
30 | "PatchStatusReady" = "Släpp din CrossOver.app här\neller klicka för att välja den i Finder";
31 | "PatchStatusSuccess" = "CrossOver.app har blivit framgångsrikt patchad";
32 | "RestoreButtonLabel" = "Återställ";
33 | "RestoreConfirm" = "Bra!";
34 | "RestoreFailure" = "Antingen är denna CrossOver.app inte patchad eller så har den blivit patchad med en inkompatibel version av CXPatcher.";
35 | "RestoreStatusLabel" = "Återställ CrossOver.app";
36 | "RestoreSuccess" = "CrossOver.app har återställts framgångsrikt.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "För att få Media Foundation-biblioteken att fungera måste du installera GStreamer (Installation krävs för alla användare)";
40 | "DownloadGStreamer" = "Ladda ner GStreamer";
41 | "GStreamerInstalled" = "GStreamer är redan installerat";
42 | "waitFor" = "Väntar på att du läser igenom friskrivningsklausulen och bekräftar";
43 | "confirmationValue" = "Jag kommer inte att begära support eller återbetalning från CodeWeavers";
44 | "confirmation" = "Skriv 'Jag kommer inte att begära support eller återbetalning från CodeWeavers' i inmatningsfältet nedan";
45 | "unsupported" = "utan stöd";
46 | "bottlesPathToggle" = "Använd en separat flaskväg";
47 | "optionsButtonText" = "Avancerade alternativ";
48 | "options" = "Alternativ";
49 | "MTLHUDToggle" = "METAL HUD alltid på";
50 | "DisableFastMathToggle" = "Inaktivera snabb matematik";
51 | "DisableAutoUpdate" = "Inaktivera automatisk uppdatering av Crossover";
52 | "bottlesToggleHelp" = "Flaskor kommer att sparas i en annan mapp. Crossover kommer inte att använda de flaskor som genererats med standard-Crossover. Du kanske behöver skapa en ny flaska. Det finns ett alternativ att anpassa vägen där flaskorna är placerade.";
53 | "gptkToggleHelp" = "Uppdaterar de aktuella Gameporting toolkit-biblioteken";
54 | "mkvToggleHelp" = "Uppdaterar MoltenVK-biblioteken (med UE4 Hack)";
55 | "dxvkToggleHelp" = "Uppdaterar DXVK-biblioteken";
56 | "signatureToggleHelp" = "Tar bort appens signatur för att åtgärda GateKeeper-problem (appen öppnas med högerklick)";
57 | "autoUpdateToggleHelp" = "Inaktiverar Crossovers uppdateringskontrollmeddelande";
58 | "fastMathToggleHelp" = "Åtgärdar vissa renderingsproblem med vissa spel som använder DXVK (LÅNGSAMMARE) för alla flaskor";
59 | "hudToggleHelp" = "Aktiverar Metal Hud för alla flaskor";
60 | "MVKdontPatch" = "På grund av inte lappa";
61 | "MVKbaseline" = "Bas MVK + UE4 hack";
62 | "MVKexperimental" = "Senaste MVK + UE4 hack";
63 | "DXVKAsyncToggle" = "Asynkron DXVK";
64 | "DXVKAsyncToggleHelp" = "Aktiverar asynkron kompilering av DXVK-shaders";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/uk.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "Прийняти та продовжити";
2 | "AllowRepatchUpgradeToggle" = "Дозволити повторний патч / оновлення";
3 | "Credits" = "Подяка:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "Велика подяка розробникам, що стоять за патчами DXVK та MoltenVK за їх велику допомогу та надання бінарних файлів.";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "Сторінка завантажень CodeWeavers";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "Форуми CodeWeavers";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers не підтримує патчені або модифіковані програми CrossOver, див.";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "Зверніть увагу:";
15 | "DisclaimerText" = "Це неофіційна програма для патчування CrossOver, і CodeWeavers не має жодної причетності до її розробки. Незважаючи на те, що вона пройшла тестування, цей софт може зробити вашу установку CrossOver непридатною або незабезпеченою. ВИКОРИСТОВУЙТЕ НА ВЛАСНИЙ РИЗИК. Використання цього патчера також анулює будь-яку офіційну підтримку від CodeWeavers.
16 |
17 | Якщо виникнуть проблеми після патчення вашої установки, ви можете завантажити нову копію CrossOver з веб-сайту CodeWeavers.";
18 | "ExternalResourcesButtonText" = "Знайти диск GPTK";
19 | "ExternalResourcesLabel" = "Встановити зовнішній фреймворк";
20 | "ExternalResourcesLocateText" = "Знайдіть диск GPTK за допомогою кнопки нижче:";
21 | "ExternalResourcesPathLabelText" = "Шлях до зовнішнього диска ресурсів:";
22 | "ExternalResourcesToggle" = "Інтегрувати D3DMetal (GPTK)";
23 | "ForcePatch" = "Примусовий патч";
24 | "InstructionsAskWhatDo" = "Що робить ця програма?";
25 | "InstructionsButtonText" = "Інструкції";
26 | "InstructionsFunctionDescription" = "Цей патчер модифікує вашу установку CrossOver для використання оновлених і налаштованих версій DXVK і MoltenVK, що у деяких випадках покращує сумісність або продуктивність деяких ігор.";
27 | "InstructionsText" = "Переконайтеся, що у вас є незмінена версія CrossOver, завантажена зі сторінки вашого облікового запису CodeWeavers. Переконайтеся, що CrossOver зареєстрована і запущена хоча б один раз, щоб гарантувати правильне активування останньої версії DXVK. Можливо, вам доведеться вимкнути та увімкнути DXVK у CrossOver. Якщо з якихось причин ваша установка CrossOver стала непридатною, її можна завантажити знову з веб-сайту CodeWeavers; цей патчер не внесе жодних постійних змін до вашої установки CrossOver.";
28 | "PatchStatusAlreadyPatched" = "Цей CrossOver.app вже патчений!";
29 | "PatchStatusError" = "Не вдалося патчувати CrossOver.app. Будь ласка, перевірте, чи намагаєтеся ви патчувати версію випуску CrossOver 22 з веб-сайту CodeWeavers.";
30 | "PatchStatusReady" = "Перетягніть сюди свій CrossOver.app\nабо клацніть, щоб вибрати його в Finder";
31 | "PatchStatusSuccess" = "CrossOver.app успішно патчений";
32 | "RestoreButtonLabel" = "Відновити";
33 | "RestoreConfirm" = "Гаразд!";
34 | "RestoreFailure" = "Або цей CrossOver.app не патчений, або він був патчений несумісною версією CXPatcher.";
35 | "RestoreStatusLabel" = "Відновлення CrossOver.app";
36 | "RestoreSuccess" = "CrossOver.app успішно відновлено.";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "Для правильної роботи бібліотек Media Foundation потрібно встановити GStreamer (Необхідна установка для всіх користувачів)";
40 | "DownloadGStreamer" = "Завантажити GStreamer";
41 | "GStreamerInstalled" = "GStreamer вже встановлено";
42 | "waitFor" = "Очікування, щоб ви прочитали відмову від відповідальності та підтвердження";
43 | "confirmationValue" = "Я не буду звертатися до CodeWeavers для підтримки або повернення коштів";
44 | "confirmation" = "Будь ласка, введіть 'Я не буду звертатися до CodeWeavers для підтримки або повернення коштів' в поле вводу нижче";
45 | "unsupported" = "не підтримується";
46 | "bottlesPathToggle" = "Використовуйте окремий шлях для пляшок";
47 | "optionsButtonText" = "Розширені опції";
48 | "options" = "Опції";
49 | "MTLHUDToggle" = "METAL HUD завжди увімкнено";
50 | "DisableFastMathToggle" = "Вимкнути швидку математику";
51 | "DisableAutoUpdate" = "Вимкнути автоматичне оновлення CrossOver";
52 | "bottlesToggleHelp" = "Пляшки будуть зберігатися в іншій текі, CrossOver не буде використовувати пляшки, створені зі стандартним CrossOver, можливо, вам доведеться створити нову пляшку, є опція настроювання шляху, де зберігаються пляшки";
53 | "gptkToggleHelp" = "Оновлює поточні бібліотеки інструментарію для грипортингу";
54 | "mkvToggleHelp" = "Оновлює бібліотеки MoltenVK (з UE4 Hack)";
55 | "dxvkToggleHelp" = "Оновлює бібліотеки DXVK";
56 | "signatureToggleHelp" = "Видаляє підпис програми для вирішення проблем з GateKeeper (програма відкриється за допомогою правого кліку)";
57 | "autoUpdateToggleHelp" = "Вимикає перевірку оновлень CrossOver";
58 | "fastMathToggleHelp" = "Вирішує деякі проблеми з відтворенням деяких ігор за допомогою DXVK (ПОВІЛЬНІШЕ) для всіх пляшок";
59 | "hudToggleHelp" = "Увімкнути Metal Hud для всіх пляшок";
60 | "MVKdontPatch" = "Не патчити";
61 | "MVKbaseline" = "Базовий MVK + хак UE4";
62 | "MVKexperimental" = "Остання версія MVK + хак UE4";
63 | "DXVKAsyncToggle" = "Асинхронний DXVK";
64 | "DXVKAsyncToggleHelp" = "Увімкнення асинхронної компіляції шейдерів DXVK";
65 |
--------------------------------------------------------------------------------
/Crossover patcher/zh-Hans.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "AgreeAndProceedButtonText" = "同意并继续";
2 | "AllowRepatchUpgradeToggle" = "允许重新打补丁/升级";
3 | "Credits" = "鸣谢:";
4 | "CreditsLinks" = "[@gcenx](https://github.com/Gcenx)
5 | [@nastys](https://github.com/nastys)";
6 | "CreditsText" = "非常感谢 DXVK 和 MoltenVK 补丁背后的开发者提供的巨大帮助和二进制文件。";
7 | "CrossOverDownloadURL" = "https://codeweavers.com/account/downloads";
8 | "CrossOverDownloadURLText" = "CodeWeavers 下载页面";
9 | "CrossOverPatcher" = "CXPatcher";
10 | "CWForums" = "CodeWeavers 论坛";
11 | "CWForumsURL" = "https://www.codeweavers.com/support/forums/general/?t=27;msg=257865";
12 | "CWWebsite" = "CodeWeavers 不会为修改过或打过补丁的 CrossOver 应用提供支持,请参阅";
13 | "CXPatcherName" = "CXPatcher";
14 | "DisclaimerPleaseNoteLabelText" = "请注意:";
15 | "DisclaimerText" = "这是一个非官方的 CrossOver 补丁工具,CodeWeavers 没有以任何形式参与其开发。尽管经过了测试,此软件仍可能会导致您的 CrossOver 无法使用或不稳定。请自行承担风险!使用此打补丁程序还会使您失去 CodeWeavers 的官方支持。
16 |
17 | 如果在打补丁后遇到任何问题,您可以从 CodeWeavers 网站下载新的 CrossOver 副本。";
18 | "ExternalResourcesButtonText" = "定位 GPTK 驱动器(DMG)";
19 | "ExternalResourcesLabel" = "安装外部框架";
20 | "ExternalResourcesLocateText" = "使用下方按钮定位 GPTK 驱动器:";
21 | "ExternalResourcesPathLabelText" = "外部资源驱动器路径:";
22 | "ExternalResourcesToggle" = "集成 D3DMetal(GPTK)";
23 | "ForcePatch" = "强制打补丁";
24 | "InstructionsAskWhatDo" = "这个程序是做什么的?";
25 | "InstructionsButtonText" = "说明";
26 | "InstructionsFunctionDescription" = "此补丁程序将修改您的 CrossOver 安装,使用更新和优化版本的 DXVK 和 MoltenVK,有时会提高某些游戏的兼容性或性能。";
27 | "InstructionsText" = "请确保您从 CodeWeavers 账户页面下载了未经修改的 CrossOver 发布版本。确保 CrossOver 已注册并至少运行一次,以确保最新的 DXVK 已正确启用。您可能需要在 CrossOver 中切换启用或禁用 DXVK。若有任何原因导致您的 CrossOver 无法使用,您可以从 CodeWeavers 网站重新下载它,此补丁程序不会对您的 CrossOver 容器进行任何永久性修改。";
28 | "PatchStatusAlreadyPatched" = "此 CrossOver.app 已经打过补丁!";
29 | "PatchStatusError" = "无法为该版本的 CrossOver 打补丁。请从 CodeWeavers 网站下载 CrossOver 22。";
30 | "PatchStatusReady" = "将您的 CrossOver.app 拖到此处\n或点击以在访达中选择它";
31 | "PatchStatusSuccess" = "已成功为 CrossOver.app 打补丁";
32 | "RestoreButtonLabel" = "恢复";
33 | "RestoreConfirm" = "完成!";
34 | "RestoreFailure" = "此 CrossOver.app 未打过补丁,或者使用不兼容的 CXPatcher 版本打过补丁。";
35 | "RestoreStatusLabel" = "恢复 CrossOver.app";
36 | "RestoreSuccess" = "已成功恢复 CrossOver.app";
37 | "GcenxURL" = "https://github.com/Gcenx";
38 | "nastysURL" = "https://github.com/nastys";
39 | "MediaFoundation" = "为使 Media Foundation 正常工作,您需要安装 GStreamer(需要为所有用户安装)";
40 | "DownloadGStreamer" = "下载 GStreamer";
41 | "GStreamerInstalled" = "GStreamer 已安装";
42 | "waitFor" = "等待您阅读免责声明并确认";
43 | "confirmationValue" = "我不会向 CodeWeavers 请求支持或退款";
44 | "confirmation" = "请在下方输入框中输入“我不会向 CodeWeavers 请求支持或退款”";
45 | "unsupported" = "不受支持";
46 | "bottlesPathToggle" = "使用独立的容器路径";
47 | "optionsButtonText" = "高级选项";
48 | "options" = "选项";
49 | "MTLHUDToggle" = "始终开启 METAL HUD";
50 | "DisableFastMathToggle" = "禁用快速数学计算";
51 | "DisableAutoUpdate" = "禁用 CrossOver 自动更新";
52 | "bottlesToggleHelp" = "容器将保存在不同的文件夹中,CrossOver 不会使用使用标准 CrossOver 生成的容器,您可能需要创建一个新容器,有一个选项可以自定义容器存储的路径";
53 | "gptkToggleHelp" = "更新当前的游戏移植工具库";
54 | "mkvToggleHelp" = "更新 MoltenVK 库(带有 UE4 Hack)";
55 | "dxvkToggleHelp" = "更新 DXVK 库";
56 | "signatureToggleHelp" = "删除应用程序签名以解决 GateKeeper 问题(请稍后使用右键菜单打开应用程序)";
57 | "autoUpdateToggleHelp" = "禁用 CrossOver 的更新检查提示";
58 | "fastMathToggleHelp" = "为所有容器修复特定 DXVK 的游戏的渲染问题(此选项将会降低性能)";
59 | "hudToggleHelp" = "为所有容器启用 METAL HUD";
60 | "MVKdontPatch" = "不要打补丁";
61 | "MVKbaseline" = "稳定版 MVK + UE4 Hack";
62 | "MVKexperimental" = "实验性 MVK + UE4 Hack";
63 | "DXVKAsyncToggle" = "DXVK 异步";
64 | "DXVKAsyncToggleHelp" = "启用 DXVK 异步着色器编译";
65 |
--------------------------------------------------------------------------------
/Crossover-patcher-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # CXPatcher
4 |
5 | A patcher to upgrade CrossOver dependencies and improve compatibility
6 |
7 | Discord: https://discord.com/channels/793156450821865513/1121334417344974929
8 |
9 | This is an **unofficial patcher** for CrossOver and CodeWeavers is not - by any
10 | means - involved in this or has anything to do with this app, and although has
11 | been tested, this software may render the app unusable or unstable,
12 | **USE AT YOUR OWN RISK**, this also will void any official support from
13 | CodeWeavers, If you still need support from CodeWeavers, download the original
14 | unmodified app and please don't report problems to them after your app is
15 | patched.
16 |
17 | If you have any issues after your app has been patched you can download a new
18 | copy of CrossOver.
19 |
20 | For more info: [https://www.codeweavers.com/support/forums/general/?t=27;msg=257865](https://www.codeweavers.com/support/forums/general/?t=27;msg=257865)
21 |
22 | ## What version of CrossOver does it support?
23 |
24 | - CXPatcher up to 0.3 will support only 22.x.x
25 | - CXPatcher from 0.4 on will support 23.x.x
26 | - CXPatcher from 0.5 on will support 24.x.x
27 | - CXPatcher from 0.6 on will support 25.x.x
28 | ans so on...
29 | (keep an eye on the specific verson)
30 |
31 | ## What MacOS does it support
32 |
33 | Ventura (13) or newer
34 | Currently GPTK requires MacOS Sonoma
35 |
36 | ## What does it do?
37 |
38 | This patcher will upgrade your CrossOver app with the latest DXVK and MoltenVK
39 | patched for improved compatibility, and dramatically extends compatibility with
40 | Unreal engine 4 games.
41 |
42 | ## What does it NOT do?
43 |
44 | - Games with anti-cheat or anti-tamper will not work
45 |
46 | - ~DX12 games will not work unless playable via the popular -dx11 option~
47 | DX12 games will now work via GPTK
48 |
49 | ## Instructions
50 |
51 | You need to have an unmodified version of CrossOver, you can download it at:
52 | [https://www.codeweavers.com/account/downloads](https://www.codeweavers.com/account/downloads).
53 | Please make sure the app has been registered or ran at least once, to make sure
54 | the latest DXVK is activated properly. You may need to switch off
55 | DXVK and on again, if you don't you will need to re-download it. If the
56 | patcher renders the app unusable you can either use the restore function (see
57 | instructions below) or download it again from the website, it doesn't do any
58 | permanent modifications to your 'bottles'.
59 |
60 | ## Installation
61 |
62 | ### Direct Download
63 |
64 | You can download the latest version directly from the [Release Page](https://github.com/italomandara/CXPatcher/releases).
65 |
66 | ### Homebrew
67 |
68 | Alternatively, you may use Homebrew. See the
69 | [homebrew-CXPatcher repo](https://github.com/italomandara/homebrew-CXPatcher)
70 | for detailed instructions.
71 |
72 | ## New Bottle path
73 |
74 | CXPatcher will override the default bottle path to have its own folder prefixed with 'CXP' in the same one that contains the 'Bottles' folder.
75 | That's because lots of users keep having trouble when using old bottles created with the original Crossover.
76 | 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.
77 |
78 | If you don't like that you can disable it, it's enabled by default as you can see in the picture below:
79 |
80 |
81 |
82 |
83 | ## Patching with gptk
84 |
85 | There are new upcoming technologies developed this year that are capable of
86 | running DirectX 12 games and now you can have those embedded in CrossOver!
87 | In order to integrate that in CrossOver you just need switch on "Integrate D3DMetal (GPTK)"
88 |
89 |
90 |
91 |
92 | - now you can patch CrossOver as usual via either drag'n'drop or file selector
93 | (click in the drop area)
94 | - enjoy your DX12 games!
95 |
96 | ## Restoring a patched app to the original app
97 |
98 | Maybe you changed your mind and prefer to use your original CrossOver app.
99 | You can restore by going to the `file -> restore menu`
100 |
101 |
102 |
103 |
104 | ## Upgrade from an old patch
105 |
106 | If you patched from an old version and you just want to update the patched
107 | CrossOver app just turn on the option and drag 'n drop
108 |
109 |
110 |
111 | ## Troubleshoting
112 |
113 | **If your env vars doesn't work anymore or can't enable/disable fast math**:
114 | use the env variable `CXPATCHER_SKIP_NTDLLHACKS=1` and then any env var should
115 | work as usual
116 | **For other issues**:
117 | try: `NAS_DISABLE_UE4_HACK=1`
118 |
119 | ## Color profiles for UE4 games
120 |
121 | You can change the way the colors are processed in UE4 games.
122 |
123 | ### Examples
124 |
125 | #### disable color profiles
126 |
127 | (old greyish colors but may improve performance or fix dark or oversaturated colors)
128 |
129 | `NAS_TONEMAP_C=0`
130 |
131 | #### Color profile for Stray
132 |
133 | `NAS_TONEMAP_C=clamp({inputColor} * float3x3( 0.2126 + 0.7874 * 1.5, 0.7152 -
134 | 0.7152 * 1.5, 0.0722 - 0.0722 * 1.5, 0.2126 - 0.2126 * 1.5, 0.7152 + 0.2848 *
135 | 1.5, 0.0722 - 0.0722 * 1.5, 0.2126 - 0.2126 * 1.5, 0.7152 - 0.7152 * 1.5,
136 | 0.0722 + 0.9278 * 1.5 ) * 2 - float3(0.28, 0.2, 0.16), 0.0, 1.0)`
137 |
138 | `NAS_TONEMAP_C` uses standard MSL shading language, as long as it's done in one
139 | line, you can use {inputColor} as a variable and modify the colors, or give any
140 | effect you like using matrix transforms, WARNING: do not copy paste any code
141 | from unknown sources, and do this only if you know what you're doing, otherwise,
142 | have fun!
143 |
144 | **Note:** you may need to use `CXPATCHER_SKIP_DXVK_ENV=1` to override built in
145 | settings for games that already have a profile `NAS_TONEMAP_C`, also only works
146 | for UE4 games.
147 |
148 | ## Credits
149 |
150 | Many thanks to the developers behind DXVK and MoltenVK patches:
151 |
152 | - @gcenx [https://github.com/Gcenx](https://github.com/Gcenx)
153 | - @nastys [https://github.com/nastys](https://github.com/nastys)
154 |
155 | thanks for the great help and for providing the latest binaries.
156 |
--------------------------------------------------------------------------------
/lib/CrossOver/CrossOver-Hosted Application/wineserver:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/CrossOver-Hosted Application/wineserver
--------------------------------------------------------------------------------
/lib/CrossOver/etc/CrossOver.conf:
--------------------------------------------------------------------------------
1 | ;;----------------------------------------------------------------------
2 | ;;
3 | ;; CrossOver Configuration File
4 | ;;
5 | ;;----------------------------------------------------------------------
6 |
7 |
8 | ;;-----< [CrossOver] Section >------------------------------------------
9 | ;; This section supplies configuration information that applies to
10 | ;; CrossOver as a whole.
11 | ;;----------------------------------------------------------------------
12 | [CrossOver]
13 |
14 | ;;-----------------< Basic Settings >-----------------------------------
15 | ;;
16 | ;; PreferredBrowser Specifies the browser command that CrossOver
17 | ;; should use when asked to open a URL. The
18 | ;; default is to try to automatically pick the
19 | ;; most appropriate browser.
20 | ;; This setting can use environment variables with
21 | ;; the syntax '${VARNAME}'. Note that only simple
22 | ;; commands are supported. In particular
23 | ;; backquotes and semi-colons have no special
24 | ;; meaning.
25 | ;;
26 | ;; Default: "" (auto-detect)
27 | ;;
28 | ;; ManagedShortcutDirs Specifies a colon-separated list of directories
29 | ;; where managed bottles should create scripts to
30 | ;; start Windows applications.
31 | ;; This setting can use environment variables with
32 | ;; the syntax '${VARNAME}'.
33 | ;;
34 | ;; Default: ""
35 | ;;
36 | ;; PrivateShortcutDirs Specifies a colon-separated list of directories
37 | ;; where private bottles should create scripts to
38 | ;; start Windows applications. These directories
39 | ;; must be writable by non-root users and thus
40 | ;; should probably be relative to '${HOME}'.
41 | ;; This setting can use environment variables with
42 | ;; the syntax '${VARNAME}'.
43 | ;;
44 | ;; Default: ""
45 | ;;
46 | ;; MenuIgnoreList This is a colon-separated list of menuing system
47 | ;; IDs. It specifies menuing systems which should
48 | ;; be ignored when creating and deleting menus.
49 | ;;
50 | ;; Default: ""
51 | ;;
52 | ;; AssocIgnoreList This is a colon-separated list of association
53 | ;; system IDs. It specifies association systems
54 | ;; which should be ignored when creating and
55 | ;; deleting associations.
56 | ;;
57 | ;; Default: ""
58 | ;;
59 | ;; MIMEIgnoreList A colon-separated list of MIME Types to ignore.
60 | ;; You can use this to prevent CrossOver Setup
61 | ;; from ever associating these MIME types to a
62 | ;; Windows application.
63 | ;;
64 | ;; Default: ""
65 | ;;
66 | ;; ExtIgnoreList A colon-separated list of extensions to ignore
67 | ;; when scanning the Windows associations. The
68 | ;; leading dot of the extension should be omitted
69 | ;; and regular expressions are allowed.
70 | ;;
71 | ;; Default: ""
72 | ;;
73 | ;; AntiVirusScan When to scan for viruses. If set to 'never',
74 | ;; then no scan is ever done. If set to
75 | ;; 'untrusted', then only untrusted files are
76 | ;; scanned. If set to 'start', then files are
77 | ;; scanned before they are run by the wine script.
78 | ;;
79 | ;; Note that there is no way to have all files be
80 | ;; scanned before they are opened by Windows
81 | ;; applications, for instance when one uses the
82 | ;; File -> Open dialog.
83 | ;;
84 | ;; Default: start
85 | ;;
86 | ;; AntiVirusCommand The command to use to scan for viruses in
87 | ;; Windows applications and files.
88 | ;; The default is to auto-detect Clam AntiVirus,
89 | ;; Avast Antivirus, AVG Anti-Virus, McAfee
90 | ;; LinuxShield, F-Prot Antivirus, AntiVir
91 | ;; Workstation and the Sophos Anti-virus,
92 | ;; and uses the first one found.
93 | ;; This setting can use environment variables with
94 | ;; the syntax '${VARNAME}'. Note that only simple
95 | ;; commands are supported. In particular
96 | ;; backquotes and semi-colons have no special
97 | ;; meaning.
98 | ;;
99 | ;; Default: auto-detect
100 | ;;
101 | ;; AntiVirusClean A regular expression to apply to the hexadecimal
102 | ;; scanner exit code to identify when it determined
103 | ;; that the file is clean. So for instance "(0|13)"
104 | ;; would mean that the virus scanner returns 0 or
105 | ;; 19 ('13' in hexadecimal) for clean files.
106 | ;;
107 | ;; Default: Automatically set for supported
108 | ;; virus scanners, "0" otherwise.
109 | ;;
110 | ;; AntiVirusMatch A regular expression to apply to the hexadecimal
111 | ;; scanner exit code to identify when it determined
112 | ;; that the file is infected. So for instance "[cd]"
113 | ;; would mean that the virus scanner returns 12
114 | ;; ('c' in hexadecimal) or 13 ('d') when it detects
115 | ;; a virus.
116 | ;; Any exit code that matches neither AntiVirusMatch
117 | ;; nor AntiVirusClean indicates a scanner
118 | ;; malfunction.
119 | ;;
120 | ;; Default: Automatically set for supported
121 | ;; virus scanners, "1" otherwise.
122 | ;;
123 | ;; ManualProxySettings If set to 1, the GUI will use the proxy settings
124 | ;; below instead of trying to detect them from the
125 | ;; environment.
126 | ;;
127 | ;; Default: "0"
128 | ;;
129 | ;; HttpProxy If ManualProxySettings is set to 1, this setting
130 | ;; will be used as the proxy for http url's,
131 | ;; otherwise it is ignored. This should be a string
132 | ;; of the form "host:port" or "host", or an empty
133 | ;; string to use no proxy.
134 | ;;
135 | ;; Default: ""
136 | ;;
137 | ;; HttpsProxy If ManualProxySettings is set to 1, this setting
138 | ;; will be used as the proxy for https url's,
139 | ;; otherwise it is ignored. This should be a string
140 | ;; of the form "host:port" or "host", or an empty
141 | ;; string to use no proxy.
142 | ;;
143 | ;; Default: ""
144 | ;;
145 | ;; FtpProxy If ManualProxySettings is set to 1, this setting
146 | ;; will be used as the proxy for ftp url's,
147 | ;; otherwise it is ignored. This should be a string
148 | ;; of the form "host:port" or "host", or an empty
149 | ;; string to use no proxy.
150 | ;;
151 | ;; Default: ""
152 | ;;
153 | ;; SocksProxy If ManualProxySettings is set to 1, this setting
154 | ;; will be used as the proxy for direct connections,
155 | ;; otherwise it is ignored. This should be a string
156 | ;; of the form "host:port" or "host", or an empty
157 | ;; string to use no proxy.
158 | ;;
159 | ;; Default: ""
160 | ;;----------------------------------------------------------------------
161 | ;;"PreferredBrowser" = ""
162 | ;;"ManagedShortcutDirs" = ""
163 | ;;"PrivateShortcutDirs" = ""
164 | ;;"MenuIgnoreList" = ""
165 | ;;"AssocIgnoreList" = ""
166 | "MIMEIgnoreList" = "application/x-crossover-doc:application/x-gettext:text/html:text/plain:text/x-gettext-translation-template"
167 | "ExtIgnoreList" = "exe:htm:html:lnk:txt:url"
168 | ;;"AntiVirusScan" = ""
169 | ;;"AntiVirusCommand" = ""
170 | ;;"AntiVirusClean" = ""
171 | ;;"AntiVirusMatch" = ""
172 | ;;"ManualProxySettings" = "0"
173 | ;;"HttpProxy" = ""
174 | ;;"HttpsProxy" = ""
175 | ;;"FtpProxy" = ""
176 | ;;"SocksProxy" = ""
177 |
178 | ;;-----------------< Advanced Settings >--------------------------------
179 | ;;
180 | ;; These values are for exceptional circumstances and are not for
181 | ;; general use by end users.
182 | ;;
183 | ;; ProductPackage How the product was installed.
184 | ;;
185 | ;; Default: ""
186 | ;;
187 | ;; ProductVersion The internal product version.
188 | ;;
189 | ;; Default: ""
190 | ;;
191 | ;; BuildTag Identifies the source code the product was built
192 | ;; from.
193 | ;;
194 | ;; Default: ""
195 | ;;
196 | ;; BuildTimestamp The build's timestamp.
197 | ;;
198 | ;; Default: ""
199 | ;;
200 | ;;----------------------------------------------------------------------
201 | ;;"ProductPackage" = ""
202 | "ProductVersion" = "22.1.1.35679"
203 | "BuildTag" = "cxoffice-22.1.1rc1"
204 | "BuildTimestamp" = "20230402T132939Z"
205 |
206 |
207 |
208 | ;;-----< [MIMEAliases] Section >----------------------------------------
209 | ;; This section specifies a list of MIME type aliases for use when
210 | ;; creating associations.
211 | ;;----------------------------------------------------------------------
212 | [MIMEAliases]
213 |
214 | ;;-----------------< MIME Type Aliases >--------------------------------
215 | ;;
216 | ;; This is a set of key/value pairs of the form:
217 | ;;
218 | ;; "mime/type1" = "mime/type2;mime/type3"
219 | ;;
220 | ;; This specifies that 'mime/type1', 'mime/type2' and 'mime/type3' are
221 | ;; synonymous and causes CrossOver to associate with all three MIME
222 | ;; types whenever it encounters one of them.
223 | ;;
224 | ;;----------------------------------------------------------------------
225 | "application/msexcel" = "application/vnd.ms-excel;application/x-msexcel"
226 | "application/mspowerpoint"= "application/vnd.ms-powerpoint;application/x-mspowerpoint"
227 | "application/msword" = "application/vnd.ms-word"
228 | "application/pdf" = "application/x-pdf"
229 | "application/vnd.ms-visio.viewer" = "application/vnd.ms-visio.drawing.main+xml"
230 | "application/wordperfect" = "application/vnd.wordperfect;application/x-wordperfect"
231 | "application/zip" = "application/x-zip-compressed"
232 | "audio/midi" = "audio/x-midi"
233 | "audio/mp3" = "audio/mpeg"
234 | "audio/mp4" = "audio/x-m4a"
235 | "audio/x-pn-realaudio" = "audio/vnd.rn-realaudio"
236 | "audio/x-wav" = "audio/vnd.wave;audio/wav"
237 | "text/calendar" = "text/x-vcalendar"
238 | "text/directory" = "text/x-vcard"
239 | "video/x-ms-asf" = "application/vnd.ms-asf"
240 |
241 |
242 |
243 | ;;-----< [Wine] Section >-----------------------------------------------
244 | ;; This section specifies defaults for all applications to use. Any
245 | ;; application that is active, but does not have a matching
246 | ;; configuration section, will obtain its parameters from this section.
247 | ;;----------------------------------------------------------------------
248 | [Wine]
249 |
250 | ;;-----------------< Advanced Path Settings >---------------------------
251 | ;;
252 | ;; Each of these values, if specified, will override the default value
253 | ;; computed via CX_ROOT.
254 | ;;
255 | ;; BinPath Specifies a list of directories to prefix the
256 | ;; PATH with prior to invoking a Wine subprocess.
257 | ;; This setting can use environment variables with
258 | ;; the syntax '${VARNAME}'.
259 | ;; If you wish to use an alternative version of
260 | ;; Wine, you should set this to a minimum of:
261 | ;; :/server:${CX_ROOT}/bin
262 | ;;
263 | ;; Default: ${CX_ROOT}/bin
264 | ;;
265 | ;; LibPath Specifies a list of directories to prefix
266 | ;; LD_LIBRARY_PATH with prior to invoking a Wine
267 | ;; subprocess.
268 | ;; This setting can use environment variables with
269 | ;; the syntax '${VARNAME}'.
270 | ;; If you wish to use an alternative version of
271 | ;; Wine, you should set this to a minimum of:
272 | ;; :${CX_ROOT}/lib
273 | ;;
274 | ;; Default: ${CX_ROOT}/lib
275 | ;;
276 | ;; DllPath Specifies a list of directories containing
277 | ;; builtin Wine dlls.
278 | ;; This setting can use environment variables with
279 | ;; the syntax '${VARNAME}'.
280 | ;; Note that this setting overrides WINEDLLPATH.
281 | ;; To use WINEDLLPATH, set this field to
282 | ;; "${CX_ROOT}/lib/wine:${WINEDLLPATH}". If you
283 | ;; wish to use an alternative version of Wine, you
284 | ;; should set this to a minimum of:
285 | ;; /dlls:${CX_ROOT}/lib/wine
286 | ;;
287 | ;; Default: ${CX_ROOT}/lib/wine
288 | ;;
289 | ;; LDPreload If set, specifies a value to override
290 | ;; LD_PRELOAD.
291 | ;; This setting can use environment variables with
292 | ;; the syntax '${VARNAME}'.
293 | ;; Note that if it is set to an empty string, then
294 | ;; LD_PRELOAD will be set to an empty string too.
295 | ;; To not modify LD_PRELOAD, set it to
296 | ;; ${LD_PRELOAD}.
297 | ;;
298 | ;; Default: ""
299 | ;;
300 | ;; LDAssumeKernel If set, specifies a value to override
301 | ;; LD_ASSUME_KERNEL.
302 | ;; This setting can use environment variables with
303 | ;; the syntax '${VARNAME}'.
304 | ;; Note that if it is set to an empty string, then
305 | ;; LD_ASSUME_KERNEL will be set to an empty string
306 | ;; too. To not modify LD_ASSUME_KERNEL, either
307 | ;; comment out the LDAssumeKernel setting, or set
308 | ;; it to ${LD_ASSUME_KERNEL}.
309 | ;;
310 | ;; Default: ${LD_ASSUME_KERNEL}
311 | ;;
312 | ;;----------------------------------------------------------------------
313 | ;;"BinPath" = ""
314 | ;;"LibPath" = ""
315 | ;;"DllPath" = ""
316 | ;;"LDPreload" = ""
317 | ;;"LDAssumeKernel" = ""
318 |
319 |
320 | ;;-----< [BottleDefaults] Section >-------------------------------------
321 | ;; This section specifies settings to be used when creating a new
322 | ;; bottle.
323 | ;;----------------------------------------------------------------------
324 | [BottleDefaults]
325 |
326 | ;;-----------------< Bottle Settings >----------------------------------
327 | ;;
328 | ;; MenuRoot Specifies where Wine should create the menu
329 | ;; entries for Windows applications, i.e. where
330 | ;; the root of the "Start Menu" should be.
331 | ;;
332 | ;; Default: ""
333 | ;;
334 | ;; MenuStrip Specifies that the first N Windows menu levels
335 | ;; should be stripped. So if MenuStrip is set to
336 | ;; one, then a menu that would be in the 'Programs'
337 | ;; menu folder on Windows, would appear in the menu
338 | ;; root in your desktop environment.
339 | ;;
340 | ;; Default: 0
341 | ;;
342 | ;; OutlookSecurity Activate the Outlook security measures.
343 | ;;
344 | ;; Default: 0
345 | ;;
346 | ;; BlockedExtensions File extensions that Outlook is not allowed
347 | ;; to execute for security reasons.
348 | ;;
349 | ;; Default: ""
350 | ;;
351 | ;;----------------------------------------------------------------------
352 | "MenuRoot" = "/Windows Applications"
353 | "MenuStrip" = "1"
354 | "OutlookSecurity" = "1"
355 | "BlockedExtensions" = "bat;com;cpl;exe;hta;lnk;pif;scr;vbe;vbs;wsf;wsh"
356 |
357 |
358 | [EnvironmentVariables]
359 |
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/dxvk/d3d10.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/dxvk/d3d10.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/dxvk/d3d10_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/dxvk/d3d10_1.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/dxvk/d3d10core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/dxvk/d3d10core.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/dxvk/d3d11.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/dxvk/d3d11.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/dxvk/d3d9.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/dxvk/d3d9.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/dxvk/dxgi.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/dxvk/dxgi.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/i386-windows/kernelbase.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/i386-windows/kernelbase.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/i386-windows/ntdll.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/i386-windows/ntdll.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/i386-windows/wineboot.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/i386-windows/wineboot.exe
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/i386-windows/winecfg.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/i386-windows/winecfg.exe
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/i386-windows/winegstreamer.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/i386-windows/winegstreamer.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/x86_64-unix/ntdll.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/x86_64-unix/ntdll.so
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/x86_64-unix/winegstreamer.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/x86_64-unix/winegstreamer.so
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/x86_64-windows/kernelbase.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/x86_64-windows/kernelbase.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/x86_64-windows/ntdll.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/x86_64-windows/ntdll.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/x86_64-windows/wineboot.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/x86_64-windows/wineboot.exe
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/x86_64-windows/winecfg.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/x86_64-windows/winecfg.exe
--------------------------------------------------------------------------------
/lib/CrossOver/lib/wine/x86_64-windows/winegstreamer.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib/wine/x86_64-windows/winegstreamer.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/Acknowledgements.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf2707
2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;\red38\green38\blue38;\red18\green31\blue60;\red255\green255\blue255;
4 | \red0\green0\blue0;}
5 | {\*\expandedcolortbl;;\csgenericrgb\c14902\c14902\c14902;\cssrgb\c9020\c16863\c30196;\cssrgb\c100000\c100000\c100000;
6 | \cssrgb\c0\c0\c0;}
7 | \margl1440\margr1440\vieww11480\viewh9360\viewkind0
8 | \deftab720
9 | \pard\pardeftab720\qj\partightenfactor0
10 |
11 | \f0\b\fs24 \cf2 \expnd0\expndtw0\kerning0
12 | Acknowledgements\
13 |
14 | \f1\b0 \cf2 Portions of this Apple Software may utilize the following copyrighted material, the use of which is hereby acknowledged.\cf0 \kerning1\expnd0\expndtw0 \
15 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
16 | \cf0 \
17 |
18 | \f0\b DXVK
19 | \f1\b0 \
20 | \pard\pardeftab720\partightenfactor0
21 | \cf3 \cb4 \expnd0\expndtw0\kerning0
22 | Copyright (c) 2017 Philip Rebohle\cb1 \uc0\u8232 \cb4 Copyright (c) 2019 Joshua Ashton\cb1 \
23 | \cb4 zlib/libpng license\cb1 \
24 | \cb4 \
25 | This software is provided 'as-is', without any express or implied\cb1 \cb4 warranty. In no event will the authors be held liable for any damages\cb1 \cb4 arising from the use of this software.\cb1 \
26 | \cb4 \
27 | Permission is granted to anyone to use this software for any purpose,\cb1 \cb4 including commercial applications, and to alter it and redistribute it\cb1 \cb4 freely, subject to the following restrictions:\cb1 \
28 | \cb4 \
29 | \'96 The origin of this software must not be misrepresented; you must not\cb1 \cb4 claim that you wrote the original software. If you use this software\cb1 \cb4 in a product, an acknowledgment in the product documentation would be\cb1 \cb4 appreciated but is not required.\
30 | \cb1 \
31 | \cb4 \'96 Altered source versions must be plainly marked as such, and must not\cb1 \cb4 be misrepresented as being the original software.\
32 | \cb1 \
33 | \cb4 \'96 This notice may not be removed or altered from any source distribution.\
34 | \
35 |
36 | \f0\b DirectX-Specs\
37 |
38 | \f1\b0 The MIT License (MIT)\
39 | Copyright (c) Microsoft Corporation\
40 | \
41 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, \
42 | subject to the following conditions:\
43 | \
44 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\
45 | \
46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\
47 | \
48 |
49 | \f0\b DirectX Headers\
50 | \pard\pardeftab720\partightenfactor0
51 |
52 | \f1\b0 \cf0 \cb1 Copyright (c) Microsoft Corporation.\
53 | MIT License\
54 | \
55 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\
56 | \
57 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\
58 | \
59 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\
60 | \
61 |
62 | \f0\b DirectXMath\
63 |
64 | \f1\b0 MIT License\
65 | Copyright (c) Microsoft Corporation.\
66 | \
67 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\
68 | \
69 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\
70 | \
71 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\
72 | \
73 |
74 | \f0\b common-src-AmdDxExt\
75 |
76 | \f1\b0 Copyright (c) 2016-2018 Advanced Micro Devices, Inc. All rights reserved.\
77 | \
78 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal\
79 | in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\
80 | copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\
81 | \
82 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\
83 | \
84 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\
85 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\
86 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\
87 | \
88 |
89 | \f0\b xxHash\
90 |
91 | \f1\b0 Copyright (c) 2012-2021 Yann Collet\
92 | All rights reserved.\
93 | \
94 | BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)\
95 | \
96 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
97 | \
98 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
99 | \
100 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\
101 | \
102 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\
103 | \
104 |
105 | \f0\b DirectXShaderCompiler\
106 |
107 | \f1\b0 =============================================================================\
108 | LLVM Release License\
109 | =============================================================================\
110 | University of Illinois/NCSA\
111 | Open Source License\
112 | \
113 | Copyright (c) 2003-2015 University of Illinois at Urbana-Champaign.\
114 | All rights reserved.\
115 | \
116 | Developed by:\
117 | \
118 | LLVM Team\
119 | \
120 | University of Illinois at Urbana-Champaign\
121 | \
122 | http://llvm.org\
123 | \
124 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\
125 | \
126 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimers.\
127 | \
128 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimers in the documentation and/or other materials provided with the distribution.\
129 | \
130 | * Neither the names of the LLVM Team, University of Illinois at Urbana-Champaign, nor the names of its contributors may be used to endorse or promote products derived from this Software without specific prior written permission.\
131 | \
132 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE\
133 | SOFTWARE.\
134 | \
135 | ==============================================================================\
136 | Copyrights and Licenses for Third Party Software Distributed with LLVM:\
137 | ==============================================================================\
138 | The LLVM software contains code written by third parties. Such software will have its own individual LICENSE.TXT file in the directory in which it appears. This file will describe the copyrights, license, and restrictions which apply to that code.\
139 | \
140 | The disclaimer of warranty in the University of Illinois Open Source License applies to all code in the LLVM Distribution, and nothing in any of the other licenses gives permission to use the names of the LLVM Team or the University of Illinois to endorse or promote products derived from this Software.\
141 | \
142 | The following pieces of software have additional or alternate copyrights, licenses, and/or restrictions:\
143 | \
144 | Program Directory\
145 | ------- ---------\
146 | Google Test llvm/utils/unittest/googletest\
147 | OpenBSD regex llvm/lib/Support/\{reg*, COPYRIGHT.regex\}\
148 | pyyaml tests llvm/test/YAMLParser/\{*.data, LICENSE.TXT\}\
149 | ARM contributions llvm/lib/Target/ARM/LICENSE.TXT\
150 | md5 contributions llvm/lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h\
151 | miniz llvm/lib/Miniz/miniz.c llvm/include/miniz/miniz.h llvm/lib/Miniz/LICENSE.txt\
152 | \
153 | }
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/License.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf2709
2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
4 | {\*\expandedcolortbl;;\cssrgb\c0\c0\c0;}
5 | \margl1440\margr1440\vieww24360\viewh15180\viewkind1\viewscale162
6 | \deftab720
7 | \pard\pardeftab720\partightenfactor0
8 |
9 | \f0\b\fs24 \cf2 \expnd0\expndtw0\kerning0
10 | ENGLISH
11 | \f1\b0 \
12 |
13 | \f0\b \'a0
14 | \f1\b0 \
15 |
16 | \f0\b APPLE INC.
17 | \f1\b0 \
18 |
19 | \f0\b SOFTWARE LICENSE AGREEMENT FOR GAME PORTING TOOLKIT
20 | \f1\b0 \
21 |
22 | \f0\b For use on Apple-branded Systems
23 | \f1\b0 \
24 |
25 | \f0\b \'a0
26 | \f1\b0 \
27 |
28 | \f0\b PLEASE READ THIS SOFTWARE LICENSE AGREEMENT (\'93AGREEMENT\'94) CAREFULLY BEFORE USING THIS APPLE SOFTWARE (DEFINED BELOW).\'a0 BY USING THE APPLE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS AGREEMENT.\'a0 IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, DO NOT INSTALL AND/OR USE THE APPLE SOFTWARE.\'a0
29 | \f1\b0 \
30 |
31 | \f0\b \'a0
32 | \f1\b0 \
33 |
34 | \f0\b IMPORTANT NOTE:\'a0 You may only use this Apple Software in connection with non-copyrighted materials, materials in which you own the copyright, or materials you are authorized or legally permitted to use.\'a0 If you are uncertain about your rights to any copyrighted material, you should contact your legal advisor.
35 | \f1\b0 \
36 | \'a0\
37 |
38 | \f0\b 1. Definitions.
39 | \f1\b0 \
40 | \'a0\
41 | Whenever capitalized in this Agreement:\
42 | \'a0\
43 | \'93
44 | \f0\b Apple
45 | \f1\b0 \'94 means Apple Inc., a California corporation with its principal place of business at One Apple Park Way, Cupertino, California 95014, U.S.A. \
46 | \'a0\
47 | \'93
48 | \f0\b Apple Software
49 | \f1\b0 \'94
50 | \f0\b
51 | \f1\b0 means the Apple Game Porting Toolkit software, including the Redistributables and Framework, and
52 | \f0\b
53 | \f1\b0 documentation, updates, interfaces, content, fonts, and any data or other materials.\
54 | \'a0\
55 | \'93
56 | \f0\b Framework
57 | \f1\b0 \'94 means the \'93D3DMetal.framework\'94 within the Apple Game Porting Toolkit. \
58 | \'a0\
59 | \'93
60 | \f0\b Redistributables
61 | \f1\b0 \'94 means components within the \'93/redist\'94 directory of the Apple Game Porting Toolkit.\
62 | \'a0\
63 |
64 | \f0\b 1. General.
65 | \f1\b0 \
66 |
67 | \f0\b \'a0
68 | \f1\b0 \
69 |
70 | \f0\b A.\'a0
71 | \f1\b0 The Apple Software is licensed, not sold, to you by Apple for use only under the terms of this Agreement, and you may only use the Apple Software for the purposes expressly set forth herein.\'a0 Apple and/or Apple\'92s licensors retain ownership of the Apple Software itself and reserve all rights not expressly granted to you\
72 | \'a0\
73 |
74 | \f0\b B.
75 | \f1\b0 \'a0 Apple, at its discretion, may make available future updates to the Apple Software.\'a0 The Apple Software updates, if any, may not necessarily include all existing software features or may include new features.\'a0 The terms of this Agreement will govern any software updates provided by Apple that replace and/or supplement the original Apple Software product, unless such update is accompanied by a separate license in which case the terms of that license will govern such update. \
76 | \'a0\
77 |
78 | \f0\b C.\'a0
79 | \f1\b0 Title and intellectual property rights in and to any content displayed by or accessed through the Apple Software belongs to the respective content owner.\'a0 Such content may be protected by copyright or other intellectual property laws and treaties, and may be subject to terms of use of the third party providing such content.\'a0 This Agreement does not grant you any rights to use such content nor does it guarantee that such content will continue to be available to you.\'a0 \
80 | \'a0\
81 |
82 | \f0\b 2. Permitted Agreement Uses and Restrictions.
83 | \f1\b0 \
84 |
85 | \f0\b A.\'a0
86 | \f1\b0 \ul License\ulnone .
87 | \f0\b
88 | \f1\b0 Subject to the terms and conditions of this License, you are granted a limited, non-exclusive, non-transferable, personal copyright license to (i) install, internally use, and test the Apple Software for the sole purpose of developing, testing, or evaluating video games for use on Apple-branded products; (ii) sublicense the Apple Software to your third-party service providers (\'93Third-Party Service Providers\'94) solely for the purpose of exercising the foregoing Section 2A(i) rights on your behalf; and (iii) distribute the Apple Software solely for non-commercial purposes and in accordance with this Agreement, including Section 2C. You may make only as many internal use copies of the Apple Software as reasonably necessary to use the Apple Software as permitted under this License; provided that you reproduce on each copy of the Apple Software or portion thereof, all copyright or other proprietary notices contained on the original.\'a0 You will be responsible for Third Party Service Provider\'92s compliance with the terms and conditions of this Agreement.\
89 | \'a0\
90 |
91 | \f0\b B.
92 | \f1\b0 \'a0 \ul System Requirements\ulnone .\'a0 Please note that the Apple Software is supported only on Apple-branded hardware and software that meets specified system requirements as indicated by Apple. \
93 | \'a0\
94 |
95 | \f0\b C.
96 | \f1\b0 \'a0 \ul Other Use Restrictions; Backup Copy\ulnone .\'a0 The grants set forth in this Agreement do not permit you to, and you agree not to, install, use or run the Apple Software on any non-Apple-branded devices, or to enable others to do so.\'a0 You may not rent, lease, lend, host, sell, or sublicense (except as expressly set forth in Section 2A) the Apple Software or any services, in whole or in part.\'a0 The Apple Software is provided as part of a bundle and its components may not be separated from the Apple Software for distribution. Notwithstanding the foregoing, the Framework in its entirety or any part of the Redistributables may be distributed separately from the Apple Software. For clarity, all distribution of the Apple Software, including the Framework in its entirety and any individual Redistributables, are subject to the non-commercial restriction in Section 2(A)(iii).\'a0 You may make one copy of the Apple Software in machine-readable form for backup purposes only; provided that the backup copy must include all copyright or other proprietary notices contained on the original.\'a0 You agree not to use the Apple Software in connection with service bureau, time-sharing, terminal sharing or other similar types of services.\'a0 You also agree not to use or offer the Apple Software, or any of its functionality, to provide service bureau, time-sharing, terminal sharing or other similar types of services to third parties. \
97 | \'a0\
98 |
99 | \f0\b D.
100 | \f1\b0 \'a0 \ul No Reverse Engineering\ulnone .\'a0 You may not, and you agree not to or to enable others to, copy (except to the extent expressly permitted by this Agreement), decompile, reverse engineer, disassemble, attempt to derive the source code of, decrypt, modify, or create derivative works of the Apple Software or any services provided by the Apple Software or any part thereof (except as and only to the extent any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by licensing terms governing use of open source components). \
101 | \'a0\
102 |
103 | \f0\b 3. Transfer.
104 | \f1\b0 \'a0 Any copy of the Apple Software that may be provided by Apple for promotional, evaluation, diagnostic or restorative purposes may only be used for such purposes and may not be resold or transferred. \
105 | \'a0\
106 |
107 | \f0\b 4. Consent to Use of Data.
108 | \f1\b0 \
109 |
110 | \f0\b A.
111 | \f1\b0 \'a0 \ul Analytics & Improvements\ulnone .\'a0 If you choose to share analytics with Apple, you agree that Apple and its subsidiaries and agents may collect, maintain, process and use diagnostic, technical, usage and related information, including but not limited to unique system or hardware identifiers, information about your computer, system and application software, and peripherals, that is gathered periodically to provide and improve Apple\'92s products and services, facilitate the provision of software updates, product support and other services to you (if any) related to the Apple Software, and to verify compliance with the terms of this Agreement.\'a0 \
112 | \'a0\
113 |
114 | \f0\b B.
115 | \f1\b0 \'a0 \ul Privacy Policy\ulnone .\'a0 At all times your information will be treated in accordance with Apple\'92s Privacy Policy, which can be viewed at: www.apple.com/legal/privacy/.\
116 | \'a0\
117 |
118 | \f0\b 5. Termination
119 | \f1\b0 .\'a0 This Agreement is effective until terminated.\'a0 Your rights under this Agreement will terminate automatically or otherwise cease to be effective (i) with notice from Apple, or (ii) without notice from Apple if you fail to comply with any term(s) of this Agreement.\'a0 Upon the termination of this Agreement, you shall cease all use of the Apple Software and destroy all copies, full or partial, of the Apple Software.\'a0 Sections 3, 5, 6, 7, 8, 9, 10, 11, 12, and 13 of this Agreement shall survive any such termination. \
120 | \'a0\
121 |
122 | \f0\b 6. Indemnification
123 | \f1\b0 \
124 | To the extent permitted by applicable law, you agree to indemnify, defend and hold harmless Apple, its directors, officers, employees, independent contractors and agents (each an \'93
125 | \f0\b Apple Indemnified Party
126 | \f1\b0 \'94) from any and all claims, losses, liabilities, damages, expenses and costs (including without limitation attorneys' fees and court costs) (collectively \'93
127 | \f0\b Losses
128 | \f1\b0 \'94) incurred by an Apple Indemnified Party as a result of your breach of this Agreement, a breach of any certification, covenant, representation or warranty made by you in this Agreement, any claims that you violate or infringe any third party intellectual property or proprietary rights, or otherwise related to or arising from your use of the Apple Software, your applications, your development of applications, or your loading of applications and limited distribution as permitted hereunder.\'a0 In no event may You enter into any settlement or like agreement with a third party that affects Apple's rights or binds Apple in any way, without the prior written consent of Apple.\
129 |
130 | \f0\b \'a0
131 | \f1\b0 \
132 |
133 | \f0\b 7. Representations and Warranties.
134 | \f1\b0 \
135 |
136 | \f0\b A.
137 | \f1\b0 \'a0 YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE LAW, USE OF THE APPLE SOFTWARE AND ANY SERVICES PERFORMED BY OR ACCESSED THROUGH THE APPLE SOFTWARE IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU.\
138 | \'a0\
139 |
140 | \f0\b B.
141 | \f1\b0 \'a0\'a0YOU AGREE THAT TO THE EXTENT YOU USE THE APPLE SOFTWARE WITH MATERIALS NOT PROVIDED BY APPLE, IT WILL ONLY BE USED WITH NON-COPYRIGHTED MATERIALS, MATERIALS IN WHICH YOU OWN THE COPYRIGHT, OR MATERIALS YOU ARE AUTHORIZED OR LEGALLY PERMITTED TO USE.\
142 | \'a0\
143 |
144 | \f0\b C.
145 | \f1\b0 \'a0 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE APPLE SOFTWARE AND SERVICES ARE PROVIDED \'93AS IS\'94 AND \'93AS AVAILABLE\'94, WITH ALL FAULTS AND WITHOUT WARRANTY OF ANY KIND, AND APPLE AND APPLE\'92S LICENSORS (COLLECTIVELY REFERRED TO AS \'93APPLE\'94 FOR THE PURPOSES OF SECTIONS 7 AND 8) HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE APPLE SOFTWARE AND SERVICES, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, QUIET ENJOYMENT, AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. \
146 | \'a0\
147 |
148 | \f0\b D.
149 | \f1\b0 \'a0 APPLE DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE APPLE SOFTWARE AND SERVICES, THAT THE FUNCTIONS CONTAINED IN, OR SERVICES PERFORMED OR PROVIDED BY, THE APPLE SOFTWARE WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE APPLE SOFTWARE OR SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE, THAT ANY SERVICES WILL CONTINUE TO BE MADE AVAILABLE, THAT THE APPLE SOFTWARE OR SERVICES WILL BE COMPATIBLE OR WORK WITH YOUR OR ANY THIRD PARTY SOFTWARE, APPLICATIONS OR SERVICES OR ANY OTHER APPLE PRODUCTS OR SERVICES, OR THAT DEFECTS IN THE APPLE SOFTWARE OR SERVICES WILL BE CORRECTED.\'a0 INSTALLATION OF THIS APPLE SOFTWARE AND USE OF THE SERVICES MAY AFFECT THE USABILITY OF YOUR OR THIRD PARTY SOFTWARE, APPLICATIONS OR SERVICES AS WELL AS OTHER APPLE PRODUCTS OR SERVICES. \
150 | \'a0\
151 |
152 | \f0\b E.
153 | \f1\b0 \'a0 YOU FURTHER ACKNOWLEDGE THAT THE APPLE SOFTWARE AND SERVICES ARE NOT INTENDED OR SUITABLE FOR USE IN SITUATIONS OR ENVIRONMENTS WHERE THE FAILURE OR TIME DELAYS OF, OR ERRORS OR INACCURACIES IN THE CONTENT, DATA OR INFORMATION PROVIDED BY, THE APPLE SOFTWARE OR SERVICES COULD LEAD TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE, INCLUDING WITHOUT LIMITATION THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, LIFE SUPPORT OR WEAPONS SYSTEMS. \
154 | \'a0\
155 |
156 | \f0\b F.
157 | \f1\b0 \'a0 NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY.\'a0 SHOULD THE APPLE SOFTWARE OR SERVICES PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\'a0 SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS ON APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO THE ABOVE EXCLUSION AND LIMITATIONS MAY NOT APPLY TO YOU. \
158 | \'a0\
159 |
160 | \f0\b 8. Limitation of Liability.
161 | \f1\b0 \'a0 TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, IN NO EVENT SHALL APPLE BE LIABLE FOR PERSONAL INJURY, OR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, CORRUPTION OR LOSS OF DATA, BUSINESS INTERRUPTION OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR INABILITY TO USE THE APPLE SOFTWARE OR SERVICES OR ANY SOFTWARE OR APPLICATIONS IN CONJUNCTION WITH THE APPLE SOFTWARE OR SERVICES, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT OR OTHERWISE) AND EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\'a0 SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU.\'a0 In no event shall Apple\'92s total liability to you for all damages (other than as may be required by applicable law in cases involving personal injury) exceed the amount of fifty dollars ($50.00).\'a0 The foregoing limitations will apply even if the above stated remedy fails of its essential purpose. \
162 | \'a0\
163 |
164 | \f0\b 9. Export Control.
165 | \f1\b0 \'a0 You may not use or otherwise export or re-export the Apple Software except as authorized by United States law and the laws of the jurisdiction in which the Apple Software was obtained.\'a0 In particular, but without limitation, the Apple Software may not be exported or re-exported (a) into any U.S. embargoed countries or (b) to anyone on the U.S. Treasury Department\'92s list of Specially Designated Nationals or the U.S. Department of Commerce Denied Person\'92s List or Entity List or any other restricted party lists.\'a0 By using the Apple Software, you represent and warrant that you are not located in any such country or on any such list.\'a0 You also agree that you will not use the Apple Software for any purposes prohibited by United States law, including, without limitation, the development, design, manufacture or production of missiles, nuclear, chemical or biological weapons. \
166 | \'a0\
167 |
168 | \f0\b 10. Government End Users.
169 | \f1\b0 \'a0 The Apple Software and related documentation are \'93Commercial Items\'94, as that term is defined at 48 C.F.R. \'a72.101, consisting of \'93Commercial Computer Software\'94 and \'93Commercial Computer Software Documentation\'94, as such terms are used in 48 C.F.R. \'a712.212 or 48 C.F.R. \'a7227.7202, as applicable.\'a0 Consistent with 48 C.F.R. \'a712.212 or 48 C.F.R. \'a7227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein.\'a0 Unpublished-rights reserved under the copyright laws of the United States. \
170 | \'a0\
171 |
172 | \f0\b 11. Controlling Law and Severability.
173 | \f1\b0 \'a0 This Agreement will be governed by and construed in accordance with the laws of the State of Delaware, excluding its conflict of law principles.\'a0 This Agreement shall not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded.\'a0 If for any reason a court of competent jurisdiction finds any provision, or portion thereof, to be unenforceable, the remainder of this Agreement shall continue in full force and effect. \
174 | \'a0\
175 |
176 | \f0\b 12. Complete Agreement; Governing Language.
177 | \f1\b0 \'a0 This Agreement constitutes the entire agreement between you and Apple relating to the use of the Apple Software and supersedes all prior or contemporaneous understandings regarding such subject matter.\'a0 No amendment to or modification of this Agreement will be binding unless in writing and signed by Apple.\'a0 Any translation of this Agreement is done for local requirements and in the event of a dispute between the English and any non-English versions, the English version of this Agreement shall govern, to the extent not prohibited by local law in your jurisdiction. \
178 | \'a0\
179 |
180 | \f0\b 13. Open Source; Third Party Acknowledgements.
181 | \f1\b0 \'a0 Certain components of the Apple Software, and third party open source programs included with the Apple Software, may be made available by Apple on its open source website (opensource.apple.com).\'a0 Acknowledgements, open source licensing terms and disclaimers for third party components of the Apple Software are also contained in the Acknowledgements file for the Apple Software.\'a0 Please refer to the Acknowledgements file for such information since you may have additional rights in such open source components of the Apple Software.\'a0 You expressly acknowledge that if failure or damage to Apple hardware results from modification of the open source components of the Apple Software, such failure or damage is excluded from the terms of the Apple hardware warranty. \
182 | \pard\pardeftab720\fi960\partightenfactor0
183 | \cf2 \'a0\
184 | \pard\pardeftab720\partightenfactor0
185 | \cf2 EA18380\
186 | 8/17/2023\
187 | \'a0\
188 | }
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/D3DMetal:
--------------------------------------------------------------------------------
1 | Versions/Current/D3DMetal
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Resources:
--------------------------------------------------------------------------------
1 | Versions/Current/Resources
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/D3DMetal:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/D3DMetal
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/Info.plist
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/LICENSE:
--------------------------------------------------------------------------------
1 | xxHash Library
2 | Copyright (c) 2012-2020 Yann Collet
3 | All rights reserved.
4 |
5 | BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
6 |
7 | Redistribution and use in source and binary forms, with or without modification,
8 | are permitted provided that the following conditions are met:
9 |
10 | * Redistributions of source code must retain the above copyright notice, this
11 | list of conditions and the following disclaimer.
12 |
13 | * Redistributions in binary form must reproduce the above copyright notice, this
14 | list of conditions and the following disclaimer in the documentation and/or
15 | other materials provided with the distribution.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
21 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
24 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 |
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/default.metallib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/default.metallib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/Resources/version.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildVersion
6 | 1
7 | CFBundleShortVersionString
8 | 1.1
9 | CFBundleVersion
10 | 1.1
11 | ProjectName
12 | D3DRendererMetal
13 | SourceVersion
14 | 18000000000000
15 |
16 |
17 |
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Resources/Info.plist
8 |
9 | hzsBQ6cbbnHppYzNvPQAI2Cy7UA=
10 |
11 | Resources/LICENSE
12 |
13 | 1s+LZYFe//ikbe8+xMdMVwM9Jfo=
14 |
15 | Resources/default.metallib
16 |
17 | gYcOTKQJiteCQ5E7LXczKjN1nAQ=
18 |
19 | Resources/libdxccontainer.dylib
20 |
21 | Ptn6MFTuEJHo0v5yJ6NbI3etMaM=
22 |
23 | Resources/libdxcompiler.dylib
24 |
25 | ez6SzGY2XUP4QGQiRxEDPKbRj+w=
26 |
27 | Resources/libdxilconv.dylib
28 |
29 | BnF78QISXSqXReIJ5caE2kO/4II=
30 |
31 | Resources/libmetalirconverter.dylib
32 |
33 | EvaL7uQF5KMaSW4Bh1t/lUJew90=
34 |
35 | Resources/version.plist
36 |
37 | bQczriH5Fz7qW+e6B4nZIqUEGgA=
38 |
39 |
40 | files2
41 |
42 | Resources/Info.plist
43 |
44 | hash2
45 |
46 | dhtwN93oHSf/rvWOELWFll5vIBeOGGe+uWfJSjvF76U=
47 |
48 |
49 | Resources/LICENSE
50 |
51 | hash2
52 |
53 | VT0ANXc93RWQBF+P3DpMbq0x42M2chrsqEIeiO0cn4A=
54 |
55 |
56 | Resources/default.metallib
57 |
58 | hash2
59 |
60 | Kp83/Ijjmwqow6gqVddHFHTxI3kNgoqGlDEHwcqi2Xg=
61 |
62 |
63 | Resources/libdxccontainer.dylib
64 |
65 | hash2
66 |
67 | a9OSHVyoExGmGSkxIqKTz43b454SMP+ad7vCVYOGUQU=
68 |
69 |
70 | Resources/libdxcompiler.dylib
71 |
72 | hash2
73 |
74 | fwQLfh+ega5+OTilGCHQIOBF6Qhpzzk9DHHNdz13tIc=
75 |
76 |
77 | Resources/libdxilconv.dylib
78 |
79 | hash2
80 |
81 | 4pCMRYibeSQTU9YrAVXPmDQp6MfdYQSYicwmFf3Ma9M=
82 |
83 |
84 | Resources/libmetalirconverter.dylib
85 |
86 | hash2
87 |
88 | r9EUAuP9u3ZcurAm7GIgrm+DhHKZWq0hz97FbM0Fri4=
89 |
90 |
91 | Resources/version.plist
92 |
93 | hash2
94 |
95 | O2LMR9xWGSdtjOV/G5G4BADpzT95MUYLTZqHc20YjMk=
96 |
97 |
98 |
99 | rules
100 |
101 | ^Resources/
102 |
103 | ^Resources/.*\.lproj/
104 |
105 | optional
106 |
107 | weight
108 | 1000
109 |
110 | ^Resources/.*\.lproj/locversion.plist$
111 |
112 | omit
113 |
114 | weight
115 | 1100
116 |
117 | ^Resources/Base\.lproj/
118 |
119 | weight
120 | 1010
121 |
122 | ^version.plist$
123 |
124 |
125 | rules2
126 |
127 | .*\.dSYM($|/)
128 |
129 | weight
130 | 11
131 |
132 | ^(.*/)?\.DS_Store$
133 |
134 | omit
135 |
136 | weight
137 | 2000
138 |
139 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
140 |
141 | nested
142 |
143 | weight
144 | 10
145 |
146 | ^.*
147 |
148 | ^Info\.plist$
149 |
150 | omit
151 |
152 | weight
153 | 20
154 |
155 | ^PkgInfo$
156 |
157 | omit
158 |
159 | weight
160 | 20
161 |
162 | ^Resources/
163 |
164 | weight
165 | 20
166 |
167 | ^Resources/.*\.lproj/
168 |
169 | optional
170 |
171 | weight
172 | 1000
173 |
174 | ^Resources/.*\.lproj/locversion.plist$
175 |
176 | omit
177 |
178 | weight
179 | 1100
180 |
181 | ^Resources/Base\.lproj/
182 |
183 | weight
184 | 1010
185 |
186 | ^[^/]+$
187 |
188 | nested
189 |
190 | weight
191 | 10
192 |
193 | ^embedded\.provisionprofile$
194 |
195 | weight
196 | 20
197 |
198 | ^version\.plist$
199 |
200 | weight
201 | 20
202 |
203 |
204 |
205 |
206 |
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/D3DMetal.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/external/libd3dshared.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/external/libd3dshared.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-unix/atidxx64.so:
--------------------------------------------------------------------------------
1 | ../../external/libd3dshared.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-unix/d3d10.so:
--------------------------------------------------------------------------------
1 | ../../external/libd3dshared.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-unix/d3d11.so:
--------------------------------------------------------------------------------
1 | ../../external/libd3dshared.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-unix/d3d12.so:
--------------------------------------------------------------------------------
1 | ../../external/libd3dshared.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-unix/d3d9.so:
--------------------------------------------------------------------------------
1 | ../../external/libd3dshared.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-unix/dxgi.so:
--------------------------------------------------------------------------------
1 | ../../external/libd3dshared.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/atidxx64.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/atidxx64.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d10.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d10.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d11.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d11.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d12.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d12.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d9.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/d3d9.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/dxgi.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/apple_gpt/wine/x86_64-windows/dxgi.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/libMoltenVK-latest.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/libMoltenVK-latest.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/libMoltenVK.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/libMoltenVK.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/libinotify.0.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/libinotify.0.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/libinotify.dylib:
--------------------------------------------------------------------------------
1 | libinotify.0.dylib
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/wine/dxvk/d3d10.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/wine/dxvk/d3d10.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/wine/dxvk/d3d10_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/wine/dxvk/d3d10_1.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/wine/dxvk/d3d10core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/wine/dxvk/d3d10core.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/wine/dxvk/d3d11.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/wine/dxvk/d3d11.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/wine/dxvk/d3d9.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/wine/dxvk/d3d9.dll
--------------------------------------------------------------------------------
/lib/CrossOver/lib64/wine/dxvk/dxgi.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/lib/CrossOver/lib64/wine/dxvk/dxgi.dll
--------------------------------------------------------------------------------
/pacher icon.afdesign:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/pacher icon.afdesign
--------------------------------------------------------------------------------
/pacher icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/italomandara/CXPatcher/a9d29b30042cf63d031be1ae18cfc34956950ac6/pacher icon.png
--------------------------------------------------------------------------------