VOGONS

Common searches


First post, by zyzzle

User metadata
Rank Member
Rank
Member

I'm shocked and dismayed that this issue hasn't been brought up more frequently -- if at all -- on these wonderful forums. Please forgive me, as this is a bit of a rant of long-standing, but an important one. (if this is posted into the wrong forum area, please advise where I might get a better reply).

Does anyone run DOS bare metal on "modern" systems here? I'm talking about 2017-currrent chips, from the Intel i3/i5/i7 9th gen and up, or any of the AMD Ryzen chips. All of these systems have crappy, abominable, castrated DOS video support, although a 16-bit abstration layer is present many of these do have a "Legacy mode BIOS" and LBA mode support for booting DOS bare metal. The most hideous omission is a *total* lack of any VGA modes, and *any* 8-bit color support for VESA modes. Absolutely NO games run in such systems, for the want of a measly 320x200x8 mode 0x13h or 320x240x8 mode X. Even 640x480x8 doesn't work, and "modern" DOS games like, for example, Quake 2 DOS port, Hexen 2, and "modern" DOS versions of Doom fail to load. System freezes hard when even the fallback VGA 320x200 mode fails.

Why was this done? What's the technical reason? If you're going to go through the trouble of making a "legacy mode" BIOS, why make this totally unuseable with no VGA video and no 8-bit color support. These systems also do not have a LFB, and it's impossible to use write-combining to speed up DOS video access. As an example, I have a Ryzen 2520, only manages 292 mb/sec in 640x480x32 VBE3 mode 0x4101, since it's linear framebuffer has been castrated / eliminated! While an old i7-5500 2015 laptop manages 13120 mb/sec in that same mode 0x4101, with MTRRLFBE and its Writeback-combining enabled and put to full effect in DOS games like Quake, Quake 2, Hexen 2, etc.

If there's no way abound this lack of VGA modes in DOS on "modern" CPUs, is there some sort of DOS utility which will work around this issue? I remember a nifty program called VBEPLUS 0.81, which could "map" new modes to use existing modes in deficient VGA BIOSes. But, it only supports VGA modes, and I can't map, for example 320x200, 8 bit color to 640x480 16 bit color using this utility.

Is there absolutely no way, or other similar utility that can "fool" games which want a simple mode 13h VGA to start up in 640x480x16 as then they would at least run on these modern castrated, onboard video BIOSes. Is there any new possibly hacked video BIOS which can be burned into the VGA BIOS area which will enable and / or add the VGA modes and 8-bit color? Or is that impossible? The hardware must be able to support it, as it can run 16-bit and 32-bit color perfectly well.

Anyone? Need some help or advice here. I don't want to use DOSBox. I wish to run bare metal. There must be some coding experts here who could "fool" the old 1990s games which only want VGA, to instead universally use 640x480x16 or 32 bit instead as a sort of "abstraction" layer.

Reply 1 of 5, by darry

User metadata
Rank l33t++
Rank
l33t++

Unless you are using a laptop or SFF, it's probably easier to use a discrete PCI Express video card than to fight with legacy-limited onboard graphics, IMHO .

Additionally, newer Intel 500 series chipsets do not support legacy vBIOS functionality with the integrated GPU on Intel processors that have one . That means you can't even enable CSM (legacy non-UEFI BIOS compatibility) without a dedicated graphics card on motherboards with such chipsets . https://www.asus.com/us/support/FAQ/1045467

On another note, CSM is going to go the way of the dodo sooner rather than later anyway .

Consequently, and theoretically, addressing the problem in the long term would probably be done more usefully/effectively by either

a) implementing a bare-metal hypervisor (Type 1) that is UEFI capable and provides emulated legacy BIOS functionality and legacy (S)VGA/VBE emulation/conversion to whatever standardized video functionality is exposed by a video card on a motherboard in UEFI mode

b) implementing a UEFI module that implements equivalent functionality to CSM along with legacy (S)VGA/VBE emulation/conversion

I have no idea how realistically feasible either of these scenarios is .

Reply 2 of 5, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Meanwhile, for ugly fudgery to get things to work, there's a free VBE mode enabler with source code around for DOS, maybe hack that up to scale lower modes to double res.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 3 of 5, by zyzzle

User metadata
Rank Member
Rank
Member

Any link or github location for that VBE mode enabler code?

And, yes, the systems I'm using are laptops which have only onboard video with its terrible VBIOS in CSM legacy mode. It seems 8th Gen and earlier Intel onboard vBioses are still OK; they have hardware VGA modes and 8-bit color modes available. But, there is no possibility to enable VBE writeback cache combining using RayeR's MTRRLFBE utility or similar. (these systems just freeze when trying to enable the MTRRs on the Linear Framebuffer). In my research, onboard only from 5th Gen and earlier Intel Core systems will work with full LFB writeback cache combining. Further, all Ryzen onboard video BIOSes from the release of the chips in 2017 are affected with this awful castration of legacy VGA modes and lack of any 8-bit color modes, even for VBE3 VESA modes!

There must be a way to "hack" lower resolution screens into the VBios code (I'm able to dump the 64kb video BIOS code at its "normal" location just below the 1st megabyte of system memory). However, the problem arises in re-flashing the modified code back into the BIOS module on the motherboard, as this needs to be encrypted and pass a checksum, etc. My research also shows that at least 63 versions of Intel's "onboard vBIOS" have been released.) I'm trying to find out the last "good" Intel VBIOS before they were so crippled.

I know there are a lot of BIOS hackers and modifiers out there. What changed so much between 8th and 9th Gen Intel Core onboard video Bioses to result in such a regression in simple DOS mode 13h compatibility and elimination of all non-VESA resolutions. This was a stupid, crazy, awful thing to do. Why do it? Save a penny per motherboard by eliminating 16kb of video BIOS code??!! That's wickedly awful and shows how "evil" these companies are. Break something for no good reason at all. I'm talking about making thousands of games unplayable because not even 320x200 mode exists! Just an evil regression.

Reply 4 of 5, by Kahenraz

User metadata
Rank l33t
Rank
l33t

AMD Ryzen also has some kind of issue with the virtual 8086 instructions being broken or something. This has been an ongoing issue and is still present in the latest 5950X. It easily manifests when running in a virtual machine where the processor will misbehave due to direct instruction calls since it isn't being emulated in software.

VME Broken on AMD Ryzen

also:

https://www.reddit.com/r/windows98/comments/j … n_ryzen_vmware/
https://communities.vmware.com/t5/VMware-Work … zen/m-p/1406195

Reply 5 of 5, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++
zyzzle wrote on 2021-12-12, 04:04:

Any link or github location for that VBE mode enabler code?

This is the one I was thinking of.. https://shawnhargreaves.com/freebe/

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.