Support and General Use > Hardware

Ipod photo 40gb has bad resolution, all the colours are wrong

<< < (7/13) > >>

direcow:
I'm also getting the same problem, after upgrading from a much older version (I forget which, but the older version was about 2 weeks older...) Basically the screen has the same garbled colours.

update: patch 17627 works, so something has happened in between. I'll try to work incrementally if I get the time.

update 2: 17694 works too.

update 3: 17704 works, 17722 does not.

update 4: 17713 works.

update 5: 17714 works -  beginning to suspect my problem is different from the original problem in the thread, and might be related to the ipodlinux code.

update 6: 17715 does not work, that's where it breaks for me. looks like the ipodlinux code makes things whacky for those without the problem. I'm going back to 17714 for now.

linuxstb:
I think I understand this now.

Some background - there are two types of LCD used in the ipod Color/Photo, known as "type 0" and "type 1", with "type 0" being the older version, and Apple switched them around the time they renamed the ipod from "Photo" to "Color" (but not exactly).

The LCD is 16-bit, so Rockbox has a choice of sending words as little-endian or big-endian.

The situation seems to be the following:

1) Version 1.0 of the original Apple firmware (OF) initialises the type 0 LCD to be little-endian
2) Version 1.1 and later of the OF initialises the type 0 LCD to be big-endian
3) The code added in r17715 configures the type 0 LCD to be little-endian
4) The type 1 LCD is big-endian

Rockbox has always treated both LCD types as a big-endian, which has worked fine until Austin came along with his 1.0 firmware.   r17715 then broke Rockbox for all other type 0 LCDs.

The IPL kernel LCD driver treats both type 0 and type 1 LCDs the same - so is also broken (but probably only displays either black or white text, which means the byte order doesn't matter).

The LCD driver in the IPL "hotdog" library treats the two types differently - byte-swapping the data before sending it to the "type 1" LCD.

What would be useful is if we could try to understand the code in r17715 (which we've blindly taken from IPL), and try and determine how to set a type 0 LCD to big-endian mode.  This requires someone with such a "type 0" LCD to do some experimenting.

But the first thing I would test would be to change the following line in firmware/export/config-ipodcolor.h:


--- Code: ---#define LCD_PIXELFORMAT RGB565SWAPPED /* rgb565 byte-swapped */

--- End code ---

to


--- Code: ---#define LCD_PIXELFORMAT RGB565

--- End code ---

This will make Rockbox send all bytes in the opposite order - and confirm that this is indeed what's happening.  You should do a "make clean" before doing this, to ensure all bitmaps are recreated with the new byte ordering.

het_yak:
Hi All,

I just tried to load rock box onto my Ipod photo and ran into the same problem. Not possible to install with the utility nor manually on my mac. manged to install under windows but the colors are off. I do not mind experimenting a bit, where can I read up on how to change the suggested line?

Thanks, friendly regards

Leon

Chronon:
There is a bunch of documentation if you follow the "index" link on the left.  Scroll down to the "For Developers" section.

LambdaCalculus:
I decided to try linuxstb's suggestion above and edited my firmware/export/config-ipodcolor.h as he said. I ran "make clean", and then compiled.

I compiled against SVN trunk r17727, and the result? It works... sort of.

The menu and WPS appear correct, but most of the bitmaps are still corrupt. So we partially solved the problem, but we need to find out what else has to be changed.

My 4G color's LCD is also Type 0, for the record.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version