Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I was trying to make some art on the 0x13 screen, and set up some basic colors, but the colors wasn't the right one that I wanted, Is this some qemu bug or me doing it wrong?
The VGA RAMDAC supports only 6 bits per channel; it ignores the upper two bits. You're writing #B33227 but the RAMDAC interprets that value as (approximately) #CFCB9E.
Some RAMDACs can be switched to 8 bits per channel, but it's not part of standard VGA so the method to switch will depend on the display adapter. (On really old SVGA cards, it also depends on which RAMDAC chip is installed in the RAMDAC socket. Yes, you could swap your RAMDAC to get an upgrade!)
Octocontrabass wrote:The VGA RAMDAC supports only 6 bits per channel; it ignores the upper two bits. You're writing #B33227 but the RAMDAC interprets that value as (approximately) #CFCB9E.
Some RAMDACs can be switched to 8 bits per channel, but it's not part of standard VGA so the method to switch will depend on the display adapter. (On really old SVGA cards, it also depends on which RAMDAC chip is installed in the RAMDAC socket. Yes, you could swap your RAMDAC to get an upgrade!)
Is there some good way to make the screen 8 bit with the standard stuff? Maybe is there something other then the VGA? I would like to have more colors
The screen is still 8 bits per pixel. You can still show 256 colors simultaneously. The only limitation is that there are only 6 bits per channel, so you need to use numbers that fit in 6 bits when you set the palette in the RAMDAC. Like this:
There is a VBE function to set the RAMDAC to 8 bits per channel, but I don't know if it's commonly supported. If you're using VBE anyway, you might as well use it to set up a 32bpp linear framebuffer and forget about palettes.