View Single Post
Old 04-28-2012, 04:33 PM   #5
kiri87
Member
kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.kiri87 knows what's going on.
 
Posts: 16
Karma: 25544
Join Date: Feb 2012
Device: Kindle 3
Impressive, as always!
The cosmegg demo looks SO much better in 16 colors, and the screen flashing adds up to the hypnotic effect. Awesome!
The "goodbye" part of the demo is cool. First, I thought that the binary contained extra things than the code attached, but then I realized that the trick is in sv[]. Very clever!
Well done for implementing this! Your code really does incredible things with the e-ink display, showing not only that it's possible to display animations, in a decent framerate, but in 16 dithere colors, too.

I had some issues compiling this on my Kindle 3.
First, the files einkfb.h & mxcfb.h were missing. The I read I should find them in the Amazon Source codes; to compile, I needed the files from Kindle_src_5.1.0.
Second, I received a
Code:
undefined symbol '__invalid_size_argument_for_IOC'
error, which I fixed by adding
Code:
unsigned int __invalid_size_argument_for_IOC;
I hope this may help someone, especially any other Linux noob like me.

Quote:
Originally Posted by geekmaster View Post
New dithering code was written that is MUCH simpler and MUCH faster, and supports full 256-color 8-bit mode.
I did notice, though, there's some unusual issues with the dithering, at least on my Kindle3. That part of code is too complex for me to try fixing it.
First, the dither16 (screen attached, no 2) shows some black where there should be white (on the top, for example)
Second, the dither2 (screen attached, no 3) has a very subtle bug, that can observed easily for grays close to 50%. I attached a resized & cropped a portion of the screenshot to show the bug (screen attached, no 4). Basically, one column in 8 is off by 1 pixel.

This is the code used to generate these screens:
Code:
for (x = 0; x < MX; x++)
		for (y = 0; y < MY; y++) 
			setpx(x, y, y%256);
Keep up the good work, Geekmaster!
Attached Thumbnails
Click image for larger version

Name:	wb0.png
Views:	455
Size:	3.3 KB
ID:	85823   Click image for larger version

Name:	dither16.gif
Views:	413
Size:	40.9 KB
ID:	85824   Click image for larger version

Name:	dither2.gif
Views:	440
Size:	13.7 KB
ID:	85825   Click image for larger version

Name:	dither2-edit.gif
Views:	396
Size:	2.2 KB
ID:	85826  

Last edited by kiri87; 04-28-2012 at 04:36 PM.
kiri87 is offline   Reply With Quote