Pondering Mega2560 game with VGA or tv out.

I've been lurking around for a while looking at lots of projects using mega328's
(or even less) producing VGA or PAL/NSTC signals.

There is a great amount of impressive work going on squeezing results from clock
cycles and 2kb.

I've been wondering though why I haven't see much using the Mega2560, with an
additional 6kb sram or potentially more with Rugged Circuit's QuadRam.

I understand that 16mhz is tricky for vga output of any reasonable resolution or
color depth, and to do nstc colors I'll either have to underclock or use
external hardware.

The example that has me pondering using a 2560 with some extra memory is Mike Rosen's
vga pong for the uno which I cant get to run on the Mega2560:

"My resolution is terrible, 40x30, but this is primarily due to memory constraints as I wanted a
multiple of 640x480 that would fit in the Arduino UNO's RAM. I havent looked into making the
"screen" bigger but it is likely possible." (Gammon Forum : Electronics : Microprocessors : Arduino Uno output to VGA monitor)

In short, am I nuts for thinking that extra memory is all thats needed to achieve a semi-useful
vga system since Mikes approach uses a single timer and PORTD.

I am pondering using my 2560 to make a simple game that will load image data either from progmem
or an sd card (think Myst type). Ideally if it could be achieved, at a resolution in the region of 320x240 6 bit color.

I expect to hear a lot of "Get a Due" or even a Gameduino, which are both likely outcomes, but
I'd like to learn and hear opinions, even if its short, blunt and blatently obvious :wink:

I've a UNO running the TVout library on a 136 X 96 PAL screen in monochrome. It's extremely 'blocky', the 'pixels' being about 4 X 4 normal screen pixels.
I don't think that memory is the problem, but bandwidth is.
136 X 96 is 13k 'pixels' at 50Hz (PAL) = 650k per second.
On a 16MHz processor, that allows under 25 clock cycles per 'pixel'.
Not much overhead to do anything else that's needed in the program.
NTSC at 60Hz would be even more restrictive: Under 21 clock cycles per 'pixel'.
So, upgrading to a Mega would give no advantage, as that also runs at 16MHz.

I don't know if this will work, it's just an idea.
I thought of refreshing the screen at half the normal rate, but that would probably cause interlace problems.
On NTSC, you could try refreshing the screen at 1/3rd the normal rate (20 FPS). It may be a bit flickery, but give you more bandwidth. It would depend on the persistence of the phosphors (in a CRT) or LEDs in the screen. 16 FPS home movies are not too bad, but they don't depend on phosphors or LEDs.

Thanks Henry, that is an interesting idea to play with. I was kinda resigned to external hardware for any kind of resolution boost, I was chasing my tail really.

dhymers:
Thanks Henry, that is an interesting idea to play with. I was kinda resigned to external hardware for any kind of resolution boost, I was chasing my tail really.

It was just some 'blue sky' thinking without much idea about the practicalities. Please let me know if you get it to work.