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 is very simple one & does not provide any kind of 3D hardware acceleration (DirectX & OpenGL).
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 |
Debug version pre-beta |
Universal VBE20 version. * |
|
Windows 9x clones - ALL of them |
Debug version pre-beta |
Universal/Manual VBE20 version. * |
|
Windows 9x clones - ALL of them |
Original source code |
FRAMEBUF sample from Windows 98 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 VBEMP 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 VBEMP driver:
"UNIVERSAL":
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 VBEMP display driver ; Copyright 1988-2008, Anapa Corp. [version] Class=DISPLAY signature="$CHICAGO$" Provider=%Mfg% . . . . . . . . . . . . [Mfg] %AnaPa.DeviceDesc% = Driver.Install, NOPNP %AnaPa.DeviceDesc%%AnaPa.DeviceDesc1% = Driver.Install, PCI\CC_0300 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc2% = Driver.Install, PCI\CC_0301 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc3% = Driver.Install, PCI\CC_0380 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc4% = Driver.Install, *PNP0900 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc5% = Driver.Install, *PNP0917 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc6% = Driver.Install, NOPNP %AnaPa.DeviceDesc%%AnaPa.DeviceDesc7% = Driver.Install, PCI\VEN_1002&DEV_5046 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc8% = Driver.Install, PCI\VEN_1002&DEV_4966&SUBSYS_4F721002 %AnaPa.DeviceDesc%%AnaPa.DeviceDesc9% = Driver.Install, PCI\VEN_1002&DEV_4963&SUBSYS_4F731002 %AnaPa.DeviceDesc%%AnaPa.DeviceDescA% = Driver.Install, PCI\VEN_8086&DEV_2562&SUBSYS_52478086 %AnaPa.DeviceDesc%%AnaPa.DeviceDescB% = Driver.Install, 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" AnaPa.DeviceDesc6 = " - SVGA" AnaPa.DeviceDesc7 = " (ATI Rage 128PRO 4x pri)" AnaPa.DeviceDesc8 = " (ATI RV250 pri)" AnaPa.DeviceDesc9 = " (ATI RV250 sec)" AnaPa.DeviceDescA = " (Intel D845G)" AnaPa.DeviceDescB = " Your card name" . . . . . .
To create this string you may use 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 . . . . . .
*DisplayFallBack=1
\%WINDOWS_DIR%\INF\DRVDATA.BIN \%WINDOWS_DIR%\INF\DRVIDX.BIN \%WINDOWS_DIR%\SYSTEM\VBEMP.SYS \%WINDOWS_DIR%\SYSTEM\VBEMP.VXD \%WINDOWS_DIR%\INF\vbemp.inf \%WINDOWS_DIR%\INF\vbemp.pnf
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class\Display - delete all \\HKEY_LOCAL_MACHINE\ENUM\PCI - delete all VEN_xxxx&DEV_yyyyy&SUBSYS_zzzzzzzz entries ( for your card ONLY )
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.
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.rar
When you have problems with VBEMP, 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:
MSKB: How to set up a remote debug session using a null modem cable (Q151981) 9-Pin NULL Modem Cabling Remote host serial port connector Host system serial port connector Signal 3 2 Transmit Data 2 3 Receive Data 7 8 Request to Send 8 7 Clear to Send 6, 1 4 Data Set Ready and Carrier Detect 5 5 Signal Ground 4 6, 1 Data Terminal Ready 25-Pin NULL Modem Cabling 2 3 Transmit Data 3 2 Receive Data 4 5 Request to Send 5 4 Clear to Send 6 20 Data Set Ready and Carrier Detect 7 7 Signal Ground 20 6 Data Terminal Ready
[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 automaticly 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.
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
* term abbreviated to VBEMP below.
Thank you for using VBEMP.
Bearwindows and AnaPa Corporation