nadrino / SimpleModManager

SimpleModManager is an homebrew app for the Nintendo Switch
GNU General Public License v3.0
326 stars 12 forks source link

Install path for mods is not correct for Atmosphere 1.5.4 #40

Open Suffice opened 1 year ago

Suffice commented 1 year ago

To get this to work I:

  1. Updated Atmosphere to 1.5.4 prerelease
  2. Editing the config file found in /config/SimpleModManager like so: install-mods-base-folder = /atmosphere/contents/
  3. Removed the /title/ path from the mods folders.
  4. Confirmed the correct config preset is set in the app.

I got it to work with TOTK by reorganizing the mod files like this: \mods\The Legend of Zelda - Tears of the Kingdom\\0100F2C0115B6000\romfs\

On a side note: Most mods don't come in the \0100F2C0115B6000\ folder, so, imo, this really shouldn't be a requirement for each mod.

It would be nice if this mod manager made it easier to adjust the mod load order by allowing us to move mods up and down.

SwimmingTiger commented 1 year ago

I did not edit /config/SimpleModManager/parameters.ini, in order to install mods correctly I had to use the following directory structure:

/mods/TOTK/DynamicFPSv1.5.4/contents/0100F2C0115B6000/exefs/

But most mods on the internet about TOTK use Yuzu's directory structure:

.../0100F2C0115B6000/DynamicFPSv1.5.4/exefs

Manually creating folders one by one is so unacceptable that I had to write a script to handle the directory movement:

toNS.sh
#!/bin/bash
set -x

ID=0100F2C0115B6000
DIR=TOTK

ls "./$ID" | while read d; do
    DIST="./NS/$DIR/$d/contents/$ID"
    mkdir -p "$DIST"
    cp -r "./$ID/$d/"* "$DIST/"
done

cp "$0" "./NS/"

A simpler mods folder structure is highly recommended, Yuzu's structure is just fine. Title ID should be outside of each mod, not inside.

SwimmingTiger commented 1 year ago

Regarding title IDs: I recommend that SimpleModManager create standard folders for all installed titles at startup, it could be "/mods/game name/title ID/", then the user's task is only to put the specific mods into the corresponding folders.

This will save users a lot of time looking for Title IDs, creating folders, and moving files.

SwimmingTiger commented 1 year ago

About backward compatibility:

Once the title id is found in any part of the path, all that remains is to traverse the directories, find exefs, romfs, or romfs_ext and merge them into /atmosphere/contents/title id/, any directory hierarchy in between is safe ignored. This will make SimpleModManager compatible with arbitrary directory structures.

Also, mods that don't include a title id in their path or don't include an exefs, romfs, or romfs_ext folder should be given explicit warnings, since they obviously won't install correctly. Does anyone actually use SimpleModManager to install normal atmosphere extensions (not a game mods)?

SwimmingTiger commented 1 year ago

As a compromise, I can also configure in /config/SimpleModManager/parameters.ini:

install-mods-base-folder = /atmosphere/contents/0100F2C0115B6000

Then I can organize mods like yuzu:

/mods/DynamicFPSv1.5.4/exefs

The price is that I will lose the ability to install mods for other games.