@Amplifuzz
You don't really need a ton of custom video modes, since the resolution stays the same, and you only have seven or so different refresh rates at maximum to deal with. Two config lines like "lcd_native_res=1920x1080" and "lcd_range=50-60" or whatever the monitor supports would cover it.
on groovymame, sure, but raspberry pi only understands discreet videomodes. you have to tell it when you want to use a new videomode. in retropie, using the runcommand, you would have to add each videomode to the list, and when selected they would have to call the api command i linked above (since these aren't videomodes in the raspberry pi's limited list of videomodes)
I'm afraid that the whole 'snap to the closest available refresh rate once the native ROM refresh is detected' part is best handled by the emulator itself, as well.
agreed, but for that to happen someone woudl have to update CRT switchres (or something similar) in retroarch such that it can communicate with the pi's custom videocore API calls (see the link above).
i'm told that you can get crt switch res to work with pi, but only under X. we don't use X in retropie. there's some info on this on the (huge) crt switch res thread over at libretro: https://forums.libretro.com/t/retroarch-native-crt-support