diff --git a/arm9/source/language.inl b/arm9/source/language.inl index df236a4..ec123b0 100644 --- a/arm9/source/language.inl +++ b/arm9/source/language.inl @@ -142,6 +142,7 @@ STRING(DUMP_SAVE, "Save") STRING(DUMP_DS_SAVE, "DS save") STRING(DUMP_PUBLIC_SAVE, "Public save") STRING(DUMP_PRIVATE_SAVE, "Private save") +STRING(DUMP_BANNER_SAVE, "Banner save") STRING(DUMP_TMD, "TMD") STRING(DUMP_METADATA, "Metadata") STRING(DO_NOT_REMOVE_CARD, "Do not remove the NDS card.") diff --git a/arm9/source/titleManager.cpp b/arm9/source/titleManager.cpp index c4deb8c..587e595 100644 --- a/arm9/source/titleManager.cpp +++ b/arm9/source/titleManager.cpp @@ -31,8 +31,9 @@ enum TitleDumpOption { rom = 1, publicSave = 4, privateSave = 8, - tmd = 16, - all = rom | publicSave | privateSave | tmd + bannerSave = 16, + tmd = 32, + all = rom | publicSave | privateSave | bannerSave | tmd }; void dumpTitle(TitleInfo &title) { @@ -49,6 +50,10 @@ void dumpTitle(TitleInfo &title) { allowedOptions.push_back(TitleDumpOption::privateSave); allowedBitfield |= TitleDumpOption::privateSave; } + if(access((title.path + "/data/banner.sav").c_str(), F_OK) == 0) { + allowedOptions.push_back(TitleDumpOption::bannerSave); + allowedBitfield |= TitleDumpOption::bannerSave; + } allowedOptions.push_back(TitleDumpOption::tmd); char dumpName[32]; @@ -79,6 +84,9 @@ void dumpTitle(TitleInfo &title) { case TitleDumpOption::privateSave: font->print(3, row++, false, STR_DUMP_PRIVATE_SAVE); break; + case TitleDumpOption::bannerSave: + font->print(3, row++, false, STR_DUMP_BANNER_SAVE); + break; case TitleDumpOption::tmd: font->print(3, row++, false, STR_DUMP_TMD); break; @@ -158,6 +166,12 @@ void dumpTitle(TitleInfo &title) { fcopy(inpath, outpath); } + if((selectedOption & TitleDumpOption::bannerSave) && (allowedBitfield & TitleDumpOption::bannerSave)) { + snprintf(inpath, sizeof(inpath), "%s/data/banner.sav", title.path.c_str()); + snprintf(outpath, sizeof(outpath), "%s:/gm9i/out/%s.bnr", sdMounted ? "sd" : "fat", dumpName); + fcopy(inpath, outpath); + } + if((selectedOption & TitleDumpOption::tmd) && (allowedBitfield & TitleDumpOption::tmd)) { snprintf(inpath, sizeof(inpath), "%s/content/title.tmd", title.path.c_str()); snprintf(outpath, sizeof(outpath), "%s:/gm9i/out/%s.tmd", sdMounted ? "sd" : "fat", dumpName); diff --git a/nitrofiles/languages/en-US/language.ini b/nitrofiles/languages/en-US/language.ini index b1861f1..350ccc0 100644 --- a/nitrofiles/languages/en-US/language.ini +++ b/nitrofiles/languages/en-US/language.ini @@ -134,6 +134,7 @@ DUMP_SAVE=Save DUMP_DS_SAVE=DS save DUMP_PUBLIC_SAVE=Public save DUMP_PRIVATE_SAVE=Private save +DUMP_BANNER_SAVE=Banner save DUMP_TMD=TMD DUMP_METADATA=Metadata DO_NOT_REMOVE_CARD=Do not remove the NDS card.