Lekoopapaul / sdcafiineplus_plugin

GNU General Public License v3.0
1 stars 0 forks source link

SDCafiine Plus Plugin

What is SDCafiine Plus

It's a fork from the SDCafiine Plugin from Maschell which adds diffrent save data for each modpack. The save data will be saved in the save directory which is in the modpack directory.

Original Description

The main feature of this plugin is the on-the-fly replacing of files, which can be used to load modified content from external media (SD). It hooks into the file system functions of the Wii U. Whenever a file is accessed, SDCafiine checks if a (modified) version is present on the SD card, and redirect the file operations if needed.

Dependencies

Requires the ContentRedirectionModule to be loaded.

Installation of the plugin

([ENVIRONMENT] is a placeholder for the actual environment name.)

  1. Copy the file sdcafiine_plus.wps into sd:/wiiu/environments/[ENVIRONMENT]/plugins.
  2. Requires the WiiUPluginLoaderBackend in sd:/wiiu/environments/[ENVIRONMENT]/modules.
  3. Requires the ContentRedirectionModule in sd:/wiiu/environments/[ENVIRONMENT]/modules.

Usage

The path of SDCafiine Plus has changed to sd:/wiiu/sdcafiine_plus

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:

Installation of the mods

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:

The save directory and its Content will be automaticly generated. You do not need to manully create it.

root:/wiiu/sdcafiine_plus/[TITLEID]/[MODPACK]/content/  <-- for game+update files. Maps to /vol/content/
root:/wiiu/sdcafiine_plus/[TITLEID]/[MODPACK]/aoc/  <-- for DLC files. Maps to /vol/aoc/
root:/wiiu/sdcafiine_plus/[TITLEID]/[MODPACK]/save/  <-- for save files. Maps to /vol/save/

Replace the following:

Example path for the EUR version of SuperSmashBros for Wii U:

root:/wiiu/sdcafiine_plus/0005000010145000/SpecialChars/content/  <-- for game files. Maps to /vol/content/
root:/wiiu/sdcafiine_plus/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:/wiiu/sdcafiine_plus/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:/wiiu/sdcafiine_plus/0005000010145000/ModPack1/content/
sd:/wiiu/sdcafiine_plus/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. The process is similar to redirecting a file. But instead of creating a replacement file with the same name, you create an empty file with the prefix .deleted_.

If you want to stop a game from accessing /vol/content/assets/tree.bin you need to create this file in your modpack.

root:/wiiu/sdcafiine_plus/[TITLEID]/[MODPACK]/content/assets/.deleted_tree.bin

Buildflags

Logging

Building via make only logs errors (via OSReport). To enable logging via the LoggingModule set DEBUG to 1 or VERBOSE.

make Logs errors only (via OSReport).
make DEBUG=1 Enables information and error logging via LoggingModule.
make DEBUG=VERBOSE Enables verbose information and error logging via LoggingModule.

If the LoggingModule is not present, it'll fallback to UDP (Port 4405) and CafeOS logging.

Building using the Dockerfile

It's possible to use a docker image for building. This way you don't need anything installed on your host system.

# Build docker image (only needed once)
docker build . -t sdcafiine_plusplugin-builder

# make 
docker run -it --rm -v ${PWD}:/project sdcafiine_plusplugin-builder make

# make clean
docker run -it --rm -v ${PWD}:/project sdcafiine_plusplugin-builder make clean

Format the code via docker

docker run --rm -v ${PWD}:/src ghcr.io/wiiu-env/clang-format:13.0.0-2 -r ./src -i