Support for 16bpp/32bpp VBE 2.0 modes
This is probably an extremely niche use case, but since I remember talks about modern OS support in Doomworld:
Can support for 16bpp/32bpp VBE modes be added? AMD GPUs since the GCN era do not support or even list VESA 2.0 8bpp modes properly, so it'd be useful on modern platforms.
Next release will have 15, 16, 24 and 32 bpp support for backbuffered VBE modes, stay tuned 😁
Yep, you're right, AMD GCN cards have very bad VBE implementation. This is my Radeon Pro VII right now (other cards / emulators work fine).
If it displays Windows XP (or Vista/7's recovery/setup environment) correctly it should also display FastDoom correctly.
FastDoom 1.1.0 is now available 😄
All modes that are supported work, except 800x600 where it seems to pick a wrong pitch value.
Which video card are you using?
AMD Radeon RX 460.
Ok, found the issue. Turns out 800x600 in GCN cards use more bytes per line than required. For example, in regular 16bpp modes 2 bytes are required per pixel, so 1600 bytes per line.
But in my Radeon VII, this is the description for the mode:
mode #3 [114]: 800x600x16 bpp, 1 plane(s), 1 bank(s) of 0 KiB, 1664 B/line, wingran=64 KiB, winsize=64 KiB, supported, color, gfx, notvga, lfb winA: reloc read write bnk R 5(11) G 6(5) B 5(0) lin R 5(11) G 6(5) B 5(0) usable
So that's why the image gets scrambled.
Is this fixable then?
Yes, it is fixable, this fix will be available in the next release
It works well now, thanks.