I have reviewed the changes, and I feel we are still missing support for many valid modes that could be dumped but don't require non-standard NEO extensions.
I have prepared a new PR here to address this:
The explanation is there, but I'll summarize here:
My original PR only contained a very small amount of code to support non-standard NEO extensions for video modes it can't represent in its traditional form. I believe my comments explaining it were misunderstood to indicate that a large portion of the code was written to accommodate this, which was not the case. Unfortunately the PR was heavily modified and merged without giving me a chance to comment beforehand, otherwise I would have been willing to adapt the PR myself.
I have re-integrated the merged changes back into my original PR (configuration rename, etc.) to limit the PR to be as minor as I can, to only the one function to write a NEO file.
I have re-introduced the code needed to support the missing resolutions. This covers cases like when Falcon is 320x200x4bpp yet not in compatibility mode, among many others.
The non-standard NEO palette extension code is removed, and non-standard BPP or dimensions are now forbidden by the error case. I left additional comments explaining exactly what is lacking for the cases that are being rejected with the errors, to help if future maintenance is needed.
-- Brad Smith
I merged part of other Brad's patches to support TT and Falcon modes
(with their palette) but with additionnal checks that only ST/STE
compatible resolutions can be saved in .NEO format (ie 320x200, 640x200
and 640x400).
If not, a warning message will be displayed.