De Whack a Hack Wiki!

Revisión del 01:18 8 abr 2023 de Jack Johnson (discusión | contribuciones) (Página creada con «Estas instrucciones explican cómo configurar las herramientas necesarias para compilar '''pokeemerald''', es decir, ensamblar los archivos fuente en una ROM. Cabe destacar…»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

Estas instrucciones explican cómo configurar las herramientas necesarias para compilar pokeemerald, es decir, ensamblar los archivos fuente en una ROM. Cabe destacar que son análogas para cualquier otro proyecto de decompilación de la tercera generación.

Windows

Artículo principal: Anexo:Preparación del entorno para decompilación en Windows

Windows tiene instrucciones para compilar con tres terminales posibles, proporcionando 3 opciones diferentes en caso de que el usuario encuentre errores inesperados.

  • Windows 10/11 (WSL1): El más rápido, altamente recomendado, solo para Windows 10 y 11
  • Windows (msys2): Segundo más rápido.
  • Windows (Cygwin): El más lento.
WSL2 es una opción y es aún más rápido que WSL1 si los archivos se almacenan en el sistema de archivos de WSL2, pero algunas herramientas pueden tener problemas al interactuar con la ruta del sistema de archivos de WSL2 a través de la unidad de red. Por ejemplo, herramientas que utilizan versiones de Qt anteriores a 5.15.2, como Porymap, pueden tener problemas reconociendo la ruta de la unidad de red \wsl$.

Todas las instrucciones para Windows asumen que la unidad de disco predeterminada es C:\. Si esto difiere de la letra de unidad de disco real, reemplaza C por la letra de unidad de disco correcta al leer las instrucciones.

Como Windows 7 no cuenta con soporte oficial de Microsoft y Windows 8 tiene muy poco uso, algunos mantenedores no están dispuestos a mantener las instrucciones para Windows 7/8. Por lo tanto, estas instrucciones pueden dejar de funcionar en el futuro y las correcciones pueden tardar más en aplicarse que las correcciones para las instrucciones de Windows 10 en adelante.

Linux

Abre la terminal e ingresa los siguientes comandos, dependiendo de la distribución que estés utilizando.

Preparar el entorno en Debian/Ubuntu

Ejecuta el siguiente comando para instalar los paquetes necesarios:

 sudo apt install build-essential binutils-arm-none-eabi git libpng-dev
Nota para repositorios antiguos: Si el repositorio que planeas compilar tiene una revisión antigua de INSTALL.md, entonces tendrás que instalar devkitARM. Instala todos los paquetes anteriores excepto binutils-arm-none-eabi, y sigue las instrucciones para instalar devkitARM en distribuciones basadas en Debian/Ubuntu.

Preparar el entorno en Arch Linux

Ejecuta este comando como root para instalar los paquetes necesarios:

 sudo pacman -S base-devel arm-none-eabi-binutils git libpng
Nota para repositorios antiguos: Si el repositorio que planeas compilar tiene una revisión antigua de INSTALL.md, entonces tendrás que instalar devkitARM. Instala todos los paquetes anteriores excepto binutils-arm-none-eabi, y sigue las instrucciones para instalar devkitARM en distribuciones basadas en Arch Linux.

Preparar el entorno en otras distribuciones

Intenta encontrar el software requerido en sus repositorios:

  • gcc
  • g++
  • make
  • git
  • libpng-dev

Sigue las instrucciones aquí para instalar devkitPro pacman. Como recordatorio, el objetivo es configurar una instalación existente de pacman para reconocer los repositorios de devkitPro.

Una vez que devkitPro pacman esté configurado, ejecuta los siguientes comandos:

 sudo pacman -Sy
 sudo pacman -S gba-dev

El último comando pedirá la selección de paquetes para instalar. Simplemente presiona Enter para instalar todos ellos, seguido de ingresar Y para proceder con la instalación.

Elegir dónde almacenar pokeemerald (Linux)

En este punto, puedes elegir una carpeta para almacenar pokeemerald (y agbcc). Si lo haces, tendrás que tener en cuenta la ruta modificada de la carpeta al cambiar al directorio de la carpeta de pokeemerald.

macOS

Instalación de las Herramientas de Línea de Comandos de Xcode

Si las Herramientas de Línea de Comandos de Xcode no están instaladas, descarga las herramientas [aquí](https://developer.apple.com/xcode/resources/), abre tu Terminal, y ejecuta el siguiente comando:

 xcode-select --install

Instalación de libpng (macOS)

Nota para usuarios avanzados: Esta guía instala libpng a través de Homebrew, ya que es el método más fácil, sin embargo, los usuarios avanzados pueden instalar libpng de otras formas si lo desean.
  1. Abre la Terminal.
  2. Si Homebrew no está instalado, instálalo desde aquí siguiendo las instrucciones del sitio web.
  3. Ejecuta el siguiente comando para instalar libpng.
 brew install libpng

Con esto, libpng ahora está instalado.

Instalación de devkitARM (macOS)

  1. Descarga el paquete devkitpro-pacman-installer.pkg desde aquí.
  2. Abre el paquete para instalar devkitPro pacman.
  3. En la Terminal, ejecuta los siguientes comandos para instalar devkitARM (El comando con gba-dev te pedirá que selecciones los paquetes a instalar. Solo presiona Enter para instalar todos ellos, seguido de ingresar Y para proceder con la instalación):
 sudo dkp-pacman -Sy
 sudo dkp-pacman -S gba-dev
 sudo dkp-pacman -S devkitarm-rules

Después de que las herramientas estén instaladas, devkitARM debe ser accesible desde cualquier ubicación del sistema. Para hacerlo, ejecuta los siguientes comandos:

 export DEVKITPRO=/opt/devkitpro
 echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
 export DEVKITARM=$DEVKITPRO/devkitARM
 echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
 
 echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile

Elección de dónde almacenar pokeemerald (macOS)

En este punto, puedes elegir una carpeta para almacenar pokeemerald. Si no estás de acuerdo con almacenar pokeemerald en la carpeta del usuario, deberás tener en cuenta dónde se encuentra almacenado pokeemerald al cambiar al directorio de la carpeta de pokeemerald.

Por ejemplo, si quieres almacenar pokeemerald (y agbcc) en ~/Desktop/decomps, ingresa este comando para cambiar al directorio de la carpeta deseada:

 cd Desktop/decomps

Ten en cuenta que el directorio debe existir en el sistema de carpetas. Si deseas almacenar pokeemerald en una carpeta dedicada que no existe (por ejemplo, el ejemplo proporcionado arriba), entonces crea la carpeta (por ejemplo, usando Finder) antes de ejecutar el comando cd.

Nota: Si la ruta tiene espacios, entonces la ruta debe estar entre comillas, por ejemplo: cd "Desktop/decomp folder"

Instalación

Si pokeemerald aún no está descargado (algunos usuarios pueden preferir descargar pokeemerald a través de un cliente git como GitHub Desktop), ejecuta:

 git clone https://github.com/pret/pokeemerald
Nota para WSL1: Si obtienes un error que dice fatal: could not set 'core.filemode' to 'false', entonces ejecuta los siguientes comandos:
       cd
       sudo umount /mnt/c
       sudo mount -t drvfs C: /mnt/c -o metadata,noatime
       cd <ruta de la carpeta donde se almacenará pokeemerald>
Luego vuelve a ejecutar el comando:
 git clone.

Instalar agbcc en pokeemerald

Si agbcc no ha sido compilado antes en la carpeta donde elegiste almacenar pokeemerald, ejecuta los siguientes comandos para compilarlo e instalarlo en pokeemerald:

 git clone https://github.com/pret/agbcc
 cd agbcc
 ./build.sh
 ./install.sh ../pokeemerald

De lo contrario, si agbcc ha sido compilado antes en la misma terminal, ejecuta los siguientes comandos para instalar agbcc en pokeemerald:

 cd agbcc
 ./install.sh ../pokeemerald
Nota: Si la compilación de agbcc o pokeemerald resulta en un error, intenta eliminar la carpeta agbcc y reinstalar agbcc como si no se hubiera compilado antes.

Una vez que agbcc esté instalado, cambia el directorio de nuevo al directorio base donde se encuentran pokeemerald y agbcc:

 cd ..

Compilar pokeemerald

Si aún no estás en el directorio pokeemerald, entonces cambia el directorio a la carpeta pokeemerald:

 cd pokeemerald

Para compilar pokeemerald.gba, ejecuta:

 make -j(nproc)

Si se ha compilado correctamente, tendrás el archivo de salida pokeemerald.gba en la carpeta de tu proyecto. Para acelerar la compilación, primero consigue el valor de nproc ejecutando el siguiente comando:

 nproc

Reemplaza (nproc) con el número que devolvió el comando nproc.

nproc no está disponible en macOS. La alternativa es:

 sysctl -n hw.ncpu

Véase también