├── .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 | CXPatcher Logo 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 | Screenshot 2023-09-24 at 18 09 09 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 | integrate external resources 90 | integrate external resources 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 | restore 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 | repatch 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 --------------------------------------------------------------------------------