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

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

 

Con la siguiente línea lo que hacemos es ejecutar el instalador sobre el entorno wine que configuramos anteriormente:

gameportingtoolkit ~/wine-game-porting ~/Downloads/Battle.net-Setup.exe

Ya deberíamos poder instalar el juego de Diablo 4 dentro del macos, esperamos hasta que sea jugable (y en mi experiencia dejaría que avance la descarga algo más antes de ejecutarlo definitivamente)


13 - Jugar a Diablo IV en macos

Por fin podemos jugar a diablo en nuestro macos, pero quizás obtengas algunos errores o avisos al hacerlo... puede frustrar si ocurre pero tranquilo que hay soluciones. Te comparto lo que a mi me ha funcionado.

La primera vez que lo ejecuté directamente desde el Battle.net me salió un aviso indicando que necesitaba windows 10 para ejecutarse, así que investigando di con las líneas para forzar la versión necesaria.

Así que en ese caso salimos del Battle.net y ejecutamos desde terminal las siguientes líneas:


WINEPREFIX=~/wine-game-porting `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuild /t REG_SZ /d 19042 /f
WINEPREFIX=~/wine-game-porting `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuildNumber /t REG_SZ /d 19042 /f
WINEPREFIX=~/wine-game-porting `brew --prefix game-porting-toolkit`/bin/wineserver -k


Ya podemos intentar jugarlo de nuevo.

Esta línea te abriría de nuevo el Battle.net:

gameportingtoolkit ~/wine-game-porting 'C:\Program Files (x86)/Battle.net/Battle.net.exe'


Con estas líneas... en teoría deberías poder ejecutar Diablo IV sin entrar en Battle.net tanto usando el launcher como sin el launcher. Pongo "en teoría" por que a mi siempre me entra al Battle.net... igualmente puedo lanzarlo a jugar y todo abre rapidísimo.

Ten en cuenta que yo uso una instalación del juego en un SSD externo, esa ruta debes adaptarla a tu instalación de Diablo IV. 

Abrir directamente el launcher de Diablo:

arch -x86_64 gameportingtoolkit-no-hud ~/wine-game-porting 'C:\Program Files (x86)\Diablo IV\Diablo IV Launcher.exe'

Abrir directamente el juego:


arch -x86_64 gameportingtoolkit-no-hud ~/wine-game-porting '/Volumes/SSD_GAMES/DiabloIV/Diablo\ IV/Diablo\ IV.exe'


Pero como te comentaba, a mi personalmente siempre me abre el battle.net en lugar del juego directamente. Prueba y coméntame tu experiencia, quedaré agradecido si me arrojas luz sobre esto.


Hardware utilizado para jugar a diablo iv con la instalación en macos descrita en esta guía


Para estas pruebas he utilizado un Macbook Pro de 2021 con procesador M1 Pro de 10 cores CPU, 16 cores GPU y 16GB de ram.

Dos Pantallas thinkvision p27q10

Mando 8bitDo SN30 Pro



Pruebas de rendimiento y mi experiencia jugando con diablo 4 en MacOS


No es un proceso cómo realmente, al menos hoy día y sobre todo se complica si no tienes experiencia informática como para manejarte con fluidez por terminal o instalar un sistema independiente dual bot.

Aún así, una vez que lo consigues hacer se ve todo el proceso con más claridad y no resulta tan complicado. ¡Un poco de paciencia y positivismo ayuda mucho siempre!

Si me preguntas si te recomiendo que lo uses sin entender los pasos anteriores descritos, mi respuesta es no por que podrías dañar tu sistema principal, yo lo hice sobre un sistema secundario prestando atención a no equivocarme de volumen en ningún momento para mantener sano mi sistema principal. Ahora bien, si es un equipo secundario o no te importa formatear... adelante, probar y experimentar te puede aportar conocimientos pero no olvides "el peor de los casos" por poco probable que sea (reinstalar todo el sistema)

Las pruebas de rendimiento que he realizado me han resultado bastante satisfactorias. 

En la pantalla integrada con los detalles bastante altos he llegado a unos 45-48fps andando por el mundo estando solo y por encima de 30fps en batallas hasta el nivel 12, desconozco que puede pasar más adelante en lugares muy concurridos o en mazmorras con muchas magias/enemigos pero lo que si está claro es que tengo bastante margen para maniobrar manteniendo una calidad bastante aceptable de juego.


Imagen de muestra ejecutando diablo iv en pantalla integrada de macbook pro m1 pro con ajustes de calidad altos 

 

Además he de decir que en esas primeras pruebas tenía varios streams en twitch abiertos, estaba además grabando con el mismo equipo la pantalla, hablaba por discord, servidores en ejecución, dos navegadores con bastantes pestañas... no es una prueba firme. Intentaré subir algún gameplay o vídeo comentando con más experiencia de uso cuando avance más en el juego.

Probando en un monitor externo 2k la cosa empeora un poco, tuve que bajar de alto a medio bastantes opciones y reducir la cantidad de partículas para magias en áreas. 

Aún así, establecí el límite de fps en 30 y no lo he visto bajar durante horas de uso.

Ya siendo nivel 20 he logrado stremear en 2k dentro de twitch manteniendo los 30fps de juego en lo que se podría decir que llevo unos ajustes de calidad medio.


Conclusión Final

Ciertamente le veo bastante futuro a esta herramienta y puede ser un soplo de aire fresco para jugadores ocasionales que no quieran salir de macos por preferirlos para trabajar como es mi caso.

Si estos avances/mejoras continúan y se simplifica un poco la creación de "botellas" o "sandbox" para wine al estilo crossover (que por otro lado, se viene ya con esto desde hace tiempo) me parece que es un acierto y pueden ganar bastante atención tanto de desarrolladores de videojuegos como de usuarios finales que no quieran jugar a 4k en ultra con 150fps jeje.

A mi por ahora me ha ahorrado comprar otro equipo/consola que no quiero comprar solo para jugar a este juego, soy usuario de linux y macos pero solo tengo portátiles ya que mi profesión es desarrollador web backend, no quiero nada que sea un tiesto anclado a una mesa.


Sobre el autor

Mi nombre es Raúl Caro Pastorino, en redes suelo usar el nick @raupulus

Puedes encontrar mis redes sociales en https://social.fryntiz.dev

Soy desarrollador web backend pero también me considero un maker que siempre está experimentando con microcontroladores, sistemas, código... 








Comentarios

Entradas populares de este blog

Proyecto Experimental para generar Imágenes + vídeo con AI autogenerando prompt y subiendo a redes

Ampliamos la memoria RAM de un NAS asustor lockestor desde 4GB a 16GB.