Home page | EN-US English | RU Russian | Other projects (EN-US English)
Key features :
Planned features :
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 really 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.drv). My driver does not provide any kind of 3D hardware acceleration (DirectX & OpenGL). For this purpose third-party libraries can be used.
My driver does NOT support multiple video cards connected simultaneously and this feature is NOT planned.
Before installing VBEMP.DRV I recommend removing any display drivers installed and switching to the standard VGA mode 640x480x16colors.
OS |
Version |
Description |
Link |
Windows 9x clones - ALL of them |
Release version beta |
Universal VBE20 version. * |
|
Windows 9x clones - ALL of them |
Release version beta |
Universal VBE20 version. * |
|
Windows 9x clones - ALL of them |
Release, debug version pre-beta |
Universal VBE20 version. * |
|
Windows 9x clones - ALL of them |
Release, debug version pre-beta |
Universal VBE20 version. * |
|
Windows 9x clones - ALL of them |
Release version pre-beta |
Universal/Manual VBE20 version. * |
|
Windows 9x clones - ALL of them |
Original source code |
FRAMEBUF sample from Windows 9x DDK. Compile it with MASM 6.x. |
* If universal version does not work with your card, you may try Manual version. To get it 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.
Installation note 0: Current driver unsolved problems:
Installation note 1: If you are experiencing problems while installing my driver read article below. Details here: MSKB: How to install or change a video driver (Q131806)
Installation note 2: If your card is working slowly and screen is flickering with driver installed, especially when moving large windows and scrolling texts you may improve it: go to Control Panel -> Display -> Settings tab -> Advanced button -> Troubleshooting tab and move Hardware acceleration slider to the left position (None). Details here: MSKB: How to Change the Graphics Hardware Acceleration Setting in Windows (Q263391)
Installation note 3: Starting from version dated 2008.03.16, vbemp9x.zip contains these variants of driver:
"UNIVERSAL":Installation note 3: Version dated 2014.01.31 and later, 140131.zip contains these variants of driver:
"UNIVERSAL":Special folders:
First of all, you must figure out and select what BIOS file is for your video card (it can be either EXE or DAT file), or you can use binary file, dumped by GETBIOS tool.
In example, provided below we use ALV_1411.EXE - it is for Intel 91xG (Moble).
How to use it:
ALM_xxxx.??? - Intel(r)830M PCI Accelerated SVGA BIOS LPG_xxxx.??? - Intel(r) 82945G Chipset Family PCI Accelerated SVGA BIOS CAL_xxxx.??? - Intel(r) 82945GM Chipset Family PCI Accelerated SVGA BIOS BDG_xxxx.??? - Intel(r)845G/845GL/845GE/845GV PCI Accelerated SVGA MTG_xxxx.??? - Intel(r)852GM/852GME/855GM/855GME PCI Accelerated SVGA BIOS SDG_xxxx.??? - Intel(r)865G PCI Accelerated SVGA BIOS GDG_xxxx.??? - Intel(r)915G/915GV/910GL PCI Accelerated SVGA BIOS ALV_xxxx.??? - Intel(r)915GM/910ML/915MS PCI Accelerated SVGA BIOS BWG_xxxx.??? - Intel(r)Q965/Q963/G965 PCI Accelerated SVGA BIOS CRL_xxxx.??? - Intel(r)GM965/PM965/GL960 PCI Accelerated SVGA BIOS BLB_xxxx.??? - Intel(r)Q33/Q35/G33 PCI Accelerated SVGA BIOS PNV_xxxx.??? - Intel(r)PineView PCI Accelerated SVGA BIOS (mobile GMA3150) CTG_xxxx.??? - Intel(R)Cantiga PCI Accelerated SVGA BIOS (mobile G4x) ELK_xxxx.??? - Intel(R)Eaglelake PCI Accelerated SVGA BIOS (desktop G4x) ILD_xxxx.??? - Intel(R)Ironlake Desktop PCI Accelerated SVGA BIOS (desktop HD Graphics, 5 gen.) ILM_xxxx.??? - Intel(R)Ironlake Mobile PCI Accelerated SVGA BIOS (mobile HD Graphics, 5 gen.) SND_xxxx.??? - Intel(R) Sandybridge/Ivybridge PCI Accelerated SVGA BIOS (desktop HD/HD2000/HD2500/HD3000 Graphics) SNM_xxxx.??? - Intel(R) Sandybridge/Ivybridge PCI Accelerated SVGA BIOS (mobile HD/HD2000/HD2500/HD3000 Graphics) HSW_xxxx.??? - Intel(R) HSW Mobile/Desktop PCI Accelerated SVGA BIOS (desktop/mobile Haswell HD4000 Graphics) PLS_xxxx.??? - Intel(r)Poulsbo PCI Accelerated SVGA BIOS (mobile GMA500)
Installation note 3: By default any Plug'N'Play video cards will be detected CORRECTLY by 9x version of my driver. But if you wish, you MAY add your video card's PCI VENDOR/DEVICE ID in vbemp.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:
; INF file for VBE display driver ; Copyright 2004-2014, Anapa Corp. [version] Class=DISPLAY signature="$CHICAGO$" Provider=%Mfg% . . . . . . . . . . . . [Mfg] %AnaPa.DeviceDesc%%AnaPa.DeviceDesc1% = PCIVID, PCI\CC_0300 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc2% = PCIVID, PCI\CC_0301 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc3% = PCIVID, PCI\CC_0380 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc4% = VGA, *PNP0900 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc5% = VGA, *PNP0917 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc6% = VGA, NOPNP %AnaPa.DeviceDesc%%AnaPa.DeviceDesc7% = PCIVID, NOPNP %AnaPa.DeviceDesc%%AnaPa.DeviceDesc8% = PCIVID, PCI\VEN_1002&DEV_5046 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc9% = PCIVID, PCI\VEN_1002&DEV_4966&SUBSYS_4F721002 %AnaPa.DeviceDesc%%AnaPa.DeviceDescA% = PCIVID, PCI\VEN_1002&DEV_4963&SUBSYS_4F731002 %AnaPa.DeviceDesc%%AnaPa.DeviceDescB% = PCIVID, PCI\VEN_8086&DEV_2562&SUBSYS_52478086 %AnaPa.DeviceDesc%%AnaPa.DeviceDescC% = PCIVID, PCI\VEN_xxxx&DEV_yyyy&SUBSYS_zzzzzzzz ; card template, see below . . . . . . . . . . . . [Strings] Mfg="Anapa Corp." AnaPa.DeviceDesc = "VBE Miniport" AnaPa.DeviceDesc1 = " - Standard PCI Graphics Adapter (VGA)" AnaPa.DeviceDesc2 = " - Standard PCI Graphics Adapter (XGA)" AnaPa.DeviceDesc3 = " - Standard PCI Graphics Adapter" AnaPa.DeviceDesc4 = " - Standard Graphics Adapter (VGA)" AnaPa.DeviceDesc5 = " - VGA (reserved by Microsoft)" AnaPa.DeviceDesc6 = " - VGA Compatible" AnaPa.DeviceDesc7 = " - VGA Compatible (no resources)" AnaPa.DeviceDesc8 = " (ATI Rage 128PRO 4x pri)" AnaPa.DeviceDesc9 = " (ATI RV250 pri)" AnaPa.DeviceDescA = " (ATI RV250 sec)" AnaPa.DeviceDescB = " (Intel D845G)" AnaPa.DeviceDescC = " Your card name" . . . . . .
To create this string you may use Craig Hart's PCI.EXE 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 4: If you trying to use driver with ISA/MCA/VLB card in most cases you must play with the following BIOS Setup options:
*DisplayFallBack=1
\%WINDOWS_DIR%\INF\DRVDATA.BIN \%WINDOWS_DIR%\INF\DRVIDX.BIN \%WINDOWS_DIR%\SYSTEM\VBEMP.DRV \%WINDOWS_DIR%\SYSTEM\VBEMP.VXD \%WINDOWS_DIR%\INF\VBEMP.INF
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class\Display - delete all \\HKEY_LOCAL_MACHINE\ENUM\PCI - delete all VEN_xxxx&DEV_yyyy&SUBSYS_zzzzzzzz entries ( for your card ONLY )
Official VESA BIOS Extensions 2.0 standard information - http://www.vesa.org/public/vbe/vbe20.pdf.
Official VESA BIOS Extensions 3.0 standard information - http://www.vesa.org/public/vbe/vbe3.pdf.
Official VESA BIOS Extensions 3.0 standard information - http://www.vesa.org/public/vbe/vbecore3.pdf.
Official VESA BIOS AF Extensions standard information - http://www.vesa.org/public/vbe/VBE-AF07.pdf.
Official VESA BIOS DDC Extensions 1.1 standard information - http://www.vesa.org/public/vbe/VBEDDC11.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.
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.
A more recent Personal (6-month trial) version you may get after FREE registering at http://my.scitechsoft.com/navigate.php.
Here you can find some tests and benchmarks which I use to test performance of my driver - Benches ([?],[?])
Here are the list of third party software, which is compatible with VBEMP driver and provides limited support of 3D acceleration.
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.
When you have problems with driver, there are two basics scenarios:
Before debugging try these actions, provided below:
To start debugging process you MUST request a DEBUG-version of driver from me by e-mail. Here are the solutions in brief:
9-Pin NULL Modem Cabling Remote host serial port connector Host system serial port connector Signal 3 2 Transmit Data 2 3 Receive Data 5 5 Signal Ground 25-Pin NULL Modem Cabling 2 3 Transmit Data 3 2 Receive Data 7 7 Signal Ground
[386Enh] ... ... LoadDebugOnlyObjs=YES device=C:\WINDOWS\debugger.exe debugsym=C:\WINDOWS\VBEMP.SYM debugsym=C:\WINDOWS\VBE.SYM DebugBaud=57600 DebugCom=1
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!!!
Collect VESA BIOS and system information :
INFOVBE.EXE > vbe.txt
PCI.EXE -R -D > devpci.txt pci_w.exe -R -D -P -M -5 > devpci.htm pci_d.exe -R -D -P -M -5 > devpci.htm (if you have problems while running PCI.EXE from pci.zip) pci.exe -R -D -P -M -5 > devpci.htm (if you have problems while running PCI.EXE from pci.zip)Please send me vbe.txt, devpci.txt, devpci.htm in compressed view (rar, zip, 7z...) by e-mail.
For ISA/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 distributed only by request via e-mail. Read pp.3 ("Collect system information"), make logs and I will send you these tools.
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.
|
Intel 845G, 855G, 865G, 915G and later |
PRB: Cannot set resolution higher than 800x600x8bits and 640x480x16bits.
|
Intel 810E, 815E series |
PRB: Cannot use linear frame buffer, but card identifies itself as VBE 3.0 compatible.
|
ATI Radeon Xkkkk series (starting with X700) |
PRB: Cannot use custom screen refresh rates, but card identifies itself as VBE 3.0 compatible.
|
nVidia GeForce 5xxx/6xxx/7xxx (and newer ones) |
PRB: Cannot use custom screen refresh rates, but card identifies itself as VBE 3.0 compatible.
|
nVidia GeForce 5xxx/6xxx/7xxx (and newer ones) |
PRB: Cannot set any resolution higher than 800x600.
|
VESA 1.x cards |
PRB: When accessing fullscreen textmode, computer "hangs".
|
Different VESA cards |
PRB: When calling VBE functions, highword bits of EAX register and may be others (i.e. 0x????0000) may contain garbage.
|
[!] Important [+] New [-] Fixed error [*] Changes [?] Comments 2007.12.06 [!] first version is made based on framebuf.drv windows 95/98 ddk sample code 2007.12.08 [!] vesa cleanup in code 2007.12.16 [-] 0xC0000000-0xCFFFFFFF region now included in lfb search [-] 16 bit color alignment corrected from 5-5-5 to 5-6-5 2007.12.26 [+] lfb now detected faster and automatically via vesa bios call [-] 640x400x8 and 800x600x8 modes are corrected 2008.03.08 [+] in some intel chips 1600x1200 and 1920x1440 modes are enabled [-] fixed nonexistent mode 0x100 640x400x8 for intel/cirruslogic chips 2008.03.13 [*] screen is cleared now before 4f02/int10 [+] separate versions for bochs/virtualbox/vmwareii 2008.03.15-16 [+] 320x240,512x384,400x300 lowres modes added [+] in uni-version modelist size is 80 modes (which will be enough) [-] lfb memory top fixed at 15mb (which will be enough) - was 8 [-] fixed option when videomodeptr list is stored in ROM (c000:yyyy) [-] hiword of lfbsize expanded from byte to word [-] modelist size calculated accurately [-] vbemp.inf is corrected according to uni-version [-] 15bit modes support removed [-] in matrox cards 15bit modes shown as 16bit(5:5:5) - filtered 2008.03.22 [*] "uni" version: vesa detection code optimized [*] "uni" version: drv/vxd in process being prepared to mtrr/uswc support [*] "uni" version: vram memory cropped to 15 mb [*] "uni" version: fixed overflow when computing offscreen ram * [*] "uni" version: * accessible vram in theory must be less than 256 mb 2008.03.23 [*] "uni" version: debug info stripped [*] "uni" version: 10 new videomodes added [*] "uni" version: vesa 1.x cards now treated as unsupported [*] "uni" version: vesa cards with < 1 mb vram are untested [*] "uni" version: any mode listed in driver's inf will be enumerated 2008.10.21 [*] "uni" version: 800x480 and/or 1024x600 modes now supported (for ASUS EEE PC) [*] "uni" version: TSR VBIOS support [!] "uni" version: for full ASUS EEE PC support TSR VBIOS is REQUIRED (included with driver) [*] "uni" version: VESA functionality in dos disabled when you start program in windowed mode [-] "uni" version: With some buggy BIOSes screen garbage when starting dos or windows console programs in windowed mode [!] "uni" version: accessible vram limited to 128 mb if it is greater than 128 mb 2010.06.01 [*] "uni" version: VESA functionality in dos restored 2014.01.31 [+] "uni" version: support for new resolutions dw 832,624 ; MAC, 4:3 dw 1366,768 ; Widescreen dw 1440,900 ; Widescreen, VirtualBox dw 1600,900 ; Widescreen dw 1920,1080 ; Widescreen, VirtualBox dw 1920,1200 ; semi-Widescreen dw 2560,1440 ; Widescreen dw 2560,1600 ; Widescreen [+] "uni" version: support for "missed" resolutions dw 320,400 ; most ATI, nVidia dw 640,350 ; most ATI dw 720,400 ; most ATI dw 720,480 ; S3 AGP dw 720,576 ; S3 AGP dw 1280,960 ; VMWare SVGA II dw 1400,1050 ; VMWare SVGA II, ATI, nVidia dw 1792,1344 ; VMWare SVGA II dw 1856,1392 ; VMWare SVGA II, ATI dw 2048,1536 ; most nVidia [*] fixed aspect ratios table [*] support for adding ANY new modes to these Intel video chips - 830/845/85x/865/91x/94x/96x/G3x/G4x Graphics via patching and running TSR VESA BIOS (source included, inteldmp) run it before running win9x shell note that you cannot add new modes only replacing old ones (modenum < 0x60) (based on 915resolution patch) [!] memory limited versions 32/64/128mb (fixes startup hangs) [-] PCI/AGP/PCIe adapter does not have predefined resources!, vbemp.inf modified 2014.02.14 [+] "uni" version: support for new resolutions dw 1280,600 ; Widescreen dw 1280,720 ; Widescreen, 720p (WXGA-H, min.) dw 1280,768 ; Widescreen, Wide XGA avg., BrightView (WXGA) dw 1360,768 ; Widescreen, alternate mode for 1366x768 dw 1680,1050 ; Widescreen, (WSXGA+) [*] inteldmp: added support for these Intel video chips - HD/HD2000/HD2500/HD3000/HD4000 Graphics [*] inteldmp: compatible with gcc/djgpp (you must use 1 byte align!) [*] inteldmp: aligns video bios checksum [+] "uni" version: added debugging version of driver [+] "manual" version: "revived" AMD/ATI-specific driver
* term abbreviated to driver below.
Thank you for using driver.
Bearwindows and AnaPa Corporation