En Pokémon Esmeralda se puede tener perfectamente un Pokémon con todos los IVs al máximo, pero es más complicado que en juegos modernos, puesto que no hay Lazo Destino ni objetos recios, de modo que todo depende del azar. Lo único que sí se puede hacer es heredar la naturaleza con la Piedra Eterna, que en este juego además sólo hace heredarla con un 50% de probabilidad, y sólo si la lleva la hembra o un Ditto.
Luego, en Pokémon que no pueden criar como legendarios, o los salvajes en general, aquí es donde está el hueso, pues resulta que Pokémon Esmeralda tiene un bug relacionado con el Generador de Números Aleatorios, que es lo que controla las estadísticas de un Pokémon salvaje, y este bug provoca que no puedas encontrar salvajes con todas las estadísticas al máximo en un tiempo asumible por un ser humano, aunque puedes conseguirlos con 2 o 3 IVs a 31 y el resto con números bastante altos. Este bug también actúa en los Pokémon de la Guardería, pero aquí se siguen unos cálculos distintos para determinar sus estadísticas, y eso junto con la herencia permite conseguir Pokémon con IVs al máximo en un tiempo realista.
Para no extenderme mucho sobre el tema, te diré que el bug hace que el tiempo que pasa desde el instante en que enciendas la consola hasta el momento en que entras en combate con un salvaje (o recibes un huevo o poke de regalo) sea lo que determina sus características, de modo que siempre serán las mismas para un intervalo de tiempo dado, y funciona de tal manera que para que te salgan todas las estadísticas al máximo tienes que esperar como dos meses. Esto en una consola con un cartucho original es inviable porque tendrías que dejarla encendida todo ese tiempo ininterrumpidamente, aunque en un emulador con opciones de turbo y savestates se puede lograr, no es fácil pero se puede.
Para controlar las características de un Pokémon se puede hacer el llamado Abuso de RNG. Es muy largo y bastante enrevesado, míralo en internet, en webs como Smogon tienen guías para realizarlo. Básicamente consiste en contar ese tiempo que pasa desde que enciendes la consola hasta que entras en combate. Se usan programas externos al juego que te dicen cuánto tiempo tienes que esperar para que te salga un Pokémon con unas características concretas o qué acciones debes realizar dentro del juego, pero esos programas no interfieren con el funcionamiento normal del juego, no es como los chetos o gamesharks, y se puede hacer en un cartucho original.
Sin embargo, dicho bug también te permite conseguir shinies fácilmente, siguiendo el método del Abuso de RNG, aunque esos shinies seguramente no sean perfectos, salvo los de la Guardería que esos sí pueden serlo.
También puedes hacer soft-reset de forma tradicional, pero ten en cuenta que debido a ese bug del que he hablado la eficacia será muy limitada, puesto que cuando se hace SR muchas veces y se asume una rutina entonces el intervalo de tiempo que determina las estadísticas suele ser aproximadamente el mismo en cada reseteo, ya que te acostumbras a pulsar los botones a una determinada velocidad.