Use xmls to save overrides?

This is more of a suggestion because i know it can’t be done.

Right now you can save most available options per core, directory and game. The only exception is the core options themselves, these you can only save per core or game but not directory. But anyway, as things are right now, you have the ability to isolate different options however you want and cover most cases.

The problem however is that, as time passes and more overrides are saved, the easier it is for something to break when you update RetroArch or it’s cores. Here’s an example i had to deal with recently. There is a core option in the mupen_next core that allows you to use native resolution for 2D elements. This fixes the 2D graphics in many games but can also break other games, which is why it’s OFF by default. So in order to have the highest compatibility in my setup, i tested all N64 games one by one and made game overrides with this core option enabled for the games that need it.

This took me weeks and everything worked fine until one day all these overrides stopped working. The issue was that the core was updated and the option was changed. Instead of having it “enabled” or “disabled” you had 3 new options “disabled” “optimized” and “unoptimized”. But all the overrides expected the word “enabled” which didn’t exist anymore so it was ignored. I had to edit all cfgs (about 80-90) and manually change the word “enabled” to “optimized” in order to get my setup work as before.

This can happen with any overrides and any core. So what’s the best way to ensure if something like this happens you will be able to fix it with only a few clicks? I was thinking about xmls. If i added all these rom names that need this option in a XML file (instead of saving overrides one by one) i would only need one “xml override” file for them. And when any change happened, i could just edit this one file and everything would work again. XMLs don’t change so it’s a solid, future proof way to maintain your options.

Another way XMLs will help is with MAME. There are thousands of games and half of them are vertical. Maybe you need a particular option or shader for all vertical games but there is no easy way to do it in RetroArch. It’s easy to do it in the standalone because there are all sorts of XMLs where you can isolate your roms in many ways, for instance Vector games and high-res games would use a different shader but i have to look for them one by one and save per game, but a “vector games.xml” and a “high-res games.xml” would make this quest a 1 override deal.

I suppose one can do a similar thing by separating the roms in different folders and use the directory override option for that. But that’s not a good solution, it would turn rom directories into a complete mess. Plus, that would only work with shaders and RA settings, not core options since you can’t save them per directory (this could be fixed also).