Apple's new tool makes it possible to play Windows game on MacBook


In a major announcement at its annual Worldwide Developers Conference (WWDC), Apple has introduced a Game Porting Toolkit that could potentially bridge the gap between Windows and Mac gaming. The new toolkit is set to simplify and expedite the process of porting Windows games to Mac by employing a Proton-like environment capable of translating and running the latest DirectX 12 Windows games on macOS. Leveraging source code from CrossOver, a Wine-based solution for Windows game emulation on macOS, Apple's Game Porting Toolkit enables developers to effortlessly launch unmodified versions of Windows games on Mac, providing insights into their performance and compatibility prior to full porting.

For years, Mac gaming has been a subject of jest within the PC gaming community, but exceptions like the ports of Resident Evil Village and No Man's Sky have offered a glimmer of hope. Aiswariya Sreenivassan, an engineering project manager for GPUs and graphics at Apple, highlighted the toolkit's capabilities during a WWDC session, stating, "The new Game Porting Toolkit provides an emulation environment to run your existing unmodified Windows game, and you can use it to quickly understand the graphics feature usage and performance potential of your game when running on a Mac."

The Game Porting Toolkit supports DirectX 12 games, as demonstrated by Sreenivassan running The Medium through Apple's translation layer. Similar to the collaborative efforts of Wine and Proton in enabling Windows API calls on Linux, Apple has devised a comparable solution by converting Windows API calls to its Metal API. By translating Intel-based x86 instructions and Windows APIs to Apple Silicon, the toolkit ensures seamless compatibility. Keyboard, mouse, controller input, audio playback, networking, file system access, and Direct3D are among the APIs automatically translated to their macOS counterparts. Consequently, Windows games can run on macOS without requiring any porting or modification. Although Apple initially emphasizes the toolkit's value for evaluating games before porting, there is no prohibition on macOS users installing the Game Porting Toolkit and experimenting with various games.

The success of games within this environment will largely depend on how well they run. Since most games won't be optimized through this tool, performance issues and bugs are expected until developers create their own ports. Reddit users have already achieved promising results, running titles such as Cyberpunk 2077, Diablo IV, and Hogwarts Legacy on M1 MacBook Pro and M1 Max MacBook Pro. However, potential bugs may arise from this method of running games on Mac. CodeWeavers recently announced its highly-anticipated DirectX 12 support for CrossOver Mac, the underlying source code powering Apple's tool, cautioning that unlocking DirectX 12 support on macOS required a multifaceted approach involving the resolution of numerous bugs.

Nonetheless, Apple's translation layer remains significant. The company has consistently touted the high-performance capabilities of its GPU cores found in M1 and M2 chips, unveiling an M2 Ultra chip during WWDC with a 76-core GPU that surpasses the M1 Ultra by 30%. However, this impressive GPU performance has yet to be fully realized in Mac gaming due to the limited number of ported games. Traditionally, porting Windows games to Mac has been a complex process involving recompiling source code, converting shaders, reimplementing graphics subsystems, and adapting audio, input, and HDR rendering. While cross-platform game engines can simplify this complexity for developers targeting multiple platforms, debugging and optimizing performance on macOS remain essential. Apple's new toolkit allows developers to assess the extent of porting work required, addressing bugs and optimizing their games on macOS. Additionally, Apple has introduced the Metal Shader Converter, which automatically converts existing GPU shaders to Metal, reducing the time and effort needed to port games

Post a Comment

Previous Post Next Post