Home page | EN-US English | RU Russian | Other projects (EN-US English)


VBEMP NT Project
Universal VESA/VBE Video Display Driver
(for Windows NT Architecture)

This project started on May 2004.

Overview


Key features :

Planned features :


Download drivers


This driver is intended for using in case when your have some new or unknown video card(s) and you don't have drivers for it. It's better to contact manufacturer of your video card or search THE WEB for the drivers. ONLY if you finally cannot find driver for your video card I recommend you to use mine (vbemp.sys). My driver does not provide any kind of 3D hardware acceleration (DirectX & OpenGL). For this purpose third-party libraries can be used.

If your card made by AMD-ATI Technologies and this card is detected as two devices ("Radeon xxxx" and "Radeon xxxx Secondary") only "Manual" or "legacy" version may work with it.

My driver does NOT support multiple video cards connected simultaneously and this feature is NOT planned.

My driver does NOT support any editions of Windows Vista/Windows 7/Windows 8.

Before installing VBEMP.SYS I recommend removing any display drivers installed including any previous or newer VBEMP driver versions and switching to the standard VGA mode 640x480x16colors.

System requirements :

* If you have problems installing VBEMP or any other driver in Windows NT 4.0 (and NT 3.51) - blank screen, system hang after restart - read this MS Article. Details here: MSKB: AGP Video Support for Windows NT 3.51 and 4.0 (Q174567). Install Service Pack 3 or later for Windows NT 4.0, and Q174567 Hotfix for Windows NT 3.51 to solve this problem.

** Windows XP/Windows 2003 version is not necessarily needed because basic functionality of it is also included in standard VGA.SYS. Comparing to my driver, VGA.SYS:

  1. Supports 4-bit (16 colors) modes 640x480, 800x600
  2. VESA BIOS modes support is limited for some cards:
    BIOS Buglist from Windows XP SP3 VGA.SYS
    
    Brookdale-G Graphics Controller
    ATI S1-370TL
    ArtX I
    Voodoo4 4500
    Voodoo3 3000 LC
    Voodoo3 2000 LC
    3Dfx Banshee
    MGA-G100
    SiS 5597
    NVidia Corporation
    NV11 (GeForce2) Board 
    Chip Rev B2
    Version 3.11.01.24N16
    
  3. Cannot switch to modes less than 640x480
  4. Cannot switch display refresh rates using VBE 3.0 standard
  5. Write Combining (USWC) acceleration is not supported
  6. 15-bpp R5G5B5 modes are skipped

OS

Version

Description

Link

Windows NT,
Windows 2000,
Windows XP,
Windows 2003,
Windows PE x64/ia64

Release version
beta
2015.01.01

Universal VBE30 & VBE20 versions.**,
Universal VBEMP control panel extension.

[?],[?],[?]

Windows XP,
Windows 2003,
Windows PE x64/ia64

Release version
beta
2010.07.09

Universal VBE30 & VBE20 versions.**

[?],[?],[?]

Windows NT,
Windows 2000,
Windows XP,
Windows 2003,
Windows PE

Release version
beta
2010.07.09

Universal VBE30 & VBE20 versions.**

[?],[?],[?]

Windows NT,
Windows 2000,
Windows XP,
Windows 2003,
Windows PE

Release version
beta
2009.01.14

Universal VBE30 & VBE20 versions.**

[?],[?],[?]

Windows NT,
Windows 2000,
Windows XP,
Windows 2003,
Windows PE

Release version
beta
2008.04.26

Universal VBE30 & VBE20 versions.**

[?],[?],[?]

Windows NT,
Windows 2000,
Windows XP,
Windows 2003,
Windows PE***

"STABLE"
Release version
2007.10.19

Universal VBE30 & VBE20 versions.**

[?],[?],[?]

Windows NT clones - ALL of them

Release version
beta
2015.01.01

Hardware driver for Cirrus Logic chips: CL-GD542x, CL-GD543x, CL-GD544x, CL-GD546x, CL-GD5480, including qemu emulated CL-GD5446. With 2Mb+ cards 32-bit color modes are supported.

[?],[?],[?]

Windows NT clones - ALL of them

Release version
beta
2009.01.08

Hardware driver for Cirrus Logic chips: CL-GD542x, CL-GD543x, CL-GD544x, CL-GD546x, CL-GD5480, including qemu emulated CL-GD5446. With 2Mb+ cards 32-bit color modes are supported.

[?],[?],[?]

Windows NT clones - ALL of them

Debug version * 2009.01.03

IBM Graphics driver works with any IBM EGA/VGA-compatible cards (mono, 16, 256 colors).

[?],[?],[?]

Windows NT 4.0 only

Release version
2007.10.28

VGAMONO USWC special driver which emulates true color modes via dithering in 1,2 or 4-plane color modes, works with any VBE-compatible cards.

[?],[?],[?]

Windows NT 3.51,
Windows NT 4.0,
Windows 2000,
Windows XP,
Windows 2003

Release version
2008.12.19

Universal VBEMP control panel extension.

[?],[?],[?]

Windows NT 3.5x,
Windows NT 4.0 only

Release version
beta
2010.07.05

FRAMEVBE shadow buffer accelerated library.

[?],[?],[?]

Windows NT 3.5x,
Windows NT 4.0,
Windows 2000,
Windows XP,
Windows 2003,
Windows PE

Release version
beta
2010.07.05

FRAMEBUF library fixed for 15-bpp support.

[?],[?],[?]

Windows NT clones - ALL of them (up to Windows 7)

Release version
2011.12.16

Special driver for VirtualBox made by Michal Necasek.

[?]

Windows NT clones - ALL of them (up to Windows 7)

Release version 2
2012.03.04

Special driver for VirtualBox made by Michal Necasek.

[?]

Windows NT clones - ALL of them (up to Windows 7)

Release version 3
2014.08.01

Special driver for VirtualBox made by Michal Necasek.

[?]

Installation note 1: If your card is working slowly and screen is flickering with VBEMP installed, especially when moving large windows and scrolling texts you may improve it:

Installation note 2: Starting from version dated 10.19.2007, vbemp?.zip contains these variants of VBEMP driver:

Installation note 3: As you can see, there are two versions of VBEMP driver for Windows 2000/XP/2003/PE - PnP and LEGACY. And there are VBE20 and VBE30 driver types. What is it for:

Installation note 4: By default, any Plug'n'Play video cards will be detected CORRECTLY by 2000/XP/2003 version of my driver. But if you wish, you MAY add your video card's PCI VENDOR/DEVICE ID in vbemppnp.inf so your card will named as it is or you can select the driver manually when Windows firstly find an unknown device. This is an optional operation!
Sample:

; vbemp5.inf
;
; Installation file (.inf) for the VBE Miniport device.
;
; (c) Copyright 2006 AnaPa Corp 
;
 . . . . . .

 . . . . . .
[AnaPa.Mfg]
VBE Miniport = Vbemp, NOPNP
VBE Miniport - Standard PCI Graphics Adapter (VGA) = Vbemp, PCI\CC_0300
VBE Miniport - Standard PCI Graphics Adapter (XGA) = Vbemp, PCI\CC_0301
VBE Miniport - Standard PCI Graphics Adapter = Vbemp, PCI\CC_0380
VBE Miniport - Standard Graphics Adapter (VGA) = Vbemp, *PNP0900
VBE Miniport - VGA = Vbemp, *PNP0917
VBE Miniport - SVGA = Vbemp, NOPNP
VBE Miniport - 1394 = Vbemp,1394\&
VBE Miniport (ATI, AMD) = Vbemp, PCI\VEN_1002&CC_0300
VBE Miniport (Intel) = Vbemp, PCI\VEN_8086&CC_0300
VBE Miniport (nVidia) = Vbemp, PCI\VEN_10DE&CC_0300
VBE Miniport (ATI Rage 128PRO 4x pri) = Vbemp, PCI\VEN_1002&DEV_5046
VBE Miniport (Intel D845G) = Vbemp, PCI\VEN_8086&DEV_2562&SUBSYS_52478086
Your card name = Vbemp, PCI\VEN_xxxx&DEV_yyyy&SUBSYS_zzzzzzzz ; card template, see below 
 . . . . . .

To create a string you may use Craig Hart's PCI32 tool mentioned below, here is a sample listing:

 . . . . . .
 Bus 1 (AGP), Device Number 0, Device Function 0
 Vendor 1002h ATI Technologies Inc
 Device 4966h Radeon 9000 Series (RV250)
 Command 0187h (I/O Access, Memory Access, BusMaster, Wait Cycles, System Errors)
 Status 02B0h (Has Capabilities List, Supports 66MHz, Supports Back-To-Back Trans., Medium Timing)
 Revision 01h, Header Type 80h, Bus Latency Timer FFh
 Minimum Bus Grant 08h, Maximum Bus Latency 00h
 Self test 00h (Self test not supported)
 Cache line size 32 Bytes (8 DWords)
 PCI Class Display, type VGA
 Subsystem ID 4F721002h Radeon 9000 Series (RV250)
 Subsystem Vendor 1002h ATI Technologies Inc
 . . . . . .

Installation note 5: My driver does not provide any support for running fullscreen DOS applications in VESA graphics modes. VGA.SYS controls it and in most cases it traps i/o ports and prevents VESA-based programs to run correctly. There are third-party patches - WinXPFix Utility (http://www.nomissoft.com/service.html#as2downloads) and 'Videoport driver patch for VESA in NTVDM' (http://www.volny.cz/martin.sulak/, direct download videoprt.zip) that fixes VGA.SYS behaviour. Try them if you need to run DOS programs in Windows. I am not affiliate with author(s) of these programs.

Installation note 6: By default system core Microsoft-made FRAMEBUF.DLL driver used in conjunction with VBEMP driver as usermode component. But there is a problem - it filters 15-bpp modes. There are three options to resolve this problem:

  1. Access only 16-bpp modes:
  2. Access only 15-bpp modes:
  3. Access both 15-bpp and 16-bpp modes (w/o acceleration):
  4. Access both 15-bpp and 16-bpp modes (with acceleration):

Installation note 7: If you trying to use VBEMP driver with ISA/MCA/VLB card in most cases you must play with the following BIOS Setup options:

so system memory will not crossover with videocard's memory.

* To get RELEASE-version of this driver (which is more stable, smaller & faster than DEBUG-version) you should contact me by e-mail & send me report generated by INFOVBE.EXE tool, so I could send you RELASE-version of the driver by e-mail. I recommend this version after you get completely sure that DEBUG-version works with your card properly.

** If universal version does not work with your card, you may try Manual version. To get such version you should contact me by e-mail & send me report generated by INFOVBE.EXE, so I could send you personal driver for your video card by e-mail.

*** How to install VBEMP driver in Windows PE environment:
  1. For CD-installation: place vbemp.sys in \I386\SYSTEM32\DRIVERS dir, vbempnp.inf in \I386\INF dir. I've also recommended to remove display.inf from \I386\INF dir.
  2. For HDD-installation: place vbemp.sys in \MININT\SYSTEM32\DRIVERS dir, vbempnp.inf in \MININT\INF dir. I've also recommended to remove display.inf from \MININT\INF dir.
  3. After WindowsPE boots, run this:
    factory.exe -winpe
    This line will start the driver.
How to install legacy VBEMP driver in Windows PE environment:
  1. Replace %SystemRoot%\SYSTEM32\DRIVERS\VGA.SYS with my one and reboot.

Registry settings


To configure VBEMP driver you can also use VBEMP Control Panel extension.
Hive : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vbemp\Device0
or HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vgasave\Device0 in legacy mode

Note that HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
is a virtual hive and it linked to one of these hives:

Hive : HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services\Vbemp\Device0
or HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services\Vgasave\Device0 in legacy mode
where XXX may be 001, 002, 003 ... 

It depends on selected hardware configuration according to "Current" value from here: HKEY_LOCAL_MACHINE\SYSTEM\Select In Windows XP and later these keys are doubled: Hive : HKLM\SYSTEM\CurrentControlSet\Control\Video\{yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}\XXXX or HKLM\SYSTEM\CurrentControlSet\Control\Video\{23A77BF7-ED96-40EC-AF06-9B1F4867732A}\0000 in legacy mode Note that HKLM\SYSTEM\CurrentControlSet\Control\Video is a "multi-device" hive and it linked to one of these hives: where XXXX may be 0000, 0001, 0002, 0003 ... It depends on selected graphics output device number starting from 0. {yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy} value depends on hardware configuration according to "Service" value from here: HKLM\SYSTEM\CurrentControlSet\Control\Video\{yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}\Video which is must be equal to "vbemp" or "Vgasave" in legacy mode
Here are the values:
 
Key : Acceleration.Level
Value : (REG_DWORD) video acceleration level (0 - 5, lowest is 5)
Meaning : if "0"-"4" or key is not exists Shadow Buffering is disabled. if "5" - enabled. This value has meaning for all versions of VBEMP, working under Windows2000 and later (XP/2003). Recommended setting is 5.
Restart needed : Yes.
 
Key : VBE_GREY
Value : (REG_DWORD) 1 or 0
Meaning : if "0" or key is not exists VBEMP in 256-color modes uses standard palette, if "1" - greyscaled one.
Restart needed : No.
 
Key : VBE_VENDORID
Value : (REG_DWORD) PCI vendor ID, only these values are allowed:

1. 0x100C (Tseng Labs Inc) 2. 0x1013 (Cirrus Logic) 3. 0x5333 (S3 Inc) 4. 0x1023 (Trident Microsystems Inc)
Meaning : This value has meaning only for ISA/MCA/VLB cards. (first appear in may2007 version!).
Restart needed : Yes.
 
Key : VBE_MEMBASE
Value : (REG_DWORD) frame buffer memory base, for example:
1. 0x80000000 (for S3 Inc cards)
2. 0xD00000 (for Cirrus Logic cards)
3. 0xE00000 (for Cirrus Logic cards)
4. 0xF00000 (for Cirrus Logic cards)
5. 0x4D00000 (for Cirrus Logic cards)
6. 0x4E00000 (for Cirrus Logic cards)
7. 0x4F00000 (for Cirrus Logic cards)
8. 0xC00000 (for Tseng Labs cards)
9. 0x100000-0x3F00000 (for Trident cards)
Meaning : This value has meaning only for ISA/MCA/VLB cards. You get this value from video card documentation or you must know it definitely and have some options:
  1. If this value is below 16Mb line (< 0x1000000) and you have less than 16Mb system memory it's OK to install VBEMP without additional steps.
  2. If this value is below 16Mb line (< 0x1000000) and you have 16Mb or more system memory you must enable "Memory hole option" in your computer BIOS Setup Program.
  3. If this value is above or equal 16Mb line (>= 0x1000000) and you have 16Mb or more system memory make sure that video- and system memory spaces are NOT crossover. If they crossover, you have no option to install VBEMP on such computer. In this case, you may try to disable or limit memory use to value below frame buffer base by using /MAXMEM or /BURNMEMORY switch in your \boot.ini file.
Frame buffer MUST NOT crossover you system memory region!
This value has meaning only for ISA/MCA/VLB cards. (first appear in may2007 version!).
Restart needed : Yes.
 
Key : VBE_USWC
Value : (REG_DWORD) 1 or 0
Meaning : if "0" or key is not exists Write Combining feature (USWC) is disabled, if "1" - enabled. (first appear in june2007 version!).
Restart needed : Yes.
 
Key : VBE_ALIGN
Value : (REG_DWORD) 2, 1 or 0
Meaning : if "0" or key is not exists frame buffer memory is aligned to 64Kb boundary, if "1" - aligned to 4Mb boundary, if "2" - all adapter memory allocated at once. "1" setting is recommended when Write Combining feature (USWC) is enabled. (first appear in june2007 version!).
Restart needed : No.
 
Key : VBE_VSYNC
Value : (REG_DWORD) 1 or 0
Meaning : if "0" or key is not exists Vertical sync polarity is negative, if "1" - positive. (first appear in june2007 VBE30 version only!).
Restart needed : No.
 
Key : VBE_HSYNC
Value : (REG_DWORD) 1 or 0
Meaning : if "0" or key is not exists Horizontal sync polarity is negative, if "1" - positive. (first appear in june2007 VBE30 version only!).
Restart needed : No.

The settings for the HSync and VSync polarity need to be obtained from the monitors papers. As a guideline you can assume that the 640 x 400 mode uses -Hsync and +Vsync, the 640 x 480 modes mainly use +Hsync and +Vsync and all higher modes (800 x 600 and above) mainly use -Hsync and -Vsync polarities.

Key : VBE_FILTER
Value : (REG_BINARY) maximum 32 lines of 8 bytes = 256 bytes
Samples:
08,00,06,00,00,00,00,00 - disable all 800x600 modes 
08,00,06,00,00,00,00,56 - disable all 800x600 modes with frequency above 56hz
08,00,06,00,00,70,00,85 - disable all 800x600 modes with frequency above 85hz and below 70hz 
00,00,00,00,00,00,01,00 - disable all modes with frequency above 100hz
Meaning : if key is not exists VBEMP does use mode filtering. (first appear in july2007 version!).
Restart needed : Yes.
 
Key : VBE_DDC
Value : (REG_DWORD) 1 or 0
Meaning : if "0" or key is not exists VBEMP does not detect PNP display using PnP-manager, if "1" - detects it. (first appear in june2007 version! Not for legacy-mode drivers!).
Restart needed : Yes.
 
Key : VBE_EDID
Value : (REG_DWORD) 1 or 0
Meaning : if "0" or key is not exists VBEMP does not detect PNP display using internal driver routines, if "1" - detects it. (first appear in july2007 version!).
Restart needed : Yes.
 
Key : VBE_RAWEDID
Value : (REG_BINARY)
Meaning : When VBE_EDID = 1, EDID block is written here. (first appear in july2007 version!).
 
Key : VBE_NVSCALE
Value : (REG_DWORD) 2, 1 or 0
Meaning : if "0" or key is not exists display scaling is on, if "1" - display scaling off and centered, if "2" - display scaling off and top left corner. This value has meaning only for nVidia cards connected to LCD display via DVI. (first appear in january2009 version!).
Restart needed : Yes.
 
Key : VBE_RGB555
Value : (REG_DWORD) 1 or 0
Meaning : if "0" or key is not exists R5G5B5 modes reported as 15-bpp and R5G6B5 - as 16-bpp, if "1" - R5G5B5 modes reported as 16-bpp and R5G6B5 - as 15-bpp. This change needs for correct Microsoft FRAMEBUF.DLL driver, which cannot use mode when it reported as 15-bpp. (first appear in june2010 version!).
Restart needed : Yes.

Screenshots. VBEMP NT Project in work :)



Instruction: Complete VBEMP driver removal from WinNT/2K/XP/2K3 system


  1. Remove files:
    \%WINDOWS_DIR%\SYSTEM32\DRIVERS\VBEMP.SYS 
    \%WINDOWS_DIR%\INF\oem?.inf
    \%WINDOWS_DIR%\INF\oem?.pnf
    where ? may be 1,2,3,4.....
    oem?.inf contents must be equal to:
    vbemp4.inf (in Windows NT 4.0)
    vbempnp.inf (in Windows 2000/XP/2003)
    
    \%WINDOWS_DIR%\SYSTEM32\oemvio?.inf
    where ? may be 1,2,3,4.....
    oemvio?.inf contents must be equal to:
    oemsetup.inf (in Windows NT 3.x)
    
  2. Delete your card from Device Manager or clean Registry hives:
    All: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vbemp
    Windows XP/2003 only: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}
    where {yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy} is described above in Registry settings
    

Ke386CallBios() function


Declaration, import NTOSKRNL.LIB

#define SIZE_OF_80387_REGISTERS      80
typedef struct _FLOATING_SAVE_AREA {
    ULONG   ControlWord;
    ULONG   StatusWord;
    ULONG   TagWord;
    ULONG   ErrorOffset;
    ULONG   ErrorSelector;
    ULONG   DataOffset;
    ULONG   DataSelector;
    UCHAR   RegisterArea[SIZE_OF_80387_REGISTERS];
    ULONG   Cr0NpxState;
} FLOATING_SAVE_AREA;

typedef struct _CONTEXT {
    ULONG ContextFlags;
    ULONG   Dr0;
    ULONG   Dr1;
    ULONG   Dr2;
    ULONG   Dr3;
    ULONG   Dr6;
    ULONG   Dr7;
    FLOATING_SAVE_AREA FloatSave;
    ULONG   SegGs;
    ULONG   SegFs;
    ULONG   SegEs;
    ULONG   SegDs;
    ULONG   Edi;
    ULONG   Esi;
    ULONG   Ebx;
    ULONG   Edx;
    ULONG   Ecx;
    ULONG   Eax;
    ULONG   Ebp;
    ULONG   Eip;
    ULONG   SegCs;              // MUST BE SANITIZED
    ULONG   EFlags;             // MUST BE SANITIZED
    ULONG   Esp;
    ULONG   SegSs;

} CONTEXT;
typedef CONTEXT *PCONTEXT;

NTSTATUS
Ke386CallBios (
    IN ULONG BiosCommand,
    IN OUT PCONTEXT BiosArguments
    );

Ke386CallBios() call sample

NB!!! You may call it from any function in your Windows 2000 (XP/2003 or NT) video miniport driver, except for DriverEntry() & HwFindAdapter(), this code must exist in HwFindAdapter():
ConfigInfo->>VdmPhysicalVideoMemoryAddress.LowPart = 0x000A0000; 
ConfigInfo->>VdmPhysicalVideoMemoryAddress.HighPart = 0x00000000; 
ConfigInfo->>VdmPhysicalVideoMemoryLength = 0x00020000; 
ConfigInfo->>NumEmulatorAccessEntries = 0; 
ConfigInfo->>EmulatorAccessEntries = NULL; 
ConfigInfo->>EmulatorAccessEntriesContext = 0; 
ConfigInfo->>HardwareStateSize = 0; 
And here is the function call sample ( when IRQL = 0!!! ):
VOID
Sample()
{
  CONTEXT BiosRegisters;
  NTSTATUS Status;

  ...
  VideoPortZeroMemory(&BiosRegisters, sizeof(BiosRegisters));
  BiosRegisters.Eax = 0x0F00;
  Status = Ke386CallBios(0x10, &BiosRegisters);
  ...
}
Windows NT 3.x is a special case. Before FIRST CALL to Ke386CallBios() you must call VideoPortInt10() any way you like. Like this:
BOOLEAN 
Sample2(PVOID HwDeviceExtension)
{
  PVBE_DEVICE_EXTENSION VBEDeviceExtension = 
    (PVBE_DEVICE_EXTENSION)HwDeviceExtension;
  VIDEO_X86_BIOS_ARGUMENTS BiosRegs;
  CONTEXT BiosRegisters;
  NTSTATUS Status;

  ...
  VideoPortZeroMemory(&BiosRegs, sizeof(BiosRegs));
  BiosRegs.Eax = 0x0F00;
  VideoPortInt10(HwDeviceExtension, &BiosRegs);
  ...
  VideoPortZeroMemory(&BiosRegisters, sizeof(BiosRegisters));
  BiosRegisters.Eax = 0x0F00;
  Status = Ke386CallBios(0x10, &BiosRegisters);
  ...
}

Additional information


Official VESA BIOS Extensions 3.0 standard information - http://www.vesa.org/public/vbe/vbe3.pdf.

THE VESA GENERALIZED TIMING FORMULA (GTF) Excel™ spreadsheet - http://www.vesa.org/Public/GTF/GTF_V1R1.xls.

VESA COORDINATED VIDEO TIMING (CVT) GENERATOR Revision 1.1 Excel™ spreadsheet - http://www.vesa.org/Public/CVT/CVTd6r1.xls.

Help file "Display and print devices: Windows XP DDK" (Built on Friday, February 18, 2005) - [?],[?],[?].

SciTech Software Inc released commercial version of a similar driver (SciTech SNAP Graphics changelog) for Windows, OS/2, QNX & Linux. These versions are 21-day trial.

  1. Download Windows 2000/XP Version 3.1.4 DPVL beta2 [dpvlbeta2.zip].
  2. Download Windows NT 4.0 Version 3.1.1 [snap-winnt-3.1.1.exe]. Supported hardware.
  3. Download Windows NT 4.0 Version 3.1.3 beta 1284 [snap-winnt-3.1.3-1284.exe].
  4. Download DOS Version 3.1.1 [snap-dos-3.1.1.exe]. Supported hardware.
  5. Download IBM OS/2 (eCS) Version 3.1.8 [snap-os2-3.1.8.exe]. Supported hardware.

A more recent Personal (6-month trial) version you may get after FREE registering at http://my.scitechsoft.com/navigate.php.

Visit http://et6000.narod.ru/, which contains driver & sources of Tseng Labs ET6000, ET6100 and ET6300 PCI video cards for Windows 2000/XP.

VIDEOSIM.SYS frame buffer simulator sample videodriver source from Windows NT 4.0 DDK [?],[?],[?].

MIRROR.SYS frame buffer mirror sample videodriver source from Windows 2000 DDK [?],[?],[?].

Visit ReactOS operating system 'tm subversion repository to review the sources of its most recent video drivers - http://svn.reactos.org/.../miniport/

Visit VirtualBox 'tm subversion repository to review the sources of most recent driver for virtual videoadapter - http://www.virtualbox.de/.../WINNT/Graphics?rev=1

Here you can find some tests and benchmarks which I use to test performance of my driver - [?],[?],[?]

Here are the list of third party software, which is compatible with VBEMP driver and provides limited support of 3D acceleration. This list also covers Windows XP/2003 and later with VGA.SYS driver.

Name

Owner

API

Compatibilty

Notes

Reference Rasterizer (DitectX SDK)

Microsoft

DX8, DX9

Same as DirectX, x86/x64

Supports shaders, Slow

RGB Rasterizer (DitectX SDK)

Microsoft

DX8, DX9

Same as DirectX, x86/x64

No shaders support, Faster than reference

Pixomatic

RAD Game Tools

DX8, DX9

Windows9x/NT4 and later

Supports SMP. No shaders support, Faster than MS RGB Rasterizer

SwiftShader 2.0/3.0

TransGaming

DX8, DX9

Windows 2000 and later

Supports SMP. Since v 3.0 supports x64, but Windows 2000 is dropped. Some slower than Pixomatic. Shaders support. Problems with FFP rendering.

Mesa3D

open-source

OpenGL

Windows9x/NT4 and later

Newer versions supports Windows XP and later.

Visit VOGONS Vintage Driver Library for Mesa3D, SwiftShader drivers.

Here is an older wrappers, renderers which are tested: Realtech VR DXGL Wrapper, AltOpenGL, TechLand Soft OpenGL, mesaFX OpenGL, SciTech Software GLDirect.


Tested video cards/chipsets


  1. VBE 3.00 INTERNAL Intel G33 (GMA 3100) Graphics
  2. VBE 3.00 INTERNAL Intel Q963 (GMA 3000) Graphics
  3. VBE 3.00 INTERNAL Intel 915G Graphics
  4. VBE 3.00 INTERNAL Intel 910G Graphics
  5. VBE 3.00 INTERNAL Intel 865G Graphics
  6. VBE 3.00 INTERNAL Intel 845G Graphics
  7. VBE 3.00 INTERNAL Intel 815G Graphics
  8. VBE 3.00 INTERNAL Intel 810G Graphics
  9. VBE 2.00 AGP 8Mb ATI Rage 3D Pro AGP 2x (BGA Package)
  10. VBE 2.00 AGP 8Mb ATI Rage P/M Mobility AGP 2x
  11. VBE 2.00 AGP 32Mb ATI Rage128 PF/Pro AGP 4x (TMDS)
  12. VBE 2.00 AGP 64Mb ATI Radeon 9000 Series (RV250)
  13. VBE 2.00 INTERNAL ATI Radeon Xpress 200M Series
  14. VBE 3.00 16Mb? ATI Radeon X1650 Series (RV530 LE)
  15. VBE 3.00 16Mb? ATI Radeon X1950 GT [RV570]
  16. VBE 3.00 AGP 16Mb 3Dfx Interactive Voodoo3 2000
  17. VBE 3.00 PCI 4Mb nVidia RIVA 128 2D/3D Gui Accelerator
  18. VBE 3.00 AGP 4Mb nVidia RIVA 128 2D/3D Gui Accelerator
  19. VBE 3.00 AGP 16Mb nVidia RIVA TNT GUI+3D Accelerator [NV4]
  20. VBE 3.00 AGP 16Mb nVidia RIVA TNT2 Model 64 [NVM64]
  21. VBE 3.00 AGP 32Mb nVidia GeForce2 MX/MX400 [NV11]
  22. VBE 3.00 AGP 64Mb nVidia GeForce2 GTS/PRO [NV15]
  23. VBE 3.00 AGP 64Mb nVidia Geforce3 Ti 200 [NV20]
  24. VBE 3.00 AGP 128Mb nVidia GeForce FX 5200 [NV34.3]
  25. VBE 3.00 INTERNAL nVidia GeForce 6100 nForce 430
  26. VBE 3.00 nVidia GeForce 7600GS
  27. VBE 2.00 PCI 4Mb Matrox MGA-2164W Millenium II PCI
  28. VBE 2.00 AGP 4Mb Matrox MGA-G100 AGP
  29. VBE 1.32 INTERNAL 1Mb TSENG LABS Inc ET4000
  30. VBE 2.00 PCI 4Mb TSENG LABS Inc ET6000
  31. VBE 2.00 VLB 2Mb S3 Inc Vision964
  32. VBE 2.00 PCI 2Mb S3 Inc 86C375 ViRGE/DX
  33. VBE 2.00 AGP 4Mb S3 Inc 86C368 Trio3D/2X
  34. VBE 1.02 INTERNAL 1Mb Cirrus Logic CL-GD5428
  35. VBE 1.02 INTERNAL 512Kb Cirrus Logic CL-GD5424
  36. VBE 1.02 VLB 1Mb Cirrus Logic CL-GD5428
  37. VBE 1.02 PCI 1Mb Cirrus Logic CL-GD5446 PCI
  38. VBE 2.00 INTERNAL Trident CyberBlade i7
  39. VBE 1.02 ISA 1Mb Trident 8900
  40. VBE 1.02 ISA 512Kb Trident 9000i [True Color DAC]
  41. VBE 1.02 ISA 256Kb Realtek 3106 [RTG3106]
  42. no VBE ISA 256KB Cirrus Logic CL-GD5401 - Acumos VGA (AVGA1)
  43. VBE 2.00 PCI 8Mb? VirtualBox VBE Adapter (Innotek VirtualBox)
  44. VBE 2.00 PCI 16Mb VMware SVGA II (VMware)
  45. VBE 2.00 PCI 4Mb Cirrus Logic CL-GD5446 PCI (QEMU)
  46. VBE 2.00 PCI 4Mb IBM Plex86/Bochs VBE Adapter (QEMU/Bochs)
  47. VBE 2.00 PCI ?Mb IBM Plex86/Bochs VBE Adapter [vmware] (QEMU/Bochs)
  48. no VBE ISA 256KB Elpin VGABIOS (Bochs)

Driver troubleshooting


When you have problems with VBEMP, there are two basics scenarios:

  1. Computer starts, but driver is not working properly.
  2. Computer not starts, i.e. crashes, having BSOD or "hang".

Before debugging try these actions, provided below:

  1. Physically remove memory chips or uses /MAXMEM boot.ini's switch to do it in this manner (if you have 1024 Mb RAM): 512 -> 256 -> 128 -> 64 -> 32 -> 16 -> 8.
  2. Upgrade motherboard's BIOS to the latest version.
  3. Clear CMOS settings to default or safe.
  4. Decrease AGP Aperture in BIOS as it is unused by VBEMP.
  5. Temporarily remove any external controllers as: usb, sound, hdd, lan or others.
  6. Try a videocard with another bus: AGP, PCIe, PCI, onboard.

To start debugging process you MUST request a LOGGED-version (for method 1) or a DEBUG-version (for methods 2,3) of driver from me by e-mail. For methods 2,3 you MUST READ this article WinDbg basics HOWTO for QA engineers to understand which debug method is suitable in your case. Here are the solutions in brief:

After you produce logs from driver you can give me additional information about your system and video adapter. This step is optional!!! Without driver logs this information is meaningless for me!!!

  1. Collect VESA BIOS and system information :

  2. For ISA/MCA/VLB card owners: There are new tools - lfb_det.exe/lfb.exe, which can automatically detect linear frame buffer address of your card in system address space. They are distrubuted only by request via e-mail. Read pp.3 ("Collect system information"), make logs and I will send you these tools.


VBE FAQ: VESA BIOS Extensions standard deviation list

Cards (chips) affected

Description

Intel 845G, 855G, 865G, 915G and later

PRB: Cannot set native resolutions i.e. 1024x600, 800x480, 1280x800, mostly on notebooks with Intel integrated graphics.
DETAILS: In Video BIOS - mode tables these non-standard modes are absent or filtered. When you try to ask BIOS to set it, BIOS returns an error.
FIX: Update your BIOS with latest version or patch it. In DOS/Windows9x it is possible to use software Intel TSR VBIOS VESA-driver.

Intel 845G, 855G, 865G, 915G and later

PRB: Cannot set resolution higher than 800x600x8bits and 640x480x16bits.
DETAILS: In Video BIOS frame buffer size hardwired to 832 Kbytes, which is not enough even for 1024x768x16bit = 1024*768*2 = 1572864, 1572864 > 832K.
FIX: Update your BIOS with latest version or patch it. In DOS/Windows9x it is possible to use software Intel TSR VBIOS VESA-driver.

Intel 810E, 815E series

PRB: Cannot use linear frame buffer, but card identifies itself as VBE 3.0 compatible.
DETAILS: In Video BIOS linear frame buffer support is absent, but card itself supports linear frame buffer.
FIX: None known.

ATI Radeon Xkkkk series (starting with X700)

PRB: Cannot use custom screen refresh rates, but card identifies itself as VBE 3.0 compatible.
DETAILS: In Video BIOS screen refresh rates switching code is absent. When you try to ask BIOS to set it, BIOS immediately returns VBE error 0x34F.
FIX: None known.

nVidia GeForce 5xxx/6xxx/7xxx (and newer ones)

PRB: Cannot use custom screen refresh rates, but card identifies itself as VBE 3.0 compatible.
DETAILS: In Video BIOS screen refresh rates switching code is changed. When you try to ask BIOS to set it, BIOS always sets default refresh (60 Hz).
FIX: None known.

nVidia GeForce 5xxx/6xxx/7xxx (and newer ones)

PRB: Cannot set any resolution higher than 800x600.
DETAILS: In Video BIOS - mode tables 1024x768 modes and higher are absent or filtered. When you try to ask BIOS to set it, BIOS returns an error.
FIX: Update your BIOS with latest version or patch it.

VESA 1.x cards

PRB: When accessing fullscreen textmode, computer "hangs".
DETAILS: In Video BIOS mode-set routines are badly written for calling them in 32 bit protected mode.
FIX: None known. In DOS/Windows9x it is possible to use software VESA-driver.

Different VESA cards

PRB: When calling VBE functions, highword bits of EAX register and may be others (i.e. 0x????0000) may contain garbage.
DETAILS: In Video BIOS VESA routines are badly written for calling them using 32 bit registers.
FIX: Filter highword bits of EAX.

Matrox, Trident, TsengLabs cards

PRB: When calling VBE functions, 16-bit R5G5B5 and R5B6G5 modes both reported as 16-bit. In some cases it confuses VESA programs - if I choose 16-bpp mode, which color model (555 or 565) will be used?
DETAILS: In Video BIOS VESA routines are incorrectly written. Microsoft FRAMEBUF.DLL driver confuses and skips 15-bpp modes if they are reported as 15-bpp. If both 555 and 565 modes are reported as 16-bpp, FRAMEBUF.DLL uses first scanned one.
FIX: When choosing such modes check both bpp value (15 or 16) and bits values (555 or 565). I've made a modified version of FRAMEVBE.DLL.




Project history



Changelog


[!] Important
[+] New
[-] Fixed error
[*] Changes
[?] Comments

2005.05.07
[!] initial "Manual" version. later revised

2005.07.12
[!] pre-release "Universal" version. later revised

2006.02.20
[!] initial "Universal" version.

2006.11.09
[*] no vbe 3.0, i.e. no refresh rates - COMMENTED
[*] no child devices (w2k+ all) - COMMENTED
[!] vbe oem strings & modelist broken on some video cards
[?] svga memory size=0 broken ? in vbe 1.02 (use split videomodeptr?)
[!] vbe 1.x modes > 64 kb does not work
[+] only 320x200x8bit in vbe 1.02
[?] no fullscreen text mode in vbe 1.02 cards, why? on 80486sx33/16mb - works...

2006.11.11
[!] try isa lfb at 0x0F00000 ? suckz!
[!] _NT_DEBUGGING_EXTENSION_PATH ?
...
Loaded dbghelp extension DLL
The call to LoadLibrary(ext) failed, Win32 error 127
    "The specified procedure could not be found."
Please check your debugger configuration and/or network access.
... what is it? = use latest? version of WinDbg

2006.11.18
[*] Map all memory or a part of it, like in 640x480x4 - map needed part only
[*] disable Uncached Speculative Write Combining (USWC) feature
[+] use low res modes? - YES
[+] crop biosregs.eax to 0x0000ffff ? - YES
[!] nt3 is about to ioctl_share_memory/unshare (640x480x4) for DCI - NO
[*] XMill/YMill from ROS 0.3.0 - YES
[*] temp. removed all vbe 1.02 code!!!

2006.11.19
[!] remove TrampolineMemory2 & man.added +0x200 - ?
[!] on Radeon 9000 vbe4 and vbe3 not working, "hangs" PC

2006.11.28
[?] got a rare VBE 1.02 PCI CL5446 SVGA... 1996yr - ?? LFB NOT WORKING
[+] hack PhysBasePtr & ModeAttributes - YES
[+] more sophisticated check for vbe 1.02 cards and LFB, ISA/?VLB/PCI
[!] when going to textmode some ISA cards "hangs" PC

2006.11.30
[?] add vbe text modes, like 132x60 ? - NOT WORKING AT ALL
[!] /maxmem=128 in boot.ini cures Radeon9000 on NT4

2006.12.01
[?] MapBankedMemory via c000:xxxx ?
[?] MapBankedMemory tested.... check is framebuf/vga256/vga64k is needed?
[?] mapmemory a000:0000 = 0x20000 bytes, getbankselectcode via vga256/vga64k.
[+] sort modes by number (100 max) - YES
[+] vbe strings and modelists shifted on some VGAs - fixed
[*] remove "| 0x4000" for vbe 1.02 cards - fixed 
[+] new INFOVBE tool - another way to enumerate videomodes (slower but accurate)
[*] MapBankedMemory removed from code due to erroneous vbe 1.02 - YES

2006.12.02
[?] use USWC ...P6_SPACE_CACHE, linear frame align to 4 mb or no ? - NO
[+] rebuild MANUAL version of vbemp to synchronize changes in UNIVERSAL version.

2006.12.09-10
[?] 15bit to 16 bit ?
[?] USWC works even on ISA cards :).
[-] intel 82815e vbe 3.0 v/o lfb (fbptr = 0) - OK
[?] offscreen memory for dx3? - may be for w2k+
[?] no mmx dll's for dx3 in nt4 d3drg24x.dll? - NO
[?] on riva128zx 8mb reports as 4mb? - OK

2006.12.11
[!] ATI RADEON XPRESS 200M Series (16 mb, vbe 2.0) works with manual version
[+] add benches to site ? (dx/gl) - OK
[+] two versions of UNIVERSAL vbemp for NT4+ avalable now: USWC and normal.

2006.12.26
[!] only 100 videomodes supported in all vbemp drivers except for 20feb06 builds
[!] how to detect child devices - badly works?
[!] how to check AGP capabilities - W2K+?
[!] remember agp rate switching - XP+?
[!] pci/agp/pci-e id's duplicating in XP? - use LEGACY driver model

2007.01.07
[!] first vbe 3.00 version is made
[+] mode table = 43,56,60,70,72,75,85,90,100,120,200Hz
[+] powermanagement NT5.0+ is made FULL (HwVidGet/Set...Power...)
[+] powermanagement NT4.0 is made REQUEST ONLY (IOCTL_VIDEO_GET/SET...POWER...)
[+] in future 2k/xp/2003 versions will be as 2in1: PnP and LEGACY
[?] in legacy-mode APM, CHILDS & MonitorDDC features are not used.
[?] ddc query disabled in w2k. :(
[?] directdraw?
[?] Ke386callbios crashes frequently on NT4, some on W2K. (But OK in nt3.x/XP) ?
[?] how to switch sync+/-, doublescan+/-, interlaced+/-?
[?] how to see/use "hardware default refresh" in PnP mode.? = 50Hz (1Hz?)
[?] vbe strings in desk.cpl applet? for nt4 (w2k? xp?)
[?] how to switch uswc+/-, full mem access+/-. (mtrr n/a in 3.x)?

2007.01.17
[!] changed some strings in mapmemory
[+] new ref rates table (56-87-240)
[?] in *.h/*.c - vberegcallback (testing)
[?] rem'ed ioctl_set_color_registers

2007.02.18
[+] xp_2k3 version: reboot now not needed to install vbemp!!! hackhack!!!
[?] it was (Failed to allocate virtual memory (Status c000009a))
[?] all: tested HalDisplayString(PCHAR) = (call InbvEnableDisplayString(TRUE) before it)
[+] all: changed VbeFindAdapter() to accurate pci_agp_pcie cards detection..

2007.02.20
[!] ifdef'ed: #POWERON for nt5+ only!!!
[!] agp/pci detection renew'ed 
[!] in nt5+ only agp/apm caps displayed!!!

2007.04.19
[!] found & fixed memory allocation bug. in xp/2003 version - all ok

2007.04.22
[!] in SetCurrentMode() removed unneeded comments
[-] nt_2k version: VBE30 refresh rate switching works better in Window NT 3.x
[-] nt_2k version: Monitor detection code rewritten for W2K & uncommented
[!] version from 19.04.2007 uses another addressing scheme for ES:EDI calls !!! (0x2000:0x0200)

2007.04.27
[!] re-arranged Result/status in VBEStartIO()
[*] "Map all memory" fix removed, it was for DirectX only (no dx support now)
[-] nt_2k version: finaly merged vbe20/vbe30 in vbe30safe driver (no-bugs). method#2

2007.05.04
[+] new VBE3TEST tool simulates VBE30 API (640x400x8 75Hz) and tests different refresh polarities (h/v +/-)
[*] INFOVBE now shows Power management, Monitor & DDC info

2007.05.17
[+] pre-alfa support for VBE 1.x ISA/MCA/VLB/PCI cards with lfb
[*] 50hz added to refresh rates list for vbe3.0, 55hz means std VBE2.0 mode
[*] vbe20 / vbe30 versions for XP and NT-line is back again
[*] vga13h is uptodate according to vbempnte

2007.06.03
[+] legacy-model drivers for w2k/xp/2003 is available now.
[*] pci/agp/pnp/pci-e bus detection code is more accurate now
[*] uswc, mem-alignment, hsync and vsync polarity now configurable by registry

2007.06.17
[+] pre-alfa drivers for nt31 is available now.
[!] windows nt 3.5 now officially supported by vbemp
[-] solved incompatibility problem with Microsoft VirtualPC 2004
[*] pnp display support now configurable by registry
[-] eisa bus detection bug fixed

2007.07.15
[+] control panel extension for vbemp (first release) available now.

2007.07.21
[*] infovbe tool rewritten to accurate edid parsing process.

2007.07.22
[+] manual mode filtering and edid parsing added.
[*] now vbemp can parse edid in legacy mode.
[+] vbemp stores edid block in registry (VBE_RAWEDID parameter).

2007.08.17
[!] shadow buffer gdi acceleration now enabled by default in win2k and later

2007.10.06
[!] framevbe.dll: new shadow buffer accelerated library for windows nt4

2007.10.07
[*] small bug with VBE_ALIGN in vbemp.cpl fixed

2007.10.14
[*] prefast fix: mode filtering code
[*] prefast fix: memory allocation
[*] prefast fix: monitor edid parsing
[-] mca bus detection bug fixed

2007.10.19
[*] removed unneeded debug messages
[*] xp_2003 version is now vbe30safe (no-bugs). method#2

2007.12.06
[!] announced development of win9x version of vbemp. :)

2007.12.07
[*] "uswc"/"shadowbuffer acceleration" options now enabled by default (NT4/2k/XP/2003)

2008.03.05
[*] framevbe.dll: more accurate gdi raster operations handling - no more garbage!

2008.04.16-19
[+] xp_2003 version: banked framebuffers are supported now (i.e. intel810/815 chips)
[-] all: vesa bios ver 1.00/1.01 now accepted (previously onlty 1.02 or above)
[+] all: support for trident VBE 1.x ISA/MCA/VLB/PCI cards with lfb
[+] w2k and later: agplimit is recorded in log
[-] all: fixed stdvga mode 13h definition
[*] all: uswc now can work in banked modes
[!] ros vbemp port delayed for some reason

2008.04.26
[!] note that not all PCI Bus VESA 1.x cards are supported
[+] xp_2003 version: intel 810/815 vesa 3.0 refresh rates support is done
[*] rearranged DPRINT stuff
[*] all vbemp debug versions deleted from site

2008.04.29
[*] infovbe tool updated

2008.05.05
[*] infovbe tool updated

2008.10.05
[*] 2k_xp_2003 version: hibernation support
[+] 2k_xp_2003 version: added 320x240x8 mode support via MODEX.DLL driver, details here
[-] all: fixed bug that lastly enumerated VESA mode is always unaccessible
[-] all: fixes in mode querying routine

2008.11.05
[+] unified h/w accelerated driver project for CirrusLogic 54xx chips (with qemu support) started as branch of vbemp project

2008.11.16
[!] in winnt 4.0 only first ~296-297 enumerated modes are used with ANY videodriver, others are cutted down, no way to fix it
[!] in winnt 3.51 only first ~310-350 enumerated modes are used with ANY videodriver, others are cutted down, no way to fix it
[+] xp_2003 version: vga256.dll and vga64k.dll now not loaded by default in inf-file
[-] all (vbe30): more strict/accurate vesa (gtf) refresh rate calculation
[-] all (vbe30): fixed bugs with doublescan (< 640x400) and interlaced modes
[!] driver package now including txtsetup.oem for unattended or textmode driver installation
[-] broken oemsetup.inf for nt 3.x/3.5x installation corrected

2008.11.30
[!] framevbe.dll library now supports winnt 3.5x

2008.12.19
[!] vbemp.cpl control panel extension now supports Windows xp/2003

2009.01.03
[*] vga13h: now it supports ibm ega/vga monochrome modes

2009.01.08
[*] cl54xx: do not allow MCLK to be less than default value
[*] cl54xx: in debug output GRx registers also listed
[-] cl54xx: GD542x family now correctly supports 16/24-bit color
[-] cl54xx: enable only 4 planes, as it mention in datasheets
[*] cl54xx: correct PCLK for 1Mb GD5446 cards, they are different from 2Mb+ cards
[*] cl54xx: 32-bit modes is enabled on GD543x/4x/6x/80 families only
[*] cl54xx: removed 320x400 mode
[*] cl54xx: doublescan modes only use 75Hz refresh rate
[*] cl54xx: lowres modes cannot use > 75Hz refresh rate
[-] cl54xx: h_clk rounded correctly
[*] cl54xx: reset to vga_text_mode using direct i/o (good idea for vbemp also)
[-] cl54xx: read/write ATC registers as it defined in STDVGA

2009.01.14
[*] infovbe: now it shows VESA save states, multidisplay and VBE/SCI options 
[*] vbemp: any mode >= 1024x768 supports 43, 48 Hz interlaced
[*] vbemp: in nVidia cards with DVI-connected LCD display now can control scaling

2010.07.05
[+] framebuf: support now both 15 (R5G5B5) and 16 (R5G6B5) bit modes
[*] framevbe: support now both 15 (R5G5B5) and 16 (R5G6B5) bit modes

2010.07.09
[*] vbemp: with matrox, trident, tsenglabs 16-bpp (R5G5B5) modes now reported as 15-bit
[*] vbemp: 15-bpp with ati, cirruslogic, vbox, bochs, qemu, s3, intel (845G and before) cards
[*] vbemp: 15-bpp with matrox, trident, tsenglabs cards
[*] vbemp: support now both 15 (R5G5B5) and 16 (R5G6B5) bit modes
[*] vbemp: on start shows copyright and driver version info
[*] vbemp: first release of amd64, ia64 version, some NT banked "stuff" removed

2015.01.01
[-] vbemp: totally rewritten buggy monitor capabilities EDID parsing
[*] vbemp: commented nonworking bankswitch VESA 1.x code (nt/w2k version)
[+] vbemp: added 50 Hz refresh rate treated as interaced
[?] vbemp: planned support for direct TV output using VGA-SCART cable and 25/30 Hz interaced modes
[*] vbemp: reduced and optimized refresh rates count (mostly for NT due to low total modes hardwired limit) 
[-] vbemp: fixed memory leak in mode tables allocation code (all vbe20 versions)
[*] vbemp: removed color bars on startup (w2k/xp/2003)
[*] vbemp: removed unused power management code from legacy versions
[+] vbemp: alternative display detection using reading SCL/SDA clock lines if read EDID fails (w2k/xp/2003)
[*] vbemp: synchronized source code between nt/w2k version and xp/2003 version
[*] vbemp: one shared code for i386, amd64 and IA64 architectures (xp/2003)
[+] vbemp: in device manager videocard manufacturer is now shown (w2k/xp/2003)
[*] cl54xxmp: reduced and optimized refresh rates count (mostly for NT due to low total modes hardwired limit) 
[+] cl54xxmp: implemented VESA DDC display detection using SCL/SDA clock lines
[+] cl54xxmp: in device manager videocard model is now shown (w2k/xp/2003)

License


VBEMP NT driver Project *
License for use and distribution

* term abbreviated to VBEMP below.

  1. The authors - Bearwindows and AnaPa Corporation, exclusively own all copyrights to VBEMP.
  2. Anyone may use this software free for noncommercial use only.
  3. For commercial use, send a email request for pricing.
  4. The VBEMP, may be freely distributed, with exceptions noted below, provided the distribution package is not modified. No person or company may charge a fee for the distribution of VBEMP without written permission from the copyright holder. The VBEMP may not be bundled or distributed with any other package without written permission of the copyright holder. Distribution of any VBEMP version before 10/19/2007 or unauthorized site content mirroring is strictly prohibited.
  5. VBEMP IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS SOFTWARE. THE LICENSE TERMS CONTAINED IN THIS DOCUMENT ARE SUBJECT TO BEING CHANGED, WITHOUT NOTICE, IN FUTURE EDITIONS.
  6. You may not use, copy, emulate, clone, rent, lease, sell, modify, decompile, disassemble, otherwise reverse engineer, or transfer the licensed program, or any subset of the licensed program, except as provided for in this agreement. Any such unauthorized use shall result in immediate and automatic termination of this license and may result in criminal and/or civil prosecution.
  7. Bearwindows and AnaPa Corporation reserve all rights not expressly granted here.
  8. Installing and using VBEMP signifies acceptance of these terms and conditions of the license.
  9. If you do not agree with the terms of this license you must remove VBEMP files from your storage devices and cease to use the product.

Thank you for using VBEMP.

Bearwindows and AnaPa Corporation


Direct3D, DirectDraw, DirectShow, DirectX, Microsoft, MS-DOS, Visual C++, Win32, Win32s, Windows, Windows XP, Windows 2003 Server and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries/regions.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

© AnaPa Corporation 1988 – 2015. All rights reserved.

E-Mail: bearwindows_at_operamail_dot_com | Last update: January 31th 2015