Emulation is the (successful) running of code on systems that it was not intended for by use of hardware or as is much more often the case software, software emulation takes two main forms:
Interpretation: used mainly when code used in the original system is very similar to the system upon which the code is to be run, changes instructions from the emulated system in instructions compatible with the system doing the emulating.
"Core" emulation is more common, it is where a model of the CPU and other hardware in the device to be emulated is set up used fake the presence of the original hardware on a system that is doing the emulating.
If you are reading this wiki there are two sorts of emulation you shall likely want to know about:
Emulation of a handheld
This section will tend to deal with emulation of the handhelds on a PC/MAC or some stationary console, there does however exist GBA emulators for the GP32 and PSP but these due to the fact both of the machines are portables emulation may not be of the same quality as on a PC (the GP32 does have some fantastic emulators for other consoles especially the 16bit ones).
The GBA was emulated before the console was even released thanks to some leaked info. Fastforward 5 years and there exist a few emulators for you to use.
Originally quite a few emulators existed for the console but nowadays the main emulator that most use (or at least one of the few modifications thereof) is known as Visualboy Advance. See the article VBA for links to it and its modifications.
ADG An old discontinued emulator]
BATGBA An emulator, not updated in many years.
boycottadvance An emulator, windows, Mac and linuc versions available and just started on DS emulation.
CowBite An early emulator, now discontinued.
DreamGBA Homepage offline so only a download link on the left but an early emulator.
Mednafen Emulated many systems including GBA.
MappyVM more a developers too than anything else.
no$gba A emulator line with a long history, just started on DS too.
rascalboy Advance Another emulator.
sGba a WIP emulator.
VGBA Commercial GBA emulator, just started on DS emulation.
Visual Boy Advance The emulator most people use. Links and modification links on the article linked.
RbVBA A relatively new REALbasic interface (front-end) for VBA so Linux users can make use of it.
There exist a few emulators all with good and bad features, running commercial ROMs is just about possible although a high spec PC is required if you wish to get anything from it. There are seven main emulators around for the Nintendo DS although Ensata is part of the official Nintendo DS developer kit and so will not be mentioned (it is not very good anyway):
NO$GBA - requires a copy of the DS and GBA BIOS to run (a lot of other emulators implement BIOS faking) but this series of emulators has been around for a very long time with a good reputation to boot, one to look out for.
iDeaS - A good emulator with a lot of promise.
DSEmu - One of the first DS emulators, does not run any commercial games but able to run most of the demos around .
Dualis - No commercial games really running yet but still another one to pay attention to, sound emulation started too.
DeSmuME - One of the best emulators around until development was stopped, being open source it has however been continued even with some unnoficial updates, Normmatt's DeSmuME Build adds basic SRAM save capability and instant save support, Normmatt's DeSmuME source. You can grab DesMuMe 0.3.6, which is reportedly a significant improvement over the previous builds here:
VGBA - (Current Version 3.0) - A commercial emulator that has just started on DS emulation.
NeeDS Not the official link there but this an an emulator based on DeSmuME and more optimised for speed. If it continues it is certainly a very strong contender (it already plays a few more basic DS titles).