Wrong colors on ARAnyM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

While working on an Atari DRM driver for Linux, I discovered a problem
with video modes using 2 bitplanes: the display only shows tints of
blue. 1, 4, and 8 bitplanes work fine.

With debug code added to ARAnyM, it turns out the bad behavior
happens when ARAnyM uses the STe palette registers instead of the
Falcon palette registers. And apparently the issue can also be
reproduced with atafb, and with other color depths:

 1. Boot Linux (I'm using video=atafb:tthigh)

    Everything looks good:

      refreshPalette:319: st_shift = 0
      refreshPalette:354: Fal color 0 = 0x00000000 => 00/00/00
      refreshPalette:354: Fal color 1 = 0x000000a8 => 00/00/aa
      refreshPalette:354: Fal color 2 = 0x00a80000 => 00/aa/00
      refreshPalette:354: Fal color 3 = 0x00a800a8 => 00/aa/aa

 2. Change the color depth a few times:

    $ fbset -depth 1
    $ fbset -depth 2
    $ fbset -depth 4
      ...

    If good: console is white(grey) on black

      refreshPalette:319: st_shift = 0
      refreshPalette:354: Fal color 0 = 0x00000000 => 00/00/00
      refreshPalette:354: Fal color 1 = 0xa8a800a8 => aa/aa/aa
      refreshPalette:354: Fal color 2 = 0x54540054 => 55/55/55
      refreshPalette:354: Fal color 3 = 0xfcfc00fc => ff/ff/ff

    If bad: console is blue on black

      refreshPalette:319: st_shift = 256
      refreshPalette:335: STe color 0 = 0x0000 => 00/00/00
      refreshPalette:335: STe color 1 = 0x0117 => 22/22/ee
      refreshPalette:335: STe color 2 = 0x0000 => 00/00/00
      refreshPalette:335: STe color 3 = 0x0000 => 00/00/00

As a workaround, I fixed ARAnyM to force numColors to 256, so
it will always use the Falcon palette.
https://github.com/aranym/aranym/blob/master/src/videl.cpp#L319

Is this a bug in ARAnyM, or a bug in atafb?
As the problem is not 100% reproducible, it looks like a race condition
in ARAnyM, or a wrong initialization order in atafb.

Thanks!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux