Pruebo el APPLE Game Porting Toolkit en macOS para testear jugar a Diablo IV en Macbook m1 pro

Probando APPLE Game Porting Toolkit en macOS para testear jugar a Diablo IV en Macbook m1 pro


Estos días con la salida final del juego Diablo 4 (que por un lado tenía unas ganas enormes de jugarlo) también ha sido la conferencia WWDC de Apple en la que nos han presentado bastante variedad de novedades en general pero a primera vista pocas por dispositivo/sistema.

Una de las novedades que en mi opinión es bastante interesante es la nueva herramienta para portar juegos de windows a sistemas apple con m1 y m2 (sin ser yo una persona que juegue demasiado) incluyendo hasta soporte para directx 12.

 

Diablo IV ejecutándose en m1 pro con metal

 

Básicamente es o entiendo que es un wrapper para adaptar ciertas instrucciones, crossover ya estaba trabajando en ello encontrando problemas por el tamaño de memoria que ocupa directx12 complicando la traducción o adaptación a la api de metal.

 

Imagen cargando Diablo 4 en macos 14 sonoma 

 

El Game Porting Toolkit por debajo igualmente usa wine por lo que esa parte de configuración nos puede resultar totalmente familiar. Leyendo por la red veo que comparan este sistema como una especie de "Protón de steam" para macos.

Hay que destacar que todo esto se encuentra en fase beta y para macOS 14 Sonoma así que si buscas estabilidad o facilidad para usar esta herramienta quizás sea un poco pronto, personalmente la he probado y tras algunas pequeñas complicaciones he conseguido ejecutar Diablo IV con una cantidad de frames bastante aceptables a calidad media/alta tanto en la pantalla integrada como en una pantalla externa 2k llegando hasta 48fps pero jugando más estable con un límite de 30fps. También me ha detectado un mando para jugar, el 8bit SN30 Pro a la primera de forma totalmente transparente.

Os dejo a continuación el vídeo de todo el proceso que he realizado y un pequeño gameplay al final dónde muestro el juego en ejecución con la pantalla integrada y externa utilizando la calidad más alta que me permitía sin bajar de 30fps:




 

Si te vas a lanzar para probarlo, recuerda que necesitas tener MacOS 14 Sonoma beta con xcode 15, por lo que te recomiendo tener una partición independiente a tu sistema principal para arrancar con dual bot al menos hasta que avance el proyecto y salga el sistema definitivamente.

 

 

 Pasos para instalar Diablo IV en MacOS 14 con Apple Game Porting Toolkit



1 - Descargar Xcode 15 beta

Descargar Xcode 15 beta

Antes de comenzar debemos asegurarnos de tener Macos 14 Sonoma y Xcode 15, no nos servirá la versión de xcode 14 que existe en el Apple Store. Esta herramienta nos permitirá compilar, descargar, utilizar repositorios etc más adelante.

Al descargar, es importante que descarguéis e instaléis como mínimo Xcode y las Command Line Tools desde la siguiente página oficial de apple developers:

https://developer.apple.com/download/all/?q=xcode%2015

 

2 - Descargar Game Porting Toolkit

Descargar Game Porting Toolkit

La herramienta que hará toda la magia la podemos encontrar en el siguiente enlace:

https://developer.apple.com/download/all/?q=game%20porting%20toolkit

Dentro de la herramienta tenemos un archivo "Readme" con todas las instrucciones en las que me he basado para utilizar la herramienta, te recomiendo darle un vistazo a ese documento antes de continuar.


3 - Instalar y/o Actualizar Rosetta

Ejecutando el siguiente comando nos aseguramos de tener instalado rosetta (capa de traducción entre amd64 y arm64, permitiendo ejecutar aplicaciones creadas para intel/amd) y además que se encuentre en su versión 2, lo haremos con la siguiente línea:

softwareupdate --install-rosetta

 

4 - Entrar a terminal x86_64

Si todo lo anterior ha ido bien, vamos abrir un terminal usando rosetta 2 para continuar:

arch -x86_64 zsh

Esto nos debería mantener en el mismo lugar del terminal sin ver cambio (ni mensaje de error o success) pero ahora todo lo que ejecutemos será en modo arquitectura amd64.


5 - Instalar homebrew para x86_64

Estando dentro del terminal amd64, vamos a instalar brew para esta arquitectura.

Podemos ver las instrucciones desde la siguiente web:

https://brew.sh/

Igualmente os dejo la línea de código para ello copiada desde su propia web: 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Os recomiendo leer los pasos y mensajes del terminal al instalar brew.

 

6 - Comprobar que estamos ejecutando brew para x86_64

Una vez instalado brew dentro de rosetta, vamos a verificar que la ruta hacia su binario es correcta.

La ruta correcta es "/usr/local/bin/brew" así que si nos muestra otra es que estamos con la versión brew para arm64 y tenemos que entrar de nuevo en un terminal con la arquitectura amd64.

El comando para verificar la ruta es el siguiente:

which brew

 

7 - Controlar que se ejecuta brew según arquitectura (Opcional)

Este paso lo he marcado como opcional por que no será necesario para todo el mundo, si solo tienes una instalación independiente para jugar quizás no uses brew para arm64 (tengas solo brew dentro de rosetta). 

En el caso de que tengas dos instalaciones de brew (una por arquitectura) puede que te resulte interesante cargar el binario automáticamente según la arquitectura. Esto lo puedes realizar editando el archivo que carga el terminal al abrir una sesión verificando en cuál nos encontramos.

Te dejo a continuación lo que yo utilizo por si lo necesitas.

Añado en el perfil de terminal:

nano ~/.zshrc

El siguiente contenido, usará el path hacia brew correspondiente a cada arquitectura:

if [ "$(arch)" = "arm64" ]; then
    eval "$(/opt/homebrew/bin/brew shellenv)"
else
    eval "$(/usr/local/bin/brew shellenv)"
fi


8 - Añadir repositorio de apple

Ahora vamos a decirle a brew que nos añada el repositorio para poder instalar aplicaciones open source de apple en nuestro sistema:


brew tap apple/apple http://github.com/apple/homebrew-apple

9 - Instalar Game Porting Toolkit desde el repositorio de apple

Una vez tengamos el repositorio podemos instalar el game-porting-toolkit así:


brew -v install apple/apple/game-porting-toolkit

En caso de obtener error, actualizar brew con "brew update" y volver a ejecutar la línea anterior.

10 - Preparar Game Porting Toolkit

Nos tenemos que asegurar tener Game Porting Toolkit que descargamos en los primeros pasos montado, para mi caso al probarlo estaba en la ruta "/Volumes/Game Porting Toolkit-1.0" de forma que esto puede cambiar en el tiempo y ser diferente para ti, tenlo en cuenta durante los siguientes comandos.

Vamos a copiar las librerías:

ditto /Volumes/Game\ Porting\ Toolkit-1.0/lib/ `brew --prefix game-porting-toolkit`/lib/


Ahora copiamos los 3 scripts que contiene el dmg descargado hacia nuestro sistema para poder ejecutarlos globalmente de forma más cómoda en el futuro:

cp /Volumes/Game\ Porting\ Toolkit*/gameportingtoolkit* /usr/local/bin

11 - Configurar Wine

Con todo lo anterior preparado, llego el momento de afinar wine definiendo un entorno de trabajo y configurando lo que necesitemos. Esto varía según lo que vayamos a ejecutar así que en esa parte tocará investigar un poco.

La configuración que os dejaré por aquí es la que a mi me ha funcionado a fecha de redacción del artículo, todo enfocado para Diablo IV únicamente

Establecemos la ruta en la que wine trabajará y preparamos wine dentro:

WINEPREFIX=~/wine-game-porting `brew --prefix game-porting-toolkit`/bin/wine64 winecfg


Yo elegí un directorio llamado "wine-game-porting" directamente en el directorio del usuario para tenerlo localizado fácilmente.

En este punto se nos abrirá "winecfg" mostrando la configuración de wine, deberemos cambiar la versión a windows 10 y aplicar cambios.


12 - Ejecutar instalador de Battle.net.exe dentro de macos 14