I love retro games, and have been thinking about a few features I wish for in an emulator frontend. Here's the first - does something like this exist out there?
I'd like to have a concept I will call an "instance" of a game. I'm sure many of us play the same ROM in different ways at different times, and you'd like your save states / SRAM data for a different "instance" to be separate. For example, I might start a game of FF1 as 4 White Mages, and make various save states in this "instance". Later I start a new game of FF1, playing as 4 Black Mages.
In a standard emulator like FCEU, I have to remember "save states 1-3, 5, and 9 are for the white mage party - and 4 and 6-8 are for the black mage party". Instead, I'd like my save states for the "White Mage" party and the "Black Mage" party to be independent in the eyes of the emulator. Accidentally saving over the wrong save state in the game is normally disastrous, but in this new system at least saving over the wrong instance's save states would be impossible. Note the hotkeys for saving the state would still exist, it would simply keep independent save state files for each instance you had created of the game, so that saving to the black mage "save state 1" would not affect the white mage "save state 1".
Also, if I leave and come back to the ROM in 6 months, I never remember what these instances / what each save state was, and have a tendency to "just want to start over". So, in addition to savestates and SRAM data being per-Instance, I'd like a way of recording some text about each instance, and also each save state within an instance (optional). Being able to assign a screenshot to an instance or an instance's savestate as well would be nice. The text and screenshot of an instance or save should be easily modifiable from the GUI.
This would be perfect for tackling various "challenges" people have come up with for a game, like Zelda 1 without the sword. It would also be nice to save an instance for the game's end screen, or a particularly memorable point in the game. Rather than memorizing "save state 6 is the scene where the awesome boss fight happens", you would load up the ROM, click on "instances", and you'd be able to see the boss fight instance, and just click on it. Then you could try fighting the boss, save states like crazy, without worrying about overwriting your other instances' save states.