Al examinar la estructura donde se guardan los datos de un Pokémon (en Bulbapedia y similares te lo enseñan) he visto que los DVs se guardan en dos direcciones de memoria contiguas de 1 byte cada una, es decir los cuatro DVs ocupan 2 bytes. Es por ello que hay que usar el WSM dos veces para editar los DVs, porque sólo se edita 1 byte cada vez, y lo de quitar una Precisión X es para ir a la dirección de memoria inmediatamente anterior. Es decir que con el primer uso de WSM se editan los DVs correspondientes a Velocidad y Especial, y la segunda vez se editan los de Ataque y Defensa. Los EVs se guardan en 10 bytes que van justo antes de los DVS, por eso se ha de repetir el proceso diez veces más.
Luego, he visto que la forma de sacarlos shinies con todo a 10 es con el mismo inventario que he posteado yo, pero con 170 Limonadas en vez de 255, es decir que la cantidad de Limonadas es el dato que se sobreescribe en el byte al que apunta el número de Precision X. Como los contadores de los objetos sólo tienen 1 byte en memoria (van de 0 a 255 -> 256=2⁸ -> 8 bits = 1 byte), se han de editar en dos tandas quitando una unidad de Precision X.
Según esto tenemos que las unidades de Limonada determinan el byte a escribir, tal que así:
255 Limonadas -> 15 15 en los DVs correspondientes a la dirección asignada.
170 Limonadas -> 10 10 " " " " " " " "
Así que podemos manipular los DVs según el número de Limonadas que se tengan al usar el inventario que he dicho.
Si se quisiera un shiny máximo se debería hacer así:
Primer uso de WSM con 170 Limonadas y 139 Precision X. (10 en Velocidad y 10 en Especial.)
Segundo uso de WSM con 250 Limonadas y 138 Precisión X. (15 en Ataque y 10 en Defensa.)
En binario serían 170 -> 1010 1010
250 -> 1111 1010
Así, si se quiere tener otra combinación de DVs, por ejemplo para tener un Poder Oculto Agua, cuya combinación de DVs más altos es 14 13 15 15, pues ejecutaríamos el WSM de esta forma:
1ª edición: Limonada x255, Precisión X x139 (15 Velocidad, 15 Especial.)
2ª edición: Limonada x237, Precisión X x138 (14 Ataque, 13 Defensa.)
255 -> 1111 1111 (15 15 en decimal)
237 -> 1110 1101 (14 13 en decimal)
Con eso, sólo tenemos que pasar a binario las parejas de DVs contiguas y juntar sus cifras para obtener así el número de Limonadas necesarias para sacar la combinación que queremos obtener. Se puede hacer la conversión con la calculadora de Ubuntu que es la que uso yo, y creo que con la de Windows también.
PD.: Se sobreentiende que esto se hace con el resto de objetos que he puesto en el inventario para editar los DVs, claro, sólo cambiando el número de Limonadas y Precisión X.