Miscellaneous

SVGA driver patch for Windows 3.1

This program patches SVGA256.DRV to make it work for VMware. SVGA256.DRV is a 256 color video driver for Win 3.x but it supports only several particular graphic cards by itself. The driver is included in Win 3.11 and WfW 3.11 but you should be able to find it somewhere in the net to use on Win 3.1 (google "SVGA.EXE").

It's not perfect and has many limits and caveats (see readme in the zip file), but I guess it's much better than 640x480/16 screen. And although it's not lightning fast, it certainly runs faster and responsive than standard VGA.


Windows 3.11 with an XP wallpaper.
Not a fake, in case you doubt ;-)
(click for a large image).

This patch is written based on Japheth's SVGApatch program (http://www.japheth.de/). His version is a more generic patch for VESA compliancy. I just adjusted it for VMware and fixed a few VMware specific problems. Many thanks to him and cheers to free software developers over the world!


BeOS 5 PE guest configuration tips

  • To automatically power off the virtual machine after shutdown edit "~/config/settings/kernel/drivers/kernel" file (if you don't have it already, copy it from ~/config/settings/kernel/drivers/samples/kernel) and uncomment the following line:
    enable_shutdown true        # enable power-off on system shutdown
    
  • To use a specific VESA video mode automatically on system startup (i.e. without manually choosing the mode every time) create "~/config/settings/kernel/drivers/vesa" file containing only one line which looks like:
    mode 1024 768 16
    
    As you probably can see, these three values stand for X resolution, Y resolution and color depth respectively.
    The following combinations are possible, though some may not work:
    640  400  8 or 16
    640  480  8 or 16
    800  600  8 or 16
    1024 768  8 or 16
    1152 864  8 or 16
    1280 960  8 or 16
    1280 1024 8 or 16
    1400 1050 8 or 16
    1600 1200 8 or 16
    1792 1344 8 or 16
    1856 1392 8 or 16
    1920 1440 8 or 16
    You should try both color depth if one failed.

mprapi.dll wrapper for Windows host

I have been slightly annoyed since I switched to VMware Workstation version 4.5 (I believe) that VMware got to take very long time (30 seconds to 1 minutes) to startup. It has been also annoying that network adapter names are totally garbled in the Virtual Network Settings dialog box (screen shot).

Recently I have discovered the culprit: MprConfigGetFriendlyName() Win32 API used by VMware to get network adapter names always times out in my environment (Windows 2000 Professional Japanese /w SP4), causing both the delay and the garbled adapter names.

It is explained on Microsoft's document that it requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server. So it kind of makes sense that it fails on my machine.

To work around this problem without patching VMware executives, I wrote a wrapper DLL to intercept the Win32 API call.

If you have the same problems (and I think it is likely if you use Windows 2000 Professional), try putting the wrapper version of mprapi.dll in your VMware install directory (e.g. C:\Program Files\VMware\VMware Workstation) and see if the problem goes away.

For those who are interested in technical matters, the principal is pretty simple:

  1. because the wrapper version of mprapi.dll is in the same directory as VMware executives, VMware loads this dll instead of the system mprapi.dll according to the Windows 2000's dll search order.
  2. When VMware calls APIs in mprapi.dll other than MprConfigGetFriendlyName(), the wrapper dll simply call the system dll.
  3. When VMware calls MprConfigGetFriendlyName(), the wrapper dll looks up the adapter name in the registry by itself and returns the result.

NOTE: Windows XP with SP2 uses different DLL search order and it is possible that this method does not work (if the same problem happens on Windows XP). See the following Microsoft documents about DLL search order for more details: