libretro / dolphin

Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.
https://dolphin-emu.org/
GNU General Public License v2.0
86 stars 68 forks source link

[Suggestion] Implement automatic disk switching and naming conventions similar to Nintendont #109

Open ShadowOne333 opened 5 years ago

ShadowOne333 commented 5 years ago

As the title suggest, I would like to recommend a naming format/structure similar to what Nintendont does for the Wii. https://github.com/FIX94/Nintendont/search?q=disc2&unscoped_q=disc2

The naming convention usually follows this: GameName[TitleID]/game.iso and GameName[TitleID]/disc2.iso

While the GameName folder and its ID could be ignored, having both the game.iso and disc2.iso in the same folder could make the disk recognition easier for games that depend on 2 disks for the complete game. As long as Dolphin detects game.iso/ciso/gcm/cso and disc2.iso/ciso/gcm/cso are in the same folder, Dolphin should auto-load whichever disk is being asked by the game automatically.

Nintendont has special code to allow for this as well, to automatically load disc2 upon game request without having to do any special configuration or anything of the like.

Having such an option implemented in Dolphin would be great to avoid any confusion with setting the additional disk up, as there's very little documentation to do so with Dolphin. Additionally, this would also make it so that people that have their full library of Gamecube games already ripped and set up in a way that works with Nintendont to easily migrate from the Nintendont setup to Dolphin's by simply making a proper playlist file.

If such a feature is already implemented into Dolphin, please excuse my ignorance and simply close this issue.

Thanks in advance!

i30817 commented 5 years ago

This is technically possible for all redump dumps, even on the same dir, but is probably never going to happen (in that issue i show a algorithm that 'works' to group game cds for the redump standard naming).

Retroarch hates to create complicated front-end features because C89 is like having a shotgun you have to assemble to shoot explosive rounds with your eyes blindfolded and they already hate the code they must have, much less 'superfluous' heuristics dependent code.

You may have better luck asking for it with Ludo, which is a libretro Go frontend. Personally, i'm waiting for the rust frontend.

As for autoloading, that isn't possible in general, but it may be on the gamecube (because apparently all games with multiple discs are only 2 discs and the OS can recognize when a new disc is requested...), so even if the idea i linked above was implemented, i doubt the 'autoswitch seamlessly' idea would happen, though to me the savestate load i imagine in the issue is 80% of the utility already and that may be possible for all consoles.