Yeah, for 100% GBA emulation, there is no substitute for the DSTwo. Something about ARM9 and ARM7 not being very cross compatable is why GBA Emulation doesn't work so well on NDS-carts.
EDIT: I'm drunk and probably got my CPUs mixed up. Someone feel free to correct me.
slightly tipsy here too but, can confirm partial correctness of CPU. GBA(not SP, SP lack z80) use Z80+ARM7 NDS use ARM7+ARM9, ARM9 Used to emulate z80 as needed and handle other translate commands.
Think of each game as a book, and the CPU is like a dictionary reading the book, ichifly's awesome emulator is like a translate book thing that reads the GBA format directly, on the fly to the NDS opt codes(processor commands), however this process is not the greatest due to two factors:
1) think interpreted language, such as JS/HTML on Netscape/Old IE Browser. It is interpreted, so that means S L O W. unlike the JIT compiled emulators of the new age. look into Hypervisors on wikipedia(VMWare/virtualbox) his method of emulation uses this.
2)Resources shared by DS hardware+GBA Emulated mode, a rule of thumb from back in the day, 4x MIPS(my bad that is x86, forgot arm term for it), processor speed is required to emulate original hardware suitably, DS/(i)=2x, although technically this emulator isn't emulation, see hypervisor.
It is possible to achieve greater compatibility but FPS will take a hit as will sound. good goal =~45+FPS
If I recall there is a wiki that states the compatibility with each version. Make sure your using the version specified.
I found my DS Lite, dumped my USA firered and put that on my acekard 2i, it works just fine, just saving issues. FPS is OK, and there is sound on ALPHA 2 FIX4(latest stable i think).
to all the future people reading this: get a DS2, you wont regret it, especially if you dont feel like spending money on a used dirt cheap PSP.