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 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 is very simple one & does not provide any kind of 3D hardware acceleration (DirectX & OpenGL).
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 Windows XP/2003 64-bit editions and Windows Vista.
Before installing VBEMP.SYS I recommend removing any display drivers installed and switching to the standard VGA mode 640x480x16colors.
!!! Windows 2003/Windows XP version is not necessarily needed because basic functionality of it is also included in standard VGA.SYS. Comparing to my driver, VGA.SYS supports 4-bit (16 colors) modes, but cannot works correctly with some cards, cannot switch to modes less than 640x480 and also cannot switch display refresh rates, provided by VBE 3.0 standard.
|
OS |
Version |
Description |
Link |
|
Windows NT, |
Release version |
Universal VBE30 & VBE20 versions.** |
|
|
Windows NT, |
"STABLE" |
Universal VBE30 & VBE20 versions.** |
|
|
Windows NT clones - ALL of them |
Debug version *, source |
VGA13h USWC 320x200 8bit version works with any VGA-compatible cards. |
|
|
Windows NT 4.0 only |
Release version |
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 clones - ALL of them |
Release version |
STDVID 4bit version, works with any (EGA?)VGA-compatible cards. Direct VGA.SYS replacement. |
|
|
Windows NT clones - ALL of them |
Release version |
Universal VBEMP control panel extension. |
|
|
Windows NT 4.0 only |
Release version |
FRAMEVBE shadow buffer accelerated library. |
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 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 PCI32.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 . . . . . .
* 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:factory.exe -winpeThis line will start the driver.
Hive : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vbemp\Device0Here are the values:
or HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Vgasave\Device0 in legacy mode In some cases, hive path is different: 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 ... depending on selected hardware configuration.
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.
Key : VBE_GREY Value : (REG_DWORD) 1 or 0Meaning : if "0" or key is not exists VBEMP in 256-color modes uses standard palette, if "1" - greyscaled one.
Key : VBE_VENDORID Value : (REG_DWORD) PCI vendor ID, only these values are allowed:Meaning : This value has meaning only for ISA/VLB cards. (first appear in may2007 version!).
1. 0x100C (Tseng Labs Inc) 2. 0x1013 (Cirrus Logic) 3. 0x5333 (S3 Inc)
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)Meaning : You get this value from video card documentation or you must know it definetely and have some options:
Key : VBE_USWC Value : (REG_DWORD) 1 or 0Meaning : if "0" or key is not exists Write Combining feature (USWC) is disabled, if "1" - enabled. (first appear in june2007 version!).
Key : VBE_ALIGN Value : (REG_DWORD) 2, 1 or 0Meaning : 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!).
Key : VBE_VSYNC Value : (REG_DWORD) 1 or 0Meaning : if "0" or key is not exists Vertical sync polarity is negative, if "1" - positive. (first appear in june2007 VBE30 version only!).
Key : VBE_HSYNC Value : (REG_DWORD) 1 or 0Meaning : if "0" or key is not exists Horizontal sync polarity is negative, if "1" - positive. (first appear in june2007 VBE30 version only!).
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_DDC Value : (REG_DWORD) 1 or 0Meaning : if "0" or key is not exists VBEMP does not detect DDC monitor using PnP-manager, if "1" - detects it. (first appear in june2007 version! Not for legacy-mode drivers!).
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 100hzMeaning : if key is not exists VBEMP does use mode filtering. (first appear in july2007 version!).
Key : VBE_EDID Value : (REG_DWORD) 1 or 0Meaning : if "0" or key is not exists VBEMP does not detect DDC monitor using internal driver routines, if "1" - detects it. (first appear in july2007 version!).
Key : VBE_RAWEDID Value : (REG_BINARY)Meaning : When VBE_EDID = 1, EDID block is written here. (first appear in july2007 version!).
#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
);
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);
...
}
Official VESA BIOS Extensions 3.0 standard information - http://www.vesa.org/public/vbe/vbe3.pdf.
Help file "Display and print devices: Windows XP DDK" (Built on Friday, February 18, 2005) - g.zip.
Visit ReactOS operating system 'tm subversion repository to review the sources of most recent original vbemp.sys driver version - http://svn.reactos.org/.../miniport/vbe/
Visit VirtualBox 'tm subversion repository to review the sources of most recent driver for virtual videoadapter - http://www.virtualbox.de/.../WINNT/Graphics?rev=1
SciTech Software Inc released commercial version of a similar driver (SciTech SNAP Graphics ENT) 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.
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 videosim.zip.
MIRROR.SYS frame buffer mirror sample videodriver source from Windows 2000 DDK mirror.zip.
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 LOGGED-version (for step 1) or a DEBUG-version (for steps 2,3) of driver from me by e-mail. For steps 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:
C: [Enter] cd C:\DbgDump [Enter] DbgPrintLog -wd C:\ --drv:inst 1 --svc:inst A --drv:opt DoNotPassMessagesDown 1 --drv:opt StopOnBufferOverflow 0 BootVbe.log [Enter]
C: [Enter] cd C:\DbgDump [Enter] net stop DbgPrintLog.exe [Enter] DbgPrintLog --drv U --svc U [Enter]
[boot loader] timeout=30 multi(0)disk(0)rdisk(0)partition(2)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Version 4.00" multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Version 4.00 [VGA mode]" /basevideo /sosAfter:
[boot loader] timeout=30 multi(0)disk(0)rdisk(0)partition(2)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Version 4.00" multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Version 4.00 [VGA mode]" /basevideo /sos multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Version 4.00 DBG" /debug /baudrate:19200 /debugport:COM2When starting target PC you must select in menu "Windows NT Version 4.00 DBG" line for debugmode activation.
[Version]
signature="$Windows NT$"
ClassGUID={00000000-0000-0000-0000-000000000000}
. . . . . .
. . . . . .
OsLoadOptions ="/fastdetect /minint /noguiboot"
. . . . . .
After:
[Version]
signature="$Windows NT$"
ClassGUID={00000000-0000-0000-0000-000000000000}
. . . . . .
. . . . . .
OsLoadOptions ="/fastdetect /minint /noguiboot /debug /baudrate:19200 /debugport:COM2"
. . . . . .
@del *.log @cls @rem Specify which com port to use. (Default = com1) @set _NT_DEBUG_PORT=com2 @rem Specify the baud rate used by debugging serial port. (Default = 19200) @set _NT_DEBUG_BAUD_RATE=19200 @rem If specified, all output will be written to this file from offset 0. @set _NT_DEBUG_LOG_FILE_OPEN=vbe.log @i386kd.exe -v -failinc
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
PCI32.EXE -R -D > devpci.txt pci_w.exe -R -D -P -M -5 > devpci.htmPlease send me vbe.txt, devpci.txt, devpci.htm in compressed view (rar, zip, 7z...) by email.
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, 865G, 915G (may be others) |
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
2004.05.06
[?] start researching vbemp.sys from ReactOS 0.2.3 (pre-04/06/26 version)
2004.07.24
[?] work in progress: consulting with ReactOS team members...
2004.10.29
[?] work in progress: MSVC6 code adaptation...
2005.04.20
[?] work in progress: making XP version...
2005.05.03
[?] work in progress: making NT/W2K version...
2005.05.16
[?] work in progress: making NT/W2K version...
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 Reactos 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/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
[!] annouced 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/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
[!] reactos 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
* term abbreviated to VBEMP below.
Thank you for using VBEMP.
Bearwindows and AnaPa Corporation