• Jeffrey Lee's avatar
    Improve mode substitution logic · 6b9b62ab
    Jeffrey Lee authored
    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'
    6b9b62ab
VersionNum 814 Bytes