If you have a slow computer, use No$GBA.
Since I don't, I use DeSmuMe. It runs very good, as good as an actual DSi.
I once used No$GBA on HeartGold. It froze after an hour...for some reason.
DeSmuME doesn't do that. If you have a Windows 7 or 8, use DeSmuME. If you have anything lower, use...