Add support for all high-definition and quad extended graphics array
resolutions as listed on Wikipedia.

https://en.wikipedia.org/wiki/Graphics_display_resolution

Signed-off-by: Elliot Killick <elliotkill...@zohomail.eu>
---
 vgasrc/svgamodes.c | 87 +++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 75 insertions(+), 12 deletions(-)

diff --git a/vgasrc/svgamodes.c b/vgasrc/svgamodes.c
index 6e494c7..af71853 100644
--- a/vgasrc/svgamodes.c
+++ b/vgasrc/svgamodes.c
@@ -72,25 +72,88 @@ struct generic_svga_mode svga_modes[] VAR16 = {
     { 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } },
     { 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } },
     { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
-    { 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } },
-    { 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } },
     { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
-    { 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } },
-    { 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } },
-    { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
     { 0x18d, { MM_DIRECT, 1280, 720,  16, 8, 16, SEG_GRAPH } },
     { 0x18e, { MM_DIRECT, 1280, 720,  24, 8, 16, SEG_GRAPH } },
     { 0x18f, { MM_DIRECT, 1280, 720,  32, 8, 16, SEG_GRAPH } },
     { 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } },
     { 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } },
     { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x193, { MM_DIRECT, 1600, 900,  16, 8, 16, SEG_GRAPH } },
+    { 0x194, { MM_DIRECT, 1600, 900,  24, 8, 16, SEG_GRAPH } },
+    { 0x195, { MM_DIRECT, 1600, 900,  32, 8, 16, SEG_GRAPH } },
+    { 0x196, { MM_DIRECT, 960,  540,  16, 8, 16, SEG_GRAPH } },
+    { 0x197, { MM_DIRECT, 960,  540,  24, 8, 16, SEG_GRAPH } },
+    { 0x198, { MM_DIRECT, 960,  540,  32, 8, 16, SEG_GRAPH } },
+    { 0x199, { MM_DIRECT, 1280, 1080, 16, 8, 16, SEG_GRAPH } },
+    { 0x19a, { MM_DIRECT, 1280, 1080, 24, 8, 16, SEG_GRAPH } },
+    { 0x19b, { MM_DIRECT, 1280, 1080, 32, 8, 16, SEG_GRAPH } },
 
-    /* custom resolutions for 16:9 displays */
-    { 0x193, { MM_DIRECT, 1600,  900, 16, 8, 16, SEG_GRAPH } },
-    { 0x194, { MM_DIRECT, 1600,  900, 24, 8, 16, SEG_GRAPH } },
-    { 0x195, { MM_DIRECT, 1600,  900, 32, 8, 16, SEG_GRAPH } },
-    { 0x196, { MM_DIRECT, 2560, 1440, 16, 8, 16, SEG_GRAPH } },
-    { 0x197, { MM_DIRECT, 2560, 1440, 24, 8, 16, SEG_GRAPH } },
-    { 0x198, { MM_DIRECT, 2560, 1440, 32, 8, 16, SEG_GRAPH } },
+    /* other high-definition resloutions */
+    { 0x19c, { MM_DIRECT, 2048, 1080, 16, 8, 16, SEG_GRAPH } },
+    { 0x19d, { MM_DIRECT, 2048, 1080, 24, 8, 16, SEG_GRAPH } },
+    { 0x19e, { MM_DIRECT, 2048, 1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x19f, { MM_DIRECT, 2160, 1080, 16, 8, 16, SEG_GRAPH } },
+    { 0x1a0, { MM_DIRECT, 2160, 1080, 24, 8, 16, SEG_GRAPH } },
+    { 0x1a1, { MM_DIRECT, 2160, 1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a2, { MM_DIRECT, 2560, 1080, 16, 8, 16, SEG_GRAPH } },
+    { 0x1a3, { MM_DIRECT, 2560, 1080, 24, 8, 16, SEG_GRAPH } },
+    { 0x1a4, { MM_DIRECT, 2560, 1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a5, { MM_DIRECT, 2560, 1440, 16, 8, 16, SEG_GRAPH } },
+    { 0x1a6, { MM_DIRECT, 2560, 1440, 24, 8, 16, SEG_GRAPH } },
+    { 0x1a7, { MM_DIRECT, 2560, 1440, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a8, { MM_DIRECT, 3200, 1800, 16, 8, 16, SEG_GRAPH } },
+    { 0x1a9, { MM_DIRECT, 3200, 1800, 24, 8, 16, SEG_GRAPH } },
+    { 0x1aa, { MM_DIRECT, 3200, 1800, 32, 8, 16, SEG_GRAPH } },
+    { 0x1ab, { MM_DIRECT, 3440, 1440, 16, 8, 16, SEG_GRAPH } },
+    { 0x1ac, { MM_DIRECT, 3440, 1440, 24, 8, 16, SEG_GRAPH } },
+    { 0x1ad, { MM_DIRECT, 3440, 1440, 32, 8, 16, SEG_GRAPH } },
+    { 0x1ae, { MM_DIRECT, 3840, 1080, 16, 8, 16, SEG_GRAPH } },
+    { 0x1af, { MM_DIRECT, 3840, 1080, 24, 8, 16, SEG_GRAPH } },
+    { 0x1b0, { MM_DIRECT, 3840, 1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x1b1, { MM_DIRECT, 3840, 1600, 16, 8, 16, SEG_GRAPH } },
+    { 0x1b2, { MM_DIRECT, 3840, 1600, 24, 8, 16, SEG_GRAPH } },
+    { 0x1b3, { MM_DIRECT, 3840, 1600, 32, 8, 16, SEG_GRAPH } },
+    { 0x1b4, { MM_DIRECT, 3840, 2160, 16, 8, 16, SEG_GRAPH } },
+    { 0x1b5, { MM_DIRECT, 3840, 2160, 24, 8, 16, SEG_GRAPH } },
+    { 0x1b6, { MM_DIRECT, 3840, 2160, 32, 8, 16, SEG_GRAPH } },
+    { 0x1b7, { MM_DIRECT, 4096, 2160, 16, 8, 16, SEG_GRAPH } },
+    { 0x1b8, { MM_DIRECT, 4096, 2160, 24, 8, 16, SEG_GRAPH } },
+    { 0x1b9, { MM_DIRECT, 4096, 2160, 32, 8, 16, SEG_GRAPH } },
+    { 0x1ba, { MM_DIRECT, 5120, 2160, 16, 8, 16, SEG_GRAPH } },
+    { 0x1bb, { MM_DIRECT, 5120, 2160, 24, 8, 16, SEG_GRAPH } },
+    { 0x1bc, { MM_DIRECT, 5120, 2160, 32, 8, 16, SEG_GRAPH } },
+    { 0x1bd, { MM_DIRECT, 5120, 2880, 16, 8, 16, SEG_GRAPH } },
+    { 0x1be, { MM_DIRECT, 5120, 2880, 24, 8, 16, SEG_GRAPH } },
+    { 0x1bf, { MM_DIRECT, 5120, 2880, 32, 8, 16, SEG_GRAPH } },
+    { 0x1c0, { MM_DIRECT, 7680, 4320, 16, 8, 16, SEG_GRAPH } },
+    { 0x1c1, { MM_DIRECT, 7680, 4320, 24, 8, 16, SEG_GRAPH } },
+    { 0x1c2, { MM_DIRECT, 7680, 4320, 32, 8, 16, SEG_GRAPH } },
+    { 0x1c3, { MM_DIRECT, 17280,4320, 16, 8, 16, SEG_GRAPH } },
+    { 0x1c4, { MM_DIRECT, 17280,4320, 24, 8, 16, SEG_GRAPH } },
+    { 0x1c5, { MM_DIRECT, 17280,4320, 32, 8, 16, SEG_GRAPH } },
+
+    /* quad extended graphics array resolutions */
+    { 0x1c6, { MM_DIRECT, 2048, 1152, 16, 8, 16, SEG_GRAPH } },
+    { 0x1c7, { MM_DIRECT, 2048, 1152, 24, 8, 16, SEG_GRAPH } },
+    { 0x1c8, { MM_DIRECT, 2048, 1152, 32, 8, 16, SEG_GRAPH } },
+    { 0x1c9, { MM_DIRECT, 2048, 1536, 16, 8, 16, SEG_GRAPH } },
+    { 0x1ca, { MM_DIRECT, 2048, 1536, 24, 8, 16, SEG_GRAPH } },
+    { 0x1cb, { MM_DIRECT, 2048, 1536, 32, 8, 16, SEG_GRAPH } },
+    { 0x1cc, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } },
+    { 0x1cd, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } },
+    { 0x1ce, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
+    { 0x1cf, { MM_DIRECT, 2560, 2048, 16, 8, 16, SEG_GRAPH } },
+    { 0x1d0, { MM_DIRECT, 2560, 2048, 24, 8, 16, SEG_GRAPH } },
+    { 0x1d1, { MM_DIRECT, 2560, 2048, 32, 8, 16, SEG_GRAPH } },
+    { 0x1d2, { MM_DIRECT, 3200, 2048, 16, 8, 16, SEG_GRAPH } },
+    { 0x1d3, { MM_DIRECT, 3200, 2048, 24, 8, 16, SEG_GRAPH } },
+    { 0x1d4, { MM_DIRECT, 3200, 2048, 32, 8, 16, SEG_GRAPH } },
+    { 0x1d5, { MM_DIRECT, 3200, 2400, 16, 8, 16, SEG_GRAPH } },
+    { 0x1d6, { MM_DIRECT, 3200, 2400, 24, 8, 16, SEG_GRAPH } },
+    { 0x1d7, { MM_DIRECT, 3200, 2400, 32, 8, 16, SEG_GRAPH } },
+    { 0x1d8, { MM_DIRECT, 3840, 2400, 16, 8, 16, SEG_GRAPH } },
+    { 0x1d9, { MM_DIRECT, 3840, 2400, 24, 8, 16, SEG_GRAPH } },
+    { 0x1da, { MM_DIRECT, 3840, 2400, 32, 8, 16, SEG_GRAPH } },
 };
 unsigned int svga_mcount VAR16 = ARRAY_SIZE(svga_modes);
-- 
2.30.0


_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to