>>22
It's important to understand that to pull off complex graphical effects (ie "more than 10 things moving on screen at once" or "the background scrolls at different speeds at different parts of the screen") on systems like the NES, you end up spending 50% or more of your CPU time per frame just pushing sprites around, or waiting for the right moment to update the background scrolling registers.
The kind of games you're thinking about are completely unfeasible on the NES, and even if the graphical effects you're thinking about could be pulled off at a reasonable framerate, there would be basically no time left for the actual game logic. Adjust your expectations accordingly.
Please go try programming something for the NES so that your socks can be properly blown off by
>>19. Forget programming something that utilizes the CPU relatively well, it's hard just to make a mediocre game that actually works, not the least because you have to design your programs around the bank switching in a tiny 16-bit address space (of which you only have the upper 15-bits to map program ROM into).