- Added the ability to change emunands via wiiflow thanks to the file explorer. Just go to page 2 of the nand emulation settings and click on the SET btn. File Explorer/Folder Explorer shows allowing you to choose a folder. Once you choose one click on the SAVE btn to make it official. Does not work with nands on the root of the device, must be in a folder.

This commit is contained in:
fledge68 2013-07-10 15:08:40 +00:00
parent 1efca149ed
commit 84892d53d8
6 changed files with 386 additions and 22 deletions

View File

@ -1149,6 +1149,7 @@ void CMenu::_buildMenus(void)
_initHomeAndExitToMenu();
_initCoverBanner();
_initExplorer();
_initFolderExplorer();
_initBoot();
_initWad();

View File

@ -847,6 +847,7 @@ private:
void _initHomeAndExitToMenu();
void _initCoverBanner();
void _initExplorer();
void _initFolderExplorer();
void _initWad();
//
void _textSource(void);
@ -876,10 +877,12 @@ private:
void _textBoot(void);
void _textCoverBanner(void);
void _textExplorer(void);
void _textFolderExplorer(void);
void _textWad(void);
//
void _refreshBoot();
void _refreshExplorer(s8 direction = 0);
void _refreshFolderExplorer(s8 direction = 0);
//
void _hideCheatSettings(bool instant = false);
void _hideError(bool instant = false);
@ -910,6 +913,7 @@ private:
void _hideExitTo(bool instant = false);
void _hideCoverBanner(bool instant = false);
void _hideExplorer(bool instant = false);
void _hideFolderExplorer(bool instant = false);
void _hideWad(bool instant = false);
//
void _showError(void);
@ -942,6 +946,7 @@ private:
void _showExitTo(void);
void _showCoverBanner(void);
void _showExplorer(void);
void _showFolderExplorer(void);
void _showWad(void);
void _updateSourceBtns(void);
void _updatePluginText(void);
@ -988,6 +993,7 @@ private:
void _gameSettings(void);
void _CoverBanner(void);
void _Explorer(void);
string _FolderExplorer(void);
void _Wad(const char *wad_path = NULL);
void _CheatSettings();
bool _Source();

View File

@ -114,6 +114,7 @@ void CMenu::_Explorer(void)
strcat(dir, entries_char[i-1]);
/* otherwise it fails */
strcat(dir, "/");
//gprintf("Directory path =%s\n", dir);
_refreshExplorer();
}
else
@ -244,3 +245,212 @@ void CMenu::_refreshExplorer(s8 direction)
closedir(pdir);
}
}
s16 m_folderExplorerLblSelFolder;
s16 m_folderExplorerBtnSave;
s16 m_folderExplorerBtnCancel;
string folderName="";
void CMenu::_initFolderExplorer()
{
m_folderExplorerLblSelFolder = _addLabel("EXPLORER/SELECTED_FOLDER", theme.lblFont, L"", 30, 50, 560, 40, theme.lblFontColor, FTGX_JUSTIFY_LEFT);
m_folderExplorerBtnSave = _addButton("EXPLORER/SAVE_BTN", theme.btnFont, L"Save", 530, 40, 80, 40, theme.btnFontColor);
m_folderExplorerBtnCancel = _addButton("EXPLORER/CANCEL_BTN", theme.btnFont, L"Cancel", 530, 90, 80, 40, theme.btnFontColor);
_hideFolderExplorer(true);
_textFolderExplorer();
}
void CMenu::_hideFolderExplorer(bool instant)
{
for(u8 i = 0; i < 8; ++i)
{
m_btnMgr.hide(entries[i], instant);
m_btnMgr.hide(entries_sel[i], instant);
}
m_btnMgr.hide(m_mainBtnNext, instant);
m_btnMgr.hide(m_mainBtnPrev, instant);
m_btnMgr.hide(m_folderExplorerLblSelFolder, instant);
m_btnMgr.hide(m_folderExplorerBtnSave, instant);
m_btnMgr.hide(m_folderExplorerBtnCancel, instant);
}
void CMenu::_showFolderExplorer(void)
{
_setBg(m_explorerBg, m_explorerBg);
for(u8 i = 1; i < 8; ++i)
{
m_btnMgr.show(entries[i]);
m_btnMgr.show(entries_sel[i]);
}
m_btnMgr.show(m_mainBtnNext);
m_btnMgr.show(m_mainBtnPrev);
m_btnMgr.show(m_folderExplorerLblSelFolder);
m_btnMgr.show(m_folderExplorerBtnSave);
m_btnMgr.show(m_folderExplorerBtnCancel);
}
void CMenu::_textFolderExplorer(void)
{
for(u8 i = 0; i < 8; ++i)
m_btnMgr.setText(entries[i], L" ");
m_btnMgr.setText(entries[1], L". . .");
m_btnMgr.setText(m_folderExplorerLblSelFolder, wfmt(L"Dir = %.32s", folderName.c_str()));
}
void CMenu::_refreshFolderExplorer(s8 direction)
{
_textFolderExplorer();
if(direction == 0)
cur_pos = 0;
//if path is empty show device+partitions and not folders
if(dir[0] == '\0')
{
for(u8 i = 1; i < 8; ++i)
{
if(DeviceHandle.IsInserted(i-1))
m_btnMgr.setText(entries[i+1], wfmt(L"%s:/", DeviceName[i-1]));
}
}
//else show folders
else
{
dirent *pent = NULL;
DIR *pdir = NULL;
u8 limit = 1;
u32 itr = 0;
if(direction == -1)
cur_pos = cur_pos > 12 ? cur_pos - 12 : 0;
pdir = opendir(dir);
while((pent = readdir(pdir)) != NULL && limit < 7)
{
if(pent->d_name[0] == '.')
continue;
if(pent->d_type == DT_DIR)
{
if(itr < cur_pos)
{
itr++;
continue;
}
strcpy(entries_char[limit-1], pent->d_name);
m_btnMgr.setText(entries[limit+1], wfmt(L"/%.32s", pent->d_name));
cur_pos++;
itr++;
limit++;
}
}
closedir(pdir);
}
}
string CMenu::_FolderExplorer(void)
{
string path = "";
_showFolderExplorer();
_refreshFolderExplorer();
while(!m_exit)
{
_mainLoopCommon();
if(BTN_HOME_PRESSED || BTN_B_PRESSED)
break;
else if(BTN_PLUS_PRESSED)
{
_refreshFolderExplorer(1);
}
else if(BTN_MINUS_PRESSED)
{
_refreshFolderExplorer(-1);
}
else if(BTN_A_PRESSED)
{
if(m_btnMgr.selected(m_mainBtnNext))
{
_refreshFolderExplorer(1);
}
else if(m_btnMgr.selected(m_mainBtnPrev))
{
_refreshFolderExplorer(-1);
}
else if(m_btnMgr.selected(m_folderExplorerBtnSave))
{
//only when save is clicked do we set path to dir
if(dir[0] != '\0')
{
path = dir;
//check to make sure it's not just device+partition
if(path.find_first_of("/") == path.find_last_of("/"))
path = "";
}
break;
}
else if(m_btnMgr.selected(m_folderExplorerBtnCancel))
{
break;
}
//if "..." is selected and path is not empty then go up(back) one folder
else if(m_btnMgr.selected(entries_sel[1]) && dir[0] != '\0')
{
//remove last folder or device+partition
if(strchr(dir, '/') != NULL)
{
*strrchr(dir, '/') = '\0';
if(strchr(dir, '/') != NULL)
*(strrchr(dir, '/')+1) = '\0';
}
//set folderName to display current selected folder
folderName = dir;
//if it's just device and : then foldername empty
if(folderName.find_last_of("/") == string::npos)
folderName = "";
else
{
folderName = folderName.erase(folderName.find_last_of("/"));
//if it was just device and :/ then foldername empty
if(folderName.find_last_of("/") == string::npos)
folderName = "";
else
folderName = folderName.erase(0, folderName.find_last_of("/")+1);
}
//if we removed device then clear path completely
if(strchr(dir, '/') == NULL)
{
memset(dir, 0, MAX_FAT_PATH);
for(u8 i = 1; i < 7; ++i)
memset(entries_char, 0, NAME_MAX+1);
}
_refreshFolderExplorer();
}
for(u8 i = 2; i < 8; ++i)
{
if(m_btnMgr.selected(entries_sel[i]))
{
//if path is empty add device+partition#:/ to start path
if(dir[0] == '\0')
{
explorer_partition = i-2;
if(DeviceHandle.IsInserted(i-2))
strcpy(dir, fmt("%s:/", DeviceName[i-2]));
_refreshFolderExplorer();
}
//if it's a folder add folder+/ to path
else if(!fsop_FileExist(fmt("%s%s", dir, entries_char[i-2])))
{
strcat(dir, entries_char[i-2]);
folderName = entries_char[i-2];
/* otherwise it fails */
strcat(dir, "/");
//gprintf("Directory path =%s\n", dir);
_refreshFolderExplorer();
}
}
}
}
}
_hideFolderExplorer();
return path;
}

View File

@ -436,6 +436,7 @@ int CMenu::main(void)
}
else if(m_btnMgr.selected(m_mainBtnConfig))
{
string prevNand = m_cfg.getString(CHANNEL_DOMAIN, "path");
_hideMain();
_config(1);
if(prevTheme != m_cfg.getString("GENERAL", "theme"))
@ -446,6 +447,8 @@ int CMenu::main(void)
_showMain();
if(BTN_B_HELD)
bUsed = true;
if(prevNand != m_cfg.getString(CHANNEL_DOMAIN, "path") && m_cfg.getBool(CHANNEL_DOMAIN, "source"))
LoadView();
}
else if(m_btnMgr.selected(m_mainBtnInfo))
{

View File

@ -11,6 +11,9 @@
// NandEmulation menu
s16 m_nandemuLblTitle;
s16 m_nandemuBtnBack;
s16 m_nandemuLblPage;
s16 m_nandemuBtnPageM;
s16 m_nandemuBtnPageP;
s16 m_nandemuLblEmulationVal;
s16 m_nandemuLblEmulation;
s16 m_nandemuBtnEmulationM;
@ -20,6 +23,10 @@ s16 m_nandemuBtnAll;
s16 m_nandemuBtnMissing;
s16 m_nandemuLblNandDump;
s16 m_nandemuBtnNandDump;
s16 m_nandemuLblNandFolder;
s16 m_nandemuBtnNandFolder;
s16 m_nandemuLblNandSavesFolder;
s16 m_nandemuBtnNandSavesFolder;
s16 m_nandfileLblMessage;
s16 m_nandemuLblMessage;
s16 m_nandfileLblDialog;
@ -34,6 +41,8 @@ s16 m_nandemuLblInit;
s16 m_nandemuLblUser[4];
TexData m_nandemuBg;
int nandemuPage = 1;
bool m_nandext;
bool m_fulldump;
bool m_sgdump;
@ -177,6 +186,9 @@ void CMenu::_hideNandEmu(bool instant)
{
m_btnMgr.hide(m_nandemuLblTitle, instant);
m_btnMgr.hide(m_nandemuBtnBack, instant);
m_btnMgr.hide(m_nandemuLblPage, instant);
m_btnMgr.hide(m_nandemuBtnPageM, instant);
m_btnMgr.hide(m_nandemuBtnPageP, instant);
m_btnMgr.hide(m_nandfilePBar, instant);
m_btnMgr.hide(m_nandemuPBar, instant);
m_btnMgr.hide(m_nandfileLblMessage, instant);
@ -193,6 +205,10 @@ void CMenu::_hideNandEmu(bool instant)
m_btnMgr.hide(m_nandemuBtnMissing, instant);
m_btnMgr.hide(m_nandemuLblNandDump, instant);
m_btnMgr.hide(m_nandemuBtnNandDump, instant);
m_btnMgr.hide(m_nandemuLblNandFolder, instant);
m_btnMgr.hide(m_nandemuBtnNandFolder, instant);
m_btnMgr.hide(m_nandemuLblNandSavesFolder, instant);
m_btnMgr.hide(m_nandemuBtnNandSavesFolder, instant);
m_btnMgr.hide(m_nandemuBtnExtract, instant);
m_btnMgr.hide(m_nandemuBtnPartition, instant);
m_btnMgr.hide(m_nandemuBtnDisable, instant);
@ -205,6 +221,14 @@ void CMenu::_showNandEmu(void)
m_btnMgr.setText(m_nandemuLblTitle, _t("cfgne10", L"NAND Emulation Settings"));
m_btnMgr.show(m_nandemuLblTitle);
m_btnMgr.show(m_nandemuBtnBack);
m_btnMgr.setText(m_nandemuLblPage, wfmt(L"%i / 2", nandemuPage));
m_btnMgr.show(m_nandemuLblPage);
m_btnMgr.show(m_nandemuBtnPageM);
m_btnMgr.show(m_nandemuBtnPageP);
if(nandemuPage == 1)
{
int i;
if(((m_current_view == COVERFLOW_CHANNEL && !m_cfg.getBool(CHANNEL_DOMAIN, "disable", true)) || m_current_view == COVERFLOW_USB) && !m_locked)
{
@ -233,9 +257,20 @@ void CMenu::_showNandEmu(void)
}
}
}
else
{
m_btnMgr.show(m_nandemuLblNandFolder);
m_btnMgr.show(m_nandemuBtnNandFolder);
m_btnMgr.show(m_nandemuLblNandSavesFolder);
m_btnMgr.show(m_nandemuBtnNandSavesFolder);
}
}
int CMenu::_NandEmuCfg(void)
{
string path = "";
nandemuPage = 1;
lwp_t thread = 0;
SetupInput();
_showNandEmu();
@ -247,7 +282,45 @@ int CMenu::_NandEmuCfg(void)
while(!m_exit)
{
_mainLoopCommon();
if((BTN_HOME_PRESSED || BTN_B_PRESSED) && !m_thrdWorking)
if((BTN_MINUS_PRESSED || BTN_LEFT_PRESSED) || (BTN_A_PRESSED && m_btnMgr.selected(m_nandemuBtnPageM)))
{
m_btnMgr.hide(m_nandemuLblEmulationVal, true);
m_btnMgr.hide(m_nandemuLblEmulation, true);
m_btnMgr.hide(m_nandemuBtnEmulationP, true);
m_btnMgr.hide(m_nandemuBtnEmulationM, true);
m_btnMgr.hide(m_nandemuLblSaveDump, true);
m_btnMgr.hide(m_nandemuBtnAll, true);
m_btnMgr.hide(m_nandemuBtnMissing, true);
m_btnMgr.hide(m_nandemuLblNandDump, true);
m_btnMgr.hide(m_nandemuBtnNandDump, true);
m_btnMgr.hide(m_nandemuLblNandFolder, true);
m_btnMgr.hide(m_nandemuBtnNandFolder, true);
m_btnMgr.hide(m_nandemuLblNandSavesFolder, true);
m_btnMgr.hide(m_nandemuBtnNandSavesFolder, true);
nandemuPage = nandemuPage == 1 ? 2 : 1;
_showNandEmu();
}
else if((BTN_PLUS_PRESSED || BTN_RIGHT_PRESSED) || (BTN_A_PRESSED && m_btnMgr.selected(m_nandemuBtnPageP)))
{
m_btnMgr.hide(m_nandemuLblEmulationVal, true);
m_btnMgr.hide(m_nandemuLblEmulation, true);
m_btnMgr.hide(m_nandemuBtnEmulationP, true);
m_btnMgr.hide(m_nandemuBtnEmulationM, true);
m_btnMgr.hide(m_nandemuLblSaveDump, true);
m_btnMgr.hide(m_nandemuBtnAll, true);
m_btnMgr.hide(m_nandemuBtnMissing, true);
m_btnMgr.hide(m_nandemuLblNandDump, true);
m_btnMgr.hide(m_nandemuBtnNandDump, true);
m_btnMgr.hide(m_nandemuLblNandFolder, true);
m_btnMgr.hide(m_nandemuBtnNandFolder, true);
m_btnMgr.hide(m_nandemuLblNandSavesFolder, true);
m_btnMgr.hide(m_nandemuBtnNandSavesFolder, true);
nandemuPage = nandemuPage == 1 ? 2 : 1;
_showNandEmu();
}
else if((BTN_HOME_PRESSED || BTN_B_PRESSED) && !m_thrdWorking)
break;
else if(BTN_UP_PRESSED)
m_btnMgr.up();
@ -276,6 +349,10 @@ int CMenu::_NandEmuCfg(void)
m_btnMgr.hide(m_nandemuBtnMissing);
m_btnMgr.hide(m_nandemuLblNandDump);
m_btnMgr.hide(m_nandemuBtnNandDump);
m_btnMgr.hide(m_nandemuLblPage);
m_btnMgr.hide(m_nandemuBtnPageM);
m_btnMgr.hide(m_nandemuBtnPageP);
m_btnMgr.show(m_nandfilePBar);
m_btnMgr.show(m_nandemuPBar);
m_btnMgr.show(m_nandfileLblMessage);
@ -294,6 +371,43 @@ int CMenu::_NandEmuCfg(void)
m_thrdWorking = true;
LWP_CreateThread(&thread, (void *(*)(void *))CMenu::_NandDumper, (void *)this, 0, 32768, 40);
}
else if(BTN_A_PRESSED && (m_btnMgr.selected(m_nandemuBtnNandFolder)))
{
_hideNandEmu(true);
path = _FolderExplorer();
if(!path.empty())
{
if(path.find("sd:/") != string::npos)
m_cfg.setInt(CHANNEL_DOMAIN, "partition", 0);
else
{
const char *partval = &path[3];
m_cfg.setInt(CHANNEL_DOMAIN, "partition", atoi(partval));
}
path = path.erase(0,path.find_first_of("/"));
m_cfg.setString(CHANNEL_DOMAIN, "path", path);
m_cfg.setBool(CHANNEL_DOMAIN, "update_cache", true);
}
_showNandEmu();
}
else if(BTN_A_PRESSED && (m_btnMgr.selected(m_nandemuBtnNandSavesFolder)))
{
_hideNandEmu(true);
path = _FolderExplorer();
if(!path.empty())
{
if(path.find("sd:/") != string::npos)
m_cfg.setInt(WII_DOMAIN, "savepartition", 0);
else
{
const char *partval = &path[3];
m_cfg.setInt(WII_DOMAIN, "savepartition", atoi(partval));
}
path = path.erase(0,path.find_first_of("/"));
m_cfg.setString(WII_DOMAIN, "savepath", path);
}
_showNandEmu();
}
else if(BTN_A_PRESSED && (m_btnMgr.selected(m_nandemuBtnBack)))
{
m_cfg.save();
@ -755,6 +869,7 @@ void CMenu::_initNandEmuMenu()
_addUserLabels(m_nandemuLblUser, ARRAY_SIZE(m_nandemuLblUser), "NANDEMU");
m_nandemuBg = _texture("NANDEMU/BG", "texture", theme.bg, false);
m_nandemuLblTitle = _addTitle("NANDEMU/TITLE", theme.titleFont, L"", 20, 30, 600, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
m_nandfileLblMessage = _addLabel("NANDEMU/FMESSAGE", theme.lblFont, L"", 40, 230, 560, 100, theme.lblFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_TOP);
m_nandemuLblMessage = _addLabel("NANDEMU/MESSAGE", theme.lblFont, L"", 40, 350, 560, 100, theme.lblFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_TOP);
m_nandfileLblDialog = _addLabel("NANDEMU/FDIALOG", theme.lblFont, L"", 40, 60, 560, 200, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
@ -762,6 +877,7 @@ void CMenu::_initNandEmuMenu()
m_nandemuLblDialog = _addLabel("NANDEMU/DIALOG", theme.lblFont, L"", 40, 180, 560, 200, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_nandfilePBar = _addProgressBar("NANDEMU/FILEPROGRESS_BAR", 40, 200, 560, 20);
m_nandemuPBar = _addProgressBar("NANDEMU/PROGRESS_BAR", 40, 320, 560, 20);
m_nandemuLblEmulation = _addLabel("NANDEMU/EMU_SAVE", theme.lblFont, L"", 40, 130, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_nandemuLblEmulationVal = _addLabel("NANDEMU/EMU_SAVE_BTN_GLOBAL", theme.btnFont, L"", 400, 130, 144, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_nandemuBtnEmulationM = _addPicButton("NANDEMU/EMU_SAVE_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 344, 130, 56, 56);
@ -771,7 +887,18 @@ void CMenu::_initNandEmuMenu()
m_nandemuBtnMissing = _addButton("NANDEMU/MISSING_BTN", theme.btnFont, L"", 350, 250, 250, 56, theme.btnFontColor);
m_nandemuLblNandDump = _addLabel("NANDEMU/NAND_DUMP", theme.lblFont, L"", 40, 310, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_nandemuBtnNandDump = _addButton("NANDEMU/NAND_DUMP_BTN", theme.btnFont, L"", 350, 310, 250, 56, theme.btnFontColor);
m_nandemuLblNandFolder = _addLabel("NANDEMU/NAND_FOLDER", theme.lblFont, L"", 40, 130, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_nandemuBtnNandFolder = _addButton("NANDEMU/NAND_FOLDER_BTN", theme.btnFont, L"", 350, 130, 250, 56, theme.btnFontColor);
m_nandemuLblNandSavesFolder = _addLabel("NANDEMU/NAND_SAVES_FOLDER", theme.lblFont, L"", 40, 190, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_nandemuBtnNandSavesFolder = _addButton("NANDEMU/NAND_SAVES_FOLDER_BTN", theme.btnFont, L"", 350, 190, 250, 56, theme.btnFontColor);
m_nandemuBtnBack = _addButton("NANDEMU/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 56, theme.btnFontColor);
m_nandemuLblPage = _addLabel("NANDEMU/PAGE_BTN", theme.btnFont, L"", 62, 400, 98, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_nandemuBtnPageM = _addPicButton("NANDEMU/PAGE_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 10, 400, 52, 56);
m_nandemuBtnPageP = _addPicButton("NANDEMU/PAGE_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 160, 400, 52, 56);
m_nandemuBtnBack = _addButton("NANDEMU/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 56, theme.btnFontColor);
m_nandemuBtnExtract = _addButton("NANDEMU/EXTRACT", theme.titleFont, L"", 72, 180, 496, 56, theme.titleFontColor);
m_nandemuBtnDisable = _addButton("NANDEMU/DISABLE", theme.titleFont, L"", 72, 270, 496, 56, theme.titleFontColor);
m_nandemuBtnPartition = _addButton("NANDEMU/PARTITION", theme.titleFont, L"", 72, 360, 496, 56, theme.titleFontColor);
@ -785,6 +912,7 @@ void CMenu::_initNandEmuMenu()
_setHideAnim(m_nandemuLblDialog, "NANDEMU/DIALOG", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandfilePBar, "NANDEMU/FILEPROGRESS_BAR", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuPBar, "NANDEMU/PROGRESS_BAR", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuLblEmulation, "NANDEMU/EMU_SAVE", 100, 0, -2.f, 0.f);
_setHideAnim(m_nandemuLblEmulationVal, "NANDEMU/EMU_SAVE_BTN_GLOBAL", 0, 0, 1.f, -1.f);
_setHideAnim(m_nandemuBtnEmulationM, "NANDEMU/EMU_SAVE_MINUS", 0, 0, 1.f, -1.f);
@ -794,7 +922,17 @@ void CMenu::_initNandEmuMenu()
_setHideAnim(m_nandemuBtnMissing, "NANDEMU/MISSING_BTN", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuLblNandDump, "NANDEMU/NAND_DUMP", 100, 0, -2.f, 0.f);
_setHideAnim(m_nandemuBtnNandDump, "NANDEMU/NAND_DUMP_BTN", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuLblNandFolder, "NANDEMU/NAND_FOLDER", 100, 0, -2.f, 0.f);
_setHideAnim(m_nandemuBtnNandFolder, "NANDEMU/NAND_FOLDER_BTN", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuLblNandSavesFolder, "NANDEMU/NAND_SAVES_FOLDER", 100, 0, -2.f, 0.f);
_setHideAnim(m_nandemuBtnNandSavesFolder, "NANDEMU/NAND_SAVES_FOLDER_BTN", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuBtnBack, "NANDEMU/BACK_BTN", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuLblPage, "NANDEMU/PAGE_BTN", 0, 0, -1.f, 1.f);
_setHideAnim(m_nandemuBtnPageM, "NANDEMU/PAGE_MINUS", 0, 0, -1.f, 1.f);
_setHideAnim(m_nandemuBtnPageP, "NANDEMU/PAGE_PLUS", 0, 0, -1.f, 1.f);
_setHideAnim(m_nandemuBtnExtract, "NANDEMU/EXTRACT", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuBtnPartition, "NANDEMU/PARTITION", 0, 0, -2.f, 0.f);
_setHideAnim(m_nandemuBtnDisable, "NANDEMU/DISABLE", 0, 0, -2.f, 0.f);
@ -806,6 +944,10 @@ void CMenu::_initNandEmuMenu()
void CMenu::_textNandEmu(void)
{
m_btnMgr.setText(m_nandemuLblNandFolder, _t("cfgne32", L"Change Nand"));
m_btnMgr.setText(m_nandemuLblNandSavesFolder, _t("cfgne33", L"Change Saves Nand"));
m_btnMgr.setText(m_nandemuBtnNandFolder, _t("dl16", L"Set"));
m_btnMgr.setText(m_nandemuBtnNandSavesFolder, _t("dl16", L"Set"));
m_btnMgr.setText(m_nandemuLblEmulation, _t("cfgne1", L"NAND Emulation"));
m_btnMgr.setText(m_nandemuLblSaveDump, _t("cfgne2", L"Extract Game Saves"));
m_btnMgr.setText(m_nandemuBtnAll, _t("cfgne3", L"All"));

View File

@ -133,6 +133,8 @@ cfgne28=Game Save Flasher
cfgne29=Flashed: %d saves / %d files / %d folders
cfgne30=Flashing save files finished!
cfgne31=Select Partition
cfgne32=Change Nand
cfgne32=Change Saves Nand
cfgp1=Game Partition
cfgp3=Init network on boot
cfgpl1=Select Plugins