I'm currently doing some extensive level-up training for Pokedex completion, and I had a thought about the Secret Base system in Emerald. I'm well aware that you can battle friends who have swapped records with you, and that they will be located in their own Secret Base. Further, I have Ruby, Sapphire, and Emerald carts, as well as two GBA systems. Therefore, I can swap records between the three games at will. The battles with my counterparts in the other game have tended to give much more experience than any others I can find; however, they are rather slow matches when I'm trying to maximize the experience given to low-level party members (what with having them in every matchup, having to switch back out so they won't be crushed, etc).
With all the time I've spent with that, I was wondering if there might be a better method. So I'm curious as to how the total awarded experience points are calculated. (I'm already aware of how the total is divided; I just want to know how that first number is determined.) For instance, would it be good to boost a bunch of Magikarp to Level 100 Gyarados with nothing but Splash? Or does the moveset play a factor in the calculations? And what about species, IVs, EVs, hold items, abilities, and so on? What effects do they have on the awarded experience? If anyone happens to know this, an answer would be greatly appreciated. Thanks in advance.