Not to steal the thread, but without pictures...

@Yvan256
I think you're on an interesting path but overlooking a few details. I have a similar scheme in my project but I don't have to deal with a shitload of games.
Here's a few thoughts.
MAME runs a ballpark of about 7 or 8 thousand images (not sure nor do I care if all of them work) and last I checked the "BIG" download had something like 30kish images. Flash for the AVR line peaks out at about 64k with the bulk being 32k or less and about 328k for the 8/16 hybrids (which are junk). Tracking 7000 ROMS using 8 bytes of data equates to a requirement of about 56k of RAM just to have the table. This number is without any of the configuration data for any particular game at all. 8-bit AVR generally uses 15bits for addressing the Flash, so you'll need another 2 bytes (or a sum of 10 bytes) for each game bumping that requirement up to 70k or more.
Imagine if someone wants to run MAME, MESS and half a dozen other emulators. The resulting table would be dizzying not to mention the risk of name collisions since MAME and MESS have a different file naming convention that other emulators. This doesn't include the possibility of new games added to the list in the future.
Without using external storage like an SD card, a list like that would quickly overwhelm all but the beefiest MCU's. Basically excluding the 8bit line entirely. I probably wouldn't even consider 8/16 AVR line either but head straight to the 32bit ARMs.
In a modular design, using an ARM with that much memory to say... rotate a monitor for no other reason than the need to have that table is MAJOR overkill IMHO.
There are ways to overcome this though.
One solution is to have an application snag the file name, either through a virtual serial port for standardization or through API. I like the serial port myself. The packet sent would consist of no less than two fields, the APP name (eg MAME), and the file name. The size of each fields matters none and would be truncated with \00 but have a hard limit (say 255). Any sane app should be able to deal with that. This "helper" app is then responsible for managing "registered" serial devices attached to the ports, sending the appropriate data required to the individual devices and more importantly, managing updates. This can be done via "profiles" that are loaded with each registered device. Sounds a bit like USB eh?
That method completely overcomes the "adding new games" problem. If a new game is added, update the master list, update the appropriate profiles and the helper app does the rest.
That's the rub though. We have apps like that already. We have front ends that wrap the launching of emulators with no problems. If the front end doesn't feed the serial port, it's almost trivial to add a small "forwarding" app that scoops up the name and forwards it to a serial port or to whatever we want then proceed to launch the emulator with the necessary command lines.
If I'm misunderstanding, feel free to clarify. I like the idea, I just don't know if it's something that's absolutely necessary given the current landscape right now.