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