Lo digo también porque es lo mas sencillo. Tan solo tienes que carcular el byte de la habilidad de forma aleatoria y cargarlo en ram a la vez que los stats y todo lo demas. Si quisieses hacer un caso particular para un entrenador en concreto, tan solo tienes que comprobar si el trainer class y roster coinciden (o tan solo comprobar la class para asignar la habilidad a la clase completa; o si solo hay un entrenador en esa clase ej. lideres, e4), y entonces cargar la que tu quieras. Hay montones de cosas que estan hechas asi dentro del juego, sin ir mas lejos la rutina de los sprites que miramos hace poco, cargaba cada sprite de una tabla en funcion del numero del pokemon, pero distinguia el caso del huevo (FD) aparte.