Methods & Lead
Prerrequisito
Haber leído Métodos 1-4 y Vblanks.Encuentros salvajes Pokémon (Versión simplificada)
Aquí hay un ejemplo simplificado del código ejecutado en un encuentro salvaje:| Paso | Ciclos | Ciclos Totales |
|---|---|---|
| 1- Actualizar audio & visual | + 50K | 50K |
| 2- Actualizaciones misceláneas | + 5K | 55K |
| 3- Preparar encuentro salvaje | + 15K-115K | 70K-170K |
| 4- Generar PID valido | + 10K | 80K-180K |
| 5- Crear Pokémon sin IVs | + 115K | 195K-295K |
| 6- Generar Def, Ata, HP IVs | + 1K | 196K-296K |
| 7- Asignar Def, Ata, HP IVs | + 39K | 235K-335K |
| 8- Generar DefE, AtaE, Vel IVs | + 1K | 236K-336K |
| 9- Asignar DefE, AtaE, Vel IVs | + 39K | 275K-375K |
| Paso | Inicial Más Rápido Wild-1 (Salvaje-1) | Inicial Rápido Wild-4 (Salvaje-4) | Inicial Lento Wild-2 (Salvaje-2) |
|---|---|---|---|
| 1- Actualizar audio & visual | 50K | 50K | 50K |
| 2- Actualizaciones misceláneas | 55K | 55K | 100K |
| 3- Prepara encuentro salvaje | 70K (Más Rápido) | 120K (Rápido) | 170K (Lento) |
| 4- Generar PID valido | 80K | 130K | 180K |
| 5- Crear Pokémon sin IVs | 195K | 245K | 295K (VBlank) |
| 6- Generar Def, Ata, HP IVs | 196K | 246K | ... |
| 7- Asignar Def, Ata, HP IVs | 235K | 285K (VBlank) | ... |
| 8- Generar DefE, AtaE, Vel IVs | 236K ... | ... | ... |
Determinando si el inicial es lento o rápido
Hay 2 factores que determinan si el inicial es lento o rápido:- Si es que es un huevo
- Su PID
- La operación modulo mas rápida posible es de 18 ciclos cuando el PID del inicial del equipo esta por debajo de 25.
- El mas lento es de 900 ciclos (Ejemplo para el PID 59999995).
- En promedio, esto toma 775 ciclos.
- La diferencia total entre el mas rápido y el mas lento PID de inicial del equipo es de ~71K ciclos.
- La diferencia total entre un huevo y el PID mas lento es de ~100K ciclos.
Lead PID Speed Calculator
Encuentro Pokémon salvaje (Versión completa)
En realidad, la lógica de encuentro salvaje es mas compleja que la versión simplificada de arriba, porque la mayoría de los pasos toman un numero variable de ciclos. Afortunadamente, en la mayoría de los casos, el numero de ciclos tomados cada paso puede ser precalculado.| Step | Cycles | Type | Depends on |
|---|---|---|---|
| 1- Actualizar audio & visual | 45K-65K | Impredecible | Frame de audio |
| 2- Actualizaciones misceláneas | 5K | Precalculable | - |
| 3- Preparar encuentro salvaje | 15K-115K | Controlable | Inicial de equipo |
| 4- Generar PID valido | 1K-1000K | Precalculable | Estado del RNG (# Reroll de PID) |
| 5- Crear Pokémon sin IVs | 36K-125K | Precalculable | PID Generado del Pokémon |
| 6- Generar Def, Ata, HP IVs | 1K | Precalculable | - |
| 7- Asignar Def, Ata, HP IVs | 11K-43K | Precalculable | PID Generado del Pokémon |
| 8- Generar DefS, AtaS, Vel IVs | 1K | Precalculable | - |
| 9- Asignar DefS, AtaS, Vel IVs | No importa |
VBlank al generar un PID valido
Un VBlank ocurriendo durante el paso "4-Generar un PID valido" resultara en ya sea un Wild-3 o Wild-5 (Salvaje-3 o Salvaje-5). Aquellos métodos serán cubiertos en el siguiente articulo.Creditos
- RainingChain for the article.
- mGBA team for providing the emulator for cycle research.
- pret team for providing the decompil projects.
- El Terapagos Mexicano for the Spanish translation.