/** * Copyright (c) 2026 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "error/error.h" #include // A private namespace under /title on the Wii's internal NAND, used purely // as ISFS storage - not a real installed title/ticket. Only reachable // because the Homebrew Channel's grants full hardware access, // which also disables IOS's normal ES rights checking for the running app; // this hasn't been confirmed against real hardware yet (see project memory // for the caveat - Dolphin's NAND emulation may not reproduce the same // rights-check behavior as a real Wii/vWii). #ifndef SAVE_DEVICE_DOLPHIN_NAND_DIR #define SAVE_DEVICE_DOLPHIN_NAND_DIR "/title/00010001/44555348/data" #endif typedef struct { bool_t initialized; } savedeviceplatform_t; typedef struct savedevice_s savedevice_t; /** * Initializes the save device platform. * * @param device The save device platform to initialize. * @return Error state if any. */ errorret_t saveDeviceDolphinNandInit(savedevice_t *device); /** * Updates the save device platform. * * @param device The save device platform to update. * @return Error state if any. */ errorret_t saveDeviceDolphinNandUpdate(savedevice_t *device); /** * Requests the device to check its availability, this will call the callback * whence completed. Brings up ISFS and confirms our private save directory * exists (creating it on first run). * * @param device The save device platform to check availability. */ void saveDeviceDolphinNandCheckAvailability(savedevice_t *device); /** * Disposes of the save device platform. * * @param device The save device platform to dispose. * @return Error state if any. */ errorret_t saveDeviceDolphinNandDispose(savedevice_t *device);