1
0
Fork 0
mirror of https://github.com/HamletDuFromage/aio-switch-updater.git synced 2024-12-29 10:56:01 +00:00

add hekate_ipl download

This commit is contained in:
flb 2022-02-20 16:33:54 +01:00
parent 8f6c4ad5ee
commit b6b7b45c32
16 changed files with 66 additions and 27 deletions

View file

@ -22,7 +22,7 @@ DATA := data
INCLUDES := include lib/zipper/include /lib/borealis/library/include/borealis/extern/nlohmann
APP_TITLE := All-in-One Switch Updater
APP_AUTHOR := HamletDuFromage
APP_VERSION := 2.16.3
APP_VERSION := 2.17.0
TARGET := $(notdir $(CURDIR))
ROMFS := resources

View file

@ -115,9 +115,10 @@ enum class contentType
bootloaders,
ams_cfw,
payloads,
hekate_ipl,
};
constexpr std::string_view contentTypeNames[7]{"sigpatches", "cheats", "firmwares", "app", "bootloaders", "cfws", "payloads"};
constexpr std::string_view contentTypeNames[8]{"sigpatches", "cheats", "firmwares", "app", "bootloaders", "cfws", "payloads", "hekate_ipl"};
enum class CFW
{

View file

@ -34,6 +34,8 @@ protected:
void GetBuildIDFromFile();
void WriteCheats(const std::string& cheatContent);
void AddCheatsfileListItem();
void ShowBidNotFound();
void ShowCheatsNotFound();
typedef struct
{

View file

@ -109,7 +109,7 @@
"cheats_text": "\ue016 Lade ein täglich geupdatetes Archiv von 'gbatemp.net' runter. Cheats von Spielen, die du nicht besitzt, werden nicht entpackt. Du kannst Updates für ausgewählte Spiele unter 'Tools->Cheat Menü' deaktivieren.\n\ue016 Momentane Cheatversion: ",
"get_cheats": "Lade GBAtemp.net Cheatarchiv herunter (ver {})",
"sigpatches": "Sigpatches",
"sigpatches_text": "\ue016 Sigpatches erlauben dir, inoffizielle NSPs zu installieren und starten. Stelle sicher, dass du die korrekten Patches für dein Setup auswählst (reines Atmosphère or Atmosphère+Hekate). Starte die Konsole neu, um die Patches zu aktivieren.",
"sigpatches_text": "\ue016 Sigpatches erlauben dir, inoffizielle NSPs zu installieren und starten. Starte die Konsole neu, um die Patches zu aktivieren.",
"firmware": "Firmware",
"not_found": "Nicht gefunden",
"latest_cheats": "Neueste Version",

View file

@ -46,7 +46,8 @@
"show_existing": "Show existing",
"delete_cheats": "Delete cheats for this game",
"deletion_error": "Couldn't delete the cheat files for game with ID:\n{}",
"show_cheat_files": "Show all cheat files"
"show_cheat_files": "Show all cheat files",
"cheats_not_found": "Couldn't find cheat codes matching this build ID."
},
"common": {
"downloading": "Downloading…",
@ -108,7 +109,7 @@
"get_cheats": "Download GBAtemp.net cheat archive (ver {})",
"get_all_cheats:": "Download GBAtemp.net cheat archive",
"sigpatches": "sigpatches",
"sigpatches_text": "\ue016 Sigpatches allow your Switch to install and run unofficial NSP files. Make sure you pick the correct sigpatches for your setup (Atmosphère only or Hekate+Atmosphère). Reboot the console to apply patches.",
"sigpatches_text": "\ue016 Sigpatches allow your Switch to install and run unofficial NSP files. Reboot the console to apply patches.",
"firmware": "firmware",
"not_found": "not found",
"latest_cheats": "Latest version",
@ -132,7 +133,8 @@
"launch_warning": "Please pay attention to the following points before using the app:\n\n\ue016 Read up on how to manually update your Switch first. This will help you understand the app better and you'll know what to do in case something goes wrong.\n\ue016 In order to avoid any risk of data corruption, using this app on an exFAT SD card is STRONGLY discouraged.\n\n\ue016 The latest information about features that have been introduced and/or changed is available in the Tools->Changelog menu.\n\nThis screen won't show again.",
"footer_text": "v{} | {:.1f}GB available",
"theme_warning": "It seems like you have a custom theme installed, this may cause your system to fail to boot after upgrading your firmware.\nPlease consider deleting it before upgrading.",
"payloads_label": "\ue016 Download RCM payloads to {}"
"payloads_label": "\ue016 Download RCM payloads to {}",
"hekate_ipl_label": "\ue016 Download a stripped down, sigpatches compatibles, \"just works\" hekate_ipl.ini config file. This will overwrite your current hekate_ipl.ini."
},
"hide": {
"title": "Hide tabs",

View file

@ -60,7 +60,7 @@
"firmware_text": "\ue016 Firmwares de 'https://darthsternie.net/switch-firmwares/'. Una vez descargado, será extraído en '/firmware'. Entonces podrás instalar la actualización a través de Daybreak.\n\ue016 FW actual: ",
"cheats_text": "\ue016 Esto descargará un paquete actualizado diario de trucos de 'gbatemp.net'. Los trucos de juegos que no tienes instalados no se extraerán a tu tarjeta SD. Puedes desactivar los trucos actualizados en 'Herramientas->Menú de trucos'.\n\ue016 Versión de trucos actual: ",
"sigpatches": "sigpatches",
"sigpatches_text": "\ue016 Los sigpatches permiten a tu Switch instalar y ejecutar archivos NSP no oficiales. Asegúrate de escoger los sigpatches correctos para tu configuración (Atmosphère puro o Hekate+Atmosphère).",
"sigpatches_text": "\ue016 Los sigpatches permiten a tu Switch instalar y ejecutar archivos NSP no oficiales. Reiniciar para aplicar los cambios.",
"firmware": "firmware",
"not_found": "no encontrado",
"latest_cheats": "Última versión",

View file

@ -108,7 +108,7 @@
"get_cheats": "Télécharger l'archive de codes de triche de GBAtemp.net (ver {})",
"get_all_cheats:": "Télécharger l'archive de codes de triche de GBAtemp.net",
"sigpatches": "sigpatches",
"sigpatches_text": "\u25c6 Les sigpatches permettent à la Switch d'installer et d'exécuter des fichiers NSP non officiels. Assurez-vous de choisir les bons sigpatches pour votre configuration (Atmosphère seul ou Hekate+Atmosphère). Redémarrez la console pour appliquer les patches.",
"sigpatches_text": "\u25c6 Les sigpatches permettent à la Switch d'installer et d'exécuter des fichiers NSP non officiels. Redémarrez la console pour appliquer les patches.",
"firmware": "firmware",
"not_found": "non trouvé",
"latest_cheats": "Dernière version",

View file

@ -60,7 +60,7 @@
"firmware_text": "\ue016 il dump del Firmware da 'https://darthsternie.net/switch-firmwares/'. Una volta scaricato, sarà estratto in '/firmware'. Puoi installare l'aggiornamento tramite Daybreak.\n\ue016 FW attuale: ",
"cheats_text": "\ue016 Questo scaricherà quotidianamente un archivio di cheat da 'gbatemp.net'. I cheat per i giochi non installati non saranno estratti sulla tua scheda SD. Puoi disabilitare l'aggiornamento dei cheat in 'Tools->Cheat menu'.\n\ue016 Current cheats version: ",
"sigpatches": "sigpatches",
"sigpatches_text": "\ue016 Le sigpatches consentono di installare ed eseguire NSP non ufficiali sulla Switch. Assicurati di scegliere le sigpatches corrette per la tua configurazione (solo Atmosphère o Hekate+Atmosphère).",
"sigpatches_text": "\ue016 Le sigpatches consentono di installare ed eseguire NSP non ufficiali sulla Switch.",
"firmware": "firmware",
"not_found": "non trovato",
"latest_cheats": "Ultima versione",

View file

@ -108,7 +108,7 @@
"get_cheats": "GBAtemp.net チートアーカイブをダウンロード (ver {})",
"get_all_cheats:": "GBAtemp.net チートアーカイブをダウンロードする",
"sigpatches": "sigpatch",
"sigpatches_text": "\ue016 Sigpatchを使用すると、スイッチで非公式のNSPファイルをインストールして実行できます。\nセットアップに適したsigpatchを選択してくださいAtmosphèreまたはHekate + Atmosphère",
"sigpatches_text": "\ue016 Sigpatchを使用すると、スイッチで非公式のNSPファイルをインストールして実行できます。",
"firmware": "FW",
"not_found": "見つかりませんでした",
"latest_cheats": "最新バージョン",

View file

@ -91,7 +91,7 @@
"cheats_text": "\ue016 Pobierze aktualizowaną codziennie paczkę cheatów z 'gbatemp.net'. Cheaty dla gier których nie masz zainstalowanych nie zostaną wypakowane na twoją kartę SD. Możesz wyłączyć aktualizację cheatów dla poszczególnych gier w 'Narzędzia->Menu cheatów'.\n\ue016 Bieżąca wersja cheatów: ",
"get_cheats": "Pobierz archiwum cheatów GBAtemp.net (wersja {})",
"sigpatches": "sigpatche",
"sigpatches_text": "\ue016 Sigpatche umożliwiają twojemu Switchowi instalowanie i uruchamianie nieoficjalnych plików NSP. Upewnij się, że wybierasz sigpatche zgodne z twoim setupem (czysty Atmosph\u00e8re lub Hekate+Atmosph\u00e8re). Uruchom konsolę ponownie aby zastosować zmiany.",
"sigpatches_text": "\ue016 Sigpatche umożliwiają twojemu Switchowi instalowanie i uruchamianie nieoficjalnych plików NSP. Uruchom konsolę ponownie aby zastosować zmiany.",
"firmware": "firmware",
"not_found": "nie znaleziono",
"latest_cheats": "Najnowsza wersja",

View file

@ -60,7 +60,7 @@
"firmware_text": "\ue016 Firmwares de 'https://darthsternie.net/switch-firmwares/'. Depois de baixado, ele será extraído para '/firmware'. Você pode então instalar a atualização por meio do Daybreak ou.\n\ue016 FW atual: ",
"cheats_text": "\ue016 Isso irá baixar um pacote de cheat atualizado diariamente do 'gbatemp.net'. Os cheats do jogo que você não instalou não serão extraídos para o seu cartão SD. Você pode desabilitar cheats atualizados em 'Ferramentas->Trapaças'.\n\ue016 Versão das trapaças atual: ",
"sigpatches": "sigpatches",
"sigpatches_text": "\ue016 Os Sigpatches permitem que o Switch instale e execute arquivos NSP não oficiais. Certifique-se de escolher os sigpatches corretos para sua configuração (Atmosphère Puro ou Hekate+Atmosphère).",
"sigpatches_text": "\ue016 Os Sigpatches permitem que o Switch instale e execute arquivos NSP não oficiais.",
"firmware": "firmware",
"not_found": "não encontrado",
"latest_cheats": "Última versão",

View file

@ -68,7 +68,7 @@
"latest_cheats": "最新版本",
"app": "应用",
"cfw": "自制系统",
"cfw_text": "\ue016 主要 Switch 破解系统. 如果你使用 Atmosphère with Hekate, 下载 Atmosphère, 然后 Hekate.",
"cfw_text": "\ue016 主要 Switch 破解系统.",
"cheats": "金手指",
"links_not_found": "如果点击功能后,界面没有反应,确保switch已经连接互联网\n如果问题依然存在\n请到GitHub(https://github.com/HamletDuFromage/AIO-switch-updater)上为作者提交issue.",
"new_update": " - 最版本可用,请更新最新版本",

View file

@ -108,7 +108,7 @@
"get_cheats:": "下載GBAtemp.net金手指資料庫 (版本 {})",
"get_all_cheats": "下載GBAtemp.net金手指資料庫",
"sigpatches": "sigpatches",
"sigpatches_text": "\ue016 Sigpatches可讓你的Switch安裝並執行非官方的NSP檔案。請確認你安裝過程中使用合適的sigpatches(Pure Atmosphère或Hekate+Atmosphère)。安裝完成後請重新開機以套用更新",
"sigpatches_text": "\ue016 Sigpatches可讓你的Switch安裝並執行非官方的NSP檔案。安裝完成後請重新開機以套用更新",
"firmware": "韌體",
"not_found": "沒有符合的項目",
"latest_cheats": "最新版本",

View file

@ -223,6 +223,9 @@ ChangelogPage::ChangelogPage() : AppletFrame(true, true)
verTitles.push_back("v2.16.3");
changes.push_back("\uE016 Fetch default profiles online for joy-con and pro-con color swaps.\n\uE016 Updated french localization (https://github.com/NotaInutilis).");
verTitles.push_back("v2.17.0");
changes.push_back("\uE016 Add ability to download a basic hekate_ipl file.\n\uE016 Add error messages when cheats are not found for a game.");
for (int i = verTitles.size() - 1; i >= 0; i--) {
listItem = new brls::ListItem(verTitles[i]);
change = changes[i];

View file

@ -103,6 +103,7 @@ namespace show_cheats {
{
std::filesystem::remove(fmt::format("{}{:016X}/cheats/{}.txt", util::getContentsPath(), tid, bid));
}
} // namespace show_cheats
DownloadCheatsPage::DownloadCheatsPage(uint64_t tid, const std::string& name) : AppletFrame(true, true), tid(tid), name(name)
@ -184,6 +185,24 @@ void DownloadCheatsPage::AddCheatsfileListItem()
this->list->addView(item);
}
void DownloadCheatsPage::ShowBidNotFound()
{
brls::Label* label = new brls::Label(
brls::LabelStyle::REGULAR,
"menus/cheats/bid_not_found"_i18n,
true);
this->list->addView(label);
}
void DownloadCheatsPage::ShowCheatsNotFound()
{
brls::Label* label = new brls::Label(
brls::LabelStyle::REGULAR,
"menus/cheats/cheats_not_found"_i18n,
true);
this->list->addView(label);
}
DownloadCheatsPage_CheatSlips::DownloadCheatsPage_CheatSlips(uint64_t tid, const std::string& name) : DownloadCheatsPage(tid, name)
{
this->label = new brls::Label(
@ -212,14 +231,13 @@ DownloadCheatsPage_CheatSlips::DownloadCheatsPage_CheatSlips(uint64_t tid, const
if (this->list->getViewsCount() > 1)
this->list->addView(new brls::ListItemGroupSpacing(true));
}
else {
ShowCheatsNotFound();
}
}
else {
this->label = new brls::Label(
brls::LabelStyle::REGULAR,
"menus/cheats/bid_not_found"_i18n,
true);
this->list->addView(label);
ShowBidNotFound();
}
this->list->registerAction((this->bid != "") ? "menus/cheats/cheatslips_dl_cheats"_i18n : "brls/hints/back"_i18n, brls::Key::B, [this] {
@ -356,14 +374,13 @@ DownloadCheatsPage_GbaTemp::DownloadCheatsPage_GbaTemp(uint64_t tid, const std::
}
this->list->addView(new brls::ListItemGroupSpacing(true));
}
else {
ShowCheatsNotFound();
}
}
else {
label = new brls::Label(
brls::LabelStyle::REGULAR,
"menus/cheats/bid_not_found"_i18n,
true);
list->addView(label);
ShowBidNotFound();
}
this->AddCheatsfileListItem();
this->setContentView(this->list);

View file

@ -37,9 +37,15 @@ ListDownloadTab::ListDownloadTab(const contentType type, const nlohmann::ordered
this->setDescription(contentType::payloads);
this->createList(contentType::payloads);
}
if (this->type == contentType::sigpatches) {
this->setDescription(contentType::hekate_ipl);
this->createList(contentType::hekate_ipl);
}
}
void ListDownloadTab::createList() {
void ListDownloadTab::createList()
{
ListDownloadTab::createList(this->type);
}
@ -62,17 +68,22 @@ void ListDownloadTab::createList(contentType type)
brls::StagedAppletFrame* stagedFrame = new brls::StagedAppletFrame();
stagedFrame->setTitle(fmt::format("menus/main/getting"_i18n, contentTypeNames[(int)type].data()));
stagedFrame->addStage(new ConfirmPage(stagedFrame, text));
if (type != contentType::payloads) {
if (type != contentType::payloads && type != contentType::hekate_ipl) {
if (type != contentType::cheats || (this->newCheatsVer != this->currentCheatsVer && this->newCheatsVer != "offline")) {
stagedFrame->addStage(new WorkerPage(stagedFrame, "menus/common/downloading"_i18n, [this, type, url]() { util::downloadArchive(url, type); }));
}
stagedFrame->addStage(new WorkerPage(stagedFrame, "menus/common/extracting"_i18n, [this, type]() { util::extractArchive(type, this->newCheatsVer); }));
}
else {
else if (type == contentType::payloads) {
fs::createTree(BOOTLOADER_PL_PATH);
std::string path = std::string(BOOTLOADER_PL_PATH) + title;
stagedFrame->addStage(new WorkerPage(stagedFrame, "menus/common/downloading"_i18n, [url, path]() { download::downloadFile(url, path, OFF); }));
}
else if (type == contentType::hekate_ipl) {
fs::createTree(BOOTLOADER_PATH);
std::string path = std::string(BOOTLOADER_PATH) + title;
stagedFrame->addStage(new WorkerPage(stagedFrame, "menus/common/downloading"_i18n, [url, path]() { download::downloadFile(url, path, OFF); }));
}
std::string doneMsg = "menus/common/all_done"_i18n;
switch (type) {
@ -150,6 +161,9 @@ void ListDownloadTab::setDescription(contentType type)
case contentType::payloads:
description->setText(fmt::format("menus/main/payloads_label"_i18n, BOOTLOADER_PL_PATH));
break;
case contentType::hekate_ipl:
description->setText("menus/main/hekate_ipl_label"_i18n);
break;
default:
break;
}