Registrarse

FR | Otros | ¡Megaevolución y Regresión Primigenia!

Gold

Porrero a tiempo parcial
Miembro insignia
Disclaimer: Este investigación pertenece al usuario Touched de Pokecommunity, tengo todo el permiso de el para compartirlo en WAH solamente.

Hace tiempo atrás, un hacker hizo un tema en Pokeco mostrando que había conseguido la megaevolución en GBA. Por alguna razón, se rehusó a compartir el código de su investigación, dando a entender que su investigación era falsa. Por mucho tiempo la megaevolución en GBA era solo un mito, ese atractivo de los juegos de sexta generación parecía imposible de implementar en GBA...hasta ahora.

Ahora gracias al asombroso Touched es posible megaevolucionar, ya que ha hecho un código que permite cambiar la especie de Pokémon en medio de una batalla. El código actualiza los stats (la salud no se actualiza, sigue igual), habilidades y sprites (usando una animación rápida). Ahora, mira una muestra de como va de momento el código:



El código funciona cambiaando la tabla de evoluciones, agregando un nuevo argumento (0xFE) que permite las MegaEvoluciones. Sus variantes (Por deseo, Mega Evolución normal y Regresión Primigenia) son controladas por un halfword sin usar al final de cada entrada de evolution. El nivel del argumento es siempre un item (Mega Piedra/Orbe) o un movimiento, dependiendo de la variante. Debido a la existencia de la tabla de evolución, es relativamente fácil editar las herramientas para editar las megaevoluciones.

Este código ejecuta una animación sencilla de solo un Pokemon moviendose de atrás hacia adelante, la cual será cambiada cuando Touched encuentre una animación mejor.

Tambien se hizo posible usar cualquier item como un Mega Accesorio (se muestra en el mensaje común de la Mega evolución) por motivos de estética.

El código de la Mega Evolución está disponible en el Repositorio GitHub de Touched. Cuando esté completo al 100% será portado a Esmeralda a Ruby no porque ni su mamá lo quiere xD

Por ahora, la Mega Evolución es accionada presionando Start antes de seleccionar un movimiento. En el video anterior no hay audio, pero puedes escuchar el sonido de la PC cuando acciones la Mega Piedra.

Aún queda trabajo por hacer, este es solo el principio, ya que el propósito principal es hacer las Mega Evoluciones lo más parecidas a la Sexta Generación :D

Documentación:​

Configuración:

Chequea el archivo src/config.h cuando estés insertando este código. Son el número de variables que indican el item que accionará las Mega Evoluciones:

Código:
#define KEYSTONE_PLAYER_VAR 0x4001 /* Variable que contiene el índice del objeto clave para el jugador */
#define KEYSTONE_OPPONENT_VAR 0x4002 /* Igual que el anterior, pero para el oponente */
#define KEYSTONE_DEFAULT 0x161	/* Item por defaul del Objeto Clave */
En donde dice "#define XXX 0xSOMEHEXNUMBER" Cambia SOLO LA LINEA 0xSOMEHEXNUMBER y deja el resto del código tal cual. KEYSTONE_PLAYER_VAR es la variable usada para almacenar el item para el objeto clave del jugador, y KEYSTONE_OPPONENT_VAR es lo mismo, pero para el oponente (Ver uso más abajo). Si por alguna razón, fijas la variable KEYSTONE_OPPONENT_VAR en 0, entonces el mensaje para la mega evolution será por defecto el mismo que tu tengas configurado como KEYSTONE_DEFAULT. Sw configuró por defecto el item "Gold Teeth". Probablemente no quieras cambiarlo (a pesar de su asombrosa utilidad (?)). Esas variables te ayudarán en los pequeños detalles probablemente insignificantes, pero muy importantes.

Las opciones restantes de configuración son controladas por los colores que son cambiados en la Mega Evolución. La adición en la HP box está en varios estados. Puedes cambiar el sprite solo reemplazand el archivo en la carpeta "assets". Probablemente necesites cambiar los colores (y el número de colores que ignorarás) en esas opciones. El código cambia partes de ls paleta para una vatiante ligera para desaturarlo completamente. Si has cambiado completamente tu HP box, será necesario volver a la caja por defecto. Serán agregadas opciones para cambiar las pocisiones X and Y relativas al sprite si esto se vuelve un problema.

Para insertar el código (Usuarios de Windows): mira Este post

Uso

Las Mega evoluciones fueron hechas usando los datos de la tabla de evolutiones. para configurarlas se requiere de una herramienta para editarlas, (mira este post para hacerlo con G3Tools). Las Megas tienen como tipo de evolución el código 0xFE, que las separa de la evolución común. La hword desconocida en esta estructura debe estar en 0 para la Mega Evolución. Los tipos 1 y 2 están reservadas para la Reversión Primigenia y la megaevo de Rayquaza (Basada en un movimiento). La especie destino es la especie en la que deseas que MegaEvolucione. Este Pokemon debe tener el mismo número de Pokedex que el original. Trata de no cambiarlo mucho, ya que debes mantener el ratio de género, nombre, Salud base, ratio de nivel y moveset igual al original para prevenir efectos extraños. El argumento para tla mega evolución es el item de tu MegaPiedra u Orbe Primigenio. En el segundo caso en el movimiento.

Después, necesitas hacer que las especies regresen a su estado original. Necesitas agregar otra entrada en su tabla de evolución, esta vez para la Mega forma del Pokemon. Esta debe ser idéntica a la anterior, excepto que la especie objetivo es la no-megaforma, y el item/argumento es 0. Fue hecho de esta manera por razones de velocidad y el costo de evitar hacer la configuración sea más complicada, ya que hacer una auto búsqueda de los datos de regreso sobrecargaría el juego y provocaría lags.

Finalmente, necesitas del item. En "config.h" debes tener puestas dos variables libres para usar este código. La primera es para el item del objeto clave del jugador, la segunda es para el entrendor oponente. Para el jugador, simplemente fija el primer index de tu mega brazalete/Aro/Tortilla (?)/loquesea. Esto se hace muy facilmente con un script haciendo ue el jugador obtenga el objeto clave. El código puede checkear si tienes este item y desactivar la Mega Evolución si no lo tienes. Para los oponentes es lo mismo, excepto que estos no perform checks, estos solo cambian el item usado en el mensaje (Como ciertos personajes en ORAS y XY). Si deseas desactivsr la Mega Evolución para el jugador todo el tiempo, solo debes remover el item del brazalete/aro/tortilla/loquesea, o simplemente fija la variable del jugador en 0

¿Y como demonios inserto esta wea?
[/size=6][/color=darkblue]

Como se que muchos de aqui son unos noobs no conocen mucho acerca de como funcionan los repositorios de Github, les dejo el tutorial de como insertar este código. Escrito por PokéMew.

TUTORIAL ULTRA NOOBIFICADO PARA TONTOS (Creditos to DizzyEgg por escrinit un poco de esto)

TUTORIAL (Para Windows)

Por experiencia sé que hacer este procedimiento es algo confuso y para algunos dificil, pero la verdad es más simple de lo que parece, asi que pon atención al tema.

NOTA: Los circulos rojos en las imágenes son cosas a las que debes prestar atención.

1. Primero que nada, debes de descargarte el repositorio de Touched donde está el código, descargalo de Aquí.

2. Tras descargarlo, extrae el paquete .zip y ponlo en un lugar accesible, de preferencia el escritorio. Yo decidí renombrar la carpeta como "megaEvolution-master" para mayor facilidad de encontrar la carpeta.



3. Crea una carpeta llamada "build" en la raíz de tu mega carpta. (Creo que cualquiera sabe a que me refiero con "la raíz", de lo contrario no se que haces aquí)


4. Ahora debes de descargarte el software "devkitARM". Puedes descargarlo de Aquí.


5. Ejecuta el instalador, clickea "next" y marca la casilla "download and install/install from downloaded files." Tu puedes instalar todo o solo devkitARM si gustas, Yo solo instalé devkitARM. Recomiendo instalarlo en una dirección simple como C:\devkitPro, si lo instalas en el escritorio no va a funcionarte. Haz una carpeta llamada "devkitPro" e instala todo aquí, espera a que se descarguen todos los componentes y se instalen, sin olvidar la ruta de instalación.



6. Ahora, debes de agregar la carpeta bin de devkitARM a tu ruta de variable. te preguntarás, ¿Khé?
Aqui te dejo como agregar la ruta (o cualquier ruta para futuros propósitos) a tu ruta variable

a) Ve al menú inicio, dale click derecho a "Equipo" y clickea "Propiedades"

b) En la ventana de propiedades del sistema, clickea la pestaña "Avanzado".

c) En la ventana de avanzado, clickea el botón "Variables de Entorno"

d) Ahora, en la ventana Environment Variables, ve a la segunda caja inferior, y clickea donde dice "Ruta." luego, clickea el botón "Editar"

e) Ve hasta el final de las direcciones, y agrega el directorio de devkitARM. Por ejemplo, si instalé todo en "C:\devkitPro\devkitARM\bin\" (recomendado) entonces voy a agregar la siguiente dirección al final de todo: ";C:\devkitPro\devkitARM\bin\" . Estamos tratando de conseguir la carpeta de binarios, asi que aseguremonos de señalar correcta el directorio de binarios de devkitARM como el ejemplo anterior. Click Aceptar en todo hasta guardar todas las configuraciones.

(NOTA: Si por algún motivo evkitARM

7.Ahora necesitas descargar Make gnu, tambien conocido como make.exe, puedes descargarlo de Aquí. Si has descargado todos los componentes de devkit, tendrás instalado un mínino del sistema, ya que, por lo que parece, instala Make.exe por tí. Aunque por el bien de este tutorial, vamos a descargar por separado esto, y por razones de conveniencia.


8. Después de descargarlo, le damos doble click a launch, e iniciamos la instalación, vamos a instalarlo en un directorio sencillo. yo lo hice en: C:\Archivos de Programa\GnuWin32. No olvides el directorio. Asegurate de las casillas "binaries" y "documentation" estén msrcadas antes de instalar.


9.. Ahora, ve al directorio donde instalaste esto. en mi caso, me iré a Equipo>Disco local :)C)>Windows>Archivos de Programa>GnuWin32. Ahi verás varias carpetas, busca la carpeta llamada "bin" y copia todo su contenido

Ahora, pega esto en la carpeta raíz (Ya expliqué esto, en nuesto caso, "MEGA".) Ahora, nuestra carpeta luce así

10. Descargate python 3. el cual puedes descargarte Aquí. Instala todos sus componentes. Simple, ¿Verdad?


11. Ahora debemos conseguirnos una Rom virgem de Pokemon FireRed (Versión 1.0 en Inglés)(Eso si buscala en San Google). Debemos renombrala a "BPRE0.gba". (NOTE: AL FINALDE BPRE ES UN NÚMERO CERO, NO UNA LETRA O) y ponlo en la carpeta raíz.


12. Ahora en la carpeta raíz presionamos la tecla SHIFT y click derecho al mismo tiempo en un área vacía de la carpeta, y en la ventana que se abrió seleccionamos la opción "Abrir ventana de comandos aquí". Conocida tambien como "CMD"

13. ¡Ahora es hora del hacking! escribe: "make", y presiona enter, verás una enorme serie de comandos desplegarse, solo ignoralos (o checkealos si te interesan ;) ) ahora escribe: "insert.py" y presiona de nuevo enter, y se desplegará otra gran serie de comandos. cuando acabe esto cierra la ventana de comandos.



14. ¡¡¡Felicidades!!! revisa si se creó un archivo en la carpets raíz un archivo llamado "test.gba", este es el código de la MegaEvolución instaldado. Puedes abrirlo con un editor hexadecimal (lComo HxD) y ve a la dirección 0x800000 para comprobar que esté instalado, si ves una serie de carácteres hexadecimales y no un montom de FF quiere decir que todo se instaló correctamente


Ya inserté toda esa wea, ¿Ahora como jodidos hago megaevolucionar a mis pokes?

Pues esto es lo último a hacer, ya después de hacer esto ya puedes hacer megaevolucionar hasta a Magikarp :v, bueno, ahora si empecemos (Tuto escrito por Criminon)

Para quienes usan G3T (Gen 3 Tools)

Descarga G3T de aqui: Da click aqui
Descarga la .ini modificada: Da click aqui

Cuando ya tengas G3T instalado, ve a la carpeta raíz de GT y busca la carpeta "customisation"


Pega aqui la .ini de arriba, y sobreescribe la .ini vieja(o renombrala, como quieras)


Ve a G3T y clickea al pokemon al cual quieres que megaevolucione

En el lado derecho de la ventana, verás las evoluciones
El final debe leerse "1 es regresión primigenia, y 2 por deseo"

En "condition", clickea el menú desplegable, y baja hasta abajo a lo más profundo (?) hasta encontrar la correcta (Mega Evolution)

En donde dice "Nothing required" es en donde pondrás el ID del item de tu megapiedra. (Ej. Blastoisita, etc). Debe ser un item cualquiera creado por ti, yo recomiendo psra eso usar "Complete Item Editor" download
NOTA: Ten en cuenta que el # de ID DE ITEM debe ponerse en decimal, no hexadecimal

En donde dice "evolve to" Debes de poner el pokemon en que va a megaevolucionar, esto tambien debe hacerse en el mismo programa, nota que puede ser cualquier pokemon existente, aunque lo mejor es crear un slot nuevo. Asegurate de presionar"edit" en el final a la derecha antes de mover a otro pokemon

Tu Pokemon creado debe tener la mayoría de cosas iguales a su forma normal, como experiencia bade, ratio de crecimiento, grupos huevo, etc, lo más importante es mantener la Salud (PS) base igual, las demás estadisticas y hasta tipos son editables

Lo último que queda por hacer es hacer que la megavevolución regrese a ser el Pokémon que era antes. Ahora haremos que MegaBlastoise evolucione a Blastoise, solo en "nothing required" dejamos esto en 0. Este paso es muy importante, o de lo contrario tu mega pokémon no regresará a su forma original.

Al final, si hiciste absolutamente todo bien el resultado será este (Video del hack de Spherical Ice):

Ahora si, todo el mundo a insertar megas!!!

Si no te salió este proceso puede que no hayas instalado algún componente correctamente o no seguiste bien las instrucciones, si tienes dudas sobre la instalación o sugerencias sobre esto puedes contactar con Touched, su perfil de Pokecommunity es este The PokéCommunity Forums - View Profile: Touched
 

Don Pistacho

Master en Pistachosería.
Difícil pero útil paso, pero... no entiendo bien como seleccionar el Pokémon que quiero que tenga una megaevolución


Saludos a todos los WaHackeros
 

Gold

Porrero a tiempo parcial
Miembro insignia
Difícil pero útil paso, pero... no entiendo bien como seleccionar el Pokémon que quiero que tenga una megaevolución


Saludos a todos los WaHackeros
Aún no he terminado el post, más tarde explico como se hace eso con G3T
 

KevinXDE

Usuario mítico
Porqué nadie quiere a Rubí xD? Todas las investigaciones son de Fire Red u.u

En fin, es algo muy útil para poner Mega Evoluciones en combate sin tener que usar una piedra para hacerlo fuera de este, queda mucho más realista, así que gracias a Touched, a ti por traerlo aquí ^^
 

RedMort

Aprendiendo Decomp
Al final se tratara a Ruby de distinta forma en los concursos, como pasa con gbc y sus limitacuones, y si no al tiempo.
En fin, enkrme trabajo, una lastima que no pueda aprovecharlo nada, esperemos que eing, el dios salvador de ruby nos lo traiga :p
 

H.B.P

Emperador Kaktiácero
Miembro de honor
Fire Red es el rom de investigación por excelencia en Pokécommunity, además, Ruby en comparación es vetusto y se cae de viejo (de hecho, la lógica sería más bien el aprovechar todos los descubrimientos y recursos en Fire Red y concentrar el foco de atención). Sin ir más lejos, a mí no me cabe en la cabeza emplear un rom base tan anticuado habiendo opciones un trillón de veces mejores (sigo viéndolo como un rom demasiado primitivo como para meterle mano, si cabe, por cuestión de pereza extrema o por ganas locas de derrochar energía y tiempo).

Volviendo al tema, buen aporte, ya se venía hablando de este sistema con anterioridad, espero que se mejore la animación de la Mega-evolución.
 

Sayer301!

UnityLord!
Miembro de honor
pero esto limita las Megas a una por nivel? o es simplemente que puedes megaevolucionar los que te de la gana por batalla? porque de ser así no habría ninguna diferencia con evolucionarlos sin mas
 

Gold

Porrero a tiempo parcial
Miembro insignia
pero esto limita las Megas a una por nivel? o es simplemente que puedes megaevolucionar los que te de la gana por batalla? porque de ser así no habría ninguna diferencia con evolucionarlos sin mas
Es tal y como en sexta generación, debes tener un objeto clave (MegaAro con su variable fijada a 1), el pokemon lleva su item clave (Megapiedra), en batalla presionas start y al mismo tiempo aparece el simbolo de mega junto al nivel, al atacar se hace una animación algo cutre, y ya, se actualizan sprites, estadisticas, habilidades, etc, y solo pueden usarse una vez por batalla, asi funciona esto
 

Corbitto

espantaviejas
que interesante aporte, ya tenia algo de tiempo que no veia algo similar.
pues me dejo sin palabras, no se que decir solo agradecer.
 

Gold

Porrero a tiempo parcial
Miembro insignia
He agregado la parte final del tutorial y ahora si ya es posible poner las megaevoluciones completamente, solo sigue perfectamente los pasos al pie de la letra, al final si lo consigues tendrás este resultado:



Es todo, cualquier actualización o novedad será notificada por este post
 

Gold

Porrero a tiempo parcial
Miembro insignia
Doble post, ¡Yay!

Primero debo especificar dos cosas las cuales no dejé del todo claras y pueden ocasionar problemas.

1. Gracias al nigga @Naren Jr. por darse cuenta de esto primero, pero es necesario SI o SI cambiar las variables usadas en este código, osea estas:
Código:
#define KEYSTONE_PLAYER_VAR 0x4001 /*Variable que contiene el índice del objeto clave
#define KEYSTONE_OPPONENT_VAR 0x4002 /*Igual que el anterior, pero para el oponente
#define KEYSTONE_DEFAULT 0x161 /* Item por default del Objeto Clave */
(En la carpeta src busca el archivo config.h y abrela con bloc de notas o notepad++)

Esto debido que las variables 0x4001 y 0x4002 son variables temporales cuyo valor cambia cada vez que cambiamos de mapa, por lo que debemos cambiarlas por variables seguras.

¿Como hago para saber que variables son seguras de usar y cuyo valor no es temporal? pues mira este tuto para conseguir variables seguras.

El valor 0x161 (Gold Teeth) tambien puedes cambiarlo por el objeto clave que gustes o bien usar slots de items vacíos

¡¡¡TODO ESTO SE HACE ANTES DE ENSAMBLAR EL CÓDIGO!!!

2. Este código de momento NO funciona con tablas extendidas en G3HS, para las megas debes usar los slots vacíos entre celebi y treeko, o bien reemplazarlo por otro existente.

3. Este código SI funciona con el parche de MrDollSteak en su última versión (1.5a), pero debes aplicarlo primero a un hack limpio, después usarlo como el ROM base (BPRE0.gba)

4. Abajo dejaré adjunto el .ini de G3HS (Pokeroms.ini) para poder editar las megaevoluciones desde ahi, el problema es que G3HS al no poder editar los últimos dos bytes de las evoluciones no funcionará para regresiones primigenias o megaevoluciones por deseo, solo funciona con megas normales, tambien el ini es totalmente compatible con el parche de MrDollSteak 1.5a


 

Naren Jr.

Puto amo
Usuario de Platino
Vaya realmente hacen un gran descubrimiento y es publicado por acá y la gente no lo aprecia del todo
//
Respecto a la investigación para quienes no la han usado, el sistema esta muy bueno, me parece que se puede mejorar en ciertos aspectos, pero de momento tenemos la fortuna de contar con sistemas nuevos como este ^^

Ojala la gente se anime y inserte el sistema, y también se animen a comentar

Un saludo!
 
M

Miembro eliminado 28262

Invitado
Hombre! pues la verdad es bastante bastante triste esta noticia.

Los espacios entre Celebi y Treecko creo son 25 o 27
y a la fecha existen más de 40 Mega Evoluciones.

Replantearse la Pokédex no sería buena opción pues le quitaría autenticidad al juego, aún así, y creo debí decirlo antes, éste es un gran hallazgo y por su puesto un gran tutorial y una gran traducción.

Gracias por tomarte las molestías de traerlo aquí.
No sé si lo usaré, pero sin duda a más de uno le servirá
 

Gold

Porrero a tiempo parcial
Miembro insignia
Hombre! pues la verdad es bastante bastante triste esta noticia.

Los espacios entre Celebi y Treecko creo son 25 o 27
y a la fecha existen más de 40 Mega Evoluciones.

Replantearse la Pokédex no sería buena opción pues le quitaría autenticidad al juego, aún así, y creo debí decirlo antes, éste es un gran hallazgo y por su puesto un gran tutorial y una gran traducción.

Gracias por tomarte las molestías de traerlo aquí.
No sé si lo usaré, pero sin duda a más de uno le servirá
El que no sea de momento compatible no quiere decir que no vaya a serlo en el futuro, Touched aún trabaja en esto y afirmó que SI va haber compatibilidad con tablas extendidas.

Por cierto, Touched ha actualizado el repositorio del código de esto, ahora el archivo insert.py al emsamblar el còdigo generará un archivo llamado "uninstall.ips" el cual desinstalará el código de tu hack, esto será útil ya que evitará que cuando salga una nueva versión tengas que reiniciar tu hack.
 

Cheve

MoonLover~
Miembro de honor
¡Gracias por "el Señor Aporte"! Se agradece mucho que lo trajeras aquí, con manual y con todas las actualizaciones a medida que van saliendo. Espero ver más de éste hermoso aporte *-*
 

Lunos

Enfrentando a La Organización
Miembro insignia
Yo aun amo a Ruby ;_; ...
(Por su sencillez y porque el Turbo del VBA me funciona indiscutiblemente mejor ahi que en Emerald o FireRed)
Asi que espero que alguien, algun dia, se interese en portearlo a esos lares ;_; ..

Al punto, es un grandisimo Señor Tutorial, y de paso gracias a ti me interesé aun mas en Gaia xD ...
Muchisimas gracias por el aporte, a ver si alguien de aqui, de Wah llega a aplicarlo a su HackROM y vive para contarlo.
(Y que no se quede en la Alpha 1, a poder ser..)
 

gary trainer

Pokemon Trió Legendario
Hola antes que nada buen tuto.bueno alo que iba me sale eso nosé que hacer espero que puedas ayudarme mándame un mp si puedes porfavor
 

Gold

Porrero a tiempo parcial
Miembro insignia
Hola antes que nada buen tuto.bueno alo que iba me sale eso nosé que hacer espero que puedas ayudarme mándame un mp si puedes porfavor
.________.
¿Sabías que no sirve poner lo que ves en la barra de direcciones de windows? para subir una imagen usa un host de imagenes como imgur o postimage.
 
Arriba