Emulator Issues #13183open
Improve UI/UX for GCI folders.
This has come up enough times in the Discord where I'm thinking we need to improve something here. Usually this manifests as someone trying to import eg. a save file from GameFAQs and getting completely lost in what they have to do in order to make Dolphin actually read the save file. Often they try to use the memory card manager to import the save into a raw memory card, or they end up placing the GCI file into the correct place but don't delete the existing save file, which ends up giving cryptic messages about saves failing to load when launching the game.
And to be fair, I can't really blame them! If you're not already familiar with the concept, GCI folders can be hard to understand, and nothing in our UI even tries to explain how they work.
So I suggest the following improvements; feel free to add to this list or to disagree with any of these:
- Our current UI name for manually managed raw memory card files is "Memory Card" and the UI name for the automatically managed GCI folder is "GCI Folder". This is clearly legacy from when GCI Folders didn't exist yet, and a naive user who just wants a memory card would obviously select Memory Card here, so I suggest renaming them to be more clear that both are emulating a memory card and that one is a raw binary blob and one is a automatically managed folder. Something like "Memory Card (Single File)" and "Memory Card (Auto)", maybe? I'm not sure what exactly, I'm just sure that the current ones are confusing for users.
- Support opening GCI folders as if they were memory cards in the Memory Card Manager. This makes it easier for the user to identify save files in the GCI folders and we can automatically overwrite the correct file when they import a file that already exists. This also allows users to import non-GCI memory card formats into GCI folders without weird roundtrips through a raw memory card or third-party software.
- The Memory Card Manager should auto-load the currently 'inserted' memory card and allow quick toggling between the individual regional variants of that card.
- Improve the error handling when a GCI folder encounters multiple save files with the same filename. Right now it just prints "Warning: Save file(s) of the current game failed to load." as an OSD message on bootup, which is not that helpful for actually identifying the problem. At the very least it should say which files are overlapping and what it has done to resolve that conflict. If the Memory Card Manager works for GCI Folders we can also send users there to fix the conflict themselves by selecting the save they want to use/keep.
Our current UI name for manually managed raw memory card files is "Memory Card" and the UI name for the automatically managed GCI folder is "GCI Folder".
Honestly I don't think this is a big deal? Whether they pick a Memory Card or GCI Folder, users will be getting a Memory Card, and it will work. GCI Folder's benefits only affect power users, typical users with a few games that they just want to play will never know the difference. Any confusion about Memory Cards vs GCI Folders doesn't impact them in any way.
That being said, reducing confusion doesn't hurt either, as long as we don't add any new confusion in our attempt.
IMO, "Memory Card (File)" and "Memory Card (Folder)" are pretty good. That way it is clear what each of them is for those that know what they are doing, but they both still say Memory Card for everyone else. I do not like "Memory Card (Auto)". It's a GCI Folder, there's nothing "automatic" going on here (unless you are in extreme niche territory like JMC47), it's just a folder. Call it a folder.
Support opening GCI folders as if they were memory cards in the Memory Card Manager.
One of the central benefits of GCI Folders is so that users don't need to use the Memory Card Manager anymore. It's a folder, you can just remove or add stuff in your file browser. Having support for GCI Folders in the Memory Card Manager is... kind of unnecessary? But it doesn't hurt anything either, and if someone pointed the memory card manager at the GCI Folder and saw it fail, they'd be pretty confused. Of course they should be using their file browser instead, as per the intention of both the Memory Card Manager and GCI Folders... but I've worked with UI and UX long enough to know that what users should do doesn't matter much :P. This is probably just an improvement, albeit a very small one.
The Memory Card Manager should auto-load the currently 'inserted' memory card
The reason why it doesn't do that already is because it's more or less a generic application for managing memory cards. It can be any memory card, in any direction, it doesn't matter if it will even be used for Dolphin. If anything, I've always found it a little odd that it wasn't standalone. That being said, it IS a part of Dolphin, and realistically, 99% of the time the user is going use the Memory Card Manager to manage their Dolphin Memory Card, adding or removing from it exclusively. So autoloading is fine, as long as the user isn't locked in to any memory card in either slot and can still swap them out as they please.
Better error handling
Better error handling is just better, I completely agree with this last one.