Hello everybody.
I tested my vesa stuf on a few computer. till now i haven't seen a pc on which it doesn't works. also bochs and qemu don't make troubbles. only vmware wont let me get the mode info:
i am trying the following modes:
0x11B - 1280*1050*32
0x118 - 1024*768*32
0x115 - 800*600*32
0x112 - 640*480*32
could it be that vmware don't support 32bit color?
but i've also tested 0x11A - 1280*1050*24... also bad sollution..
what make vmware different than the others?
thanks!
VESA
Re:VESA
Hi,
IMHO your OS should detect what is supported and use that (some real video cards don't support 32 bit colour either, just like VMware).
I also wouldn't assume that the modes 0x112, 0x115, 0x118, etc correspond to those video modes - IIRC this stopped being a "requirement" for VBE 2.0 and later.
The "correct" method is to get a list of supported video mode numbers, then for each supported video mode check what resolution, colour depth, etc it is, and select the video from that.
Specifically, start with:
http://www.ctyme.com/intr/rb-0273.htm
Then check each mode with:
http://www.ctyme.com/intr/rb-0274.htm
And if a suitable mode is supported, you'd use:
http://www.ctyme.com/intr/rb-0275.htm
But it's also possible to write generic code that handles all video modes, based on the information from "Get Mode Information" function. For e.g:
[tt]19h BYTE number of bits per pixel
1Fh BYTE red mask size
20h BYTE red field position
21h BYTE green mask size
22h BYTE green field size
23h BYTE blue mask size
24h BYTE blue field size[/tt]
This can be a good idea, because some unusual video cards use "BGR" instead of the much more common "RGB". I'd at least use these fields to make sure a video mode is "RGB" before allowing it to be selected.
Cheers,
Brendan
VMware doesn't support 32 bit colour - you have to use 24 bit colour instead.zack wrote:could it be that vmware don't support 32bit color?
but i've also tested 0x11A - 1280*1050*24... also bad sollution..
what make vmware different than the others?
IMHO your OS should detect what is supported and use that (some real video cards don't support 32 bit colour either, just like VMware).
I also wouldn't assume that the modes 0x112, 0x115, 0x118, etc correspond to those video modes - IIRC this stopped being a "requirement" for VBE 2.0 and later.
The "correct" method is to get a list of supported video mode numbers, then for each supported video mode check what resolution, colour depth, etc it is, and select the video from that.
Specifically, start with:
http://www.ctyme.com/intr/rb-0273.htm
Then check each mode with:
http://www.ctyme.com/intr/rb-0274.htm
And if a suitable mode is supported, you'd use:
http://www.ctyme.com/intr/rb-0275.htm
But it's also possible to write generic code that handles all video modes, based on the information from "Get Mode Information" function. For e.g:
[tt]19h BYTE number of bits per pixel
1Fh BYTE red mask size
20h BYTE red field position
21h BYTE green mask size
22h BYTE green field size
23h BYTE blue mask size
24h BYTE blue field size[/tt]
This can be a good idea, because some unusual video cards use "BGR" instead of the much more common "RGB". I'd at least use these fields to make sure a video mode is "RGB" before allowing it to be selected.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:VESA
running any OS you trust (Windows/Linux depending on the tastes) within the VMWare should tell you quite easily: if screen controls don't offer you the option to switch to 32-bit, then i guess that means it's not supported by your VMware ...
... otherwise, weird things are sure at work.
That being said, i used to have issues with nvidia cards because they didn't support 24-bit display: only 32-bit (iirc)
... otherwise, weird things are sure at work.
That being said, i used to have issues with nvidia cards because they didn't support 24-bit display: only 32-bit (iirc)
Re:VESA
VMWare Workstation supports 32 bit mode but it uses a different mode number don't use hardcoded mode numbers if you want to have a hardcoded mode number that supports 32 bits then try 0x140,0x132 and something like that. I am not sure about other editions however try these mode numbers and you might be lucky.
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:VESA
Generally speaking, it's a bad idea to use 'hardcoded' mode numbers with VBE anyway. You'll have to enumerate the available modes and then look their properties ...
Since i heard of VBE back in 1998, i haven't find a single VBE mode supported widely enough to be worth encoding -- especially if you consider things like UNIVBE drivers, etc.
Since i heard of VBE back in 1998, i haven't find a single VBE mode supported widely enough to be worth encoding -- especially if you consider things like UNIVBE drivers, etc.