Repasemos lo básico: cuando tenemos un pokemon dentro de la Caja Glitch (en adelante "CG"), su información esencial (especie, ataques, DV's, ID, OT, etc.) se ve modificada de una forma linda y predecible cada vez que ingresamos o retiramos otros pokemon de la caja. El funcionamiento de esta modificación se vislumbra de mejor manera observando el orden de su estructura Hex, por ejemplo, a través de código Gameshark:
Código: Seleccionar todo
Pokemon Modifier
01??D8DC (Sprite)
01??DFDC (Especie)
Item Held Modifier
01??E0DC
Skill 1 Modifier 01??E1DC
Skill 2 Modifier 01??E2DC
Skill 3 Modifier 01??E3DC
Skill 4 Modifier 01??E4DC
ID # Modifier
01??E5DC
01??E6DC
Experience Modifier
01??E7DC
01??E8DC
01??E9DC
HP Experience Modifier
01??EADC
01??EBDC
Attack Experience Modifier
01??ECDC
01??EDDC
Defense Experience Modifier
01??EEDC
01??EFDC
Speed Experience Modifier
01??F0DC
01??F1DC
Special Experience Modifier
01??F2DC
01??F3DC
Att & Def DV Mod 01??F4DC
Spd & Spc DV Mod 01??F5DC
PP Skill 1 Modifier 01??F6DC
PP Skill 2 Modifier 01??F7DC
PP Skill 3 Modifier 01??F8DC
PP Skill 4 Modifier 01??F9DC
Happiness Modifier
01??FADC
PokeRUS Virus
01??FBDC
Hour Caught Modifier
01??FDDC
Location Caught Modifier
01??FCDC
Level Modifier
01??FEDC
Status Modifier
01??FFDC
Current HP Modifier
01??01DD
01??02DD
Max HP Modifier
01??03DD
01??04DD
Attack Modifier
01??05DD
01??06DD
Defense Modifier
01??07DD
01??08DD
Speed Modifier
01??09DD
01??0ADD
Special Attack Modifier
01??0BDD
01??0CDD
Special Defense Modifier
01??0DDD
01??0EDD
Original Trainer Name Mod
-------------------------
End Code (MUST BE ON) 015006DE
Slot 1 01??FFDD
Slot 2 01??00DE
Slot 3 01??01DE
Slot 4 01??02DE
Slot 5 01??03DE
Slot 6 01??04DE
Slot 7 01??05DE
Nickname Modifier
-----------------
Slot 01 01??41DE
Slot 02 01??42DE
Slot 03 01??43DE
Slot 04 01??44DE
Slot 05 01??45DE
Slot 06 01??46DE
Slot 07 01??47DE
Slot 08 01??48DE
Slot 09 01??49DE
Slot 10 01??4ADE
End Code 01??4BDE
(Fuente: http://www.ocf.berkeley.edu/~jdonald/pokemon/)
Los ?? es donde va la información individual de cada pokemón. Así, un pokemon con el código
Att & Def DV Mod 010FF4DC
Spd & Spc DV Mod 01A8F5DC
tendrá ciertos DV's específicos, que serán distintos por ejemplo de los de un pokemón con
Att & Def DV Mod 01FCF4DC
Spd & Spc DV Mod 0113F5DC.
Cuando un pokemon está en la CG, sus valores ?? sufrirán todos un corrimiento simultáneo permanente cada vez que se ingresa otro pokemon a la caja. Especificamente, se recorrerán todos un espacio "hacia abajo". Así, si teníamos a un pokemon con los datos
Item Held Modifier
0101E0DC
Skill 1 Modifier 0159E1DC
Skill 2 Modifier 01DDE2DC
Skill 3 Modifier 0169E3DC
Skill 4 Modifier 0155E4DC,
al ingresar otro pokemon a la caja quedarán como
Item Held Modifier
01FAE0DC
Skill 1 Modifier 0101E1DC
Skill 2 Modifier 0159E2DC
Skill 3 Modifier 01DDE3DC
Skill 4 Modifier 0169E4DC.
El nuevo valor para "Item Held Modifier" provino del valor para la especie, mientras que el valor de "Skill 4 Modifier" bajó a la información del ID, y así sucesivamente. ¿Cómo se refleja esta modificación de datos dentro del juego? Eso depende de la codificación que el juego tenga para cada tipo de dato (sea de especie, de ataques, o que sea un dato numérico como Stat Experience o Dv's); en nuestro ejemplo, un efecto será que sus ataques se correrán abajo un espacio, su 4° ataque desaparecerá, y ganará un nuevo ataque correspondiente al valor Hex 01.
Cuando en cambio se retira un pokemon de la CG, el efecto es inverso: los datos ?? se correrán todos simultáneamente un espacio "hacia arriba". Este comportamiento de datos dentro de la CG se presta para varios métodos sencillos de modificación de nuestros pokemon, discutidos extensamente en el post del Truco de Celebi. Sin embargo, hay datos ?? que aparentemente tienen un comportamiento un poco distinto a lo descrito: los datos FF.
--------------------
El dato FF es el último dato posible de los 256 disponibles para cada valor ??. Para características numéricas del pokemon como Stat Experience, DV's, Experiencia y Felicidad, un valor FF indica que el pokemon posee un máximo valor de la característica respectiva dentro del juego; así, un pokemon con el código
Att & Def DV Mod 01FFF4DC
Spd & Spc DV Mod 01FFF5DC.
corresponde a un pokemon con los máximos DV's posibles (i.e. genes perfectos). Para características "cualitativas" como especie, ataques, objeto equipado, etc. el dato FF suele corresponder a un remanente de programación. Ahora bien, al menos según mis pruebas estos datos FF tienen un comportamiento único dentro dentro la CG y creo haber encontrado el patrón general de este comportamiento, que intentaré explicar lo mejor posible a continuación. Quiero recalcar antes que nada que estos son resultados absolutamente preliminares y que en parte los posteo aquí para someterlo a la verificación de ustedes mismos los lectores del foro. Aunque me preocupé que mis pruebas no fueran casuales y fueran medianamente serias, reconozco que quizás tampoco son de las más exhaustivas, asi que no puedo exagerar lo valioso que sería que condujeran sus propias pruebas para verificar, desmentir o corregir lo que explicaré a continuación.
Caso 1: (ingresar pkmn en CG) Cuando un pokemon dentro de la CG posee un valor FF en alguna parte de su estructura, al depositar otro pokemon sus datos no se moverán todos simltáneamente un espacio hacia abajo. En su lugar, lo que ocurre es lo siguiente: el juego va verificando, de arriba hacia abajo, cada uno de los valores ?? siguiendo la lista de código Gameshark, y sin alterar ninguno de los datos. Al encontrarse con un valor FF, el juego dejará de verificar y moverá un espacio hacia abajo todos los datos verificados hasta antes de enontrar el valor FF (e incluyendo el mismo valor FF). Los datos que vienen después del valor FF permanecerán completamente inalterados, mientras que el dato inmediatamente posterior al dato FF será "engullido" por este mismo.
Ejemplo: Consideremos un pokemon en la CG con datos
01FAF4DC (Att & Def DV Mod)
01AAF5DC (Spd & Spc DV Mod)
0105F6DC (PP Skill 1 Modifier)
010AF7DC (PP Skill 2 Modifier)
010AF8DC (PP Skill 3 Modifier)
0113F9DC (PP Skill 4 Modifier)
01FFFADC (Happiness Modifier)
0100FBDC (PokeRUS Virus)
01BCFDDC (Hour Caught Modifier)
0117FEDC (Location Caught Modifier)
El pokemon posee un valor FF en felicidad; posee felicidad máxima . Si depositamos otro pokemon, sus datos quedarán
011BF4DC (Att & Def DV Mod)
01FAF5DC (Spd & Spc DV Mod)
01AAF6DC (PP Skill 1 Modifier)
0105F7DC (PP Skill 2 Modifier)
010AF8DC (PP Skill 3 Modifier)
010AF9DC (PP Skill 4 Modifier)
0113FADC (Happiness Modifier)
01FFFBDC (PokeRUS Virus)
01BCFDDC (Hour Caught Modifier)
0117FEDC (Location Caught Modifier)
Todos los datos hasta felicidad se corrieron un espacio abajo, mientras que los de Hora y Lugar de Captura permanecen iguales; la señora de Cianwood no nos dirá nada distinto al ver a este pokemon. El dato 00 que tenía el verificador de PokeRUS desapareció completamente (fue "tragado" por el valor FF).
Caso 2: (retirar pkmn de CG) Algo aún más entretenido ocurre cuando tenemos un pokemon en la CG con un dato FF, y retiramos a otro pokemon de la caja. Nuevamente el juego va verificando de arriba hacia abajo los datos del pokemon hasta encontrarse con un valor FF. En ese momento se detiene la verificación y el juego mueve un espacio hacia arriba todos los datos verificados hasta antes de encontrar el valor FF (nuevamente, incluyendo el mismo valor FF). Tiene sentido, ocurre exactamente lo opuesto al Caso 1... con una diferencia: como el dato FF se moverá hacia arriba y el de abajo no se moverá, quedará un espacio "vacío" que el juego rellenará con otro dato FF. Aparecerán dos datos FF consecutivos.
Ejemplo: Consideremos el caso del mismo pokemon anterior
01FAF4DC (Att & Def DV Mod)
01AAF5DC (Spd & Spc DV Mod)
0105F6DC (PP Skill 1 Modifier)
010AF7DC (PP Skill 2 Modifier)
010AF8DC (PP Skill 3 Modifier)
0113F9DC (PP Skill 4 Modifier)
01FFFADC (Happiness Modifier)
0100FBDC (PokeRUS Virus)
01BCFDDC (Hour Caught Modifier)
0117FEDC (Location Caught Modifier)
Al retirar un pokemon de la CG, sus datos quedarán
01AAF4DC (Att & Def DV Mod)
0105F5DC (Spd & Spc DV Mod)
010AF6DC (PP Skill 1 Modifier)
010AF7DC (PP Skill 2 Modifier)
0113F8DC (PP Skill 3 Modifier)
01FFF9DC (PP Skill 4 Modifier)
01FFFADC (Happiness Modifier)
0100FBDC (PokeRUS Virus)
01BCFDDC (Hour Caught Modifier)
0117FEDC (Location Caught Modifier)
Los datos hasta felicidad se moverán un espacio arriba, mientras que los de PokeRUS, Hora, y Lugar de Captura quedarán inalterados; el dato de felicidad se rellena con un dato FF. Si retiramos aún a otro pokemon, el efecto será el siguiente:
0105F4DC (Att & Def DV Mod)
010AF5DC (Spd & Spc DV Mod)
010AF6DC (PP Skill 1 Modifier)
0113F7DC (PP Skill 2 Modifier)
01FFF8DC (PP Skill 3 Modifier)
01FFF9DC (PP Skill 4 Modifier)
01FFFADC (Happiness Modifier)
0100FBDC (PokeRUS Virus)
01BCFDDC (Hour Caught Modifier)
0117FEDC (Location Caught Modifier)
Aparecerá 3 datos FF consecutivos.
En este punto podemos hacer lo que todos estamos pensando... ¡Seguir retirando pokemon hasta tener doble FF en los DV's! Y así obtenemos un método (muy sencillo en mi opinión) para obtener un pokemon con genes perfectos; sólo tenemos que llevar un pokemon a felicidad máxima, lo que no toma más que 10 HP UP's, Proteins, Irons, Carbos y Calcium, más algunos cuantos Rare Candy's. Luego podemos obtener Max Genes de cualquier especie mediante el truco de la fusión permanente. Si queremos podemos ir más lejos, y seguir retirando pokemon para propagar los datos FF más arriba y obtener en pocos segundos un pokemon Max Genes, Max Stat Exp y Max Experience.
Todavía no se me ocurren muchas otras formas en que se puede explotar este bug, y además desconozco si el dato FF es el único con un comportamiento pecualiar dentro de la Caja Glitch; puede que hayan otros, pero no veo ningún indicio de que existan. La única otra aplicación que se me ocurre para éste bug es en el truco para obtener cualquier pokemon: llevando el pokemon a felicidad máxima antes de transformarlo permite "proteger" los datos que están al final de la estructura Hexadecimal del pokemon (incluyendo Sobrenombre y OT), de modo que no ocurra ese "desagradable" efecto de que no podemos cambiarle el nombre después.
¡No me pregunten tampoco el por qué de este comportamiento! Esto de que los datos FF se puedan propagar infinitamente me parece rarísimo, solamente observé el patrón pero no entiendo de dónde viene.
¿Comentarios? ¿Correcciones? Todas bienvenidas...
Salu2