12355-\[GBC]Teoría_de_aumentar_la_Pokédex_a_512_(por_koolboyman)
#0
Gallego13 16299
Esta teoría no es mía, sino de koolboyman, la posteo aquí para que más gente la conozca y pueda ayudar en la investigación.


Iniciado por koolboyman
I had an idea a while back for what I believe, the easiest way to increase the maximum Pokemon slots to 512.

My idea was to make use of the Pokemon's level byte since it is defined every time a Pokemon is called. The highest bit of the byte is always off since the maximum level is 100 and for that bit to be on the level would have to be at least 128.

What need would be done:
- Special code every time a Pokemon is called to disregard the last bit of the level variable when assigning a level, and putting that bit to use. Wild Pokemon, Pokemon added to your party, Pokemon given as a gift, Pokemon in a trainer's party, etc.
- When the bit is on, to read from a separate table for the following:
* Names
* Base Stats table
* Crys
* Pictures
* Moves and Evolution Data
* Colors
* Icons on the menu
* RAM Addresses of the second Pokedex Seen/Own boolean arrays, or to just expand the existing ones.
* Print Pokedex Numbers + 256 whenever the Pokedex variable is displayed.
* Anything else I can't remember at the moment. Feel free to bring them up.
- The only instance I can think of at the moment where a Pokemon is defined without it's level is the new Pokedex Order and ABC order. You would have to write new code to accept a ninth bit for those, and additional code to support the new ID number order.

Easier said than done obviously. Would anyone be interested in it's implementation? I'm sure it can be used for Red as well (The workaround for the trainer bytes for Brown was that the Pokemon with index numbers C9 and above would never be encountered in the wild. When called any other way they appear as normal Pokemon).


Traduzco:

Tuve una idea hace un tiempo sobre la que creo que es la forma más simple de aumentar el número máximo de Pokémon a 512.

La idea es usar el byte del nivel del Pokémon, ya que es definido siempre que un Pokémon es llamado.
La parte alta del byte está siempre apagada porque el nivel máximo es 100, por lo que para que estuviera encendida, se necesitaría al menos que el nivel máximo fuera 128.

¿Qué se necesitaría hacer?

-Un código especial que, cada vez que un Pokémon es llamado, ignorara el último bit de la variable de nivel cuando se está asignando un nivel y usarlo para los pokémon salvajes, en tu equipo... etc

-Cuando el bit esté encendido, que lea de una tabla diferente las siguientes cosas:
•Nombres.
•Stats base.
•Gritos.
•Imágenes.
•Movimientos y datos de evolución.
•Colores.
•Iconos del menú.
•Direcciones de la RAM de las series de pokémon vistos y capturados o expandir la actual.
•Imprimir los números de la Pokédex mayores de 256 cuando la variable de la Pokédex aparezca.
•Alguna cosa más que se me escape, sois libres de añadir lo que veáis oportuno.

-El único lugar donde los Pokémon no aparecen es en el Nuevo Orden de la Pokédex y en el orden alfabético, ahí habría que añadir un código extra para aceptar un noveno bit y código adicional para permitir el nuevo orden de números de ID.

Es mucho más fácil decirlo que hacerlo, obviamente, ¿Estaría alguien interesado en su implementación?
Estoy seguro de que funcionaría también en Red.

Fin de la traducción, ahora hablo yo ;)

He posteado esto principlamente para que los interesados en este tema de WaH aporten sus ideas y ayuden al desarrollo de el RH de gbc (y quién sabe si del de gba también). Sé que hay gente aquí que sabe de scripting avanzado y ASM por lo que espero respuestas ^^