[HN Gopher] Windows 9x Video Minidriver HD+
___________________________________________________________________
Windows 9x Video Minidriver HD+
Author : ingve
Score : 106 points
Date : 2022-06-06 16:49 UTC (6 hours ago)
(HTM) web link (www.os2museum.com)
(TXT) w3m dump (www.os2museum.com)
| dblohm7 wrote:
| Ah yes, AllocCStoDSAlias. You could do some fun stuff with that
| API and its inverse, AllocDStoCSAlias (or PrestoChangoSelector).
| userbinator wrote:
| I wrote a generic VESA framebuffer driver for Win9x a while back;
| it was surprisingly easy to get something working, as all it had
| to do was switch modes and then give the DIBENG the framebuffer
| to draw on. A few hundred lines of Asm were sufficient, most of
| it being the mode switch and configuration logic.
|
| What I didn't do was give it a VxD, so windowed DOS boxes didn't
| fully work --- the architecture of 9x is a hypervisor and what
| isn't trapped/virtualised goes directly to the HW, so the DOS
| boxes end up messing the state of each other and the "system VM"
| where the GUI runs. Unfortunately I don't know of a way to have a
| similarly generic virtualisation of the hardware.
| TazeTSchnitzel wrote:
| This is important work to make Windows 95 usable in VirtualBox!
|
| As it stands, where possible, it's a better experience to use
| Windows NT 4.0 instead. Since it is more similar to modern
| Windows versions than Windows 9x is, it runs flawlessly in
| VirtualBox, yet it has that 1990's look and feel, and can run
| most Windows 9x software. But not all, alas.
| jeroenhd wrote:
| The lack of good high-res drivers has been a pain whenever I
| wanted to run old versions of Windows in QEMU/virt-manager.
|
| Will this work in there as well or is this a VirtualBox only
| driver?
| mananaysiempre wrote:
| The BearWindows VESA driver (for 9x[1] and NT[2]) works well on
| QEMU. The last version of VBEMP that won't nag you on each boot
| is G. Of course, that does nothing about the rather poor
| support for resolution independence on historical Windows, so
| 1280x1024 is about the largest practical resolution.
|
| (Unfortunately, Sound Blaster 16 emulation is known to be
| broken in combination with the Gtk UI[3], so no / choppy sound
| for you, but things should work over SPICE. I've yet to find a
| SPICE client that will maintain a fixed 2:1 display scale with
| no interpolation.
|
| A helpful HN user described[4] how to enable SMB1 on recent
| versions of Samba and so share files over something other than
| floppy images, TFTP, or active FTP. I haven't found a better
| way to do this with QEMU's native Samba integration than
| launching it, then finding the generated smb.conf somewhere in
| /tmp and patching it.)
|
| [1] https://bearwindows.zcm.com.au/vbe9x.htm
|
| [2] https://bearwindows.zcm.com.au/vbemp.htm
|
| [3] https://gitlab.com/qemu-project/qemu/-/issues/469
|
| [4] https://news.ycombinator.com/item?id=29260861
| jeroenhd wrote:
| I've been real spoiled with the auto-resolution switching
| support with the QEMU guest agent and libvirt drivers and
| that becomes painfully obvious when I resize a Win2k/Win98 VM
| and scroll bars appear...
|
| I haven't had much trouble with the virt-manager GUI in terms
| of sound. For Win2K I could install the server edition and
| remote into it over RDP if it ever becomes an issue.
| freebreakfast wrote:
| You might consider 86Box. It's emulation rather than
| virtualization, but it supports a range of graphics cards. This
| makes it easier to use the default drivers and/or find other
| drivers online.
|
| Another emulation option is Bochs. I haven't played with it in
| years though.
| accrual wrote:
| Fun side note: Bochs has a working port on the PlayStation
| Portable (PSP). Booting up Windows 95 on my PSP in high
| school was my geeky party trick.
| jeroenhd wrote:
| I think I've tried messing with that before but I couldn't
| get it to work right. It's an extremely accurate emulation of
| the hardware but that comes at the cost of performance and
| the stuff I wanted to mess with for nostalgic reasons didn't
| really need emulation that accurate.
|
| Still solid options for anyone else looking into more
| accurate emulation of old machines, though, these two pieces
| of software can get keep that thirty year old piece of legacy
| software running for at least another decade or so!
| Laforet wrote:
| PCem is probably the more suitable emulator if accuracy is
| not as important.
| kmavm wrote:
| When I was at VMware in the 'aughts, VESA often saved us as an
| unaccelerated option for guests that didn't yet have a driver for
| our virtual display. Was there really no VESA driver for the 9x
| family? Or does QEMU's BIOS not do it or something?
| freebreakfast wrote:
| BearWindows and SciTech Display Doctor are the two VESA drivers
| which come to mind for Windows 9x. If I remember correctly Bear
| will also work in 3.x.
|
| I remember these being somewhat frustrating to get working with
| VirtualBox. I never tried with QEMU.
|
| I've personally moved away from virtualization for older OSes
| and to emulation. It just seems much easier to deal with even
| if it's more resource intensive.
| JohnBerea wrote:
| In Windows what advantage does 32-bit color give over 24-bit
| color? Does 32-bit have 11-11-10 bits per pixel instead of one
| byte each? From my limited experience with win32 programming I
| don't remember any API's that let programs specify colors with
| that much depth.
| dmitrygr wrote:
| it is usually RGBX8888 or XRGB8888, 4 bytes per pixel makes a
| lot of math easier
| JohnBerea wrote:
| So the last one isn't used, just padding for alignment. Got
| it.
| app4soft wrote:
| Hm, why screenshot resolution (1152x864) is different from
| 1920x1200, as it set in _" Display Properties > Settings >
| Desktop area"_?[0]
|
| [0] https://www.os2museum.com/wp/wp-
| content/uploads/2022/06/boxv...
| accrual wrote:
| This is interesting because I have direct experience with this
| on real hardware recently. I have a GeForce 4 MX440 graphics
| card connected via DVI to a native 1920x1200 display. Windows
| 98 will let me set the native resolution, but if I move the
| mouse outside the bounds (maybe 1152x864?) the whole screen
| will "pan" with the cursor and wrap to the other side of the
| screen. It's almost like 98 can display 1920x1200 but can only
| interact with a subset of it. I thought it was just some
| strange driver limit or an issue with my hardware, but maybe
| it's a limit in the core of the OS.
| userbinator wrote:
| That's probably something to do with the GPU driver. Win98
| doesn't really have any intrinsic limit on display resolution
| beyond the 16-bit limit (32k in each dimension, although I
| suspect you'll run out of address space for the framebuffer
| first) --- I've personally used 98se on a CRT at 2048x1536.
| gsich wrote:
| My memory could be wrong here but I had a 20" CRT which could
| output 2048x1536 with no panning.
| hexmiles wrote:
| if i remember correctly it's a feature of the driver,
| basically you can set resolution higher than what is
| supported by your screen and it will create a sort of virtual
| screen that is "mapped" to the real one via panning.
|
| Probably the gpu/driver don't recognize the resolution as
| supported by your monitor. It's should be possible to
| override that and set a custom resolution but i don't
| remember how... Sorry.
| bmacho wrote:
| It's in the comments: Michal Necasek says:
| June 6, 2022 at 10:30 pm Sure, the screenshot is
| of a 1152x864 desktop, showing the maximum resolution
| available in the dialog. I didn't see the point of
| wasting space with so many boring pixels
|
| They don't think that anyone was interested in a screenshot.
| phaker wrote:
| The 'apply' button is active so these are unapplied changes.
| etaioinshrdlu wrote:
| What I really want is good 3d acceleration on M1 windows vm's
| from 98 to Win 7, like I currently have using parallels on Intel
| Mac.
|
| (Okay, not quite. The 3d support seems to start at winxp. )
| muizelaar wrote:
| Source code is here: https://www.os2museum.com/hg/boxv9x/ The
| credentials are 'guest'/'guest'.
| TazeTSchnitzel wrote:
| https://guest:guest@www.os2museum.com/hg/boxv9x/
| mobilio wrote:
| Wow! That's fantastic!
| gfody wrote:
| > The Windows 95 DDK completely fails to mention this non-obvious
| yet crucial detail; I found it "documented" in U.S. Patent
| 6,525,743.
|
| I feel like windows development is riddled with this sort of
| thing, undocumented secrets that you just have to figure out for
| yourself. I wonder if it's deliberate from 1980's Microsoft being
| paranoid about corporate espionage or something.
___________________________________________________________________
(page generated 2022-06-06 23:00 UTC)