Open i30817 opened 7 years ago
scummvm/scummvm#970
looks like it will be possible in the future to 'detect' a game given a dir from the commandline. This could obsolete the manual creation of the .scummvm files (or even the files themselves if the info can be exposed to the scanner).
Currently the scummvm core help page instructs you to build manually N files, N being the number of games you have that scummvm supports. Since this number is ≃ 115 and growing this is kind of unbearable. The other option they give is to download some pre-fab files they have and copy the right ones into the right dir. Which is also a major cognitive load.
Now i get the reason for this is that scummvm scanning is complicated upstream, but why not take advantage of their work? Have a tool to parse the scummvm.ini file for the paths for the variations it has and create the right file with the right contents and the name of the game on the right dir; and just ask the user to create that file with upstream mass add; remove the variants they don't care for in the ui, and then use the tool.
Another, different problem i have with the scummvm files is that the contents are the same for some engines, ie: all SCI games just have 'sci' inside the file, which leads to the same crc, which leads to game thumbnails or metadata in general being useless. Ideally they'd have at least the name of the 'description' of the game inside the file too even if the complete variant header wouldn't be used (this has per game options which scummvm saves there).
The scummvm core doesn't use the variant name inside this file (giving unique crcs) because scummvm doesn't have the support for launching variants directly without the variant on the scummvm.ini file, so they use the engine name and let scummvm autodetect the rest. However, since this is a Retroarch format, nothing stops you from adding the description for individual games to the second line (easy with scummvm.ini doing the work ofc), to give a unique, stable crc per game that would then be usable for metadata.