diff --git a/README.md b/README.md index 8d1b06b..c1d0cf9 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Requires the [ContentRedirectionModule](https://github.com/wiiu-env/ContentRedir 3. Requires the [ContentRedirectionModule](https://github.com/wiiu-env/ContentRedirectionModule) in `sd:/wiiu/environments/[ENVIRONMENT]/modules`. ## Usage +**The path of SDCafiine has changed to `sd:/wiiu/sdcafiine`** + Via the plugin config menu (press L, DPAD Down and Minus on the gamepad) you can configure the plugin. The available options are the following: - **Settings**: - Enable SDCafiine: @@ -31,8 +33,8 @@ Before the mods can be loaded, they need to be copied to a SD card. **In the following "root:/" is corresponding to the root of your SD card**. The basic filepath structure is this: ``` -root:/sdcafiine/[TITLEID]/[MODPACK]/content/ <-- for game files. Maps to /vol/content/ -root:/sdcafiine/[TITLEID]/[MODPACK]/aoc/ <-- for DLC files. Maps to /vol/aoc/ +root:/wiiu/sdcafiine/[TITLEID]/[MODPACK]/content/ <-- for game files. Maps to /vol/content/ +root:/wiiu/sdcafiine/[TITLEID]/[MODPACK]/aoc/ <-- for DLC files. Maps to /vol/aoc/ ``` Replace the following: - "[TITLEID]" need to be replaced the TitleID of the games that should be modded. A list of title ids can be found [here](http://wiiubrew.org/w/index.php?title=Title_database#00050000:_eShop_and_disc_titles) (without the "-"). Example for SSBU "0005000010145000". Make sure to use the ID of the fullgame and not the update title ID. @@ -40,21 +42,21 @@ Replace the following: Example path for the EUR version of SuperSmashBros for Wii U: ``` -root:/sdcafiine/0005000010145000/SpecialChars/content/ <-- for game files. Maps to /vol/content/ -root:/sdcafiine/0005000010145000/SpecialChars/aoc/ <-- for DLC files. Maps to /vol/aoc/ +root:/wiiu/sdcafiine/0005000010145000/SpecialChars/content/ <-- for game files. Maps to /vol/content/ +root:/wiiu/sdcafiine/0005000010145000/SpecialChars/aoc/ <-- for DLC files. Maps to /vol/aoc/ ``` For replacing the file /vol/content/movie/intro.mp4, put a modified file into: ``` -root:/sdcafiine/0005000010145000/SpecialChars/content/movie/intro.mp4 +root:/wiiu/sdcafiine/0005000010145000/SpecialChars/content/movie/intro.mp4 ``` ### Handling multiple mod packs SDCafiine supports multiple different mods for a single game on the same SD card. Each modpack has its own subdirectory. Example: ``` -sd:/sdcafiine/0005000010145000/ModPack1/content/ -sd:/sdcafiine/0005000010145000/ModPack2/content/ +sd:/wiiu/sdcafiine/0005000010145000/ModPack1/content/ +sd:/wiiu/sdcafiine/0005000010145000/ModPack2/content/ ``` ### "Delete" files via SDCafiine If a game should not see or access a file anymore, it's possible to "delete"/"hide" it from the game without actually deleting it. @@ -62,7 +64,7 @@ The process is similar to redirecting a file. But instead of creating a replacem If you want to stop a game from accessing `/vol/content/assets/tree.bin` you need to create this file in your modpack. ``` -root:/sdcafiine/[TITLEID]/[MODPACK]/content/assets/.deleted_tree.bin +root:/wiiu/sdcafiine/[TITLEID]/[MODPACK]/content/assets/.deleted_tree.bin ``` ## Buildflags diff --git a/src/modpackSelector.cpp b/src/modpackSelector.cpp index 6b08936..0a8e022 100644 --- a/src/modpackSelector.cpp +++ b/src/modpackSelector.cpp @@ -27,7 +27,8 @@ void HandleMultiModPacks(uint64_t titleID) { std::map mounting_points; - const std::string modTitleIDPath = std::string("fs:/vol/external01/sdcafiine/").append(TitleIDString); + const std::string modTitleIDPath = std::string("fs:/vol/external01/wiiu/sdcafiine/").append(TitleIDString); + const std::string modTitleIDPathOld = std::string("fs:/vol/external01/sdcafiine/").append(TitleIDString); DirList modTitleDirList(modTitleIDPath, nullptr, DirList::Dirs); modTitleDirList.SortList(); @@ -44,10 +45,6 @@ void HandleMultiModPacks(uint64_t titleID) { DEBUG_FUNCTION_LINE_VERBOSE("Found %s %s", packageName.c_str(), modTitlePath[packageName].c_str()); } - if (modTitlePath.empty()) { - return; - } - int selected = 0; int initScreen = 1; int x_offset = -2; @@ -75,7 +72,23 @@ void HandleMultiModPacks(uint64_t titleID) { OSScreenFlipBuffersEx(SCREEN_TV); OSScreenFlipBuffersEx(SCREEN_DRC); - if (modTitlePath.size() == 1 && gSkipPrepareIfSingleModpack) { + if (modTitlePath.empty()) { + DIR *dir = opendir(modTitleIDPathOld.c_str()); + if (dir) { + console_print_pos(x_offset, -1, "SDCafiine plugin " VERSION_FULL); + console_print_pos(-2, 2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + console_print_pos(-2, 3, "!!! OLD DIRECTORY STRUCTURE DETECTED. !!!"); + console_print_pos(-2, 4, "!!! Please migrate sd:/sdcafiine to sd:/wiiu/sdcafiine. !!!"); + console_print_pos(-2, 5, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + console_print_pos(-2, 7, "Loading game without mods"); + closedir(dir); + + OSScreenFlipBuffersEx(SCREEN_TV); + OSScreenFlipBuffersEx(SCREEN_DRC); + + OSSleepTicks(OSMillisecondsToTicks(10000)); + } + } else if (modTitlePath.size() == 1 && gSkipPrepareIfSingleModpack) { ReplaceContent(modTitlePath.begin()->second, modTitlePath.begin()->first); } else {