The answer is 3 weeks of evenings. Approximately 40 hours, maybe. I've got a game that's certainly playable (although by all reports, a little too hard. Oops, I'm bad at that)
I decided partway through to ditch the "endless" part of it -- I realized I didn't have a good plan for making random levels that were actually fun to play. So I designed 5 short levels, with a few power-ups part way through. Each has slightly different background graphics, to give the player a sense of progression.
A few thing that I felt like were somewhat interesting during the development:
- I used the NES's Sprite-0 flag to make the spikes at the bottom not scroll away with the background. But to make it more interesting, I cycle sprite 0 up and down slightly, to make the spikes bounce and look a little scarier.
- Robo-Ninja is a giant character by NES standards. Most games have characters that are 16x32 or so. Robo-Ninja is 32x48 or larger (depending on the animation frame). I can get away with it because there aren't many other sprites in the game. Most games have enemies, bullets, and so forth to deal with. Robo-Ninja mostly dodges background elements.
- I didn't feel like mapping levels out manually in a tile editor (mostly it's blank space!), so I mapped them all out using text like this, and then have a pre-processor as part of my build script that converts it to actual binary level data: