Improve mode substitution logic
Detail: This updates ScreenModes to use similar mode substition logic to Kernel-6_14: - Try higher colour depths - Try lower colour depths - Try alternate resolutions (half-width non-double-pixel if original was double-pixel, assorted industry-standard resolutions, and monitor preferred resolution/timings) - Plus tries to preserve as many attributes as possible (eigen values, gap mode type, etc.) Additionally, LineLength values in the input mode selector block will be used to influence the VIDC list ExtraBytes value, as per the kernel File changes: - c/ScrModes - Update Service_ModeTranslation and Service_ModeExtension handlers, as described above - h/modex - "const PixelFormatRef" is a const pointer to a non-const PixelFormat, but we want "const PixelFormat *", for a pointer to a const PixelFormat Admin: Tested on Raspberry Pi 3, Iyonix, IGEPv5 Note that we can't easily remove the Service_ModeTranslation handler from ScreenModes and rely purely on the one in the kernel because the kernel can't easily see which modes ScreenModes provides (ditto other Service_ModeTranslation handlers). Version 0.71. Tagged as 'ScrModes-0_71'
Showing with 531 additions and 128 deletions