[HN Gopher] Win16 Retro Development ___________________________________________________________________ Win16 Retro Development Author : naetius Score : 93 points Date : 2022-12-24 18:37 UTC (4 hours ago) (HTM) web link (www.os2museum.com) (TXT) w3m dump (www.os2museum.com) | ComputerGuru wrote: | Nice read. I wouldn't have minded more technical details about | the implementation and challenges, but that's probably because | I've had to write generic SVGA drivers to support generic | graphics cards before. (I'm not clear on what was the more | convenient alternative to VMs that the author ended up using, | though?) | | Side-bar but still on-topic: It _really_ irks me to no end that | Windows 3.x and Windows 95 could get a fairly hardware-agnostic | (fallback) software-rendered GUI fully up and running and exposed | to user space in the early 90s and even today Linux /BSD can't | manage that (even just in SVGA mode) without vendor specific | drivers. Xfree86 and then Xorg with the fb driver were attempts | at doing the same but I can attest they never achieved that same | universality. I had hoped EFI fb could finally give us the same | for modern PCs but the chances of open source efifb drivers _in | userland_ working on a chipset /implementation they haven't been | tested against are a real crapshoot. | | I had "success" (compared to the status quo, not compared to the | situation on Windows) writing X drivers that wrote to the kernel | framebuffer but that broke when everything was rewritten or | deprecated in order to support EFI. Even then, the support for | listing supported modes and changing to them was very poor (which | make sense given how little serious use the kernel frame buffer | sees), never mind figuring out what modes intersected with those | the display supported. Laptops with integrated plus discrete | graphics cards (or desktop motherboards with the same) were also | problematic for various reasons. | fredoralive wrote: | Wasn't Windows back then dependent on vendor supplied device | specific display drivers for anything above basic VGA? There | wasn't a real standard for "SVGA", and the VBE stuff wasn't | that well supported early on? | | The Windows fallback until circa Windows XP was good old | 640x480x16. | tomcam wrote: | > Wasn't Windows back then dependent on vendor supplied | device specific display drivers for anything above basic VGA? | | In theory, yes, but the reality was starkly different as I | recall (I worked there in the late 90s). In my experience, | Microsoft was doing a ton of heavy lifting helping vendors | with device drivers. | mjg59 wrote: | Historically you wanted the -vesa Xorg driver, today | -modesetting should work fine on the firmware-provided | framebuffer using simpledrm. But the EFI spec provides no way | to change screenmode at runtime, so you're going to need a | native driver for that under all circumstances. | ComputerGuru wrote: | IIRC in real-world testing on actual consumer hardware in the | field (sample size in the hundreds of thousands), we found | fbdev was better supported than vesa (with more restrictions, | of course). | | Inability to change EFI resolution is OK except with high-res | (4k) discrete GPUs running without scaling. But that's ok | because you can do fake DPI scaling in software - the actual | tissue is performance at 4k sucks if not hardware | accelerated. | | Bigger problem today is that EFI fb support is still in its | nascence both manufacturer- and software-side. Manufacturers | ship crap that's not up to spec while some EFI FB handlers | are too strict in what they expect or haven't added quirks | for some of the very common hardware you might run across. | mjg59 wrote: | fbdev would only work on BIOS systems if you were using | vesafb or had a hardware-specific framebuffer driver | loaded. Vesafb would tend to cause problems with | suspend/resume and needed to be configured with bootloader | arguments (the kernel had no support for transitioning to | real mode and the protected mode entry point for VBE | basically never worked, so either the bootloader or the | 16-bit kernel entry code needed to be used to do the mode | setting). The -vesa ddx either ran in vm86 mode or used x86 | emulation code so could do more setting at runtime. I don't | know of any cases where vesafb would work and -vesa | wouldn't. I did a bunch of the hardware enablement work for | Ubuntu back in 2004/2005, so real world deployment | experience here is in the millions. | | I've no idea what you're talking about as far as EFI fb | support goes. The spec literally does not provide a | mechanism for a running OS to get anything other than a | pointer to a linear framebuffer and the metadata you need | to use it. There's nothing more to support. What quirks are | you talking about? | Teknoman117 wrote: | I remember using Xvesa in the 00's on 90's hardware with | great success. Damn Small Linux, etc. | | iirc, -vesa got kinda bad after the advent of the "GPU". | Cards didn't natively support VBE and emulated a subset of it | just for compatibility purposes. | | It's gotten worse these days. I don't know if I'd call it a | bad thing though - with the push for hardware accelerated | rendering to help with battery life on portable devices, many | of the desktop environments have lost support for "software" | graphics. They instead depend on software OpenGL support via | llvmpipe and chug hard even on modern devices (if you don't | have a driver installed) and VMs. | ComputerGuru wrote: | While it's true that having a better proliferation of | hardware accelerated displays in use is a net win, you | can't discount the need to be able to bring up a GUI on | generic hardware without knowing the underlying stack in | advance. | | While under X it was possible to install a dozen drivers | and - mostly - be able to cycle through them (auto | detection sucked and continues to suck at matching drivers | to hardware via manufacturer/device ids), DRM/KMS drivers | are unfortunately another story. You often cannot bring up | a KMS driver for one hardware on another and expect to be | able to gracefully unload if it's not supported. There KMS | drivers that can't be installed in parallel (you have to | choose which set of cards to support over the other a | priori), and there is a _ton_ of legacy hardware that will | never get KMS drivers working, ever. | mjg59 wrote: | What KMS driver will attempt to bind to unsupported | hardware, and which other KMS driver would you be | attempting to replace it with in that scenario? | mjg59 wrote: | Some degree of VBE is required for Windows to boot in BIOS | mode (and even in EFI mode before Windows 8 for really | tedious reasons). I'd expect it to be fine for basic mode | setting, but you're still stuck with the modes the card | firmware provides which means it's probably 4:3 ratios. | kevin_thibedeau wrote: | I recently installed FreeDOS on a Ryzen system to get a | parallel port device working. It boots fine but anything that | uses graphics modes is flaky and will often hang the machine | hard where Ctrl+Alt+Del doesn't work. SB16 compatibility is out | of the question. | | Curiously I got it into a weird mode where artifacts from a | corrupted framebuffer in DOS were persistent on screen as a | faint ghost image after booting into Linux even when cycling | the power for a short duration. I have no idea how that could | happen. | ok123456 wrote: | CMake macros for cross compiling Win16 binaries with Openwatcom | were just added to CMake earlier this month. | kybernetyk wrote: | Man, I'm a sucker for the Win 3.11 UI. I wish there was an option | to use this style of UI on modern systems. | jmclnx wrote: | [flagged] | msla wrote: | Is ShieldSecurity a problem on your end or the site's end? | jmclnx wrote: | Yes, with my VPN source IP, many sites work fine (like | hackernews). | | But if sites that does not need to know personal information | cares about my source IP, then I say "too bad". The only | sites that should care where I am from are sites like | banking, credit card, etc. | blueflow wrote: | Avoid using low-reputation addresses for surfing. If you | fail to differentiate yourself from the spammers, website | hosters can say "too bad" to you, too. | [deleted] ___________________________________________________________________ (page generated 2022-12-24 23:00 UTC)