Originally Posted by Pokemon Trainer Sarah
Okay, first you get the Pokemon you want to clone. If you want to clone an item as well, then attach it to that Pokemon. Next, save your game. Now, go to your PC, deposit the Pokemon you want to clone and then go to Change Box, select any other box and then when it says "Saving... don't turn off the power" turn off the power. If it worked, when you turn your game back on, you should have the Pokemon you were cloning in your party, and in your PC box.
I'm pretty sure that's how it works, I haven't done it in so long.
Actually, there is an easy explanation to why that works. You see, when you deposit a poke into the PC, the game actually erases the pokemon from the party, and then rewrites it into the memory's PC section (Yep, the file is NOT moved, but erased and rewritten.) BUT, when you save, the game, in order to prevent endless anger from random people, writes the "new" pokemon first (the "new" deposited poke) into the save file, and then erases what is needed to be erased from the party (the "old" poke). So, when you turn off your game in the middle of the process, what you are really doing is letting the game write the new poke in, but not erase the old one.
My guess would be that in the newe games (Ruby and up), the creators made it so that at the end of every save file, there would be a little "this is allowed to be loaded" clause of the program. The first thing that the game does before it saves your game is erase that clause, then write your savefile as usual, and then rewrite the clause back into the end. So, if you try the old cloning trick now, since there is no "allow to load" clause at the end, the game will deem the savefile "corrupt", and load the previous one that you had. Maybe, I am completely wrong, but this seems reasonable to me, and it makes plenty of sense in combination with what I already know.