Disclaimer: este tutorial sirve para la versión de macOS Sierra. En Catalina y BigSur los pasos difieren, sin haber consenso, y os recomiendo que echéis un vistazo a las interacciones de los usuarios que han respondido al tema.
A petición de @alexMAD he instalado una máquina virtual y he estado gran parte de la tarde investigando los errores que iba recibiendo, hasta conseguir compilar nuestro querido proyecto. Yo en principio he probado solo con pokeemerald, aunque si con otro proyecto trae algún problema concreto, puedo intentar compilarlo también para solucionar los errores que puedan haber.
Este tutorial puede ser utilizado en versiones superiores de MacOS. Sin embargo, para los Macs con procesador Apple Silicon (M1), algunos cambios deben aplicarse en los comandos.
Haría un script, pero sorprendentemente, para MacOS es ULTRA FÁCIL configurarlo todo (que envidia cabrones :c), y ni si quiera merece la pena.
En primer lugar, necesitamos las herramientas de la línea de comandos de XCode. OJO, no necesitamos descargar XCode, se llama así, pero se instala de forma independiente. Para ello, abriremos la
Y una vez la abramos, escribiremos el siguiente comando y lo ejecutaremos
Nos aparecerá una ventana como esta, o muy similar
Le damos a Install, y esperamos a que se complete la instalación.
(Manurocker95): A partir de este punto, todos los comandos que se utilizan en este tutorial, en el caso mencionado de los M1, necesitarán ejecutarse en Rosetta 2 mediante la especificación de arquitectura
para que tanto Devkitpro como libpng se installen bajo Rosetta. Si no sabemos cómo hacerlo, primero deberemos instalar Rosetta 2 (Si no lo hemos hecho) mediante el comando:
Si da el código de error:
es que no hemos instalado correctamente Rosetta.
Una vez la instalación de XCode acabe, pasaremos a instalar
(Manurocker95) Si estamos usando un M1, quedaría así:
Y ejecutaremos estas dos líneas para actualizar los paquetes que ya tenemos instalados.
E instalaremos libpng con este código
(Manurocker95) Importante: En los M1, brew instala sus librerías (libpng en este caso) en /opt/homebrew, pero necesitará estar en "/usr/local" para poder compilar. Por eso, forzaremos la ruta en la que se instalará libpng mediante el comando:
Esto nos lo instalará en la ruta correcta y nos evitará el error
y con ello, compilarán nuestras roms.
Ahora, el paquete gordo. devkitPro-Pacman. Para este, tendremos que ir a ESTE ENLACE y haremos un poco de scroll hasta abajo hasta encontrar algo como esto:
Ojo, nosotros tenemos que descargar el que acaba en .pkg, así que, lo descargamos, y por ejemplo, lo movemos al escritorio.
Ahora, volvemos a la terminal, y tenemos que acceder a la ruta del escritorio, para ello, escribiremos en el terminal
TIENE QUE HABER UN ESPACIO ENTRE CD Y EL RESTO DEL TEXTO (Cuidado con esto, que se nos puede pasar jajajaja)
Una vez tenemos eso escrito, le damos a intro para ejecutarlo, y copiamos y pegamos este comando.
Esperamos a que se instale todo, y de nuevo, aceptamos todo lo que tengamos que aceptar.
Y lo último que tendremos que instalar será gcc-arm-none-eabi. Yo lo he tenido que instalar de un repositorio ajeno al oficial, porque el oficial me daba problemas. Para esto, ejecutaremos estas tres instrucciones por orden
Y con esto, si todo ha ido bien, ya tendríamos todos los paquetes necesarios.
Ahora, descargaremos nuestro repositorio de preferencia, en mi caso será pokeemerald. Y para ello, si no queréis que se guarde en el propio Escritorio, podéis crear una carpeta en el escritorio ejecutando este comando
Y luego, accedemos a ella con
Ahora ya, procedemos a descargar lo necesario con las siguientes instrucciones, os dejo las que tendríais que usar según la base que queráis en diferentes spoiler
Con todo esto descargado e instalado, el siguiente comando será el que compile nuestro juego.
Y una vez compilado, os debería salir algo muy similar a esto
¡Y ya tendrás tu juego compilado!
Eso si, yo antes de conseguir ese resultado, obtuve un error por un fallo en uno de los archivos Makefile del proyecto, si a ti no te ha aparecido eso a la primera, abre el spoiler.
¡Disfrutad de Decomp en MacOS!
PD.
Ver el archivo adjunto 4589
He hecho la prueba con pokefirered y me ha compilado a la primera sin ningún problema.
A petición de @alexMAD he instalado una máquina virtual y he estado gran parte de la tarde investigando los errores que iba recibiendo, hasta conseguir compilar nuestro querido proyecto. Yo en principio he probado solo con pokeemerald, aunque si con otro proyecto trae algún problema concreto, puedo intentar compilarlo también para solucionar los errores que puedan haber.
Este tutorial puede ser utilizado en versiones superiores de MacOS. Sin embargo, para los Macs con procesador Apple Silicon (M1), algunos cambios deben aplicarse en los comandos.
Haría un script, pero sorprendentemente, para MacOS es ULTRA FÁCIL configurarlo todo (que envidia cabrones :c), y ni si quiera merece la pena.
En primer lugar, necesitamos las herramientas de la línea de comandos de XCode. OJO, no necesitamos descargar XCode, se llama así, pero se instala de forma independiente. Para ello, abriremos la
Terminal
de MacOS
Y una vez la abramos, escribiremos el siguiente comando y lo ejecutaremos
Código:
xcode-select --install
Le damos a Install, y esperamos a que se complete la instalación.
(Manurocker95): A partir de este punto, todos los comandos que se utilizan en este tutorial, en el caso mencionado de los M1, necesitarán ejecutarse en Rosetta 2 mediante la especificación de arquitectura
Código:
arch -x86_64
Código:
softwareupdate --install-rosetta
Código:
arch: posix_spawnp: /bin/bash: Bad CPU type in executable
Una vez la instalación de XCode acabe, pasaremos a instalar
Homebrew
, que no es lo que nos sirve para hackear las consolas de Nintendo que nos servirá para poder descargar el paquete que no viene preinstalado con el primer comando que hemos ejecutado, es decir, libpng.
Código:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
(Manurocker95) Si estamos usando un M1, quedaría así:
Código:
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Y ejecutaremos estas dos líneas para actualizar los paquetes que ya tenemos instalados.
Código:
brew update
brew upgrade
E instalaremos libpng con este código
Código:
brew install libpng
(Manurocker95) Importante: En los M1, brew instala sus librerías (libpng en este caso) en /opt/homebrew, pero necesitará estar en "/usr/local" para poder compilar. Por eso, forzaremos la ruta en la que se instalará libpng mediante el comando:
Código:
arch -x86_64 /usr/local/bin/brew install libpng
Esto nos lo instalará en la ruta correcta y nos evitará el error
Código:
png.h not found
NOTA: Si en alguno de estos comandos se nos pide permisos y no nos deja ejecutarlos, lo único que tenemos que hacer es escribir "sudo" delante del comando, así
Luego nos pediría la contraseña de nuestro Mac para confirmar que sabemos lo que hacemos. La escribimos (no veremos ningún caracter escribiendo mientras tecleamos, pero la Terminal sí lo está leyendo), y cuando la hayamos escrito, le damos intro, y ya se ejecuta el comando.
Código:
sudo brew install libpng
Luego nos pediría la contraseña de nuestro Mac para confirmar que sabemos lo que hacemos. La escribimos (no veremos ningún caracter escribiendo mientras tecleamos, pero la Terminal sí lo está leyendo), y cuando la hayamos escrito, le damos intro, y ya se ejecuta el comando.
Ahora, el paquete gordo. devkitPro-Pacman. Para este, tendremos que ir a ESTE ENLACE y haremos un poco de scroll hasta abajo hasta encontrar algo como esto:
Ojo, nosotros tenemos que descargar el que acaba en .pkg, así que, lo descargamos, y por ejemplo, lo movemos al escritorio.
Ahora, volvemos a la terminal, y tenemos que acceder a la ruta del escritorio, para ello, escribiremos en el terminal
cd
y un espacio. Volvemos al Escritorio, y arrastramos el paquete que acabamos de descargar, a la terminal, y veremos que se escribe automáticamente la ruta, eso sí, de esa ruta, tendremos que borrar el nombre del archivo. A mi al final, me queda asíTIENE QUE HABER UN ESPACIO ENTRE CD Y EL RESTO DEL TEXTO (Cuidado con esto, que se nos puede pasar jajajaja)
Una vez tenemos eso escrito, le damos a intro para ejecutarlo, y copiamos y pegamos este comando.
Código:
sudo installer -pkg devkitpro-pacman-installer.pkg -target /
Y lo último que tendremos que instalar será gcc-arm-none-eabi. Yo lo he tenido que instalar de un repositorio ajeno al oficial, porque el oficial me daba problemas. Para esto, ejecutaremos estas tres instrucciones por orden
Código:
brew tap PX4/homebrew-px4
brew update
brew install gcc-arm-none-eabi
Ahora, descargaremos nuestro repositorio de preferencia, en mi caso será pokeemerald. Y para ello, si no queréis que se guarde en el propio Escritorio, podéis crear una carpeta en el escritorio ejecutando este comando
Código:
mkdir Decomp
Código:
cd Decomp
Código:
git clone https://github.com/pret/pokeemerald
git clone https://github.com/pret/agbcc
cd ./agbcc
./build.sh
./install.sh ../pokeemerald
cd ../pokeemerald
Código:
git clone https://github.com/pret/pokeruby
git clone https://github.com/pret/agbcc
cd ./agbcc
./build.sh
./install.sh ../pokeruby
cd ../pokeruby
Código:
git clone https://github.com/pret/pokefirered
git clone https://github.com/pret/agbcc
cd ./agbcc
./build.sh
./install.sh ../pokefirered
cd ../pokefirered
Con todo esto descargado e instalado, el siguiente comando será el que compile nuestro juego.
Código:
make -j$(sysctl -n hw.physicalcpu)
¡Y ya tendrás tu juego compilado!
Eso si, yo antes de conseguir ese resultado, obtuve un error por un fallo en uno de los archivos Makefile del proyecto, si a ti no te ha aparecido eso a la primera, abre el spoiler.
Si te ha dado este error
Tendrás que abrir manualmente un archivo de todos los que hay ahí.
Exactamente, estará en el archivo donde descargaste pokeemerald, luego entras a la carpeta de pokeemerald, y en esa carpeta, entras a
Dentro de ella, encontrarás un archivo llamado
Y dentro nos encontraremos con muchas líneas, pero tendremos que bajar hasta una que se llama
Y justo después de esa línea, añades la siguiente
Quedando de esta manera
Una vez hecho esto, guardamos el archivo desde
Y por fin deberíamos lograr nuestra ansiada ROM compilada
Tendrás que abrir manualmente un archivo de todos los que hay ahí.
Exactamente, estará en el archivo donde descargaste pokeemerald, luego entras a la carpeta de pokeemerald, y en esa carpeta, entras a
libagbsyscall
Dentro de ella, encontrarás un archivo llamado
Makefile
, pues le damos click derecho, y lo abrimos con el TextEdit
Y dentro nos encontraremos con muchas líneas, pero tendremos que bajar hasta una que se llama
Código:
export LD := $(PREFIX)ld
Y justo después de esa línea, añades la siguiente
Código:
export AR := $(PREFIX)ar
Una vez hecho esto, guardamos el archivo desde
File > Save
, y ahora en la terminal ejecutaremos estas dos instrucciones
Código:
make clean
make -j$(sysctl -n hw.physicalcpu)
¡Disfrutad de Decomp en MacOS!
PD.
Ver el archivo adjunto 4589
He hecho la prueba con pokefirered y me ha compilado a la primera sin ningún problema.
Adjuntos
-
65,1 KB Visitas: 208
Última edición por un moderador: