You can clone in Emerald, D/P/Pt, G/S/C, R/B/Y.
in C/S/C you:
1. Save in front of any PC with Bill's PC-access(Pokecenter, The gate-house before Sudowoodo, Daycare etc.)
2. Deposit in an EMPTY BOX! or this won't work, if you have to switch box you have to repeat step 1 again
3. click [CHANGE BOXES] or what it is called... and choose ANOTHER EMPTY BOX, when it saves, turn off the Power after the word "Saving... D" has appeared
4. Turn the power on, and you should be standing in front of the PC, with the cloned Pokemon BOTH in your PC, and your Party, and Held Items will also be on both places.
I know this works, i have tested it, and have 58x Masterballs, 3x Meganium and 2x Sudowoodo XD
In R/B/Y, i don't know exactly how you do, but it is something with unplugging the Linkcable while Trading, so one Pokemon Disappears, and the other is on both player's GameBoys. I don't have a GB/GBC Link cable so i can't test it. This also works on G/S/C.
On Emerald, MrsMime has just told us how to do
On D/P/Pt you:
1. Deposit the Pokemon in the GTS in Jubilife City
2. Set IMPOSSIBLE REQUIREMENTS! Such as a Lvl 100 Bidoof for a Lvl 5 Bidoof, if you are cloning an item, or -9 Jirachi if you are Cloning a Pokemon
3. Turn off the power at a specific time, that varies from time to time, so you never know when you should, but it is just before the save finishes
4. Turn on and get the Pokemon Back from the GTS
OBS! This has a 1% chance of corrupting your save completely if done wrong, i haven't tried this one, as i am saving money to get a DS...