If an NES cartridge didn't work, I just cleaned the 72-pin connector with a bit of isopropyl alcohol on a Q-tips brand cotton swab.

From the perspective of a somewhat experienced NES developer, on the other hand, an impossible NES cartridge is one containing an impossible NES program. Here are some limitations of the NES architecture:

  • NES games cannot perform real-time general scaling or rotation of sprites or backgrounds. The NES's video memory bandwidth is about 128 bytes per frame; in framebuffer cartridges such as Qix, it takes a full second to update the entire 8 KB screen. (Most games are character-cell based anyway, and screen updating is about 13 times faster when the display is blanked.)
  • Its PPU can display more than 25 colors on one scanline (the palette can be changed on a blank scanline)
  • Its PPU can display only 64 pixels' worth of sprites on one scanline; if confronted with more, the NES will drop sprites and create flicker.
  • An NES game will never beat a decent player in chess, as the NES has a 1.8 MHz 6502-compatible CPU and only 10 KB of RAM (8 KB of that are on the cartridge). Not very good for a search tree.

These limitations are inherent in the design of the NES. It would be impossible to circumvent them without using extremely sneaky tricks such as putting an entire game system onto a cartridge and using the NES only as its display; a prototype Game Boy adapter called Wide Boy, the predecessor of Super Game Boy, did this.

Read More: http://nesdev.parodius.com/
If you're interested, download the LoopyNES emulator, the x816 assembler, and TilEd, read up on NES programming, then get to work on NES Hello World.