Where can I learn all about the PC Video BIOS?

1

1

I've learned that one reason some computers don't work with an LCD monitor's native resolution is that certain specific resolutions can be blocked by something in the Video BIOS called the "Mode Removal Table". I'd like to learn exactly what jobs this Video BIOS does, how the system interacts with it, what functionality it provides, whether I can read and/or disassemble it, whether I can programmatically work around any of this Mode Removal Table functionality, etc.

Would everything be covered by VESA BIOS Extensions or is that just part of the story? I cannot find any mention of this "Mode Removal Table" which is often cited in online help setting monitor resolutions.

UPDATE

Since it's difficult to believe some makers block specific video modes that their hardware is perfectly capable of, here is a very complete and clear article from Intel describing the problem and workaround it. The specific sections relevant to my problem:

...

or that particular resolution is explicitly prohibited in the VideoBIOS by the motherboard vendor. I'm not sure why motherboard/laptop vendors would do this, but there's no question they do it, especially in laptops.

...

If the DTD data is correct in the registry but the resolution is still not available, it's a pretty good bet it's forbidden in the BIOS. How do we get around this? We cheat! The BIOS contains the Mode Removal Table, and it has entries like "1600x1200, 60Hz" and "1400x1000, 50Hz". But it doesn't say anything about 1592x1200, or 1392x1000, so those are allowed.

(emphasis added by yours truly)

hippietrail

Posted 2011-02-04T05:14:58.080

Reputation: 3 699

@Synetech inc.: No the video card does support the native resolution of the LCD monitor but after much Googling on forums and here it turns out to be a common problem and the diagnosis is that some PC makers actually block certain video modes in their video BIOS (especially in laptops - mine is a netbook)! I will try to find some links to such discussions to convince you since it is truly counterintuitive. – hippietrail – 2011-08-13T06:08:11.067

@Synetech inc.: Yes the modes are blocked at the level where they will not appear in mode lists. I have tried programs like you recommend and they did not work for this problem. I did find a workaround on the net which is to define a mode four pixels less horizontally and this worked fine! But as a programmer with low level hacking experience from the old days I have an urge to look for a better solution by following and understanding all technical avenues. The best tips say it's in the video/vesa BIOS but finding info on hacking that is proving difficult. – hippietrail – 2011-08-13T06:24:39.753

1

That’s because most of the editors only address clocks and fans. I have not seen any resolution modifications in some time (and even then, I’m not certain that I did back then). It will likely have nothing to do with VESA since the last release (VBE3) was in 1998, before LCD’s were in common use (or at all for that matter). You’ll notice that the highest mode it specifies is 1280x1024, which is only native for older LCDs (and certainly no widescreen formats).

– Synetech – 2011-08-13T06:33:43.423

@Synetech inc.: I've never used a BIOS editor so I'm not sure what to expect from one. In the discussion in various places of people with this problem it seemed they were using the terms VESA BIOS and video BIOS interchangeably and with scant info about what VESA does in this day and age I've been trying to chase down the technical details of what they were talking about. – hippietrail – 2011-08-13T06:38:59.017

1Like I said, there is no “VESA BIOS”; VESA is a group/standards body that came up with the specifications for higher resolution graphics modes than were previously available so that the then-many video-card mfgs didn’t just up and make their own proprietary modes because graphics programming in those days was Hell (Microsoft’s creation of DirectX was the second half of the boon for graphics programmers). The VBE is an extension to the graphics-modes provided by the system BIOS. – Synetech – 2011-08-13T06:47:27.663

Answers

1

@ hippietrail

Take a look at these TechPowerUp's:

(1) RBE: Radeon BIOS editor

and

(2) NiBiTor: NVIDIA BIOS Editor

Jags FL

Posted 2011-02-04T05:14:58.080

Reputation: 371

I don’t see anything about graphics-modes/resolutions in the editors. They seem to only support tweaking the clocks and fans for the most part. – Synetech – 2011-08-13T04:20:42.857

Also I'm not sure which video/vesa BIOS is in my HP Mini 3500. Can't seem to find the place to get that info. – hippietrail – 2011-08-13T06:25:38.550

1

@hippietrail, it uses an Intel graphics-adapter: Intel Graphics Media Accelerator 3150. I have never heard of a GMA BIOS editor; only Nvidia and ATI. In fact, I’ve never even heard of BIOS updates for GMAs.

– Synetech – 2011-08-13T06:58:50.973

1

Your HP Mini 3500 netbook uses the Intel Graphics Media Accelerator 3150 graphics-adapter. There are no know GMA BIOS editors (you can only update the video BIOS by updating the system BIOS), so even if it were possible to do what you want with an Nvidia or ATI video-card, it won’t apply to your case. Sorry; netbooks just aren’t meant to be hooked up to widescreen LCDs.

Since your netbook is still new and supported, you should consider contacting HP to ask them to fix the shortcoming. You may not get the information you wanted to edit the video BIOS, but at least your problem would be officially fixed without compromise. There are several support options, so you should be able to contact a technical support rep. It looks like you have already asked other users about the problem, and like DimaO said, the specs (do a search for “resolution”) indicate that maximum resolution for the analog VGA connector is 1440x1050. That’s why HP blocked higher resolutions in the BIOS; because they are not supported and would have unpredictable/unreliable performance and/or results. Even it if works, it is not dependable and so they don’t allow it or support it. It’s the same with plenty of other hardware. For example, CPU manufacturers often produce a batch of the same CPU, but then lock it down in different ways to release different versions. Unlocking it may work, but because it’s a hack, it could cause problems, and at the very least, would void the warranty (which I suspect is also the case for your netbook; flashing unofficial BIOSes is usually a violation).


What do you mean by your first sentence? What exactly is the problem with the LCD monitor on the aforementioned systems? Are you saying that the LCD’s native resolution is not supported by the video card? There aren’t exactly dozens of unique resolutions; there’s generally a small handful, and those are generally supported by most video cards made in the past dozen years (ie, since LCD monitors started becoming affordable for the masses). The problem will usually be a combination of really old video card and non-standard LCD monitor.

If the mode is blocked, then it is not supported for whatever reason, otherwise they wouldn’t have blocked it; the mfgs are stupid or purposely messing with customers. Even if there is a way to force it to switch to that mode, then there is likely to be problems.

When you say that the graphics mode is not supported, do you mean that it is not listed in the list of resolutions in Display Properties (or other resolution selection dialog)? For example, 320x200 is rarely listed these days, and even 640x480 isn’t provided as an option in Vista+. If so, have you tried using a resolution program such as QRes or QuickRes to manually set the resolution?

As for the VESA BIOS Extensions, you are misinterpreting it. There is no actual video BIOS involved in that. Rather, they are extensions to the standard BIOS. That is, VESA extensions specify additional graphics modes that were not part of the original set of modes that the (system) BIOS supported via the INT 10 function (which was used to set the graphics mode among other graphics-related things). So basically what would happen is that a video card mfg would build their cards to support these additional graphics modes, and thus, the card supported the VESA BIOS Extensions.

Synetech

Posted 2011-02-04T05:14:58.080

Reputation: 63 242

The card supports LCD's native res. It's blocked @ firmware or software level but seems to firmware. I tried two LCDs of different brands with same native res which were both blocked and two other widescreen LCDs with different native reses which were not blocked.

I believe it is blocked for a reason but that reason may be some marketing reason like making it look like you can't use a big monitor on a tiny netbook where nothing technical really prevents it.

There are no problems since the std workaround is to hack a custom monitor driver with 4 pix less horizontal res. – hippietrail – 2011-08-13T06:48:51.517

From memory the native LCD res worked fine on Ubuntu but not Windows. I assumed Windows queried the firmware (VESA?) somehow whereas Linux queried the hardware directly. Windows uses monitor drivers which are just text files. The problem LCD monitors were both generic brands which didn't come with drivers so some Windows 7 default monitor driver was used. What I don't know is how Windows gets the list of modes for the video system + monitor. It appeared that it came from the VESA/video BIOS... – hippietrail – 2011-08-13T06:53:34.147

That’s why I said to manually set the resolution’s width and height.

That’s like saying that a car is limited to 100mph, but can go 200mph. If it is blocked, then it is not supported. Netbooks have inferior video-cards (for a reason), so it’s not reasonable to expect them to support extra-large monitors. Did you try a different video-card? In fact, netbooks often use specialty video-adapters that are particularly unlikely to have any sort of modding-community support or customizing software! You netbook doesn’t even have any docs to indicate what resolutions are supported. – Synetech – 2011-08-13T07:01:49.083

Well like I say there is a known workaround for this known problem and it works fine. But that is not what this question is, it is all background to the question. The monitors in question work fine without hacking on desktop machines, didn't try anybody else's netbooks. Netbook is Hp Mini 3538tu. Gfx is Intel GMA 3150. – hippietrail – 2011-08-13T07:05:14.023

I managed to find a great link on this bios-blocks-video-modes problem from Intel and I've added it to the question. – hippietrail – 2011-08-13T07:17:25.957

Great thanks; now I can see what you are talking about. I’m afraid however that you are misreading the article. Aaron says nothing about editing the video BIOS (do a search for "BIOS" in the page and reread that paragraph). He clearly indicates that you need to wait for a BIOS update from Intel (for the netbook), but in the meantime to edit the settings in the registry to trick the OS into thinking that the card uses the next-closest resolution to the native mode. For example, he says to use 1592x1200 instead of 1600x1200 (it’s 8 pixels lost, not 4). There’s no BIOS editing involved. – Synetech – 2011-08-13T07:38:23.437

Yes I was also not asking about editing the video BIOS, that was just one suggestion made in the answers here. In my question I'm basically asking "how does all this stuff work so I can hack at it to understand it more fully and perhaps use my hacking/programming skill to come up with another workaround". My bad with the 4 vs. 8 pixel thing though. It was a few months ago I dealt with the workaround but now I have enough free time to do some hacking if it's indeed possible. – hippietrail – 2011-08-13T08:01:37.090

Well then I’m not sure exactly what the question is anymore. It’s not about getting your LCD to work with your netbook because you already have a working hack for that and it’s not an educational/informational question because I already explained what the video BIOS and VESA are. So, you may want to add a line to the question explicitly stating what you are looking for. Something along the lines of Why does blah blah do such and such? or How does blah blah blah work? or Please explain blah blah blah to me. – Synetech – 2011-08-13T17:18:06.923

Well an imperfect answer to an imperfect question probably deserves the bounty as well as anything else. At least you put a bit of effort in and between this question and the SO one I at least understand the problem better: The mode blocking only happens on Intel GMA therefore only GMA has this table. The OEM (HP in my case) can customize the GMA video BIOS. In the case of GMA, the video BIOS is included in the system BIOS. It's all to do with Intel & HP and nothing to do with VESA. – hippietrail – 2011-08-16T19:18:45.077

You could always try contacting the mfg and asking them for info on accessing it. They may (probably?) won’t give you what you need, but I’ve been surprised by mfgs before. Plus, I added another suggestion in the answer above. – Synetech – 2011-08-17T00:38:29.083

1

A bit late but I think I have found something that you or others finding this page could find useful.

In a driver for 64-bit for GMA 3150 I found a Vbios.zip which contains three files with the same name. An executable that runs only in 32-bit windows (probably the Vbios flashing tool), a .dat file that if opened with a hex editor is clearly the Vbios as it states such in the first line, and a .bsf file that if opened with notepad explains what the numbers at each offset are.

This is way over my head as I don't understand low-level hardware coding, but someone might find this interesting. Especially as this info does not seem to be GMA-3150-specific, although it is a bit outdated (as the GMA's architecture for that matter).

I'm hosting it on my dropbox, but spread the news and rehost this if you can. I'm including the official support page where they give you driver and this package (and say they do)

DISCLAIMER: THIS STUFF IS VERY DANGEROUS FOR YOUR DEVICE, YOU PLAY WITH IT AT YOUR OWN RISK.

Dropbox Download link: https://dl.dropboxusercontent.com/u/47541136/GMA_3150_vbios%2Btools.zip

Official Download link: https://downloadcenter.intel.com/Detail_Desc.aspx?lang=eng&DwnldID=18478

bobafetthotmail

Posted 2011-02-04T05:14:58.080

Reputation: 11

0

Calling this effect "the table" is misleading, like talking about "the BIOS". Each videocard has a BIOS, but they're not the same. Each manufacturer has its own, and will likely evolve add functionality to it for new products. VESA just descibes some common parts, not everything.

MSalters

Posted 2011-02-04T05:14:58.080

Reputation: 7 587

I got the term "Mode Removal Table" after googling and reading everything I could on why some video modes don't work on some computer/monitor combinations despite being within the specs. A table is mentioned fairly often but I only found one hit that named it and none which gave any details. – hippietrail – 2011-08-09T14:39:31.227

To be fair, I vaguely recall something to this effect (resolution table editing) some time back (~ BIOS editors for the Radeon 7000-9000 era). – Synetech – 2011-08-13T04:21:54.507

@MSalters: It could be that some BIOSs include an internal table which is not exposed by any INT call etc. The information I found up to this point made me think it would be somehow accessible but now I'm suspecting I assumed wrongly. But even if such tables are optional, internal, and proprietary, it seems I might still be able to get at it with a BIOS editor for my BIOS. – hippietrail – 2011-08-13T06:28:29.670

1@hippietrail, not likely since it is an Intel graphics-adapter and there are no know GMA BIOS editors. – Synetech – 2011-08-13T07:02:29.707

@MSalters: It turns out I got this term from Intel. Please see the update to the question text. – hippietrail – 2011-08-13T07:18:13.977