Skip to content

Commit

Permalink
Merge pull request #67 from w3irDv/enh/io-errors
Browse files Browse the repository at this point in the history
  • Loading branch information
w3irDv authored Jan 12, 2025
2 parents 1c5ad0c + 8d71ceb commit 499b808
Show file tree
Hide file tree
Showing 18 changed files with 377 additions and 111 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ Allows you to backup/restore/wipe individual titles.
5. Copy to other Device: If savedata for a title is present in USB and NAND, copy it from one storage to the other

#### Backup
1. Select a slot to store the savedata. You can select any number from 0 to 255, each one representing a different folder in the SD card.
1. Select a slot to store the savedata. You can select any number from 0 to 255, each one representing a different folder in the SD card. Individual backups will always be stored in the `Root backupSet`.
2. For Wii U titles, select which data to save:
1. All users: Recommended option. Will backup all game data.
2. From user: xxxxxxxx. Will only backup the data for the specified user/profile. In this case, you must also specify if you want to save the "common" data or not. "Common" savedata is data shared by all profiles. Titles can have common save data, profile savedata or both.
3. Press "A" to initiate the backup. After the backup is done, you can tag the slot with a meaningful name pressing "+" button while you are in the backup menu. If the slot is unneeded, you can delete it by pressing "-" button.

*Wii U titles savedata layout:*
```
sd:/wiiu/backups/
sd:/wiiu/backups/ # Root backupSet
xxxxxxxxyyyyyyyy/ # Title Id
0/
saveMiiMeta.json
Expand All @@ -55,7 +55,7 @@ sd:/wiiu/backups/
For vWii titles, savedata is directly under the slot folder.

#### Restore
1. Select a slot to get the data from. By default, data from the "root" backupSet (the one where the manual backups are stored) is used. But you can also use slots from batch backupSets, by pressing "X" button in this menu and selecting the backupSet you want to use. BackupSets can be tagged by pressing "+" button in the BackupSet List Menu, or from the BackupSet Management in Main menu.
1. Select a slot to get the data from. If you haven't selected any backupSet, the data from the `Root backupSet` (the one where the manual backups are always stored) is used. But you can also use data from any batch backupSet, by pressing the "X" button and selecting the backupSet you want to use. Notice that the last backupSet you previously selected in any task (Batch Restore or BackupSet Management) will be the one used here by default. BackupSets can be tagged by pressing "+" button in the BackupSet List Menu, or from the BackupSet Management in Main menu.
To identify which data the slot contains: If the slot has been tagged, you will see its tag next to the slot number. On the top screen line, you will see which backupSet is being used. And at the last screen line, you can see when the savedata were taken, and from which console.
2. For Wii U titles, select witch data to restore:
1. `From: All users / To: Same user than Source`
Expand All @@ -77,7 +77,7 @@ BackupSets can be tagged by pressing "+" button in the BackupSet List menu or by

```
sd:/wiiu/backups/batch/
${timestamp}/
${timestamp}/ # batch backupSet
saveMiiMeta.json
xxxxxxxxyyyyyyyy/ # one folder for each title
0/ # slot containing USB or NAND savedata for the title
Expand Down
3 changes: 2 additions & 1 deletion include/savemng.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,4 +167,5 @@ uint8_t getWiiUaccn();
Account *getWiiUacc();
Account *getSDacc();
void deleteSlot(Title *title, uint8_t slot);
bool wipeBackupSet(const std::string &subPath);
bool wipeBackupSet(const std::string &subPath);
void splitStringWithNewLines(const std::string &input, std::string &output);
1 change: 1 addition & 0 deletions include/utils/Colors.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,4 @@
#define COLOR_KEY_S Color(0xFF666600)
#define COLOR_KEY_C Color(0xFF0000FF)
#define COLOR_BG_SUCCESS Color(0x00DD55FF)
#define COLOR_BG_ERROR Color(0xAA0000FF)
2 changes: 1 addition & 1 deletion include/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

#define VERSION_MAJOR 1
#define VERSION_MINOR 6
#define VERSION_MICRO 4
#define VERSION_MICRO 5
2 changes: 1 addition & 1 deletion meta/hbl/meta.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<app version="1">
<name>SaveMii WUT</name>
<coder>DaThinkingChair,w3irDv</coder>
<version>1.6.4</version>
<version>1.6.5</version>
<release_date>202408240000</release_date>
<short_description>WiiU/vWii Save Manager</short_description>
<long_description>WiiU/vWii Save Manager
Expand Down
36 changes: 31 additions & 5 deletions romfs/languages/SChinese.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@
"Filesize: %d bytes": "文件大小:%d 字节",
"Deleting folder %s": "正在删除 %s 文件夹",
"From: \n%s": "从:\n%s",
"Failed to delete folder %s: %s": "删除文件夹失败 %s: %s",
"Failed to delete folder\n\n%s\n%s": "删除文件夹失败\n\n%s\n%s",
"Deleting file %s": "正在删除文件 %s",
"Failed to delete file %s: %s": "删除文件失败 %s: %s",
"Failed to delete file\n\n%s\n%s": "删除文件失败\n\n%s\n%s",
"Loadiine game folder not found.": "Loadiine游戏文件夹没有发现。",
"Failed to open Loadiine game save directory.": "Loadiine游戏文件夹无法打开。",
"Are you sure?": "你确定吗?",
Expand All @@ -89,9 +89,9 @@
"Restore failed.": "还原保存数据失败。",
"Hm, are you REALLY sure?": "嘶,你真的真的要这样做?",
"Backup current savedata first?": "要不要先备份现在的保存数据?",
"Failed to delete common folder: %s": "删除common文件夹失败: %s",
"Failed to delete savefile.": "删除保存数据失败",
"Failed to delete user folder: %s": "删除user文件夹失败: %s",
"%s \n Failed to delete common folder:\n%s\n%s": "%s \n 删除common文件夹失败:\n%s\n%s",
"%s \n Failed to delete savefile:\n%s": "%s \n 删除保存数据失败:\n%s",
"%s \n Failed to delete user folder:\n%s\n%s": "%s \n 删除user文件夹失败:\n%s\n%s",
"Failed to import savedata from loadiine.": "导入loadiine保存数据失败。",
"Failed to export savedata to loadiine.": "导出保存数据到loadiine失败。",
"\ue083 Sort: %s \ue084": "\ue083 排序: %s \ue084",
Expand Down Expand Up @@ -181,6 +181,32 @@
"pre-Wipe backup": "pre-Wipe backup",
"pre-copyToOtherDev backup": "pre-copyToOtherDev backup",
"UNUSABLE SLOT - BACKUP FAILED": "UNUSABLE SLOT - BACKUP FAILED",
"%s \n Common save not found.": "%s \n Common save not found.",
"%s\nBackup failed. DO NOT restore from this slot.": "%s\nBackup failed. DO NOT restore from this slot.",
"%s\nBackup failed.": "%s\nBackup failed.",
"%s\nCommon save not restored.": "%s\nCommon save not restored.",
"%s\nNo backup found on selected slot.": "%s\nNo backup found on selected slot.",
"%s\nNo save found for this user.": "%s\nNo save found for this user.",
"%s\nRestore failed.": "%s\nRestore failed.",
"Cannot open file for read\n\n%s\n%s": "Cannot open file for read\n\n%s\n%s",
"Cannot open file for write\n\n%s\n%s": "Cannot open file for write\n\n%s\n%s",
"Error opening source dir\n\n%s\n%s": "Error opening source dir\n\n%s\n%s",
"Error setting path. Aborting.": "Error setting path. Aborting.",
"Failed to delete backupSet %s.": "Failed to delete backupSet %s.",
"Failed to delete slot %u.": "Failed to delete slot %u.",
"Folder does not exist.": "Folder does not exist.",
"Getting Serial ID": "Getting Serial ID",
"Initializing BackupSets metadata.": "Initializing BackupSets metadata.",
"Initializing ROMFS": "Initializing ROMFS",
"Initializing WPAD and KAPD": "Initializing WPAD and KAPD",
"Initializing loadWiiU Titles": "Initializing loadWiiU Titles",
"Please wait. First write to SD may be slow.": "Please wait. First write to SD may be slow.",
"Press \ue000 to continue": "Press \ue000 to continue",
"Read error\n%s": "Read error\n%s",
"Wipe BackupSet - Hm, are you REALLY sure?": "Wipe BackupSet - Hm, are you REALLY sure?",
"Write error\n%s": "Write error\n%s",
"\ue002: Change BackupSet \ue000: Restore \ue045 Tag Slot \ue001: Back": "\ue002: Change BackupSet \ue000: Restore \ue045 Tag Slot \ue001: Back",
"\ue003 Confirm - \ue001 Cancel": "\ue003 Confirm - \ue001 Cancel",
"KB_N_0": "1234567890-=",
"KB_N_1": "qwertyuiop[]|",
"KB_N_2": "asdfghjkl;'",
Expand Down
39 changes: 32 additions & 7 deletions romfs/languages/TChinese.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,27 +72,27 @@
"Filesize: %d bytes": "資料大小:%d 個字節",
"Deleting folder %s": "刪除資料夾 %s",
"From: \n%s": "從:\n%s",
"Failed to delete folder %s: %s": "無法刪除資料夾 %s: %s",
"Failed to delete folder\n\n%s\n%s": "無法刪除資料夾\n\n%s\n%s",
"Deleting file %s": "刪除資料 %s",
"Failed to delete file %s: %s": "無法刪除資料 %s: %s",
"Failed to delete file\n\n%s\n%s": "無法刪除資料\n\n%s\n%s",
"Loadiine game folder not found.": "未找到Loadiine遊戲資料夾。",
"Failed to open Loadiine game save directory.": "打開Loadiine遊戲保存資料夾失敗。",
"Are you sure?": "你確定嗎?",
"Backup current savedata first to next empty slot?": "首先將當前保存數據備份到下一個空插槽?",
"Backup done. Now copying Savedata.": "備份完成。現在復制Savedata。",
"Common save not found.": "Common保存資料未找到。",
"Copy failed.": "複製失敗。",
"Backup failed.": "備份失敗",
"%s\nBackup failed.": "%s\n備份失敗",
"Backup found on this slot. Overwrite it?": "在此槽位上找到備份。覆蓋?",
"No save found for this user.": "未找到此使用者的保存資料。",
"Backup failed. DO NOT restore from this slot.": "備份失敗。請不要從該槽位恢復。",
"%s\nBackup failed. DO NOT restore from this slot.": "%s\n備份失敗。請不要從該槽位恢復。",
"No backup found on selected slot.": "在選定的槽位上找不到備份。",
"Restore failed.": "還原失敗。",
"Hm, are you REALLY sure?": "蛤?你真的確定嗎?",
"Backup current savedata first?": "先備份當前的保存數據?",
"Failed to delete common folder: %s": "無法刪除Common資料夾: %s",
"Failed to delete savefile.": "無法刪除保存資料",
"Failed to delete user folder: %s": "無法刪除使用者資料夾: %s",
"%s \n Failed to delete common folder:\n%s\n%s": "%s \n 無法刪除Common資料夾:\n%s\n%s",
"%s \n Failed to delete savefile:\n%s": "%s \n 無法刪除保存資料:\n%s",
"%s \n Failed to delete user folder:\n%s\n%s": "%s \n 無法刪除使用者資料夾:\n%s\n%s",
"Failed to import savedata from loadiine.": "無法從loadiine導入保存數據。",
"Failed to export savedata to loadiine.": "無法導出保存數據到Loadiine。",
" Batch Restore": " Batch Restore",
Expand Down Expand Up @@ -176,6 +176,31 @@
"pre-Wipe backup": "pre-Wipe backup",
"pre-copyToOtherDev backup": "pre-copyToOtherDev backup",
"UNUSABLE SLOT - BACKUP FAILED": "UNUSABLE SLOT - BACKUP FAILED",
"%s \n Common save not found.": "%s \n Common save not found.",
"%s\nCommon save not restored.": "%s\nCommon save not restored.",
"%s\nNo backup found on selected slot.": "%s\nNo backup found on selected slot.",
"%s\nNo save found for this user.": "%s\nNo save found for this user.",
"%s\nRestore failed.": "%s\nRestore failed.",
", from ": ", from ",
"Cannot open file for read\n\n%s\n%s": "Cannot open file for read\n\n%s\n%s",
"Cannot open file for write\n\n%s\n%s": "Cannot open file for write\n\n%s\n%s",
"Error opening source dir\n\n%s\n%s": "Error opening source dir\n\n%s\n%s",
"Error setting path. Aborting.": "Error setting path. Aborting.",
"Failed to delete backupSet %s.": "Failed to delete backupSet %s.",
"Failed to delete slot %u.": "Failed to delete slot %u.",
"Folder does not exist.": "Folder does not exist.",
"Getting Serial ID": "Getting Serial ID",
"Initializing BackupSets metadata.": "Initializing BackupSets metadata.",
"Initializing ROMFS": "Initializing ROMFS",
"Initializing WPAD and KAPD": "Initializing WPAD and KAPD",
"Initializing loadWiiU Titles": "Initializing loadWiiU Titles",
"Please wait. First write to SD may be slow.": "Please wait. First write to SD may be slow.",
"Press \ue000 to continue": "Press \ue000 to continue",
"Read error\n%s": "Read error\n%s",
"Wipe BackupSet - Hm, are you REALLY sure?": "Wipe BackupSet - Hm, are you REALLY sure?",
"Write error\n%s": "Write error\n%s",
"\ue002: Change BackupSet \ue000: Restore \ue045 Tag Slot \ue001: Back": "\ue002: Change BackupSet \ue000: Restore \ue045 Tag Slot \ue001: Back",
"\ue003 Confirm - \ue001 Cancel": "\ue003 Confirm - \ue001 Cancel",
"KB_N_0": "1234567890-=",
"KB_N_1": "qwertyuiop[]|",
"KB_N_2": "asdfghjkl;'",
Expand Down
25 changes: 14 additions & 11 deletions romfs/languages/english.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,27 +71,24 @@
"Filesize: %d bytes": "Filesize: %d bytes",
"Deleting folder %s": "Deleting folder %s",
"From: \n%s": "From: \n%s",
"Failed to delete folder %s: %s": "Failed to delete folder %s: %s",
"Failed to delete folder\n\n%s\n%s": "Failed to delete folder\n\n%s\nº%s",
"Deleting file %s": "Deleting file %s",
"Failed to delete file %s: %s": "Failed to delete file %s: %s",
"Failed to delete file\n\n%s\n%s": "Failed to delete file\n\n%s\n%s",
"Loadiine game folder not found.": "Loadiine game folder not found.",
"Failed to open Loadiine game save directory.": "Failed to open Loadiine game save directory.",
"Are you sure?": "Are you sure?",
"Backup current savedata first to next empty slot?": "Backup current savedata first to next empty slot?",
"Backup done. Now copying Savedata.": "Backup done. Now copying Savedata.",
"Common save not found.": "Common save not found.",
"Copy failed.": "Copy failed.",
"Backup failed.": "Backup failed.",
"%s\nBackup failed.": "%s\nBackup failed.",
"Backup found on this slot. Overwrite it?": "Backup found on this slot. Overwrite it?",
"No save found for this user.": "No save found for this user.",
"Backup failed. DO NOT restore from this slot.": "Backup failed. DO NOT restore from this slot.",
"%s\nBackup failed. DO NOT restore from this slot.": "%s\nBackup failed. DO NOT restore from this slot.",
"No backup found on selected slot.": "No backup found on selected slot.",
"Restore failed.": "Restore failed.",
"Hm, are you REALLY sure?": "Hm, are you REALLY sure?",
"Backup current savedata first?": "Backup current savedata first?",
"Failed to delete common folder: %s": "Failed to delete common folder: %s",
"Failed to delete savefile.": "Failed to delete savefile.",
"Failed to delete user folder: %s": "Failed to delete user folder: %s",
"Failed to import savedata from loadiine.": "Failed to import savedata from loadiine.",
"Failed to export savedata to loadiine.": "Failed to export savedata to loadiine.",
"\ue083 Sort: %s \ue084": "\ue083 Sort: %s \ue084",
Expand All @@ -112,7 +109,7 @@
"Wipe BackupSet - Are you sure?": "Wipe BackupSet - Are you sure?",
"Wipe BackupSet - Hm, are you REALLY sure?": "Wipe BackupSet - Hm, are you REALLY sure?",
"Initializing BackupSets metadata.": "Initializing BackupSets metadata.",
"Please wait. First write to SD may be slow.": "Initializing BackupSets metadata.",
"Please wait. First write to SD may be slow.": "Please wait. First write to SD may be slow.",
"Filter BackupSets": "Filter BackupSets",
"Show only BackupSets satisfying all these conditions:": "Show only BackupSets satisfying all these conditions:",
"Console: %s": "Console: %s",
Expand All @@ -138,9 +135,9 @@
" Restore vWii (%u Title%s)": " Restore vWii (%u Title%s)",
" [vWiiInject]": " [vWiiInject]",
"%s \n Common save not found.": "%s \n Common save not found.",
"%s \n Failed to delete common folder:\n %s": "%s \n Failed to delete common folder:\n %s",
"%s \n Failed to delete savefile.": "%s \n Failed to delete savefile.",
"%s \n Failed to delete user folder:\n %s": "%s \n Failed to delete user folder:\n %s",
"%s \n Failed to delete common folder:\n%s\n%s": "%s \n Failed to delete common folder:\n%s\n%s",
"%s \n Failed to delete savefile:\n%s": "%s \n Failed to delete savefile:\n%s",
"%s \n Failed to delete user folder:\n%s\n%s": "%s \n Failed to delete user folder:\n%s\n%s",
"%s\nCommon save not restored.": "%s\nCommon save not restored.",
"%s\nNo backup found on selected slot.": "%s\nNo backup found on selected slot.",
"%s\nNo save found for this user.": "%s\nNo save found for this user.",
Expand Down Expand Up @@ -210,6 +207,12 @@
"pre-Wipe backup": "pre-Wipe backup",
"pre-copyToOtherDev backup": "pre-copyToOtherDev backup",
"UNUSABLE SLOT - BACKUP FAILED": "UNUSABLE SLOT - BACKUP FAILED",
"Cannot open file for read\n\n%s\n%s": "Cannot open file for read\n\n%s\n%s",
"Cannot open file for write\n\n%s\n%s": "Cannot open file for write\n\n%s\n%s",
"Error opening source dir\n\n%s\n%s": "Error opening source dir\n\n%s\n%s",
"Read error\n%s": "Read error\n%s",
"Write error\n%s": "Write error\n%s",
"\ue002: Change BackupSet \ue000: Restore \ue045 Tag Slot \ue001: Back": "\ue002: Change BackupSet \ue000: Restore \ue045 Tag Slot \ue001: Back",
"KB_N_0": "1234567890-=",
"KB_N_1": "qwertyuiop[]|",
"KB_N_2": "asdfghjkl;'",
Expand Down
Loading

0 comments on commit 499b808

Please sign in to comment.