The DS has an ARM9 and an ARM7 processor, enabling GBA support by utilizing the ARM7 processor, similar to the ARM7 processor of the GBA. This ARM7 processor didn't get removed in the DSi, as this processor is also being used in DS mode.
Theoretically it should be possible to enable GBA playback on the DSi by utilizing this ARM7 processor.
GBARunner2 is the equivalent of OAF on DS systems. It runs GBA games natively on the built-in GBA hardware. You just don't really want to use GBARunner 2 on 3DS because it forces the system to run in DS mode, which means GBA games can't fill the screen.
These answers are indeed wrong. Think of it like this:
Just because both a Game Boy and Game Boy Color have the same CPU, doesn't mean Game Boy Color games would run on a Game Boy.
Both use the same SHARP SM83 microcontroller as the CPU, but the Game Boy Color has some extra hardware that doesn't exist on a regular Game Boy.
They have the same CPU, yes, so technically the *code* can run just fine on both. But the *hardware support* doesn't quite exist on the regular Game Boy.
It is technically possible to emulate Game Boy Color on the Game Boy, if you put extra RAM into the cartridge slot, and the game you're trying to emulate doesn't use SRAM, *and* has free space in the cartridge, but emulating GDMA/HDMA for example (only present in the CGB) would make the game speed slow to a crawl, *despite the CPU being the exact same*.
Edit: lol, this is actually what GBARunner2 does. DS has some hardware moved, added, or removed, compared to a GBA, but it can emulate those via various means. And since the DS 2D video hardware is pretty similar to the GBA's, there is minimal processing power required to just... use the hardware.
This is also why GBA emulators run like junk on the 3DS. There is no 2D hardware anymore accessible in 3DS mode. However, there is a real GBA inside of the 3DS, and using the built-in capture card, it can be displayed on the 3DS LCD (the DSi/GBA LCD signals are *not* routed to the 3DS LCD, the ARM11 coordinates this). Nintendo specially engineered extra hardware to use the 3DS' main RAM (the 128MB FCRAM) as the GBA ROM storage. And no, that doesn't mean that you can use bigger ROMs. Just like a real GBA, it's limited to 32MB, and Nintendo added no support in for GBA video, so it's not possible to use bigger ROMs on a 3DS.