Registrarse

[C] E | Expandir pokémon personalizado

Samu

Miembro insignia
Miembro insignia
****IMPORTANTE*****
No puedo pararme a explicar absolutamente todo detenidamente porque haría la lectura muy pesada para todo el mundo, por lo que si hay alguna palabra que no entiendas, te animo a utilizar google o a preguntar.
PGE es un programa con diversas utilidades (similar a Gen3tools) que es utilizado generalmente para editar los datos de los pokemon, los ataques, habilidades, objetos, entrenadores etc.
Se trata de un proyecto de código abierto, podéis descargar aquí su última versión: https://github.com/Gamer2020/PokemonGameEditor/releases

Bueno, como se puede apreciar en el título del post, voy a explicar como expandir la tabla de pokemon de esmeralda y su pokedex, de forma personalizada y segura. (No es gran cosa, pero necesito dejar esto explicado antes de subir la actualización que hice del Engine de combate de DizzyEgg o no lo va a usar nadie).
Este repositorio es 'compatible' con PGE y generará para nosotros un nuevo .ini para que podamos utilizar este programa con nuestra rom modificada

Aprovechando que están empezando a hacer los primeros tutoriales de pokeruby/pret en wah, la expansión de los pokemon la vamos a realizar utilizando un repositorio de DizzyEgg escrito en C, y que fue construido utilizando la información de pokeemerald.
En este caso no se trata de compilar un rom entero como en los tutoriales de pokeruby, si no que vamos a compilar un código que será insertado ('añadido') sobre nuestro rom.

Para poder seguir el tutorial es necesario tener instalado el Devkit de ARM y python 3.5 o superior. Si no lo tenéis instalado podéis seguir este tutorial de Kaiser o buscar uno en google/youtube.

PD: No os olvidéis de configurar la variable PATH. También es de lectura recomendada este tutorial de Kaiser sobre el romhacking con C. (en espacial para aquellos interesados en pokeruby que anden un poco perdidos).




-------------------------------------------------------------------------------
Paso 1: Descargar el repositorio.
-------------------------------------------------------------------------------

-Pulsamos el botón verde para descargar el repositorio.

-Descomprimimos el reposotorio, en mi caso lo voy a dejar en 'C:/Users/xhyzd/desktop/Tutorial_exp'.



-------------------------------------------------------------------------------
Paso 2: Configurar la instalación.
-------------------------------------------------------------------------------

- Vamos a la carpeta 'scripts' y abrimos el fichero 'expansion.py' con un editor de texto plano (notepad/notepad++).

- Ahora tenemos que modificar algunos de los valores que se encuentran entre las dos filas de '#'.

  • Build_code: Escribimos 'False'.
  • free_space: Escribimos la dirección en la que queramos insertar la expansión, en mi caso 'F00000'.
  • new_pokes: Cambiamos la X por el número de pokemon que queremos añadir. En mi caso quiero añadir las generaciones 4-6, es decir, un total de 335 pokemon.
  • dex_pokes: Es la cantidad de pokemon que queremos que muestre la pokedex. Yo quiero que muestre todos (386+335=721).
  • hoenn_dex_pokes: Es la cantidad de pokemon que mostrará la dex regional. Yo lo dejaré como está.
  • new_names: Si escribimos 'True' pondrá el nombre correspondiente a cada uno de los nuevos pokemon (siguiendo el orden oficial), si lo ponemos en 'False' establecerá como nombre de los nuevos pokemon 'Bulbasaur' y tendremos que editarlo posteriormente.
  • clear_repointed_data: Si ponemos 'true' borrará las tablas viejas que hemos expandido dejando el espacio vacío para que lo podamos utilizar.
  • Movesets_repoint, TmHmComp_repoint, MoveTutorComp_repoint: Si las ponemos en 'true' repunteará las cada una de esas tablas para generar una nueva con más espacios. (ponerlo en true a no ser de que hayáis modificado ya alguna de estas).

Y así es como ha quedado mi configuración:







-------------------------------------------------------------------------------
Paso 3: Compilar.
-------------------------------------------------------------------------------

- Colocamos nuestro room en la raíz del repositorio y lo renombramos como 'rom.gba':
- Descargad este 'test.ini' y sustituid el que viene en el repositorio (Creo que el problema se debe a diferencias entre versiones del PGE y que el proyecto de expansión no se ha actualizado).

- Abrid la consola de comandos e id a la dirección del repositorio. Una vez allí escribid el siguiente comando: 'python scripts/expansion.py', y pulsad enter.



Algo similar a esto os debería aparecer. Enhorabuena, habéis expandido los pokemon y la pokedex.





-------------------------------------------------------------------------------
Paso 4: Generar un roms.ini y hacer que PGE funcione
-------------------------------------------------------------------------------

Es bastante sencillo, solo tenemos que hacer doble click sobre PGEiniCreator.exe y este programa modificará el contenido de test.ini para que coincida con el rom que acabamos de generar.
Ahora solo queda copiar el test.ini, ir a la carpeta en la que tengamos el PGE y entrar en la carpeta 'ini'.

Una vez aquí borramos el 'roms.ini', pegamos nuestro 'test.ini' y lo renombramos de nuevo a 'roms.ini'.


Fin, ya podemos abrir nuestro rom y editarlo utilizando el PGE.






-------------------------------------------------------------------------------
Palabras finales
-------------------------------------------------------------------------------

Creo que es importante dejar claro que esto lo único que hace es expandir las tablas de los pokemon añadiendo nuevos 'placeholders' con el nombre correspondiente, pero no inserta ni los ataques ni las estadísticas ni los sprites (ni nada) de ningún pokemon, eso hay que hacerlo a mano desde el PGE.
Puede parecer poca cosa, pero es importante para lo próximo que quiero subir.


Créditos a DizzyEgg de pokeco por crear este recurso.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Respuesta: [EM][C]Expandir pokémon personalizado

Aprovechando que están empezando a hacer los primeros tutoriales de pokeruby/pret en wah, la expansión de los pokemon la vamos a realizar utilizando un repositorio de DizzyEgg escrito en C, y que fue construido utilizando la información de pokeemerald.
Aqui hay algo que me gustaria aclarar. DizzyEgg empezó el EBEU en Abril del 2016, muchisimo antes de que él empezara a participar en el desarrollo de Pokeemerald que fue en Mayo del 2017.
Lo que él y KDS hicieron fue investigar usando IDA Pro, como es que funcionaba el sistema de combate. En base a eso fue que ellos hicieron su propia versión en C, siendo EBEU el resultado.

Actualmente DizzyEgg está recreando el EBEU, y está nueva versión unicamente funcionará con Pokeemerald.
El EBEU que es obtenible ahora mismo, no lo será. O mas bien, el usuario tendria que re-insertarlo cada vez que se vaya a compilar una ROM.

Dicho eso, me alegra muchisimo que alguien por fin haya traido el EBEU a Wah, ¡ya era hora!
Glorioso trabajo con increibles modificaciones y que trae un huevo de cosas guapas como habilidades o ataques que ninguna otra base tiene, como por ejemplo Battle Bond.
 

Samu

Miembro insignia
Miembro insignia
Re: Respuesta: [EM][C]Expandir pokémon personalizado

Aqui hay algo que me gustaria aclarar. DizzyEgg empezó el EBEU en Abril del 2016, muchisimo antes de que él empezara a participar en el desarrollo de Pokeemerald que fue en Mayo del 2017.
Lo que él y KDS hicieron fue investigar usando IDA Pro, como es que funcionaba el sistema de combate. En base a eso fue que ellos hicieron su propia versión en C, siendo EBEU el resultado.

Actualmente DizzyEgg está recreando el EBEU, y está nueva versión unicamente funcionará con Pokeemerald.
El EBEU que es obtenible ahora mismo, no lo será. O mas bien, el usuario tendria que re-insertarlo cada vez que se vaya a compilar una ROM.

Dicho eso, me alegra muchisimo que alguien por fin haya traido el EBEU a Wah, ¡ya era hora!
Glorioso trabajo con increibles modificaciones y que trae un huevo de cosas guapas como habilidades o ataques que ninguna otra base tiene, como por ejemplo Battle Bond.
Esto en concreto no es el battle engine al que te refieres (aunq es efectivamente lo que voy a traer después), y aunque lo empezó antes de participar en pokeemerald, no he hablado con el directamente, pero estoy bastante seguro de que ha utilizado parte de pokeemerald en las partes finales del proyecto. Sería demasiada casualidad que muchas partes del código sigan una estructura tan similar.

Pero vaya, al final no son más que chorradas, el battle engine se nota que es un proyecto que han hecho muchas personas durante un periodo de tiempo largo. El código es un poco desastroso y difícil de mantener (según él mismo, ese es el motivo por el que pausaron el proyecto hasta que avanzase más la descompilación de pokeemerald).

Y con que la nueva versión solo funcionará con pokeemerald no se a que te referirás xD. Porque por poder, con unas pequeñas modificaciones todo lo que esté hecho en C se puede cargar sobre una rom compilada (de la misma forma que podrías adaptar el que hay actualmente a pokeemerald, aunq tal y como está es casi mejor reescribirlo)
 

Lunos

Enfrentando a La Organización
Miembro insignia
Respuesta: Re: Respuesta: [EM][C]Expandir pokémon personalizado

Esto en concreto no es el battle engine al que te refieres (aunq es efectivamente lo que voy a traer después), y aunque lo empezó antes de participar en pokeemerald, no he hablado con el directamente, pero estoy bastante seguro de que ha utilizado parte de pokeemerald en las partes finales del proyecto. Sería demasiada casualidad que muchas partes del código sigan una estructura tan similar.
Quizá si, no te digo que no. EBEU murió en Septiembre del 2017, asi que es posible que en los ultimos meses, DizzyEgg haya aplicado cosas de Pokeemerald al proyecto. No me sorprenderia en lo absoluto.
Pero vaya, al final no son más que chorradas, el battle engine se nota que es un proyecto que han hecho muchas personas durante un periodo de tiempo largo.
El EBEU lo hicieron KDS y Egg principalmente. Es extremadamente posible que hayan recibido ayuda aqui y allá, Egg de hecho aún la solicita para lidiar con las partes tediosas en la nueva versión, como por ejemplo para andar configurando los distintos nuevos movimientos.
Y con que la nueva versión solo funcionará con pokeemerald no se a que te referirás xD. Porque por poder, con unas pequeñas modificaciones todo lo que esté hecho en C se puede cargar sobre una rom compilada.
Pues lo dicho, la nueva versión se descargará directamente a la carpeta de Pokeemerald y está diseñada para trabajar en conjunto con algunos de sus archivos.
No estoy diciendo que sea imposible cargarlo en una ROM como otros "C Hacks", pero yo supongo que tendrás que cambiar la forma en la que funcionan algunas cosas para hacerlo.

No pretendia generar una discusión o debate por aqui, perdona Samu.
Ganas tengo de ver tu battle engine modificado :)
 

Samu

Miembro insignia
Miembro insignia
Re: Respuesta: Re: Respuesta: [EM][C]Expandir pokémon personalizado

Quizá si, no te digo que no. EBEU murió en Septiembre del 2017, asi que es posible que en los ultimos meses, DizzyEgg haya aplicado cosas de Pokeemerald al proyecto. No me sorprenderia en lo absoluto.

El EBEU lo hicieron KDS y Egg principalmente. Es extremadamente posible que hayan recibido ayuda aqui y allá, Egg de hecho aún la solicita para lidiar con las partes tediosas en la nueva versión, como por ejemplo para andar configurando los distintos nuevos movimientos.

Pues lo dicho, la nueva versión se descargará directamente a la carpeta de Pokeemerald y está diseñada para trabajar en conjunto con algunos de sus archivos.
No estoy diciendo que sea imposible cargarlo en una ROM como otros "C Hacks", pero yo supongo que tendrás que cambiar la forma en la que funcionan algunas cosas para hacerlo.

No pretendia generar una discusión o debate por aqui, perdona Samu.
Ganas tengo de ver tu battle engine modificado :)
Nada tranquilo xDD, por poder se puede cargar como cualquier otro C hack, la mierda es la de siempre, si usas pokeemerald vas a poder modificarlo tantas veces como quieras. En un rom compilado pues va a ser más coñazo.

Por cierto, cuando lo postee aquí si no te importa, pon un mensaje en el hilo de pokeco, porq yo llevo 2 semanas para que me aprueben el mío... xd.
He animado unos cuantos ataques (70-100) y he arreglado un par de chorradas. Algunas de las animaciones lo mismo les vienen bien.
 

deidara9216

Profesional de WaH
Aloha bro, tengo una nob cuestion.

Cuando expando la tabla de pokes, y agrego unos cuantos más para eventos y cosas así, deja de ser compatible con los save game actuales y debo empezar una partida nueva, hay alguna forma o configuración para que esto no suceda.

De ante mano, Gracias por tu tiempo
 

Samu

Miembro insignia
Miembro insignia
Aloha bro, tengo una nob cuestion.

Cuando expando la tabla de pokes, y agrego unos cuantos más para eventos y cosas así, deja de ser compatible con los save game actuales y debo empezar una partida nueva, hay alguna forma o configuración para que esto no suceda.

De ante mano, Gracias por tu tiempo
Me temo que no.

Añadir nuevos Pokémon sin sustituir otros anteriores requiere de cambiar la estructura del archivo de guardado, para poder almacenar los dex flags de esas nuevas especies.

Cualquier cambio en la estructura del fichero de guardado provocará una incompatibilidad con archivos de guardado previos. Lo único que te puedo sugerir es que sustituyas especies en lugar de añadirlas.
 

Orlyespurr

Usuario de platino
****IMPORTANTE*****
No puedo pararme a explicar absolutamente todo detenidamente porque haría la lectura muy pesada para todo el mundo, por lo que si hay alguna palabra que no entiendas, te animo a utilizar google o a preguntar.
PGE es un programa con diversas utilidades (similar a Gen3tools) que es utilizado generalmente para editar los datos de los pokemon, los ataques, habilidades, objetos, entrenadores etc.
Se trata de un proyecto de código abierto, podéis descargar aquí su última versión: https://github.com/Gamer2020/PokemonGameEditor/releases

Bueno, como se puede apreciar en el título del post, voy a explicar como expandir la tabla de pokemon de esmeralda y su pokedex, de forma personalizada y segura. (No es gran cosa, pero necesito dejar esto explicado antes de subir la actualización que hice del Engine de combate de DizzyEgg o no lo va a usar nadie).
Este repositorio es 'compatible' con PGE y generará para nosotros un nuevo .ini para que podamos utilizar este programa con nuestra rom modificada

Aprovechando que están empezando a hacer los primeros tutoriales de pokeruby/pret en wah, la expansión de los pokemon la vamos a realizar utilizando un repositorio de DizzyEgg escrito en C, y que fue construido utilizando la información de pokeemerald.
En este caso no se trata de compilar un rom entero como en los tutoriales de pokeruby, si no que vamos a compilar un código que será insertado ('añadido') sobre nuestro rom.

Para poder seguir el tutorial es necesario tener instalado el Devkit de ARM y python 3.5 o superior. Si no lo tenéis instalado podéis seguir este tutorial de Kaiser o buscar uno en google/youtube.

PD: No os olvidéis de configurar la variable PATH. También es de lectura recomendada este tutorial de Kaiser sobre el romhacking con C. (en espacial para aquellos interesados en pokeruby que anden un poco perdidos).




-------------------------------------------------------------------------------
Paso 1: Descargar el repositorio.
-------------------------------------------------------------------------------

-Pulsamos el botón verde para descargar el repositorio.

-Descomprimimos el reposotorio, en mi caso lo voy a dejar en 'C:/Users/xhyzd/desktop/Tutorial_exp'.



-------------------------------------------------------------------------------
Paso 2: Configurar la instalación.
-------------------------------------------------------------------------------

- Vamos a la carpeta 'scripts' y abrimos el fichero 'expansion.py' con un editor de texto plano (notepad/notepad++).

- Ahora tenemos que modificar algunos de los valores que se encuentran entre las dos filas de '#'.

  • Build_code: Escribimos 'False'.
  • free_space: Escribimos la dirección en la que queramos insertar la expansión, en mi caso 'F00000'.
  • new_pokes: Cambiamos la X por el número de pokemon que queremos añadir. En mi caso quiero añadir las generaciones 4-6, es decir, un total de 335 pokemon.
  • dex_pokes: Es la cantidad de pokemon que queremos que muestre la pokedex. Yo quiero que muestre todos (386+335=721).
  • hoenn_dex_pokes: Es la cantidad de pokemon que mostrará la dex regional. Yo lo dejaré como está.
  • new_names: Si escribimos 'True' pondrá el nombre correspondiente a cada uno de los nuevos pokemon (siguiendo el orden oficial), si lo ponemos en 'False' establecerá como nombre de los nuevos pokemon 'Bulbasaur' y tendremos que editarlo posteriormente.
  • clear_repointed_data: Si ponemos 'true' borrará las tablas viejas que hemos expandido dejando el espacio vacío para que lo podamos utilizar.
  • Movesets_repoint, TmHmComp_repoint, MoveTutorComp_repoint: Si las ponemos en 'true' repunteará las cada una de esas tablas para generar una nueva con más espacios. (ponerlo en true a no ser de que hayáis modificado ya alguna de estas).

Y así es como ha quedado mi configuración:







-------------------------------------------------------------------------------
Paso 3: Compilar.
-------------------------------------------------------------------------------

- Colocamos nuestro room en la raíz del repositorio y lo renombramos como 'rom.gba':
- Descargad este 'test.ini' y sustituid el que viene en el repositorio (Creo que el problema se debe a diferencias entre versiones del PGE y que el proyecto de expansión no se ha actualizado).

- Abrid la consola de comandos e id a la dirección del repositorio. Una vez allí escribid el siguiente comando: 'python scripts/expansion.py', y pulsad enter.



Algo similar a esto os debería aparecer. Enhorabuena, habéis expandido los pokemon y la pokedex.





-------------------------------------------------------------------------------
Paso 4: Generar un roms.ini y hacer que PGE funcione
-------------------------------------------------------------------------------

Es bastante sencillo, solo tenemos que hacer doble click sobre PGEiniCreator.exe y este programa modificará el contenido de test.ini para que coincida con el rom que acabamos de generar.
Ahora solo queda copiar el test.ini, ir a la carpeta en la que tengamos el PGE y entrar en la carpeta 'ini'.

Una vez aquí borramos el 'roms.ini', pegamos nuestro 'test.ini' y lo renombramos de nuevo a 'roms.ini'.


Fin, ya podemos abrir nuestro rom y editarlo utilizando el PGE.






-------------------------------------------------------------------------------
Palabras finales
-------------------------------------------------------------------------------

Creo que es importante dejar claro que esto lo único que hace es expandir las tablas de los pokemon añadiendo nuevos 'placeholders' con el nombre correspondiente, pero no inserta ni los ataques ni las estadísticas ni los sprites (ni nada) de ningún pokemon, eso hay que hacerlo a mano desde el PGE.
Puede parecer poca cosa, pero es importante para lo próximo que quiero subir.


Créditos a DizzyEgg de pokeco por crear este recurso.

Hola buenas, no me quedó del todo claro el paso 3... ¿Cúal consola de comandos tengo que abrir y como logro llegar a la dirección del repositorio? :c
 

Samu

Miembro insignia
Miembro insignia
Hola buenas, no me quedó del todo claro el paso 3... ¿Cúal consola de comandos tengo que abrir y como logro llegar a la dirección del repositorio? :c
Ahí estoy usando la consola de cygwin, que deberías tener instalada si seguiste el tutorial de Kaiser que se marca como requisito para poder seguir este. https://whackahack.com/foro/threads/instalando-herramientas-de-desarrollador.49751/

En cualquier caso, este sistema está muy desactualizado y no te recomiendo usarlo. Lo ideal sería que usaras decomp e instalases el engine de dizzyegg // rh-hideout, o si quieres continuar usando binario te recomendaría usar fred + cfru.
 

DiegoPokem

Aprendiz de leyenda
- Abrid la consola de comandos e id a la dirección del repositorio. Una vez allí escribid el siguiente comando: 'python scripts/expansion.py', y pulsad enter.
no llegue a entender esa parte alguien me puedo decir como ir a la direccion del repositorio en comandos
 

Lunos

Enfrentando a La Organización
Miembro insignia
- Abrid la consola de comandos e id a la dirección del repositorio. Una vez allí escribid el siguiente comando: 'python scripts/expansion.py', y pulsad enter.
no llegue a entender esa parte alguien me puedo decir como ir a la direccion del repositorio en comandos
cd.
Ej: cd "C:\Users\Lunos\Desktop".

Una forma más sencilla y/o rapida seria abrir la carpeta en cuestión, clickear en la barra de ubicación, escribir "cmd" y presionar Enter.
Eso abrirá la consola de comandos apuntando a la carpeta en cuestión.
 
Arriba