Registrarse

Compilando los Proyectos de Desensamblaje y Decompilación (Pokeruby/firered/emerald) con Cygwin (64 Bits)

Lunos

Enfrentando a La Organización
Miembro insignia
Seré lo mas breve posible.
Mi objetivo con este tutorial es compilar los proyectos de desensamblaje y decompilación lo mas rapido posible, lo que implica que voy a escribir directamente las acciones necesarias para obtener una ROM de Pokémon Ruby, Sapphire, FireRed, LeafGreen o Emerald mediante los Proyectos de Desensamblaje y Decompilación creados por Pret (Pokeruby, Pokefirered y Pokeemerald), sin explicaciones o perdidas de tiempo.

Antes de comenzar, debo aclararte si estás en Windows 10 que este tutorial no es para ti.
Tienes una opción 3 veces mejor disponible, el Subsistema de Windows para Linux, que tiene un buen tutorial escrito por @Jaizu justo aquí.

Empiezo:
1) Descarguen e instalen devkitPro.
Nota: Si por alguna razón te dá un error, intenta la instalación de nuevo tras seguir estas instrucciones.
Para facilitarnos a todos el asunto, asumiré que instalaste devkitPro en su ubicación por defeto, es decir C:\devkitPro.

2) Descarguen Cygwin y abran el instalador.

3) Apenas se abra, clickeen en "Next" como 6 veces para llegar a la pantalla de selección de paquetes.
Note: Como con dkP, a partir de aquí asumiré que instalaron Cygwin en su ubicación por defecto (C:\cygwin64).

4) Estando ahi, abran la lista de opciones del parametro "View" y ponganlo en "Full", para que puedan ver todos los paquetes que Cygwin trae.

5) Usando la barra de busqueda a la derecha, busquen los siguientes paquetes:
  • gcc-core
  • gcc-g++
  • git
  • libpng-devel
  • make
Nota: Siempre asegurense de bajar la ultima versión estable del paquete.
Si usan una versión no estable, es decir, una que incluya "(test)"
como se puede observar aquí, lo hacen bajo su propia responsabilidad.

6) Una vez que los hayas marcado, clickea el botón "Next" unas dos veces y deja que Cygwin haga lo suyo.
Cierra el instalador cuando termine la instalación.

7) Abre C:\cygwin64\Cygwin.bat una vez, asi Cygwin podrá configurar algunos archivos de configuración que necesita.
Nota: Este archivo Cygwin.bat es un atajo a Bash, la terminal en la que haremos nuestra labor de aquí en más.

8) Utiliza los siguientes comandos, uno por uno y en orden:
export DEVKITPRO=/cygdrive/c/devkitPro
echo export DEVKITPRO=$DEVKITPRO >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo export DEVKITARM=$DEVKITARM >> ~/.bashrc

git clone https://github.com/pret/agbcc
git clone https://github.com/pret/pokeruby (o reemplazas la URL por el decomp que vayas a utilizar)
cd agbcc
./build.sh
./install.sh ../pokeruby (o el nombre del proyecto que hayas clonado)
cd ../pokeruby (o el nombre del proyecto que hayas clonado)
make -jN
Nota: "N" debe ser reemplazado por el numero de hilos de la CPU que se quieran asignar a la tarea de compilar la ROM.
Entre mas hilos asignes, mas rapido trabajará Cygwin.

Nota2: Para compilar ROMs de Pokémon Sapphire con Pokeruby o de Pokémon LeafGreen con Pokefirered, dirigete a sus documentos INSTALL.md, donde hay detalles al respecto.


Y... pues ya está.

Tambien grabé un video mostrando el proceso entero, por si acaso.
Nota: El video es muchisimo mas largo de lo que deberia, pues grabé cada pequeña cosa.
Sientanse libres de saltarse esas partes. A mi me daba paja removerlas con edición de video. Si, lo sé, soy un puto vago.



Basicamente, eso es todo. Nos vemos.​
 
Última edición:

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
Respuesta: Re: Compilando Pokeemerald

Y aquí está la verdadera joya de la corona de todo esto, lo bueno es que mientras termina de completarse al 100% se puede seguir usando pokeruby y luego portar el código, que por lo que veo tampoco hay tantísima diferencia.
De nuevo, muchas gracias por traernos otro aporte de estos ;)

Con esto se puede expandir la pokedex, ataques, habilidades y demas?
Claro, con estos proyectos se puede editar el código fuente y recompilar el juego de la misma forma que haría Game Freak, así que con conocimientos de C e investigando bien el funcionamiento del código se podría hacer sin problemas.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Editado el post principal.

-Cambiado el titulo.
-Tutorial viejo a la basura.
-Antes explicaba como instalar Pokeemerald unicamente, ahora aquí se explica como instalar tanto Pokeruby como Pokeemerald, pues tienen el mismo proceso de instalación.

Gracias a @kakarotto por recordarme que habia escrito este tutorial.
Yo ya habia escrito el tutorial que traduje hoy para Pokecommunity hace algun tiempo, pero olvidé traducirlo y traerlo hasta aquí.

En fin, nos vemos.
 

Felipe

Profesional de WaH
Seré lo mas breve posible.
Mi objetivo con este tutorial es compilar los proyectos de desensamblaje y decompilación lo mas rapido posible, lo que implica que voy a escribir directamente las acciones necesarias para obtener una ROM de Pokémon Emerald mediante Pokeemerald, sin explicaciones o perdidas de tiempo.

Empiezo:
1) Descarguen e instalen devkitPro.
Nota: Si por alguna razón te dá un error, intenta la instalación de nuevo tras seguir estas instrucciones.
Para facilitarnos a todos el asunto, asumiré que instalaste devkitPro en su ubicación por defeto, es decir C:\devkitPro.

2) Descarguen Cygwin y abran el instalador.

3) Apenas se abra, clickeen en "Next" como 6 veces para llegar a la pantalla de selección de paquetes.
Note: Como con dkP, a partir de aquí asumiré que instalaron Cygwin en su ubicación por defecto (C:\cygwin64).

4) Estando ahi, abran la lista de opciones del parametro "View" y ponganlo en "Full", para que puedan ver todos los paquetes que Cygwin trae.

5) Usando la barra de busqueda a la derecha, busquen los siguientes paquetes:


  • gcc-core v7.4.0-1

  • gcc-g++ v7.4.0-1

  • git v2.21.0-1

  • libpng-devel v1.6.30-2

  • make v4.2.1-2

Nota: Quizá no se necesiten bajar estas versiones especificas. Versiones mas nuevas o mas viejas podrian funcionar igual.
Eso lo dejo al criterio de cada quien. Si quieren experimentar, adelante.


6) Una vez que los hayas marcado, clickea el botón "Next" unas dos veces y deja que Cygwin haga lo suyo.
Cierra el instalador cuando termine la instalación.

7) Abre C:\cygwin64\Cygwin.bat una vez, asi Cygwin podrá configurar algunos archivos de configuración que necesita.
Nota: Este archivo Cygwin.bat es un atajo a Bash, la terminal en la que haremos nuestra labor de aquí en más.

8) Utiliza los siguientes comandos, uno por uno y en orden:

Nota: "N" debe ser reemplazado por el numero de hilos de la CPU que se quieran asignar a la tarea de compilar la ROM.
Entre mas hilos asignes, mas rapido trabajará Cygwin.


Y... pues ya está.

Tambien grabé un video mostrando el proceso entero, por si acaso.
Nota: El video es muchisimo mas largo de lo que deberia, pues grabé cada pequeña cosa.
Sientanse libres de saltarse esas partes. A mi me daba paja removerlas con edición de video. Si, lo sé, soy un puto vago.



Basicamente, eso es todo. Nos vemos.​
Tengo una sola duda, ya que el tutorial me funciono. es necesario hacer todos los comandos del paso 8 cada vez que se compile un cambio a la rom?
 
Última edición:

Samu

Miembro insignia
Miembro insignia
Re: Respuesta: Compilando Pokeruby/Pokeemerald con Cygwin (64 Bits)

Tengo una sola duda, ya que el tutorial me funciono. es necesario hacer todos los comandos del paso 8 cada vez que se compile un cambio a la rom?
Cuando quieras volver a compilar el ROM únicamente necesitas utilizar el comando "make -jN".

Para limpiar absolutamente todo lo que hayas compilado (para poder recompilar absolutamente desde cero), tendrás que ejecutar el comando "make clean".
 
M

Miembro eliminado 44805

Invitado
Este tutorial es increíble! Ahora puedo burlarme de los romhackers y de sus herramientas llenas de bugs.
 

Giorgio

Enamorado del DECOMP :3 <3
Seré lo mas breve posible.
Mi objetivo con este tutorial es compilar los proyectos de desensamblaje y decompilación lo mas rapido posible, lo que implica que voy a escribir directamente las acciones necesarias para obtener una ROM de Pokémon Emerald mediante Pokeemerald, sin explicaciones o perdidas de tiempo.

Empiezo:
1) Descarguen e instalen devkitPro.
Nota: Si por alguna razón te dá un error, intenta la instalación de nuevo tras seguir estas instrucciones.
Para facilitarnos a todos el asunto, asumiré que instalaste devkitPro en su ubicación por defeto, es decir C:\devkitPro.

2) Descarguen Cygwin y abran el instalador.

3) Apenas se abra, clickeen en "Next" como 6 veces para llegar a la pantalla de selección de paquetes.
Note: Como con dkP, a partir de aquí asumiré que instalaron Cygwin en su ubicación por defecto (C:\cygwin64).

4) Estando ahi, abran la lista de opciones del parametro "View" y ponganlo en "Full", para que puedan ver todos los paquetes que Cygwin trae.

5) Usando la barra de busqueda a la derecha, busquen los siguientes paquetes:


  • gcc-core v7.4.0-1

  • gcc-g++ v7.4.0-1

  • git v2.21.0-1

  • libpng-devel v1.6.30-2

  • make v4.2.1-2

Nota: Quizá no se necesiten bajar estas versiones especificas. Versiones mas nuevas o mas viejas podrian funcionar igual.
Eso lo dejo al criterio de cada quien. Si quieren experimentar, adelante.


6) Una vez que los hayas marcado, clickea el botón "Next" unas dos veces y deja que Cygwin haga lo suyo.
Cierra el instalador cuando termine la instalación.

7) Abre C:\cygwin64\Cygwin.bat una vez, asi Cygwin podrá configurar algunos archivos de configuración que necesita.
Nota: Este archivo Cygwin.bat es un atajo a Bash, la terminal en la que haremos nuestra labor de aquí en más.

8) Utiliza los siguientes comandos, uno por uno y en orden:

Nota: "N" debe ser reemplazado por el numero de hilos de la CPU que se quieran asignar a la tarea de compilar la ROM.
Entre mas hilos asignes, mas rapido trabajará Cygwin.


Y... pues ya está.

Tambien grabé un video mostrando el proceso entero, por si acaso.
Nota: El video es muchisimo mas largo de lo que deberia, pues grabé cada pequeña cosa.
Sientanse libres de saltarse esas partes. A mi me daba paja removerlas con edición de video. Si, lo sé, soy un puto vago.



Basicamente, eso es todo. Nos vemos.​
Hola, ahora mismo estoy tratando de instalar el cygwin pero no me sale el "libpng-devel v1.6.30-2", que hago sigo sin instalarlo?
 

Lunos

Enfrentando a La Organización
Miembro insignia
Hola, ahora mismo estoy tratando de instalar el cygwin pero no me sale el "libpng-devel v1.6.30-2", que hago sigo sin instalarlo?
No, si o si necesitas instalar libpng-devel.
La versión da igual. Asegurate de escribir el nombre del paquete correctamente y de poner el parametro "View" en Full, como lo mencioné en el post principal.
 

Giorgio

Enamorado del DECOMP :3 <3
No, si o si necesitas instalar libpng-devel.
La versión da igual. Asegurate de escribir el nombre del paquete correctamente y de poner el parametro "View" en Full, como lo mencioné en el post principal.
Ya lo instale, y funciona de maravilla lo único que me falta es actualizar visual studio ya que el porymap lo abre y tiene algunos fallos el visual.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Hice unas minimas correcciones al titulo y post principal. Originalmente, yo escribí el post como una forma de compilar Pokeruby y Pokeemerald, pero como el proceso es exactamente el mismo para Pokefirered, pues no quedaba muy bien aquello.

Paso a clarificar que quienes utilicen Windows 10 deberian utilizar el Subsistema de Windows para Linux.
@Jaizu escribió un muy buen tutorial detallando el proceso de compilar estos proyectos con él justo aquí.
 

KERBEROS

Usuario de Platino
Hice unas minimas correcciones al titulo y post principal. Originalmente, yo escribí el post como una forma de compilar Pokeruby y Pokeemerald, pero como el proceso es exactamente el mismo para Pokefirered, pues no quedaba muy bien aquello.

Paso a clarificar que quienes utilicen Windows 10 deberian utilizar el Subsistema de Windows para Linux.
@Jaizu escribió un muy buen tutorial detallando el proceso de compilar estos proyectos con él justo aquí.
Hay solo se muestra como compilar emerald, y pokefirered?
 

deidara9216

Profesional de WaH
Aloha, de ante mano muchas gracias por tomarte el tiempo de explicarlo.

Y segundo tengo una nob question.
Puedo hacerlo con una ROM ya editada, osea para evitar empezar desde cero, ya que eh visto que luego de dicho proceso, muchas herramientas de ROM hacking dejan de funcionar en dicha ROM.

Muchas gracias ☺
 

kakarotto

Leyenda de WaH
@Lunos permíteme que le responda:

Deidara, precisamente esta es la gracia de Decompilación, pues no necesitas ninguna herramienta, a excepción del equivalente a Advance Map llamado Porymap.

Con un editor de texto como Notepad te sirve, pero utilizar una rom ya editada no es posible.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Aloha, de ante mano muchas gracias por tomarte el tiempo de explicarlo.

Y segundo tengo una nob question.
Puedo hacerlo con una ROM ya editada, osea para evitar empezar desde cero, ya que eh visto que luego de dicho proceso, muchas herramientas de ROM hacking dejan de funcionar en dicha ROM.

Muchas gracias ☺
No, no podés usar una ROM ya editada porque al trabajar con los decomps vos no estás modificando una ROM, estás modificando el codigo que compone a la ROM, por ende, cualquier cambio que hagas en una ROM generada con los decomps se perderia la proxima vez que le pidas al compilador que genere una nueva ROM con el codigo presente en los distintos archivos del proyecto.
 
Última edición:

deidara9216

Profesional de WaH
Aloha gente, de ante mano muchas gracias por tomarte el tiempo para responder.

Pero es que al agregar el sistema de mega evoluciónes ni g3t ni advance series quedan reconociendo lo y al usar el avanced offset me da valores muy raros incluso editando los nisiquiera concuerdan...

Me podrían explicar un poco más, sobre que debo editar en la Rom o que herramientas puedo recrear los Sprites como el unLZ.GBA y esas cosas.

Muchas gracias.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Aloha gente, de ante mano muchas gracias por tomarte el tiempo para responder.

Pero es que al agregar el sistema de mega evoluciónes ni g3t ni advance series quedan reconociendo lo y al usar el avanced offset me da valores muy raros incluso editando los nisiquiera concuerdan...

Me podrían explicar un poco más, sobre que debo editar en la Rom o que herramientas puedo recrear los Sprites como el unLZ.GBA y esas cosas.

Muchas gracias.
... No has leido el post que escribí ahi arriba en lo absoluto, ¿cierto?
¿Que parte de "con los decomps vos no estás modificando una ROM" no ha quedado claro? :S ...
Con los decomps vos editás piezas de codigo y sprites de manera directa. La unica herramienta explicita que necesitas es PoryMap, que como bien dijo Kakarotto ahi arriba, es el editor de mapas que se utiliza con los decomps.

El codigo lo podés editar con tu editor de texto favorito, los sprites lo mismo, los abres con tu editor de imagenes favorito y los modificas, y tal que cual.
 

deidara9216

Profesional de WaH
... No has leido el post que escribí ahi arriba en lo absoluto, ¿cierto?
¿Que parte de "con los decomps vos no estás modificando una ROM" no ha quedado claro? :S ...
Con los decomps vos editás piezas de codigo y sprites de manera directa. La unica herramienta explicita que necesitas es PoryMap, que como bien dijo Kakarotto ahi arriba, es el editor de mapas que se utiliza con los decomps.

El codigo lo podés editar con tu editor de texto favorito, los sprites lo mismo, los abres con tu editor de imagenes favorito y los modificas, y tal que cual.
Bueno comprendo que debo editarlo antes de compilarlo.

Pero a lo que me refiero es que las antiguas herramientas como advaced map ya no lo abren incluso los otros me piden que edite la uni y cuando uso el advaced offset me da valores como:

Enemy altitude tablet C8152A00
Normal palette F128F046

Cuando uso el pokeemerald lo compila normal incluso asta lo abre sin ningún problema, pero cuando uso el mismo archivo pero con el sistema de las megas incluído al compilarlo sigue funcionando normal, pero como voy a poner objetos como dichas mega piedras si mi advanced map no lo reconoce o como le daré las paletas y Sprites a los objetos si el g3t no lo reconoce.

Se que soy muy noob para esto pero hay algún tutorial que enseñe cómo añadir los objetos que ayuden a dicha mega antes de compilarlo o una forma de hacer los offset compatible con las viejas herramientas.

Posdata: uso el sistema de
"pokeemerald-expansion
forked from DizzyEggg/pokeemerald"

gracias por su tiempo :)
 

Lunos

Enfrentando a La Organización
Miembro insignia
Bueno comprendo que debo editarlo antes de compilarlo.

Pero a lo que me refiero es que las antiguas herramientas como advaced map ya no lo abren incluso los otros me piden que edite la uni y cuando uso el advaced offset me da valores como:

Enemy altitude tablet C8152A00
Normal palette F128F046

Cuando uso el pokeemerald lo compila normal incluso asta lo abre sin ningún problema, pero cuando uso el mismo archivo pero con el sistema de las megas incluído al compilarlo sigue funcionando normal, pero como voy a poner objetos como dichas mega piedras si mi advanced map no lo reconoce o como le daré las paletas y Sprites a los objetos si el g3t no lo reconoce.

Se que soy muy noob para esto pero hay algún tutorial que enseñe cómo añadir los objetos que ayuden a dicha mega antes de compilarlo o una forma de hacer los offset compatible con las viejas herramientas.

Posdata: uso el sistema de
"pokeemerald-expansion
forked from DizzyEggg/pokeemerald"

gracias por su tiempo :)
Pokeemerald sin ninguna modificación genera una ROM limpia de Pokémon Emerald. Es por eso que las herramientas que se utilizan en ROM Hacking Binario pueden abrirla sin ningun tipo de problema. Ahora, si lo que estás intentando hacer es abrir una ROM generada a traves de los decomps con modificaciones adicionales utilizando las herramientas de ROM Hacking Binario, pues lo llevas complicado.

Para poder generar una ROM que la GBA pueda leer, el compilador hace sus operaciones y mueve cosas de lugar en caso de que lo vea necesario. Entre más cambios al codigo fuente se hayan hecho (y en pokeemerald-expansion hacemos un huevo de cambios), más redirecciones y reposicionamientos de codigo se hacen.
Naturalmente, eso causa que las herramientas que se suelen utilizar en ROM Hacking Binario, las cuales están diseñadas para leer datos en direcciones especificas de la ROM en base al contenido de archivos de configuración, no funcionen.

Asumiendo que es posible editar una ROM generada con las ramas de pokeemerald-expansion utilizando herramientas de ROM Hacking Binario, pues tendrás que buscarte la vida con ello. Me imagino que tendrás que editar archivos .ini y tal como lo veas conveniente.
En cualquier caso, en este tema no se ofrece soporte para eso. Aquí se enseña a compilar Pokeemerald en un entorno de programación puntual como lo es Cygwin y nada más.

Para terminar, siento que es necesario aclarar que, de nuevo, con los decomps vos no editás una ROM. Lo que editás es codigo fuente, sprites, piezas musicales, datos que pasarán a traves de un compilador que posteriormente serán empacados en una ROM que la GBA pueda leer.
Al utilizar los decomps para hacer ROM Hacking, vos dejás totalmente atras las herramientas y procesos que se hacen en ROM Hacking Binario.

O hacés ROM Hacking Binario, o haces ROM Hacking utilizando los decomps.
 
Última edición:
Arriba