On Tue, Apr 10, 2012 at 06:01:52AM -0600, Steve Goodrich wrote:
On Mon, Apr 09, 2012 at 10:29:03AM -0600, Steve Goodrich wrote:
Anyway, the code as written was finding the first video mode of the
correct
width/height and using that. Unfortunately, the mode was a 5-5-5
while the
JPG was being decoded as 5-6-5 (bits per RGB channel).
What happened when the 5-5-5 mode was chosen? The code should still have worked (if not as pretty looking).
The 5-5-5 mode showed the correct image, but the colors were off: for example, some of the green areas had a significant red component (some greens were almost entirely red).
Oops - I was confusing the above with the automatic conversion from 24bpp to 16bpp. You are right that 15bpp isn't supported. It shouldn't be too hard to alter the jpeg code to support 15bpp, but it should also be safe to just skip 15bpp modes. Along the same lines, the code should really try to select a 24bpp mode if one is available.
Looking closer at this, it also appears the SeaVGABIOS code isn't encoding the 15bpp mode correctly in its vbe tables.
-Kevin