On 20/07/2024 23:50, Felix Natter via Freedos-devel wrote:
- is VESA framebuffer even supported by modern GPUs (i.e Intel onboard
   HD graphics) or emulated by freedos? If yes, what framebuffer
   layout/resolution?
If it supports BIOS booting of being UEFI-only, it'll probably be *VGA*-compatible enough to run Commander Keen 4 without needing the "SVGA fix" setting... which is to say, pretty compatible.

As for SVGA, the later the video BIOS, the worse it gets, *especially* on NVidia (I'm looking through some posts on the internet at the moment). Since about 2012ish the video BIOS has bitrotted to the point where you can set a double-buffered mode but can't actually page flip due to 4F07h. Also to make matters worse, since about 2018 it picks a weird framebuffer pitch length and you can't change it. (Search for "MSKVBEF7" for some info + a tool that will work around the first issue.)

I don't think I extensively tested it on my 2016 AMD Stoney Ridge laptop (which handles Keen 4 just fine), although I can shove my FreeDOS USB stick into it and do some testing if necessary.

My 2008 Intel GMA 4500MHD had a fair bit more VGA testing (this thing is VGA-compatible enough to do the abomination known as "8bpp blink mode") though I don't recall doing much SVGA testing on that either. Some years ago I did have some success with programming the GPU directly (got a nice image and the blitter worked but the actual *GPU* side of things I had no luck with) and even in its "native" mode it can do 8bpp paletted.

As for the more modern stuff? I have reason to believe that they can still leverage an arbitrary gamma curve palette for an 8bpp mode (the arbitrary gamma curve seems to be a thing on my AMD GPUs on this Linux box - X11 has some weird features that *still* work), and a "quick" glance through Intel's 2023 GPU documentation suggests that this is the case (not only mentioning the "legacy palette" settings for each of the 4 "pipes" but also *still* having VGA compatibility registers). But once again, no guarantees that the video BIOS actually behaves itself (or even exists?).

Long story short... you'd probably be better off running things in a VM. QEMU should be fine for this purpose, though 86Box is also an option if you want things to be more authentic. Just be aware that a machine that can do 1024x768x8 potentially also needs a beefy CPU to emulate it at the correct speed... but a 486DX4 still emulates well on any modern machine, it's when you get into Pentium emulation that the host CPUs start crying.

- Do you recommend to use GCC (like with RHIDE in DJGPP) or shall I port
   my code to OpenWatcom1/2 (I saw that nasm is supported)?
Both work, although admittedly I tend to struggle with OpenWatcom *on* a real FreeDOS machine, especially when using WMAKE (1.9 can be coaxed, but 2.0 beta is hopeless once I try to link something at least when I try to do it with WMAKE). If you're happy with DJGPP then stick with it, I don't recall having any issues with it.

- Ben R


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to