Short: Improves BestModeID() on ECS/AGA, CyberGfx, Picasso Author: Andreas_Kleinert@t-online.de Uploader: Andreas_Kleinert t-online de Type: util/sys Architecture: m68k-amigaos Due to various problem with graphic.library's BestModeID() function, people began to complain about odd resolutions generated by several subclass "picture" datatypes, which use this function, as well as any image viewers, which did not work-around that for themselves. This patch tries to improve this for AGA systems by patching the more simple cases only. As long as BIDTAG_DIPFMustHave BIDTAG_DIPFMustNotHave BIDTAG_ViewPort BIDTAG_MonitorID BIDTAG_SourceID BIDTAG_RedBits BIDTAG_BlueBits BIDTAG_GreenBits are *not* supplied, the new patch will take place, otherwise the old BestModeID() function will take over. The patch works as follows: - get width, height, depth requirements - check, whether CyberGraphX is installed (if it is, then pass over to the corresponding CyberGraphX function), else check, whether PicassoII or Picasso96 Emu (vilintuisup.library) is installed (if it is, then pass over to the corresponding vilintuisup function) - after that, check if the ModeID is still 0L (LowRes) or whether one of the emus did return an unavailable or INVALID_ID and begin our own mode id generation (ECS/AGA sensitive) - return the mode id Request for Discussion and Comments: ------------------------------------ Note, that the plain ECS/AGA mode id generation is quite trivial and may still be improveable, thus this patch includes its source code, and anyone who likes, may improve it and publish the results. --- All mentioned trademarks are subjects to their owners.