Nintendo DS

To run homebrew or ROMs on your Nintendo DS you'll need a flashcart.

Nintendo DS flashcarts
There are three types of DS flashcarts.

The first type works with the slot-2 (which makes it incompatible with DSis and 3DSes, since those lack it). These flashcarts are old, but may be good, particularly if you want to also use them on a GBA or to play GBA ROMs natively on a DS/DSL. Slot-2 flashcarts may have problems with newer games, since they got substituted by slot-1 flashcarts. You will also need additional setup to use a slot-2 flashcart in DS mode such as flashed firmware, which already requires a DS mode flashcart to install. This and the other hassles of slot-2 flashcarts such as ROM patching and save batteries means this kind of cart is not particularly attractive.

The second type is the most common. These are also the most cheaper and easy to find. They are slot-1 flashcart which can run DS ROMs and are colloquially know as "R4" by some, which is actually the name of a particular slot-1 flashcart that became popular. Because of its popularity, there are a lot of DS flashcarts using that name, so pay attention to what you buy.

The third type of DS flashcarts still uses slot-1. The difference from the second type is that they have RAM and CPU inside of the flashcart itself, giving more features to the user. The most famous one is the DSTwo, which also supports GBA and SNES emulators through the use of its built in CPU.

There are also some GBA expansion carts. An example is the EZ Flash 3-in-1. This works in conjunction with a standard DS flashcart to play GBA games. It fits into slot-2, but does not contain any SD slot itself. Instead, the GBA roms go on your slot 1 flashcart. Then, when you want to play a GBA game, the game is copied across to the slot 2 card and booted as if it were a normal GBA game, meaning you get to play the game without any emulation glitches or slowdown. Naturally, this only works on the older DS and DS Lite. They may also offer extra features such as additional RAM or rumble support.

Most of these DS flashcarts run in DS mode when used on a DSi or 3DS. Some DSi exploits were found, but those aren't so easily accessible and there aren't many homebrews, only ones used for tests.

DSi and 3DS system updates
Before the DSi came out, Nintendo tried to block flashcarts just by using antipiracy methods inside the games. Most modern flashcarts have been given firmware updates which counter the antipiracy in the roms. Then the DSi allowed system updates, and a lot of them were meant to block flashcarts. Updating the flashcart was necessary in many cases, and this required being able to boot the cart, so the system would need to be updated after the cartridge or the cartridge would needed to be updated on an older system. The exception is the Supercard DSTwo, which can update itself without needing to be booted. Obviously, a lot of flashcarts didn't get the needed updates, particularly the ones that were just clones, stole the "R4" name or the website on their box was confusing. The 3DS got this type of update too, for a while. If you have a way to install .cia files to your 3DS sysNAND, you can install the timewarp .cia, which makes some DS flashcarts work again, although many still do not work. See the Nintendo 3DS page for more information.