There is no way in hell a 1.79Mhz 6502 can play streaming video.
It's a fun party trick though.
Hypothetically, the NES could play streaming video. For memeory limitations, a custom rom cartridge could be used which would grab a new set of video frames (consisting of tilemaps + tilepatterns) via a network controller. The 6502 core does not need to decode video, but could simply swap in chunks of these tilemaps+tilepatterns which the picture processing unit displays.
Correct as well about the colors. It would have been nice to better utilize them, but we didn't have enough time to do that properly.
It can't decode MPEG 4 real time, of course, but machines of this class are more than capable of streaming video.
ZX Spectrum streaming with a network interface (~3.5MHz Z80):
https://www.youtube.com/watch?v=ooi9rpx6ECM
Commodore 64 with lots of RAM (~1MHz 6510):
http://trixter.oldskool.org/2014/06/19/8088-domination-post-...
(I don't know enough about the NES to say whether there's some complications I'm overlooking.)
In fact, the original plan we had was to stick a raspberry pi in the cart to handle networking and video conversion. Due to time and resource constraints we ended up building a standalone rom.
Forgive me, it was a Monday morning when we reshot this. I think the final cart was the original PRGROM + MMC3 / 32 CHRROM banks, so it was probably more like 270k total. The video playback I was commenting on entirely fit into the 256K. In my cursory understanding of the MMC3, I think that's the limit that still fits into a normal mapper 4 and will run on device - I know you can up the PRGROM (add PRGRAM), but that would kill our direct cart --> PPU path for the fast playback.
As for the processor, we were definitely pushing the limit with the design we were coding - we had to back off from glitching quite a bit due to busting the number of cycles we had before PPU. I'm sure we could do better with what we know now, or a lot more assembly tuning, but there was the hard limits on being ready by hackday!
It could play streaming video at a sufficiently small resolution, just not HD or SD.
How did they get it "online"? I'm assuming that's all built into the "cart"? (wifi?)
Sadly, we had to cut the rpi this time due to time constraints. So we set the data up as if that was doing its job and focused on the current rendering issues and understanding the NES side of things. Hardware interfaces aside (I'm no wiz there), the rpi parts and encoding magic should have been fairly trivial. In the end, we had plenty of CPU cycles left during playback which leave me pretty confident on the rest.
That's not to say we wouldn't have run into some sort of problems with keeping the PPU primed, but we can save that for another (hack?) day.
Awesome stuff.