From 44edfbe0e101642d72ee2268d317a4015d593ff2 Mon Sep 17 00:00:00 2001 From: Thomas Rohloff Date: Sun, 4 Aug 2024 18:42:17 +0200 Subject: [PATCH] Remove lite version. Signed-off-by: Thomas Rohloff --- Makefile | 4 ---- build.py | 12 ++---------- include/config.h | 9 ++------- include/queue.h | 4 ---- meta/menu/bootTvTex-lite.tga | Bin 2764844 -> 0 bytes meta/menu/iconTex-lite.tga | Bin 65580 -> 0 bytes src/cfw.c | 6 +----- src/config.c | 12 +----------- src/downloader.c | 2 -- src/main.c | 4 +--- src/menu/configMenu.c | 12 +----------- src/menu/downloadMenu.c | 6 +----- src/menu/installerMenu.c | 4 +--- src/menu/mainMenu.c | 32 +------------------------------ src/menu/menuUtils.c | 6 +----- src/menu/predownloadMenu.c | 6 +----- src/menu/queueMenu.c | 13 +++---------- src/no-intro.c | 4 +--- src/queue.c | 22 +-------------------- src/state.c | 8 +------- src/ticket.c | 11 +---------- src/updater.c | 36 ++++------------------------------- 22 files changed, 24 insertions(+), 189 deletions(-) delete mode 100644 meta/menu/bootTvTex-lite.tga delete mode 100644 meta/menu/iconTex-lite.tga diff --git a/Makefile b/Makefile index 5e9332b2..c6acd8cf 100644 --- a/Makefile +++ b/Makefile @@ -42,10 +42,6 @@ CFLAGS := $(MACHDEP) -Ofast -flto=auto -fno-fat-lto-objects \ -Wno-implicit-fallthrough \ -D__WIIU__ -D__WUT__ -DIOAPI_NO_64 -D__unix__ -ifeq ($(strip $(LITE)), 1) -CFLAGS += -DNUSSPLI_LITE -endif - CXXFLAGS := $(CFLAGS) -std=c++20 -fpermissive ASFLAGS := -g $(ARCH) LDFLAGS := -g $(ARCH) $(RPXSPECS) $(CFLAGS) -Wl,-Map,$(notdir $*.map) diff --git a/build.py b/build.py index 3cd5e1f1..5ca674c6 100755 --- a/build.py +++ b/build.py @@ -70,7 +70,7 @@ def cDownload(url, file): editionList = ["-DEBUG", ""] extList = [".rpx", ".zip", ".wuhb"] -pkgList = ["Aroma", "Channel", "Lite"] +pkgList = ["Aroma", "Channel"] for edition in editionList: for ext in extList: checkAndDeleteFile(f"NUSspli-{version}{edition}{ext}") @@ -79,7 +79,7 @@ def cDownload(url, file): for pkg in pkgList: checkAndDeleteFile(f"zips/NUSspli-{version}-{pkg}{edition}{ext}") -tmpArray = ["out/Aroma-DEBUG", "out/Lite-DEBUG", "out/Channel-DEBUG", "NUStmp/code"] +tmpArray = ["out/Aroma-DEBUG", "out/Channel-DEBUG", "NUStmp/code"] for path in tmpArray: os.makedirs(path) os.makedirs("zips", exist_ok=True) @@ -90,8 +90,6 @@ def cDownload(url, file): for file in files: if file.endswith(".xcf"): os.remove(os.path.join(root, file)) - if file.__contains__("-Lite"): - os.remove(os.path.join(root, file)) tmpArray = ["NUSspli.rpx", "NUStmp/meta/app.xml", "NUStmp/meta/cos.xml"] for file in tmpArray: @@ -100,9 +98,6 @@ def cDownload(url, file): os.system(f"java -jar {nuspacker} -in NUStmp -out out/Channel-DEBUG/NUSspli") shutil.make_archive(f"zips/NUSspli-{version}-Channel-DEBUG", "zip", "out/Channel-DEBUG", ".") -os.system(f"make clean && make -j$(nproc) LITE=1 debug && {wuhbtool} NUSspli.rpx out/Lite-DEBUG/NUSspli-Lite.wuhb --name=\"NUSspli Lite\" --short-name=\"NUSspli Lite\" --author=V10lator --icon=meta/menu/iconTex-lite.tga --tv-image=meta/menu/bootTvTex-lite.tga --drc-image=meta/menu/bootDrcTex.tga --content=data") -shutil.make_archive(f"zips/NUSspli-{version}-Lite-DEBUG", "zip", "out/Lite-DEBUG", ".") - if not isBeta: os.makedirs("out/Aroma") os.system(f"make clean && make -j$(nproc) release && {wuhbtool} NUSspli.rpx out/Aroma/NUSspli.wuhb --name=NUSspli --short-name=NUSspli --author=V10lator --icon=meta/menu/iconTex.tga --tv-image=meta/menu/bootTvTex.tga --drc-image=meta/menu/bootDrcTex.tga --content=data") @@ -112,8 +107,5 @@ def cDownload(url, file): os.makedirs("out/Channel") os.system(f"java -jar {nuspacker} -in NUStmp -out out/Channel/NUSspli") shutil.make_archive(f"zips/NUSspli-{version}-Channel", "zip", "out/Channel", ".") - os.makedirs("out/Lite") - os.system(f"make clean && make -j$(nproc) LITE=1 release && {wuhbtool} NUSspli.rpx out/Lite/NUSspli-Lite.wuhb --name=\"NUSspli Lite\" --short-name=\"NUSspli Lite\" --author=V10lator --icon=meta/menu/iconTex-lite.tga --tv-image=meta/menu/bootTvTex-lite.tga --drc-image=meta/menu/bootDrcTex.tga --content=data") - shutil.make_archive(f"zips/NUSspli-{version}-Lite", "zip", "out/Lite", ".") shutil.rmtree("NUStmp") diff --git a/include/config.h b/include/config.h index 1c2ff20c..11b33d1a 100644 --- a/include/config.h +++ b/include/config.h @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of NUSspli. * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * Copyright (c) 2022 Xpl0itU * * * * This program is free software; you can redistribute it and/or modify * @@ -31,12 +31,7 @@ #include #pragma GCC diagnostic pop -#ifndef NUSSPLI_LITE -#define CONFIG_PATH NUSDIR_SD "NUSspli.txt" -#else -#define CONFIG_PATH NUSDIR_SD "NUSspli-Lite.txt" -#endif - +#define CONFIG_PATH NUSDIR_SD "NUSspli.txt" #define TITLE_KEY_URL_MAX_SIZE 1024 #ifdef __cplusplus diff --git a/include/queue.h b/include/queue.h index 85abb5b7..56a64bb5 100644 --- a/include/queue.h +++ b/include/queue.h @@ -37,23 +37,19 @@ extern "C" { #endif -#ifndef NUSSPLI_LITE typedef enum { OPERATION_DOWNLOAD = 0x01, OPERATION_INSTALL = 0x02, OPERATION_DOWNLOAD_INSTALL = OPERATION_DOWNLOAD | OPERATION_INSTALL, } OPERATION; -#endif typedef struct { TMD *tmd; -#ifndef NUSSPLI_LITE size_t tmdSize; void *rambuf; // TODO OPERATION operation; -#endif const TitleEntry *entry; char titleVer[33]; char folderName[FS_MAX_PATH - 11] __attribute__((__aligned__(0x40))); diff --git a/meta/menu/bootTvTex-lite.tga b/meta/menu/bootTvTex-lite.tga deleted file mode 100644 index bd9f0a5263b33cf4e5e8d964cc3580d968758078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2764844 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 z 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�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 Cr$2H4 diff --git a/meta/menu/iconTex-lite.tga b/meta/menu/iconTex-lite.tga deleted file mode 100644 index 70a99cd8be9a4c24756a0a450afc291f723e919e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65580 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 diff --git a/src/cfw.c b/src/cfw.c index 8b8945ad..c222baa4 100644 --- a/src/cfw.c +++ b/src/cfw.c @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of NUSspli. * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -93,17 +93,13 @@ const char *cfwValid() if(s == MOCHA_RESULT_UNSUPPORTED_API_VERSION || s == MOCHA_RESULT_UNSUPPORTED_COMMAND) return printCfwError("Can't dummy load RPX: %s", Mocha_GetStatusStr(s)); -#ifndef NUSSPLI_LITE if(!isChannel()) { -#endif char path[FS_MAX_PATH]; RPXLoaderStatus rs = RPXLoader_GetPathOfRunningExecutable(path, FS_MAX_PATH); if(rs != RPX_LOADER_RESULT_SUCCESS) return printCfwError("RPXLoader error: %s", RPXLoader_GetStatusStr(rs)); -#ifndef NUSSPLI_LITE } -#endif for(; oi < 6; ++oi) { diff --git a/src/config.c b/src/config.c index 7f65e3da..aa513e79 100644 --- a/src/config.c +++ b/src/config.c @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of NUSspli. * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * Copyright (c) 2022 Xpl0itU * * * * This program is free software; you can redistribute it and/or modify * @@ -77,10 +77,8 @@ static bool autoResume = true; static Swkbd_LanguageType lang = Swkbd_LanguageType__Invalid; static Swkbd_LanguageType sysLang; static Swkbd_LanguageType menuLang = Swkbd_LanguageType__English; -#ifndef NUSSPLI_LITE static bool dlToUSB = true; static MCPRegion regionSetting = MCP_REGION_EUROPE | MCP_REGION_USA | MCP_REGION_JAPAN; -#endif static NOTIF_METHOD notifSetting = NOTIF_METHOD_RUMBLE | NOTIF_METHOD_LED; static inline void intSetMenuLanguage() @@ -249,7 +247,6 @@ void initConfig() changed = true; } -#ifndef NUSSPLI_LITE configEntry = json_object_get(json, "Region"); if(configEntry != NULL && json_is_string(configEntry)) { @@ -276,7 +273,6 @@ void initConfig() addToScreenLog("Download to setting not found!"); changed = true; } -#endif configEntry = json_object_get(json, "Notification method"); if(configEntry != NULL && json_is_string(configEntry)) @@ -403,14 +399,12 @@ void saveConfig(bool force) value = json_string(getLanguageString(lang)); if(setValue(config, "Keyboard language", value)) { -#ifndef NUSSPLI_LITE value = json_string(getFormattedRegion(getRegion())); if(setValue(config, "Region", value)) { value = dlToUSB ? json_true() : json_false(); if(setValue(config, "Download to USB", value)) { -#endif value = json_string(getNotificationString(getNotificationMethod())); if(setValue(config, "Notification method", value)) { @@ -438,10 +432,8 @@ void saveConfig(bool force) } } } -#ifndef NUSSPLI_LITE } } -#endif } } } @@ -500,7 +492,6 @@ const char *getFormattedRegion(MCPRegion region) return region & MCP_REGION_JAPAN ? SET_JPN : "Unknown"; } -#ifndef NUSSPLI_LITE bool dlToUSBenabled() { return dlToUSB; @@ -528,7 +519,6 @@ void setRegion(MCPRegion region) regionSetting = region; changed = true; } -#endif Swkbd_LanguageType getMenuLanguage() { diff --git a/src/downloader.c b/src/downloader.c index 3a769308..5837658b 100644 --- a/src/downloader.c +++ b/src/downloader.c @@ -889,7 +889,6 @@ int downloadFile(const char *url, char *file, downloadData *data, FileType type, return 0; } -#ifndef NUSSPLI_LITE bool downloadTitle(const TMD *tmd, size_t tmdSize, const TitleEntry *titleEntry, const char *titleVer, char *folderName, bool inst, NUSDEV dlDev, bool toUSB, bool keepFiles, QUEUE_DATA *queueData) { char tid[17]; @@ -1149,7 +1148,6 @@ bool downloadTitle(const TMD *tmd, size_t tmdSize, const TitleEntry *titleEntry, return ret; } -#endif RAMBUF *allocRamBuf() { diff --git a/src/main.c b/src/main.c index 7cd6edb4..92d562d4 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2019-2020 Pokes303 * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -147,9 +147,7 @@ static void innerMain() checkStacks("main()"); if(!updateCheck()) { -#ifndef NUSSPLI_LITE initFSSpace(); -#endif checkStacks("main"); mainMenu(); // main loop checkStacks("main"); diff --git a/src/menu/configMenu.c b/src/menu/configMenu.c index bcb0585d..fb97dd2c 100644 --- a/src/menu/configMenu.c +++ b/src/menu/configMenu.c @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of NUSspli. * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * Copyright (c) 2022 Xpl0itU * * * * This program is free software; you can redistribute it and/or modify * @@ -35,11 +35,7 @@ #include #pragma GCC diagnostic pop -#ifndef NUSSPLI_LITE #define ENTRY_COUNT 4 -#else -#define ENTRY_COUNT 3 -#endif static int cursorPos = 0; @@ -68,12 +64,10 @@ static void drawConfigMenu() strcat(toScreen, localise(getNotificationString(getNotificationMethod()))); textToFrame(3, 4, toScreen); -#ifndef NUSSPLI_LITE strcpy(toScreen, localise("Region:")); strcat(toScreen, " "); strcat(toScreen, localise(getFormattedRegion(getRegion()))); textToFrame(4, 4, toScreen); -#endif lineToFrame(MAX_LINES - 2, SCREEN_COLOR_WHITE); textToFrame(MAX_LINES - 1, ALIGNED_CENTER, localise("Press " BUTTON_B " to return")); @@ -193,7 +187,6 @@ static inline void switchNotificationMethod() setNotificationMethod(m); } -#ifndef NUSSPLI_LITE static inline void switchRegion() { MCPRegion reg = getRegion(); @@ -235,7 +228,6 @@ static inline void switchRegion() setRegion(reg); } -#endif void configMenu() { @@ -276,11 +268,9 @@ void configMenu() case 3: switchNotificationMethod(); break; -#ifndef NUSSPLI_LITE case 4: switchRegion(); break; -#endif } redraw = true; diff --git a/src/menu/downloadMenu.c b/src/menu/downloadMenu.c index 0a3a4399..d4d323af 100644 --- a/src/menu/downloadMenu.c +++ b/src/menu/downloadMenu.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2019-2020 Pokes303 * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -17,8 +17,6 @@ * with this program; if not, If not, see . * ***************************************************************************/ -#ifndef NUSSPLI_LITE - #include #include @@ -63,5 +61,3 @@ bool downloadMenu() return false; } - -#endif // ifndef NUSSPLI_LITE diff --git a/src/menu/installerMenu.c b/src/menu/installerMenu.c index d3d8d5b5..253cf48b 100644 --- a/src/menu/installerMenu.c +++ b/src/menu/installerMenu.c @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of NUSspli. * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -49,10 +49,8 @@ static bool addToOpQueue(const TitleEntry *entry, const char *dir, const TMD *tm return false; titleInfo->tmd = (TMD *)tmd; -#ifndef NUSSPLI_LITE titleInfo->rambuf = NULL; titleInfo->operation = OPERATION_INSTALL; -#endif titleInfo->entry = entry; strcpy(titleInfo->folderName, dir); titleInfo->dlDev = fromDev; diff --git a/src/menu/mainMenu.c b/src/menu/mainMenu.c index 75a163a9..a551e69f 100644 --- a/src/menu/mainMenu.c +++ b/src/menu/mainMenu.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2019-2020 Pokes303 * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * Copyright (c) 2022 Xpl0itU * * * * This program is free software; you can redistribute it and/or modify * @@ -50,11 +50,7 @@ static void drawMainMenuFrame() boxToFrame(0, 5); textToFrame(1, ALIGNED_CENTER, "NUSspli"); textToFrame(3, ALIGNED_CENTER, -#ifndef NUSSPLI_LITE "NUS simple packet loader/installer" -#else - "Lite" -#endif " [" NUSSPLI_VERSION "]"); textToFrame(4, ALIGNED_CENTER, NUSSPLI_COPYRIGHT); @@ -62,13 +58,9 @@ static void drawMainMenuFrame() arrowToFrame(cursorPos, 0); int line = 11; -#ifndef NUSSPLI_LITE textToFrame(line++, 4, localise("Download content")); -#endif textToFrame(line++, 4, localise("Install content")); -#ifndef NUSSPLI_LITE textToFrame(line++, 4, localise("Generate a fake file")); -#endif textToFrame(line++, 4, localise("Browse installed titles")); textToFrame(line++, 4, localise("Options")); textToFrame(line++, 4, localise("Logs")); @@ -122,35 +114,21 @@ void mainMenu() switch(cursorPos) { case 11: -#ifndef NUSSPLI_LITE titleBrowserMenu(); break; case 12: -#endif installerMenu(); break; -#ifndef NUSSPLI_LITE case 13: generateFakeTicket(); break; case 14: -#else - case 12: -#endif ititleBrowserMenu(); break; -#ifndef NUSSPLI_LITE case 15: -#else - case 13: -#endif configMenu(); break; -#ifndef NUSSPLI_LITE case 16: -#else - case 14: -#endif logsMenu(); break; } @@ -159,11 +137,7 @@ void mainMenu() } else if(vpad.trigger & VPAD_BUTTON_DOWN) { -#ifndef NUSSPLI_LITE if(++cursorPos == 17) -#else - if(++cursorPos == 15) -#endif cursorPos = 11; redraw = true; @@ -171,11 +145,7 @@ void mainMenu() else if(vpad.trigger & VPAD_BUTTON_UP) { if(--cursorPos == 10) -#ifndef NUSSPLI_LITE cursorPos = 16; -#else - cursorPos = 14; -#endif redraw = true; } diff --git a/src/menu/menuUtils.c b/src/menu/menuUtils.c index b901a638..86e28d08 100644 --- a/src/menu/menuUtils.c +++ b/src/menu/menuUtils.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2019-2020 Pokes303 * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -156,11 +156,7 @@ void drawErrorFrame(const char *text, ErrorOptions option) } lineToFrame(--line, SCREEN_COLOR_WHITE); -#ifndef NUSSPLI_LITE textToFrame(--line, 0, "NUSspli v" NUSSPLI_VERSION); -#else - textToFrame(--line, 0, "NUSspli Lite v" NUSSPLI_VERSION); -#endif drawFrame(); } diff --git a/src/menu/predownloadMenu.c b/src/menu/predownloadMenu.c index 4ad33e73..b5103b2c 100644 --- a/src/menu/predownloadMenu.c +++ b/src/menu/predownloadMenu.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2019-2020 Pokes303 * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * Copyright (c) 2022 Xpl0itU * * * * This program is free software; you can redistribute it and/or modify * @@ -18,8 +18,6 @@ * with this program; if not, If not, see . * ***************************************************************************/ -#ifndef NUSSPLI_LITE - #include #include @@ -809,5 +807,3 @@ bool predownloadMenu(const TitleEntry *entry) return ret; } - -#endif // ifndef NUSSPLI_LITE diff --git a/src/menu/queueMenu.c b/src/menu/queueMenu.c index bd9b6dda..18e83714 100644 --- a/src/menu/queueMenu.c +++ b/src/menu/queueMenu.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2022 Xpl0itU * - * Copyright (c) 2022 V10lator * + * Copyright (c) 2022-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -36,13 +36,8 @@ #pragma GCC diagnostic pop #define MAX_ENTRIES (MAX_LINES - 4) -#ifndef NUSSPLI_LITE -#define SPACER 7 -#define SPACER_END 14 -#else -#define SPACER 4 -#define SPACER_END 17 -#endif +#define SPACER 7 +#define SPACER_END 14 static void drawQueueMenu(LIST *titleQueue, size_t cursor, size_t pos) { @@ -66,7 +61,6 @@ static void drawQueueMenu(LIST *titleQueue, size_t cursor, size_t pos) if(cursor == i++) arrowToFrame(i, 1); -#ifndef NUSSPLI_LITE if(data->operation & OPERATION_DOWNLOAD) { switch(data->dlDev) @@ -84,7 +78,6 @@ static void drawQueueMenu(LIST *titleQueue, size_t cursor, size_t pos) } if(data->operation & OPERATION_INSTALL) -#endif deviceToFrame(i, SPACER, data->toUSB ? DEVICE_TYPE_USB : DEVICE_TYPE_NAND); if(isDLC(data->tmd->tid)) diff --git a/src/no-intro.c b/src/no-intro.c index ead0fef8..37d6cae0 100644 --- a/src/no-intro.c +++ b/src/no-intro.c @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of NUSspli. * - * Copyright (c) 2023 V10lator * + * Copyright (c) 2023-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -221,7 +221,6 @@ NO_INTRO_DATA *transformNoIntro(const char *path) return NULL; } -#ifndef NUSSPLI_LITE TMD *tmd = getTmd(data->path, false); if(tmd == NULL) goto transformError2; @@ -244,7 +243,6 @@ NO_INTRO_DATA *transformNoIntro(const char *path) debugPrintf("Error creating cert at %s", data->path); goto transformError2; } -#endif *fromP = '\0'; return data; diff --git a/src/queue.c b/src/queue.c index 7dcf838b..c84b30ee 100644 --- a/src/queue.c +++ b/src/queue.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2022 Xpl0itU * - * Copyright (c) 2022 V10lator * + * Copyright (c) 2022-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -49,20 +49,16 @@ int addToQueue(TitleData *data) TitleData *title; forEachListEntry(titleQueue, title) { -#ifndef NUSSPLI_LITE if(data->operation & OPERATION_INSTALL && title->operation & OPERATION_INSTALL) { -#endif if(data->toUSB && title->toUSB && data->tmd->tid == title->tmd->tid) return 2; -#ifndef NUSSPLI_LITE } if(data->operation & OPERATION_DOWNLOAD && title->operation & OPERATION_DOWNLOAD) { if(data->dlDev == title->dlDev && data->tmd->tid == title->tmd->tid) return 3; } -#endif } return addToListEnd(titleQueue, data) ? 1 : 0; @@ -73,11 +69,9 @@ static inline void removeFQ(TitleData *title) if(title != NULL) { removeFromList(titleQueue, title); -#ifndef NUSSPLI_LITE if(title->rambuf != NULL) freeRamBuf(title->rambuf); else -#endif MEMFreeToDefaultHeap(title->tmd); MEMFreeToDefaultHeap(title); @@ -88,24 +82,17 @@ bool proccessQueue() { TitleData *title; uint64_t sizes[3] = { 0, 0, 0 }; -#ifndef NUSSPLI_LITE QUEUE_DATA queueData = { .downloaded = 0, .dlSize = 0, .packages = 0, .current = 0, .eta = -1 }; -#endif forEachListEntry(titleQueue, title) { -#ifndef NUSSPLI_LITE if(title->operation & OPERATION_DOWNLOAD) queueData.packages++; -#endif for(uint16_t i = 0; i < title->tmd->num_contents; ++i) { -#ifndef NUSSPLI_LITE if(title->operation & OPERATION_INSTALL) -#endif sizes[title->toUSB ? 0 : 2] += title->tmd->contents[i].size; -#ifndef NUSSPLI_LITE if(title->operation & OPERATION_DOWNLOAD) { queueData.dlSize += title->tmd->contents[i].size; @@ -121,7 +108,6 @@ bool proccessQueue() sizes[j] += title->tmd->contents[i].size; } } -#endif } } @@ -155,7 +141,6 @@ bool proccessQueue() if(!AppRunning(true)) goto exitApd; -#ifndef NUSSPLI_LITE if(title->operation & OPERATION_DOWNLOAD) { queueData.current++; @@ -165,12 +150,9 @@ bool proccessQueue() } else if(title->operation & OPERATION_INSTALL) { -#endif if(!install(title->entry == NULL ? prettyDir(title->folderName) : title->entry->name, false /* TODO */, title->dlDev, title->folderName, title->toUSB, title->keepFiles, title->tmd)) goto exitApd; -#ifndef NUSSPLI_LITE } -#endif last = title; } @@ -189,11 +171,9 @@ bool removeFromQueue(uint32_t index) if(title == NULL) return false; -#ifndef NUSSPLI_LITE if(title->rambuf != NULL) freeRamBuf(title->rambuf); else -#endif MEMFreeToDefaultHeap(title->tmd); MEMFreeToDefaultHeap(title); diff --git a/src/state.c b/src/state.c index 2818c1fb..b5d874e0 100644 --- a/src/state.c +++ b/src/state.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2019-2020 Pokes303 * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -43,9 +43,7 @@ volatile APP_STATE app; static bool shutdownEnabled = true; -#ifndef NUSSPLI_LITE static bool channel; -#endif static bool aroma; static bool apdEnabled; static uint32_t apdDisabledCount = 0; @@ -108,12 +106,10 @@ void disableShutdown() debugPrintf("Home key disabled!"); } -#ifndef NUSSPLI_LITE bool isChannel() { return channel; } -#endif uint32_t homeButtonCallback(void *dummy) { @@ -145,9 +141,7 @@ void initState() ACPInitialize(); aroma = RPXLoader_InitLibrary() == RPX_LOADER_RESULT_SUCCESS; -#ifndef NUSSPLI_LITE channel = OSGetTitleID() == 0x0005000010155373; -#endif uint32_t ime; if(IMIsAPDEnabledBySysSettings(&ime) == 0) diff --git a/src/ticket.c b/src/ticket.c index f4182e01..e5e6c114 100644 --- a/src/ticket.c +++ b/src/ticket.c @@ -1,7 +1,7 @@ /*************************************************************************** * This file is part of NUSspli. * * Copyright (c) 2019-2020 Pokes303 * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -74,18 +74,12 @@ WUT_CHECK_OFFSET(TICKET_HEADER_SECTION, 0x18, unk06); WUT_CHECK_SIZE(TICKET_HEADER_SECTION, 0x98); static const uint8_t magic_header[10] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }; -#ifndef NUSSPLI_LITE static uint8_t default_cert[sizeof(OTHER_PPKI_CERT)] = { 0xff }; -#endif static void generateHeader(FileType type, NUS_HEADER *out) { OSBlockMove(out->magic_header, magic_header, 10, false); -#ifndef NUSSPLI_LITE OSBlockMove(out->app, "NUSspli", sizeof("NUSspli") - 1, false); -#else - OSBlockMove(out->app, "NUSspli Lite", sizeof("NUSspli Lite") - 1, false); -#endif OSBlockMove(out->app_version, NUSSPLI_VERSION, sizeof(NUSSPLI_VERSION) - 1, false); if(type == FILE_TYPE_TIK) @@ -162,7 +156,6 @@ bool generateTik(const char *path, const TMD *tmd) return true; } -#ifndef NUSSPLI_LITE static uint8_t *getDefaultCert() { uint8_t *ret = NULL; @@ -380,8 +373,6 @@ void generateFakeTicket() MEMFreeToDefaultHeap(tmd); } -#endif // ifndef NUSSPLI_LITE - void deleteTicket(uint64_t tid) { LIST *ticketList = createList(); diff --git a/src/updater.c b/src/updater.c index a69df989..e50edce5 100644 --- a/src/updater.c +++ b/src/updater.c @@ -1,6 +1,6 @@ /*************************************************************************** * This file is part of NUSspli. * - * Copyright (c) 2020-2022 V10lator * + * Copyright (c) 2020-2024 V10lator * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -62,11 +62,7 @@ #define MAX_ZIP_PATH_LENGTH 32 -#ifndef NUSSPLI_LITE -#define UPDATE_AROMA_FILE "NUSspli.wuhb" -#else -#define UPDATE_AROMA_FILE "NUSspli-Lite.wuhb" -#endif +#define UPDATE_AROMA_FILE "NUSspli.wuhb" #ifdef NUSSPLI_DEBUG #define NUSSPLI_DLVER "-DEBUG" @@ -99,13 +95,7 @@ bool updateCheck() if(rambuf == NULL) return false; - const char *updateChkUrl = -#ifdef NUSSPLI_LITE - UPDATE_CHECK_URL "l"; -#else - !isChannel() ? UPDATE_CHECK_URL "a" : UPDATE_CHECK_URL "c"; -#endif - + const char *updateChkUrl = !isChannel() ? UPDATE_CHECK_URL "a" : UPDATE_CHECK_URL "c"; bool ret = false; if(downloadFile(updateChkUrl, "JSON", NULL, FILE_TYPE_JSON | FILE_TYPE_TORAM, false, NULL, rambuf) == 0) { @@ -130,11 +120,7 @@ bool updateCheck() const char *newVer = json_string_value(json_object_get(json, "v")); ret = newVer != NULL; if(ret) -#ifdef NUSSPLI_LITE - ret = updateMenu(newVer, NUSSPLI_TYPE_AROMA); -#else ret = updateMenu(newVer, !isChannel() ? NUSSPLI_TYPE_AROMA : NUSSPLI_TYPE_CHANNEL); -#endif break; case 2: // Type deprecated, update to what the server suggests const char *nv = json_string_value(json_object_get(json, "v")); @@ -402,11 +388,7 @@ bool update(const char *newVersion, NUSSPLI_TYPE type) switch(type) { case NUSSPLI_TYPE_AROMA: -#ifndef NUSSPLI_LITE strcat(path, "-Aroma"); -#else - strcat(path, "-Lite"); -#endif break; case NUSSPLI_TYPE_CHANNEL: strcat(path, "-Channel"); @@ -429,8 +411,7 @@ bool update(const char *newVersion, NUSSPLI_TYPE type) if(!unzipUpdate(rambuf)) goto updateError; - // Uninstall currently running type/version -#ifndef NUSSPLI_LITE + // Uninstall currently running type/version bool toUSB = getUSB() != NUSDEV_NONE; if(isChannel()) { @@ -449,7 +430,6 @@ bool update(const char *newVersion, NUSSPLI_TYPE type) } else { -#endif RPXLoaderStatus rs = RPXLoader_GetPathOfRunningExecutable(path + (sizeof(NUSDIR_SD) - 1), FS_MAX_PATH - sizeof(NUSDIR_SD) - 1); if(rs == RPX_LOADER_RESULT_SUCCESS) { @@ -474,24 +454,18 @@ bool update(const char *newVersion, NUSSPLI_TYPE type) showUpdateErrorf("%s: %s", localise("Aroma error"), RPXLoader_GetStatusStr(rs)); goto updateError; } -#ifndef NUSSPLI_LITE } -#endif // Install new type/version flushIOQueue(); -#ifndef NUSSPLI_LITE switch(type) { case NUSSPLI_TYPE_AROMA: -#endif char *path2 = getStaticPathBuffer(0); strcpy(path2, UPDATE_TEMP_FOLDER UPDATE_AROMA_FILE); -#ifndef NUSSPLI_LITE if(isChannel()) // On Aroma the path is the path of the currently running wuhb file already. On Channel we have to set it to default. strcpy(path, UPDATE_AROMA_FOLDER UPDATE_AROMA_FILE); -#endif err = FSARename(getFSAClient(), path2, path); if(err != FS_ERROR_OK) @@ -499,14 +473,12 @@ bool update(const char *newVersion, NUSSPLI_TYPE type) showUpdateErrorf("%s: %s", localise("Error moving file"), translateFSErr(err)); goto updateError; } -#ifndef NUSSPLI_LITE break; case NUSSPLI_TYPE_CHANNEL: strcpy(path, UPDATE_TEMP_FOLDER "NUSspli/"); install("Update", false, NUSDEV_SD, path, toUSB, true, NULL); break; } -#endif freeRamBuf(rambuf); removeDirectory(UPDATE_TEMP_FOLDER);