The huge game covers and navigation slowness when using ES-Scraper is due to an image resize bug that easily fixed (1 line script change).

But that said, I had the same frustrations as you. The titles that ES-Scraper picks are often way off. It ended up naming 6 of my nes roms “Super Mario Bros 2” even though some had names that were nowhere near that. The scraping processs is also painfully slow.

Because of this I ended up writing some of my own simple scripts. I wrote one for MAME roms that utilizes a local text file that has associations between 037b5 MAME roms and their actual names. It will create the gamelist.xml (just like ES-scraper), but does it entirely locally, so it only takes a couple seconds to process 2300 roms. It will even make image references in the xml file if you have png files in the rom directory with the same names as your roms.

There are much faster ways to automatically fetch appropriately sized and named rom png files. I used the EmuMovies automated downloader, which is a Windows app. To grab the images you just point the program at your roms directory and it will take care of everything in a couple minutes. Then they just needed to be transferred to the appropriate rom directory on the pi.

I’m happy to share my script if you’re interested, but at this point it’s pretty quick and dirty and could probably benefit from some cleanup. I also don’t know how the fba roms differ from the mame roms in terms of naming, so my current association file might not be appropriate for that application.