diff --git a/GPTK/redist/Acknowledgements.rtf b/GPTK/Acknowledgements.rtf similarity index 75% rename from GPTK/redist/Acknowledgements.rtf rename to GPTK/Acknowledgements.rtf index 3fee03421668..86df350cbeb3 100644 --- a/GPTK/redist/Acknowledgements.rtf +++ b/GPTK/Acknowledgements.rtf @@ -1,18 +1,18 @@ -{\rtf1\ansi\ansicpg1252\cocoartf2707 +{\rtf1\ansi\ansicpg1252\cocoartf2761 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;\red38\green38\blue38;\red18\green31\blue60;\red255\green255\blue255; -\red0\green0\blue0;} +} {\*\expandedcolortbl;;\csgenericrgb\c14902\c14902\c14902;\cssrgb\c9020\c16863\c30196;\cssrgb\c100000\c100000\c100000; -\cssrgb\c0\c0\c0;} -\margl1440\margr1440\vieww11480\viewh9360\viewkind0 +} +\margl1440\margr1440\vieww20040\viewh16280\viewkind0 \deftab720 \pard\pardeftab720\qj\partightenfactor0 \f0\b\fs24 \cf2 \expnd0\expndtw0\kerning0 Acknowledgements\ -\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 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\f1\b0 Portions of this Apple Software may utilize the following copyrighted material, the use of which is hereby acknowledged.\cf0 \kerning1\expnd0\expndtw0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardeftab720\pardirnatural\partightenfactor0 \cf0 \ \f0\b DXVK @@ -150,4 +150,41 @@ ARM contributions llvm/lib/Target/ARM/LICENSE.TXT\ md5 contributions llvm/lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h\ miniz llvm/lib/Miniz/miniz.c llvm/include/miniz/miniz.h llvm/lib/Miniz/LICENSE.txt\ \ + +\f0\b CyberFSR2\ + +\f1\b0 Copyright (c) 2022 PotatoOfDoom\ +MIT License\ +\ +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:\ +\ +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\ +\ +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.\ +\ + +\f0\b DLSSTweaks \ + +\f1\b0 Copyright (c) 2023 emoose \ +MIT License\ +\ +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:\ +\ +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\ +\ +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.\ +\ + +\f0\b dxmt\ + +\f1\b0 Copyright (c) 2023 Feifan He\ +MIT License\ +\ +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:\ +\ +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\ +\ +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.\ + +\f0\b \ } \ No newline at end of file diff --git a/GPTK/redist/License.rtf b/GPTK/License.rtf similarity index 100% rename from GPTK/redist/License.rtf rename to GPTK/License.rtf diff --git a/GPTK/Read Me.rtf b/GPTK/Read Me.rtf new file mode 100644 index 000000000000..7edce7dde6eb --- /dev/null +++ b/GPTK/Read Me.rtf @@ -0,0 +1,277 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2822 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;\f2\fmodern\fcharset0 CourierNewPS-BoldMT; +\f3\fnil\fcharset0 Menlo-Regular;\f4\fnil\fcharset0 LucidaGrande;\f5\fmodern\fcharset0 CourierNewPSMT; +\f6\fswiss\fcharset0 Helvetica-Oblique;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue0;} +{\*\expandedcolortbl;;\cssrgb\c0\c0\c0\cname textColor;} +{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1} +{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid2} +{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid3} +{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid4} +{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid5}} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}} +\paperw12240\paperh15840\margl1440\margr1440\vieww25900\viewh27180\viewkind1 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b\fs36 \cf0 Evaluation environment for Windows games \cf2 3.0 beta 1\cf0 README\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f1\b0\fs24 \cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b\fs28 \cf0 Overview +\f1\b0\fs24 \ +\ +The evaluation environment for Windows games is now a subset of the expanded Game Porting Toolkit. The evaluation environment helps game developers try out their existing Windows games right on Apple Silicon Macs running macOS 15 or higher. Using community projects that bundle the evaluation environment, or building your own environment using the included binaries and installation and configuration instructions, you can run your game to get a sense of how it can feel and play right away, even before you begin your porting journey.\ +\ + +\f0\b\fs28 Requirements +\f1\b0\fs24 \ +\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0 +\ls1\ilvl0\cf0 {\listtext \uc0\u8226 }The evaluation environment for Windows games only runs on Apple Silicon Macs running macOS 15 Sequoia or higher.\ +{\listtext \uc0\u8226 }Translated games require more resources, so developer-focused Macs with 16GB of RAM or more are recommended.\ +{\listtext \uc0\u8226 }The provided macOS graphics bridge libraries must be configured with a custom version of the Wine translation environment in order to create your evaluation environment.\ +{\listtext \uc0\u8226 }Instructions and scripts for building and configuring the custom version of Wine are included here.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\pardirnatural\partightenfactor0 +\cf0 \ + +\f0\b\fs28 Installation and Setup\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f1\b0\fs24 \cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b \cf0 Use a pre-built evaluation environment\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f1\b0 \cf0 \ +While simple to use once configured and installed, the evaluation environment for Windows games can take time to configure and use correctly depending on your proficiency and comfort with command-line tools and your experience using translation tools like WINE. The following free and commercial products incorporate the supplemental evaluation layers from this distribution within a pre-built WINE environment.\ +\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0 +\ls2\ilvl0\cf0 {\listtext \uc0\u8226 }Dean Greer\'92s (aka GCenX) +\f0\b homebrew-wine +\f1\b0 ({\field{\*\fldinst{HYPERLINK "https://github.com/Gcenx/homebrew-wine"}}{\fldrslt https://github.com/Gcenx/homebrew-wine}}) and +\f0\b game-porting-toolkit +\f1\b0 ({\field{\*\fldinst{HYPERLINK "https://github.com/Gcenx/game-porting-toolkit/releases"}}{\fldrslt https://github.com/Gcenx/game-porting-toolkit}}) casks - use +\f2\b brew install --cask --no-quarantine gcenx/wine/ +\f1\b0 to easily install either of the more complete environments and the graphical translation layer.\ +{\listtext \uc0\u8226 }CodeWeaver\'92s +\f0\b CrossOver +\f1\b0 . ({\field{\*\fldinst{HYPERLINK "https://www.codeweavers.com/crossover"}}{\fldrslt https://www.codeweavers.com/crossover}}) CodeWeavers offers a 14-day free trial of CrossOver, which includes integration of the graphical translation layer.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b \cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f1\b0 \cf0 Note: early in the macOS 16 beta period these pre-built tools may still be carrying the prior version of D3DMetal. You can temporarily update these tools to use the latest version as follows.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 +\ls3\ilvl0\cf0 {\listtext \uc0\u8226 } +\f0\b homebrew-wine +\f1\b0 and +\f0\b game-porting-toolkit +\f1\b0 casks - you can replace the copies of the D3DMetal.framework and libd3dshared.dylib found at /Applications/Game\\ Porting\\ Toolkit.app/Contents/Resources/wine/lib/external/ with the libraries from this distribution:\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 + +\f3 \cf0 cd /Applications/Game\\ Porting\\ Toolkit.app/Contents/Resources/wine/lib/external\ +mv D3DMetal.framework D3DMetal.framework-old; mv libd3dshared.dylib libd3dshared.dylib-old\ +ditto "/Volumes/Evaluation environment for Windows games 3.0 beta 1/redist/lib/external/" . +\f1 \ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 +\ls4\ilvl0\cf0 {\listtext \uc0\u8226 } +\f0\b CrossOver +\f1\b0 : replace CrossOver\'92s copies of the D3DMetal.framework and libd3dshared.dylib found at /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/lib64/apple_gptk/external with the libraries from this distribution:\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 + +\f3 \cf0 cd /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/lib64/apple_gptk/external\ +mv D3DMetal.framework D3DMetal.framework-old; mv libd3dshared.dylib libd3dshared.dylib-old\ +ditto "/Volumes/Evaluation environment for Windows games 3.0 beta 1/redist/lib/external/" . +\f1 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b\fs28 \cf0 Prepare your environment +\f1\b0\fs24 \ +\ +To enable experimental MetalFX integration, perform the following steps:\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 +\cf0 \'95 Rename +\f3 wine/x86_64-unix/nvngx-on-metalfx.so +\f1 to +\f3 wine/x86_64-unix/nvngx.so +\f1 if this hasn\'92t already been done\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0 +\ls5\ilvl0\cf0 {\listtext \uc0\u8226 }Rename +\f3 wine/x86_64-windows/nvngx-on-metalfx.dll +\f1 to +\f3 wine/x86_64-windows/nvngx.dll +\f1 if this hasn\'92t already been done\ +{\listtext \uc0\u8226 }Copy both +\f3 nvngx.dll +\f1 and +\f3 nvapi64.dll +\f1 to the +\f3 windows\\system32 +\f1 directory your Wine prefix\'92s virtual C: drive (open +\f3 ~/my-game-prefix/drive_c/windows/system32 +\f1 )\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b\fs28 \cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\pardirnatural\partightenfactor0 +\cf0 Environment Variables\ + +\f1\b0\fs24 \ +Environment variables can be used to control some aspects of translation and emulation in the evaluation environment.\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-853\pardirnatural\partightenfactor0 + +\f2\b \cf0 D3DM_SUPPORT_DXR +\f1\b0 - Defaults to 0 (OFF) on M1 & M2 Macs, and to 1 (ON) for M3 & later Macs. Setting this environment variable to 1 (ON) enables DirectX Raytracing (aka DXR) features in D3DMetal\'92s DirectX 12 translation layer, so games querying for DXR support will find the support level and expected interfaces of DXR.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\pardirnatural\partightenfactor0 +\cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-854\pardirnatural\partightenfactor0 + +\f2\b \cf0 ROSETTA_ADVERTISE_AVX +\f1\b0 - Defaults to 0 (OFF). On macOS 15 Sequoia and later, setting this environment variable to 1 (ON) causes the CPU instruction translation layer to publish cpuid information to translated applications when running in the evaluation environment, so games querying instruction set extension capabilities before utilizing them can conditionally control their use of instruction extensions. This setting does not modify the availability of the instruction set in Rosetta; it only controls whether the processor advertises its support for these extensions.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-853\pardirnatural\partightenfactor0 +\cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-854\pardirnatural\partightenfactor0 + +\f2\b \cf0 D3DM_ENABLE_METALFX +\f1\b0 - Defaults to 0 (OFF). On macOS 16, setting this environment variable to 1 (ON) causes DLSS functions to be converted to MetalFX where possible. Setting this environment variable to 0 (OFF) causes DLSS functions to be not be available.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b\fs28 \cf0 Logging +\f1\b0\fs24 \ +\ +Logging output will appear in the Terminal window in which you launch your game as well as the system log, which can be viewed with the Console app found in Applications +\f4 \uc0\u9656 +\f1 Utilities. Log messages from the evaluation environment for Windows games are prefixed with +\f0\b D3DM +\f1\b0 and are logged to the system log using the "D3DMetal" category. If you are experiencing an issue and want to send logging information through https://feedbackassistant.apple.com, please attach and send the full logs without filtering to +\f0\b D3DM. +\f1\b0 \ +\ + +\f0\b\fs28 Debugging your game with Metal debugger\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-853\pardirnatural\partightenfactor0 + +\f2\fs24 \cf0 Note: You will need to disable System Integrity Protection (SIP) ({\field{\*\fldinst{HYPERLINK "https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection"}}{\fldrslt +\f1\b0 https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection}} +\f1\b0 ) +\f2\b to debug CrossOver's Wine processes. Reenable SIP after you finish debugging.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 + +\f1\b0 \cf0 \'95 Compile your shaders with embedded debug information ({\field{\*\fldinst{HYPERLINK "https://developer.apple.com/metal/shader-converter/#shader"}}{\fldrslt https://developer.apple.com/metal/shader-converter/#shader}}) by passing +\f3 -Zi -Qembed_debug +\f1 to the DX Compiler.\ + \'95 In CrossOver, select a bottle to launch your game from.\ + \'95 Enable D3DMetal in the Advanced Settings for the bottle.\ + \'95 Launch your game by clicking Run Command, choosing your game executable, and inserting the following environment variables to enable Metal debugging and processing of debug information: +\f2\b MTL_CAPTURE_ENABLED=1 D3DM_DXIL_PROCESS_DEBUG_INFORMATION=1\ + +\f1\b0 \'95 In Xcode, click +\f3 Debug > Debug Executable\'85 +\f1 from the menubar and select CrossOver.app (this is just to get a workspace window open)\ + \'95 In the visible Scheme options, click the +\f3 Options +\f1 tab and change +\f3 GPU Frame Capture +\f1 from +\f3 Automatically +\f1 to +\f3 Metal +\f1 .\ + \'95 Close Scheme.\ + \'95 Click +\f3 Debug > Attach to Process +\f1 from the menubar and select your launched game process.\ + \'95 After the debugger attaches to the process, you can capture your Metal workload ({\field{\*\fldinst{HYPERLINK "https://developer.apple.com/documentation/xcode/capturing-a-metal-workload-in-xcode#Capture-your-Metal-workload-while-debugging"}}{\fldrslt https://developer.apple.com/documentation/xcode/capturing-a-metal-workload-in-xcode#Capture-your-Metal-workload-while-debugging}}).\ +\ +\pard\pardeftab720\partightenfactor0 +\cf0 If lldb suspends the process due to handling +\f3 SIGUSR1 +\f1 , you will need to run the following commands to ignore this signal and continue the process:\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 + +\f3 \cf0 process handle -pass false -stop false -notify false SIGUSR1\ +continue +\f1 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b\fs28 \cf0 Troubleshooting +\f1\b0\fs24 \ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b \cf0 My game won't run and crashes with an invalid instruction or complains about lack of certain instruction extensions +\f1\b0 \ +\ +Invalid instruction crashes are sometimes caused when the Rosetta 2 instruction translation layer is unable to translate CPU instructions. You may be able to recompile a version of your game without certain instructions in order to evaluate its potential on Apple Silicon with the Game Porting Toolkit when you hit this error. You may also be able to use the +\f5 ROSETTA_ADVERTISE_AVX +\f1 environment variable to ensure your game recognizes available translation instruction extensions. When porting your code natively to Apple Silicon there are a variety or NEON and ARM instructions which offer high-performance replacements for AVX / AVX2, BMI, F16c and other less common instruction set extensions.\ +\ + +\f0\b My game won't run because its anti-cheat or DRM software is incompatible with Wine translation.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f1\b0 \cf0 \ +You may be able to rebuild a custom version of your game in your Windows development environment with anti-cheat or DRM disabled for your own evaluation purposes. When porting your code natively to Apple Silicon and macOS, contact your anti-cheat or DRM provider\'97most have native Apple Silicon solutions for your native build, or you may find that existing macOS solutions like Hardened Runtime, Application Sandbox, and Application Attestation prevent forms of cheating or tampering that concern you.\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b \cf0 My game won\'92t run because it thinks the version of Windows is too old. +\f1\b0 \ +\ +First, make sure you have selected an appropriate Windows version in winecfg. This affects the major and minor Windows versions that are reported to your game.\ +\ +If your game checks for a specific minimum or an exact build version, you can alter this value by changing the +\f3 CurrentBuild +\f1 and +\f3 CurrentBuildNumber +\f1 values of the +\f3 HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT +\f1 registry key. You must perform this step +\f6\i after +\f1\i0 selecting a Windows version in winecfg.\ +\ + +\f0\b My game won\'92t run because it requires Mono, .NET, or the MSVCRT runtime. +\f1\b0 \ +\ +The evaluation environment for Windows games does not pre-install these runtime support packages. If your game makes use of one of these packages, consider searching for and downloading appropriate installers (.exe or .msi) and installing them to your evaluation environment. \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f3 \cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b \cf0 My game won\'92t boot anymore even though I made no changes.\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f1\b0 \cf0 If the game stopped booting without being updated, you can try clearing the shader cache.\ +Run the following commands:\ +\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 + +\f3 \cf0 cd $(getconf DARWIN_USER_CACHE_DIR)/d3dm\ +cd \'abGAME_NAME\'bb\ +rm -r shaders.cache +\f1 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 +\cf0 \ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\b \cf0 Do you have a different problem or other feedback?\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f1\b0 \cf0 \ +Please let us know through https://feedbackassistant.apple.com.} diff --git a/GPTK/redist/Read Me.rtf b/GPTK/redist/Read Me.rtf deleted file mode 100644 index b48781346870..000000000000 --- a/GPTK/redist/Read Me.rtf +++ /dev/null @@ -1,475 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf2814 -\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;\f2\fmodern\fcharset0 CourierNewPS-BoldMT; -\f3\fnil\fcharset0 Menlo-Regular;\f4\fnil\fcharset0 LucidaGrande;\f5\fmodern\fcharset0 CourierNewPSMT; -\f6\fswiss\fcharset0 Helvetica-Oblique;} -{\colortbl;\red255\green255\blue255;} -{\*\expandedcolortbl;;} -{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1} -{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid2} -{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid3} -{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid4} -{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid5} -{\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid501\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid6} -{\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid601\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid7} -{\list\listtemplateid8\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid701\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid8} -{\list\listtemplateid9\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid801\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid9} -{\list\listtemplateid10\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid901\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid10} -{\list\listtemplateid11\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1001\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid11} -{\list\listtemplateid12\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid12} -{\list\listtemplateid13\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid13} -{\list\listtemplateid14\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid14} -{\list\listtemplateid15\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid15} -{\list\listtemplateid16\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1501\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid16} -{\list\listtemplateid17\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1601\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid17} -{\list\listtemplateid18\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1701\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid18}} -{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}} -\margl1440\margr1440\vieww28400\viewh15820\viewkind0 -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b\fs36 \cf0 Evaluation environment for Windows games 2.1 README\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0\fs24 \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b\fs28 \cf0 Overview -\f1\b0\fs24 \ -\ -The evaluation environment for Windows games is now a subset of the expanded Game Porting Toolkit. The evaluation environment helps game developers try out their existing Windows games right on Apple Silicon Macs running macOS 14 or higher. Using community projects that bundle the evaluation environment, or building your own environment using the included binaries and installation and configuration instructions, you can run your game to get a sense of how it can feel and play right away, even before you begin your porting journey.\ -\ - -\f0\b\fs28 Requirements -\f1\b0\fs24 \ -\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0 -\ls1\ilvl0\cf0 {\listtext \uc0\u8226 }The evaluation environment for Windows games only runs on Apple Silicon Macs running macOS 14 Sonoma or higher.\ -{\listtext \uc0\u8226 }Translated games require more resources, so developer-focused Macs with 16GB of RAM or more are recommended.\ -{\listtext \uc0\u8226 }The provided macOS graphics bridge libraries must be configured with a custom version of the Wine translation environment in order to create your evaluation environment.\ -{\listtext \uc0\u8226 }Instructions and scripts for building and configuring the custom version of Wine are included here.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\pardirnatural\partightenfactor0 -\cf0 \ - -\f0\b\fs28 Installation and Setup\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0\fs24 \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 Option 1: Use a pre-built evaluation environment\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -While simple to use once configured and installed, the evaluation environment for Windows games can take time to configure and use correctly depending on your proficiency and comfort with command-line tools and your experience using translation tools like WINE. The following free and commercial products incorporate the supplemental evaluation layers from this distribution within a pre-built WINE environment.\ -\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0 -\ls2\ilvl0\cf0 {\listtext \uc0\u8226 }Dean Greer\'92s (aka GCenX) -\f0\b homebrew-wine -\f1\b0 ({\field{\*\fldinst{HYPERLINK "https://github.com/Gcenx/homebrew-wine"}}{\fldrslt https://github.com/Gcenx/homebrew-wine}}) and -\f0\b game-porting-toolkit -\f1\b0 ({\field{\*\fldinst{HYPERLINK "https://github.com/Gcenx/game-porting-toolkit/releases"}}{\fldrslt https://github.com/Gcenx/game-porting-toolkit}}) casks - use -\f2\b brew install --cask --no-quarantine gcenx/wine/ -\f1\b0 to easily install either of the more complete environments and the graphical translation layer.\ -{\listtext \uc0\u8226 }Isaac Marovitz\'92s -\f0\b Whisky -\f1\b0 ({\field{\*\fldinst{HYPERLINK "https://getwhisky.app/"}}{\fldrslt https://getwhisky.app}} and {\field{\*\fldinst{HYPERLINK "https://github.com/Whisky-App/Whisky"}}{\fldrslt https://github.com/Whisky-App/Whisky}}) - Whisky is a community supported easy-to-user graphical interface that creates an evaluation environment and installs and configures the graphical translation layer.\ -{\listtext \uc0\u8226 }CodeWeaver\'92s -\f0\b CrossOver -\f1\b0 . ({\field{\*\fldinst{HYPERLINK "https://www.codeweavers.com/crossover"}}{\fldrslt https://www.codeweavers.com/crossover}}) CodeWeavers offers a 14-day free trial of CrossOver, which includes integration of the graphical translation layer.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 Note: early in the macOS 15 beta period these pre-built tools may still be carrying the 1.1 version of D3DMetal. You can temporarily update these tools to use the latest version as follows.\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls3\ilvl0\cf0 {\listtext \uc0\u8226 } -\f0\b homebrew-wine -\f1\b0 and -\f0\b game-porting-toolkit -\f1\b0 casks - you can replace the copies of the D3DMetal.framework and libd3dshared.dylib found at /Applications/Game\\ Porting\\ Toolkit.app/Contents/Resources/wine/lib/external/ with the libraries from this distribution:\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 cd /Applications/Game\\ Porting\\ Toolkit.app/Contents/Resources/wine/lib/external\ -mv D3DMetal.framework D3DMetal.framework-old; mv libd3dshared.dylib libd3dshared.dylib-old\ -ditto /Volumes/Evaluation\\ environment\\ for\\ Windows\\ games\\ 2.1/redist/lib/external/ . -\f1 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls4\ilvl0\cf0 {\listtext \uc0\u8226 } -\f0\b Whisky -\f1\b0 : replace Whisky\'92s copies of the D3DMetal.framework and libd3dshared.dylib found at ~/Library/Application Support/com.isaacmarovitz.Whisky/Libraries/Wine/lib/external/ with the libraries from this distribution:\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 cd ~/Library/Application\\ Support/com.isaacmarovitz.Whisky/Libraries/Wine/lib/external\ -mv D3DMetal.framework D3DMetal.framework-old; mv libd3dshared.dylib libd3dshared.dylib-old\ -ditto /Volumes/Evaluation\\ environment\\ for\\ Windows\\ games\\ 2.1/redist/lib/external/ . -\f1 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls5\ilvl0\cf0 {\listtext \uc0\u8226 } -\f0\b CrossOver -\f1\b0 : replace CrossOver\'92s copies of the D3DMetal.framework and libd3dshared.dylib found at /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/lib64/apple_gptk/external with the libraries from this distribution:\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 cd /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/lib64/apple_gptk/external\ -mv D3DMetal.framework D3DMetal.framework-old; mv libd3dshared.dylib libd3dshared.dylib-old\ -ditto /Volumes/Evaluation\\ environment\\ for\\ Windows\\ games\\ 2.1/redist/lib/external/ . -\f1 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 \ -Option 2: Build your own evaluation environment from scratch -\f1\b0 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0 -\ls6\ilvl0\cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 1. Setup your development and Homebrew environment -\f1\b0 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls7\ilvl0\cf0 {\listtext \uc0\u8226 }Ensure that you are usihg Command Line Tools for Xcode 15.1. Visit https://developer.apple.com/downloads to download this older version of the tools. Note: there is a header file layout change preventing the use of newer versions of the macOS SDK which we are well aware of.\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls8\ilvl0\cf0 {\listtext \uc0\u8226 }Open Terminal.\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls9\ilvl0\cf0 {\listtext \uc0\u8226 }The evaluation environment for Windows games runs under Rosetta 2. Ensure that Rosetta 2 is installed.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 softwareupdate --install-rosetta -\f1 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls10\ilvl0\cf0 {\listtext \uc0\u8226 }Enter an x86_64 shell to continue the following steps in a Rosetta environment. All subsequent commands should be run within this shell.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 arch -x86_64 zsh -\f1 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls11\ilvl0\cf0 {\listtext \uc0\u8226 }Install the x86_64 version of Homebrew if you don't already have it. -\f3 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 -\cf0 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -\f1 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb120\pardirnatural\partightenfactor0 -\ls12\ilvl0\cf0 {\listtext \uc0\u8226 }Make sure the brew command is on your path:\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 which brew -\f1 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb120\pardirnatural\partightenfactor0 -\cf0 If this command does not print -\f3 /usr/local/bin/brew -\f1 , you must either modify your -\f3 PATH -\f1 to put -\f3 /usr/local/bin -\f1 first, or fully specify the path to -\f3 brew -\f1 in the subsequent commands.\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls13\ilvl0\cf0 {\listtext \uc0\u8226 }Tap the Apple Homebrew tap, which can be found at -\f3 https://github.com/apple -\f1 :\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 brew tap apple/apple http://github.com/apple/homebrew-apple -\f1 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls14\ilvl0\cf0 {\listtext \uc0\u8226 }Install the -\f3 game-porting-toolkit -\f1 formula. This formula downloads and compiles several large software projects. How long this takes will depend on the speed of your computer.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 brew -v install apple/apple/game-porting-toolkit\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls15\ilvl0 -\f1 \cf0 {\listtext \uc0\u8226 }If during installation you see an error such as \'93 -\f3 Error: game-porting-toolkit: unknown or unsupported macOS version: :dunno -\f1 \'94, your version of Homebrew doesn\'92t have macOS Sonoma support. Update to the latest version of Homebrew and try again.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 brew update\uc0\u8232 brew -v install apple/apple/game-porting-toolkit\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1 \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 2. Create a new Wine prefix for your evaluation environment for Windows games:\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -A Wine prefix contains a virtual C: drive. You will install the toolkit and your game into this virtual C: drive.\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls16\ilvl0\cf0 {\listtext \uc0\u8226 }Run the following command to create a new Wine prefix named -\f0\b my-game-prefix -\f1\b0 in your home directory.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 winecfg -\f1 \ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\cf0 A \'93Wine configuration\'94 window should appear on your screen.\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls17\ilvl0\cf0 {\listtext \uc0\u8226 }Change the version of Windows to Windows 10.\ -{\listtext \uc0\u8226 }Choose Apply and then OK to exit winecfg.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ -If the \'93Wine configuration\'94 window does not appear, and no new icon appears in the Dock, verify that you have correctly installed the x86_64 version of Homebrew as well as the -\f3 game-porting-toolkit -\f1 formula.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 3. Install the redistributables from the evaluation environment into the Wine prefix\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -The graphics bridge libraries need to be placed inside your Wine prefix in order to finalize your evaluation environment. These instructions assume you have mounted the evaluation environment package at -\f3 /Volumes/Evaluation Environment For Windows Games-2.1 -\f1 .\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 -\ls18\ilvl0\cf0 {\listtext \uc0\u8226 }Copy the Game Porting Toolkit library directory into Wine\'92s library directory.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1438\fi-3\sb120\pardirnatural\partightenfactor0 - -\f3 \cf0 ditto /Volumes/Evaluation\\ Environment\\ For\\ Windows\\ Games-2.1/redist/lib/ `brew --prefix game-porting-toolkit`/lib/\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1 \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b\fs28 \cf0 Launch your game\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0\fs24 \cf0 \ -Open your Wine prefix\'92s virtual C: drive in Finder (open -\f3 ~/my-game-prefix/drive_c -\f1 ) and copy your game into an appropriate subdirectory of your choosing.\ -\ -The provided -\f3 bin/ee4wg* -\f1 scripts can be copied onto your path to facilitate different forms of logging and launching. You can run these scripts from any shell; you don\'92t need to switch to the Rosetta environment first.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 A. Standard launching:\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 gameportingtoolkit ~/my-game-prefix 'C:\\Program Files\\MyGame\\MyGame.exe'\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1 \cf0 \ -This launches the given Windows game binary with a visible extended Metal Performance HUD and filters logging to just show output from the D3DMetal graphics layer.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 B. Launching without a HUD\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 gameportingtoolkig-no-hud ~/my-game-prefix 'C:\\Program Files\\MyGame\\MyGame.exe' \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1 \cf0 \ -Launches your game without the extended Metal Performance HUD visible.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 C. Launching with Wine ESYNC disabled\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 gameportingtoolkit-no-esync ~/my-game-prefix 'C:\\Program Files\\MyGame\\MyGame.exe' \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1 \cf0 \ -Finally, the no-esync versions of the script disable Wine's ESYNC option, a common compatibility flag. If your game experiences issues with multithreading, or you get an error message about running out of files, you can try launching your game without this Wine environment variable enabled to see if disabling esync clears the problem.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\pardirnatural\partightenfactor0 - -\f0\b\fs28 \cf0 Environment Variables\ - -\f1\b0\fs24 \ -Environment variables can be used to control some aspects of translation and emulation in the evaluation environment.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-853\pardirnatural\partightenfactor0 - -\f2\b \cf0 D3DM_SUPPORT_DXR -\f1\b0 - Defaults to 0 (OFF). On M3 Macs, setting this environment variable to 1 (ON) enables DirectX Raytracing (aka DXR) features in D3DMetal\'92s DirectX 12 translation layer, so games querying for DXR support will find the support level and expected interfaces of DXR.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\pardirnatural\partightenfactor0 -\cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-854\pardirnatural\partightenfactor0 - -\f2\b \cf0 ROSETTA_ADVERTISE_AVX -\f1\b0 - Defaults to 0 (OFF). On macOS 15 Sequoia, setting this environment variable to 1 (ON) causes the CPU instruction translation layer to publish cpuid information to translated applications when running in the evaluation environment, so games querying instruction set extension capabilities before utilizing them can conditionally control their use of instruction extensions. This setting does not modify the availability of the instruction set in Rosetta; it only controls whether the processor advertises its support for these extensions.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b\fs28 \cf0 Logging -\f1\b0\fs24 \ -\ -Logging output will appear in the Terminal window in which you launch your game as well as the system log, which can be viewed with the Console app found in Applications -\f4 \uc0\u9656 -\f1 Utilities. Log messages from the evolution environment for Windows games are prefixed with -\f0\b D3DM -\f1\b0 . By default the -\f3 ee4wg* -\f1 scripts will filter to just the -\f0\b D3DM -\f1\b0 -prefixed messages. If you are experiencing an issue and want to send logging information through https://feedbackassistant.apple.com, please attach and send the full logs without filtering to -\f0\b D3DM. -\f1\b0 \ -\ - -\f0\b\fs28 Debugging your game with Metal debugger\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx9060\li1331\fi-853\pardirnatural\partightenfactor0 - -\f2\fs24 \cf0 Note: You will need to disable System Integrity Protection (SIP) ({\field{\*\fldinst{HYPERLINK "https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection"}}{\fldrslt -\f1\b0 https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection}} -\f1\b0 ) -\f2\b to debug CrossOver's Wine processes. Reenable SIP after you finish debugging.\ -\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\sb240\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \'95 Compile your shaders with embedded debug information ({\field{\*\fldinst{HYPERLINK "https://developer.apple.com/metal/shader-converter/#shader"}}{\fldrslt https://developer.apple.com/metal/shader-converter/#shader}}) by passing -\f3 -Zi -Qembed_debug -\f1 to the DX Compiler.\ - \'95 In CrossOver, select a bottle to launch your game from.\ - \'95 Enable D3DMetal in the Advanced Settings for the bottle.\ - \'95 Launch your game by clicking Run Command, choosing your game executable, and inserting the following environment variables to enable Metal debugging and processing of debug information: -\f2\b MTL_CAPTURE_ENABLED=1 D3DM_DXIL_PROCESS_DEBUG_INFORMATION=1\ - -\f1\b0 \'95 In Xcode, click -\f3 Debug > Debug Executable\'85 -\f1 from the menubar and select CrossOver.app (this is just to get a workspace window open)\ - \'95 In the visible Scheme options, click the -\f3 Options -\f1 tab and change -\f3 GPU Frame Capture -\f1 from -\f3 Automatically -\f1 to -\f3 Metal -\f1 .\ - \'95 Close Scheme.\ - \'95 Click -\f3 Debug > Attach to Process -\f1 from the menubar and select your launched game process.\ - \'95 After the debugger attaches to the process, you can capture your Metal workload ({\field{\*\fldinst{HYPERLINK "https://developer.apple.com/documentation/xcode/capturing-a-metal-workload-in-xcode#Capture-your-Metal-workload-while-debugging"}}{\fldrslt https://developer.apple.com/documentation/xcode/capturing-a-metal-workload-in-xcode#Capture-your-Metal-workload-while-debugging}}).\ -\ -\pard\pardeftab720\partightenfactor0 -\cf0 If lldb suspends the process due to handling -\f3 SIGUSR1 -\f1 , you will need to run the following commands to ignore this signal and continue the process:\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 process handle -pass false -stop false -notify false SIGUSR1\ -continue -\f1 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b\fs28 \cf0 Troubleshooting -\f1\b0\fs24 \ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 My game won't run and crashes with an invalid instruction or complains about lack of certain instruction extensions -\f1\b0 \ -\ -Invalid instruction crashes are sometimes caused when the Rosetta 2 instruction translation layer is unable to translate CPU instructions. You may be able to recompile a version of your game without certain instructions in order to evaluate its potential on Apple Silicon with the Game Porting Toolkit when you hit this error. You may also be able to use the -\f5 ROSETTA_ADVERTISE_AVX -\f1 environment variable to ensure your game recognizes available translation instruction extensions. When porting your code natively to Apple Silicon there are a variety or NEON and ARM instructions which offer high-performance replacements for AVX / AVX2, BMI, F16c and other less common instruction set extensions.\ -\ - -\f0\b My game won't run because its anti-cheat or DRM software is incompatible with Wine translation.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -You may be able to rebuild a custom version of your game in your Windows development environment with anti-cheat or DRM disabled for your own evaluation purposes. When porting your code natively to Apple Silicon and macOS, contact your anti-cheat or DRM provider\'97most have native Apple Silicon solutions for your native build, or you may find that existing macOS solutions like Hardened Runtime, Application Sandbox, and Application Attestation prevent forms of cheating or tampering that concern you.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 My game won\'92t run because it thinks the version of Windows is too old. -\f1\b0 \ -\ -First, make sure you have selected an appropriate Windows version in winecfg. This affects the major and minor Windows versions that are reported to your game.\ -\ -If your game checks for a specific minimum or an exact build version, you can alter this value by changing the -\f3 CurrentBuild -\f1 and -\f3 CurrentBuildNumber -\f1 values of the -\f3 HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT -\f1 registry key. You must perform this step -\f6\i after -\f1\i0 selecting a Windows version in winecfg. Run the following commands, replacing -\f3 \'abBUILD_NUMBER\'bb -\f1 with the specific build number your game checks for:\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion' /v CurrentBuild /t REG_SZ /d \'abBUILD_NUMBER\'bb /f\ -WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion' /v CurrentBuildNumber /t REG_SZ /d \'abBUILD_NUMBER\'bb /f\ -WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wineserver -k -\f1 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ -The last command will shut down the virtual Windows environment to ensure that all components agree on the Windows version the next time you launch your game.\ -\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 My game won\'92t run because it requires Mono, .NET, or the MSVCRT runtime. -\f1\b0 \ -\ -The evaluation environment for Windows games does not pre-install these runtime support packages. If your game makes use of one of these packages, consider searching for and downloading appropriate installers (.exe or .msi) and installing them to your evaluation environment. Additional runtime installers can be run on your environment by just launching the installer and following its installation instructions:\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1 \cf0 \ -And .MSI packages can be installed by launching the Windows -\f0\b uninstaller -\f1\b0 application and choosing to install a downloaded .msi package:\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 uninstaller\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 My game won\'92t boot anymore even though I made no changes.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 If the game stopped booting without being updated, you can try clearing the shader cache.\ -Run the following commands:\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li961\fi1\pardirnatural\partightenfactor0 - -\f3 \cf0 cd $(getconf DARWIN_USER_CACHE_DIR)/d3dm\ -cd \'abGAME_NAME\'bb\ -rm -r shaders.cache -\f1 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f0\b \cf0 Do you have a different problem or other feedback?\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 - -\f1\b0 \cf0 \ -Please let us know through https://feedbackassistant.apple.com.\ -} diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Headers b/GPTK/redist/lib/external/D3DMetal.framework/Headers deleted file mode 120000 index a177d2a6b926..000000000000 --- a/GPTK/redist/lib/external/D3DMetal.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal index ba5e761d36d1..438f9b963d7b 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/Info.plist b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/Info.plist index 030b614a944b..8dac00cd02eb 100644 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/Info.plist and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/Info.plist differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib index 7dcfaf74f11a..f1112588a593 100644 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib index 8e3c55221524..d938742a76a7 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib index 7463b49920c1..8b0689605e2f 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib index d3076ea66434..6ae8cea717fb 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib index e4a129a58c7e..d4c6592e4e5a 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist index 4d005c81f21d..0fa1ad11a97e 100644 --- a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist +++ b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist @@ -5,12 +5,12 @@ BuildVersion 1 CFBundleShortVersionString - 2.1 + 3.0b1 CFBundleVersion - 2.1 + 3.0b1 ProjectName D3DRendererMetal SourceVersion - 31002000000000 + 32022000000000 diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources index 8368d9ca85ed..1ba11fc2e0bd 100644 --- a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources +++ b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources @@ -6,7 +6,7 @@ Resources/Info.plist - oIsSoP4/5F0jL3jxmapFf3UI568= + c5zd5OflsL1EOWgdxAu5hXdlq9U= Resources/LICENSE @@ -14,27 +14,27 @@ Resources/default.metallib - LkMna/GBbojq2o/zlnszhM0nMeI= + wZc90XqU63pGA0XqBsyZb7TSGdI= Resources/libdxccontainer.dylib - aay+ptEPV5Sg6PPnmY81T/u5bbo= + ddhxAUKiAwyvHn7NyCMYVM8LjJc= Resources/libdxcompiler.dylib - IHa4gsYknhmXCJa3TJR3r6l4jOU= + Mj9sVyPo0wDVqy/Ib5LjYMGwgg8= Resources/libdxilconv.dylib - X5BjG2we7bFqtmirSxGZSS5n/TQ= + k0gTsPFfDpYKbSR6WR+MEgDTBNI= Resources/libmetalirconverter.dylib - BNfscMfVgdnZy7oV997rwV/58CI= + jafJPx7js2ISFG4S0FIgBdGlRO8= Resources/version.plist - fNU5K7BsPJDN9J6yZ/p9zCJDipw= + 51Yq3d2cI38EMK6MomCPpI7e/Yg= files2 @@ -43,7 +43,7 @@ hash2 - R9MDbPwC+kbyaElF7GekHR69edXKHRVVfwATQFJf5Zk= + k6PiK3/VATxb/V2YkXoZv/SrtBqY/ubggazo/LMtsgc= Resources/LICENSE @@ -57,42 +57,42 @@ hash2 - bCnouksURNPDBbP85nFdxW03YArk6FFqfqrVc3YGsTQ= + mDf4A2UucYujD5Kedp9XfdPtWJRpStmHxskeqILuIGg= Resources/libdxccontainer.dylib hash2 - wq8woua1fEe8x1JNWmAAy1/oMokB/rktlM301+oGqjA= + 7J0VXQVBRPIA3kshLTNLTl/1O6exvIM9Z2zOrbygH6c= Resources/libdxcompiler.dylib hash2 - 71NGaypWYocHu+AnHNJASu8taF+YGBvEB7f8rk7M01g= + 9rAYw1vS0lZ7RWokxjmI4ZnPa6hrqcYepxakaeEV6kI= Resources/libdxilconv.dylib hash2 - koE7YknZnvf+VH+eQiDkhLcADj0FmmSEwjtOR+o9T20= + c68wIdWWqOghevMrfSKhCnArxM8QNeLNrUAc0jifs6w= Resources/libmetalirconverter.dylib hash2 - f8NmTHHOgT9ZR09fGbpp3LtJm9fMd+l/16ZygLi6L40= + 0Y8VnyR7HWvBWxYKmEpH0tuJ3vNsivh92t1fU9PAHrc= Resources/version.plist hash2 - Dz1COqi57vN99BLUoXQnJ+X+mk6liYXUIV8D6z+GQ5E= + 4mEf3VA/6D7wSE+pshjvyzgt2vodUnnMV+WG0mXFefc= diff --git a/GPTK/redist/lib/external/libd3dshared.dylib b/GPTK/redist/lib/external/libd3dshared.dylib index 2deeb47d5272..2664680a8ece 100755 Binary files a/GPTK/redist/lib/external/libd3dshared.dylib and b/GPTK/redist/lib/external/libd3dshared.dylib differ diff --git a/GPTK/redist/lib/wine/x86_64-unix/nvapi64.so b/GPTK/redist/lib/wine/x86_64-unix/nvapi64.so new file mode 120000 index 000000000000..c76417840bfd --- /dev/null +++ b/GPTK/redist/lib/wine/x86_64-unix/nvapi64.so @@ -0,0 +1 @@ +../../external/libd3dshared.dylib \ No newline at end of file diff --git a/GPTK/redist/lib/wine/x86_64-unix/nvngx-on-metalfx.so b/GPTK/redist/lib/wine/x86_64-unix/nvngx-on-metalfx.so new file mode 120000 index 000000000000..c76417840bfd --- /dev/null +++ b/GPTK/redist/lib/wine/x86_64-unix/nvngx-on-metalfx.so @@ -0,0 +1 @@ +../../external/libd3dshared.dylib \ No newline at end of file diff --git a/GPTK/redist/lib/wine/x86_64-windows/atidxx64.dll b/GPTK/redist/lib/wine/x86_64-windows/atidxx64.dll index ac0588dd7903..7d46e23ae242 100644 Binary files a/GPTK/redist/lib/wine/x86_64-windows/atidxx64.dll and b/GPTK/redist/lib/wine/x86_64-windows/atidxx64.dll differ diff --git a/GPTK/redist/lib/wine/x86_64-windows/d3d10.dll b/GPTK/redist/lib/wine/x86_64-windows/d3d10.dll index 385df2eefad4..ba3f31f54638 100644 Binary files a/GPTK/redist/lib/wine/x86_64-windows/d3d10.dll and b/GPTK/redist/lib/wine/x86_64-windows/d3d10.dll differ diff --git a/GPTK/redist/lib/wine/x86_64-windows/d3d11.dll b/GPTK/redist/lib/wine/x86_64-windows/d3d11.dll index 7402d54ec9f6..bd84b31cad9d 100644 Binary files a/GPTK/redist/lib/wine/x86_64-windows/d3d11.dll and b/GPTK/redist/lib/wine/x86_64-windows/d3d11.dll differ diff --git a/GPTK/redist/lib/wine/x86_64-windows/d3d12.dll b/GPTK/redist/lib/wine/x86_64-windows/d3d12.dll index 0e6f0778d447..5d9f98b85f60 100644 Binary files a/GPTK/redist/lib/wine/x86_64-windows/d3d12.dll and b/GPTK/redist/lib/wine/x86_64-windows/d3d12.dll differ diff --git a/GPTK/redist/lib/wine/x86_64-windows/dxgi.dll b/GPTK/redist/lib/wine/x86_64-windows/dxgi.dll index 05c1fc1edf65..13b0f8d82b81 100644 Binary files a/GPTK/redist/lib/wine/x86_64-windows/dxgi.dll and b/GPTK/redist/lib/wine/x86_64-windows/dxgi.dll differ diff --git a/GPTK/redist/lib/wine/x86_64-windows/nvapi64.dll b/GPTK/redist/lib/wine/x86_64-windows/nvapi64.dll new file mode 100644 index 000000000000..73ed6e8cd078 Binary files /dev/null and b/GPTK/redist/lib/wine/x86_64-windows/nvapi64.dll differ diff --git a/GPTK/redist/lib/wine/x86_64-windows/nvngx-on-metalfx.dll b/GPTK/redist/lib/wine/x86_64-windows/nvngx-on-metalfx.dll new file mode 100644 index 000000000000..a8b79d0fb971 Binary files /dev/null and b/GPTK/redist/lib/wine/x86_64-windows/nvngx-on-metalfx.dll differ diff --git a/properties.plist b/properties.plist index 5d8393974ee9..59c15d2cd8ba 100644 --- a/properties.plist +++ b/properties.plist @@ -7,13 +7,13 @@ build 0 major - 2 + 3 minor - 6 + 0 patch 0 preRelease - + beta.1