Proper Tetris on HD44780 based 20x4 LCD ? Possible?

Hey guys

Once again i am back, wondering if i can make a game of Tetris using the Arduino and a 20x4 HD44780 based character LCD.

What is different in this one compared to those already present? I want to have the various Shapes, made up of Individual Pixels on the display.

for example, for an L on the screen to be displayed, i want pixels inside the LCD to be on, not the whole squares to form shapes.
Problem is that, an HD44780 display would only allow 8 Characters to be generated.
But i am here to ask, if a Full fledged game of tetris still possible to be made with an Arduino DUE and a HD44780 20x4 Characted display?
Or do i have to go for Graphical LCDs only for this purpose?

Regards

It's not going to be easy. Essentially you would want to use the display as a dot matrix graphics display, and you will need to move the tetris piece into arbitrary positions and orientations which span character positions, and combine them where multiple pieces overlap into a given character position. That's going to involve far too many character combinations to be practical to predefine them, so you're going to have to manipulate the fonts on the fly. Google confirms that the chip only supports eight custom characters, so that would be enough to draw a tetris display four characters high and two wide (20 x 16 pixels). That would have to include the falling pieces too, and any part of the rest of the display that you needed to display anything apart from plain ascii characters. Is that enough size and resolution to constitute Proper Tetris in your view? If so, it might be feasible.

I recently toyed about with this graphical display:

You can get it for a couple of dollars from dealextreme and it might suit your wishes; the display you suggest is primarily intended for text.

Cheers !

Thanks for the replies guys,

the Custom Characters possible on the HD44780 display make it a problem to be able to define all the Tetris pieces and their orientations.

Would a KS0108 display support full fledged Tetris to be played on an Arduino??

Regards

Just a thought, but does it matter that these displays actually have multiple controllers on them, each with their own user character RAM?

Retroplayer:
Just a thought, but does it matter that these displays actually have multiple controllers on them, each with their own user character RAM?

I suspect not.

Then the problem of KS0108 display is just the opposite. There is no ROM or RAM space in the display to store predefined or custom characters so arduino will have to render every character pix by pix.

So, it is neat for the challenge, but in the end a dot-matrix LCD doesn't cost much more.

liudr:
Then the problem of KS0108 display is just the opposite. There is no ROM or RAM space in the display to store predefined or custom characters so arduino will have to render every character pix by pix.

Seems to me that implies the capability to address each pixel of each character, which is exactly what is needed here. (Not sure whether I'm agreeing with you, or contradicting you!)

Sorry for replying so late, had my exams to write,

But i was thinking, a 20x4 HD44780 display, can be thought of as 2 16x2 HD44780s put together right? so wont here be double the memory available for pre defined characters?

Also, is it possible to have control over each and every pixel of a HD44780 based display??

Regards

I think it would, but your tetris pieces are likely to fall through all elements of the display, so you would actually need the same custom characters. I guess I am not sure it would make a difference. BTW, the KS0108 is a graphics LCD controller. Are these actually even used in character LCD modules?

BTW, you could always write to the CGRAM on the fly... so I wouldn't say it is impossible to do what you want, just fairly complex when yoiu can buy a graphics LCD for only a few dollars more.

@Retroplayer,
i am pretty sure KS0108 controllers are not used in Character displays, in the above posts, i was referring to KS0108 based graphical LCDs only. Sorry if it caused confusion....

also, What does writing to the CGRAM on the fly mean??

Regards

The CGRAM is where the custom characters are stored. You could just write your data to it as needed. However, this will affect other characters using the same slot in CGRAM that are currently displayed. Each HD44780 will have it's own CGRAM, but these are mapped to different areas of the screen. With some smart mapping, you may be able to get a reasonable Tetris out of it.

I guess I should ask... why don't you want to use a graphics LCD, anyway?

@retroplayer,

I was thinking of using a characted lcd because i did not have a Graphics LCD on hand at the time....
I am just gonna buy one and go for it anyways....

Regards