Skip to content

Commit

Permalink
v13.5
Browse files Browse the repository at this point in the history
  • Loading branch information
Ghost0159 committed Jul 2, 2022
1 parent 407eacb commit 9646df9
Show file tree
Hide file tree
Showing 31 changed files with 358 additions and 222 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ endif

# Print new version if changed
ifeq (,$(findstring $(GIT_VER), $(shell cat include/version.hpp)))
$(shell printf "#ifndef VERSION_HPP\n#define VERSION_HPP\n\n#define VER_NUMBER \"$(GIT_VER)\"\n\n#endif\n" > include/version.hpp)
$(shell printf "#ifndef VERSION_HPP\n#define VERSION_HPP\n\n#define VER_NUMBER \"$(GIT_VER)\"\n#define GIT_SHA \"$(GIT_SHA)\"\n\n#endif\n" > include/version.hpp)
endif

#---------------------------------------------------------------------------------
Expand Down Expand Up @@ -114,7 +114,7 @@ CFLAGS := -g -Wall -Wno-psabi -O2 -mword-relocations \
-fomit-frame-pointer -ffunction-sections \
$(ARCH)

CFLAGS += $(INCLUDE) -DARM11 -D_3DS -D_GNU_SOURCE=1
CFLAGS += $(INCLUDE) -D__3DS__ -D_GNU_SOURCE=1

CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++17 $(CITRA)

Expand Down Expand Up @@ -329,4 +329,4 @@ endif
cppcheck:
@rm -f cppcheck.log
@cppcheck . --enable=all $(INCLUDE) -UJSON_CATCH_USER -U_Check_return_ -U_MSC_VER -U_Ret_notnull_ -U__INTEL_COMPILER -U__PGI -U__SUNPRO_CC -UJSON_INTERNAL_CATCH_USER -UJSON_THROW_USER -UJSON_TRY_USER -U__IBMCPP__ -U__SUNPRO_CC -D__GNUC__=9 -D__GNUC_MINOR__=1 -DNULL=nullptr --force 2> cppcheck.log
@echo cppcheck.log file created...
@echo cppcheck.log file created...
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<div align="center"><a href="https://ghosteshop.com"><img src="https://github.com/Ghost0159/Ghost-eShop-Homebrew/raw/main/ressources/icon/icon_2-96x96.png" height="64px"></a></div>

# Ghost-Eshop-Alternative-3DS
A free alternative eShop for the Nintendo 3DS family of systems.
An Alternative eShop for the Nintendo 3DS family of systems.

# Download
### Requirements
- Latest versions are made available [here](https://ghosteshop.com/)
- Latest version available [here](https://ghosteshop.com/)

- A Homebrewed Nintendo 3DS(XL)/2DS(XL)
- A Modded Nintendo 3DS(XL)/2DS(XL)

- An SD Card with at least 500 MB to install games (Size may vary depending on the game you choose!)
- An SD Card with at least 500 MB to install games

<details><summary><B>ScreenShot of Ghost eShop</B></summary>
<div><a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/01-Checking%20Update.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/01-Checking%20Update.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/02-Main%20Menu.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/02-Main%20Menu.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/03-Multi%20Version.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/03-Multi%20Version.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/04-Availible%20Downloads.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/04-Availible%20Downloads.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/05-Search%20%26%20Filters.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/05-Search%20%26%20Filters.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/06-Search%20Title.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/06-Search%20Title.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/07-Search%20Author.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/07-Search%20Author.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/08-Search%20Category.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/08-Search%20Category.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/09-Search%20Category.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/09-Search%20Category.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/10-Search%20Console.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/10-Search%20Console.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/11-Mark%20Menu.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/11-Mark%20Menu.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/12-Mark%20Game.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/12-Mark%20Game.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/13-Filter%20Mark.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/13-Filter%20Mark.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/14-Sorting%20Menu.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/14-Sorting%20Menu.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/15-Sorting%20Title%20Ascending.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/15-Sorting%20Title%20Ascending.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/16-Sorting%20Last%20Update%20Descending.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/16-Sorting%20Last%20Update%20Descending.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/17-Grid%20Vue.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/17-Grid%20Vue.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/17-List%20Vue.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/17-List%20Vue.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/18-Settings%20Menu.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/18-Settings%20Menu.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/19-Choose%20Language.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/19-Choose%20Language.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/20-Select%20eShop.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/20-Select%20eShop.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/30-View%20Screen%201.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/30-View%20Screen%201.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/30-View%20Screen%202.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/30-View%20Screen%202.png" height="300px"></a> <a href="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/31-Screen%20Boxart.png"><img src="https://cdn.ghosteshop.com/Images/3ds/Ghost%20eShop%20Alternative%203DS/screenshot/31-Screen%20Boxart.png" height="300px"></a></div>
Expand All @@ -26,7 +26,7 @@ ______________________

##### Setting up your environment:

*To build Ghost-eShop-Homebrew from source, you will need to setup a system with devkitARM, libctru and 3ds-libarchive. Follow devkitPro's [Getting Started](https://devkitpro.org/wiki/Getting_Started) page to install pacman, then run `(sudo dkp-)pacman -S devkitARM libctru 3ds-curl 3ds-libarchive`*
*To build Ghost-Eshop-Alternative-3ds from source, you will need to setup a system with devkitARM, libctru and 3ds-libarchive. Follow devkitPro's [Getting Started](https://devkitpro.org/wiki/Getting_Started) page to install pacman, then run `(sudo dkp-)pacman -S devkitARM libctru 3ds-curl 3ds-libarchive`*

Install [Git](https://git-scm.com/downloads) if you haven't already
</details>
Expand Down
4 changes: 2 additions & 2 deletions include/screens/mainScreen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class MainScreen : public Screen {
void Draw(void) const override;
void Logic(u32 hDown, u32 hHeld, touchPosition touch) override;
private:
std::vector<std::string> dwnldList, dwnldSizes;
std::vector<std::string> dwnldList, dwnldSizes, dwnldTypes;

bool initialized = false, fetchDown = false, showMarks = false, showSettings = false,
ascending = false, updateFilter = false, screenshotFetch = false, canDisplay = false, isAND = true;
Expand All @@ -62,7 +62,7 @@ class MainScreen : public Screen {
SortType sorttype = SortType::LAST_UPDATED;

/* Title, Author, Category, Console. */
std::vector<bool> searchIncludes = { false, false, false, false }, installs = { };
std::vector<bool> searchIncludes = { true, false, false, false }, installs = { };
std::string searchResult = "", screenshotName = "";

C2D_Image Screenshot = { nullptr, nullptr };
Expand Down
3 changes: 2 additions & 1 deletion include/store/store.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ class Store {
std::string GetAdditionalcontentEntry(int index) const;
C2D_Image GetIconEntry(int index) const;
std::string GetFileSizes(int index, const std::string &entry) const;
std::string GetFileTypes(int index, const std::string &entry) const;
std::vector<std::string> GetScreenshotList(int index) const;
std::vector<std::string> GetScreenshotNames(int index) const;
std::string GetReleaseNotes(int index) const;
Expand Down Expand Up @@ -85,7 +86,7 @@ class Store {
C2D_Image GetStoreImg() const { return this->storeBG; };
bool customBG() const { return this->hasCustomBG; };

/* Return filename of the eShop. */
/* Return filename of the UniStore. */
std::string GetFileName() const { return this->fileName; };
private:
void SetC2DBGImage();
Expand Down
3 changes: 2 additions & 1 deletion include/store/storeEntry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ class StoreEntry {
std::vector<std::string> GetCategoryFull() const { return this->FullCategory; };
std::vector<std::string> GetConsoleFull() const { return this->FullConsole; };
std::vector<std::string> GetSizes() const { return this->Sizes; };
std::vector<std::string> GetTypes() const { return this->Types; };
std::vector<std::string> GetScreenshots() const { return this->Screenshots; };
std::vector<std::string> GetScreenshotNames() const { return this->ScreenshotNames; };
std::string GetReleaseNotes() const { return this->ReleaseNotes; };
Expand All @@ -69,7 +70,7 @@ class StoreEntry {
std::string Title, Author, Description, Category, Version, Console, LastUpdated, MarkString, Additional, ReleaseNotes;
C2D_Image Icon;
int SheetIndex, EntryIndex, Marks;
std::vector<std::string> FullCategory, FullConsole, Sizes, Screenshots, ScreenshotNames;
std::vector<std::string> FullCategory, FullConsole, Sizes, Types, Screenshots, ScreenshotNames;
bool UpdateAvailable;
};

Expand Down
5 changes: 4 additions & 1 deletion include/store/storeUtils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ namespace StoreUtils {

/* Download entries. */
void DrawDownList(const std::vector<std::string> &entries, bool fetch, const std::unique_ptr<StoreEntry> &entry, const std::vector<std::string> &sizes, const std::vector<bool> &installs);
void DownloadHandle(const std::unique_ptr<StoreEntry> &entry, const std::vector<std::string> &entries, int &currentMenu, const int &lastMode, int &smallDelay, std::vector<bool> &installs);
void DownloadHandle(const std::unique_ptr<StoreEntry> &entry, const std::vector<std::string> &entries, int &currentMenu, const int &lastMode, int &smallDelay, std::vector<bool> &installs, const std::vector<std::string> &types);

/* Queue System. */
void DrawQueueMenu(const int queueIndex);
Expand Down Expand Up @@ -91,6 +91,9 @@ namespace StoreUtils {
void SortHandle(bool &asc, SortType &st);

/* Release Notes. */
size_t FindSplitPoint(const std::string &str, const std::vector<std::string> splitters);
void ProcessReleaseNotes(std::string ReleaseNotes);

void DrawReleaseNotes(const int &scrollIndex, const std::unique_ptr<StoreEntry> &entry);
void ReleaseNotesLogic(int &scrollIndex, int &storeMode);

Expand Down
8 changes: 6 additions & 2 deletions include/utils/config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ class Config {
bool updatecheck() const { return this->v_updateCheck; };
void updatecheck(bool v) { this->v_updateCheck = v; if (!this->changesMade) this->changesMade = true; };

/* Check for nightly/release on startup. */
bool updatenightly() const { return this->v_updateNightly; };
void updatenightly(bool v) { this->v_updateNightly = v; if (!this->changesMade) this->changesMade = true; };

/* Ghost eShop Update check on startup. */
bool usebg() const { return this->v_showBg; };
void usebg(bool v) { this->v_showBg = v; if (!this->changesMade) this->changesMade = true; };
Expand Down Expand Up @@ -114,10 +118,10 @@ class Config {
bool changesMade = false;

std::string v_language = "en", v_lastStore = "ghosteshop.unistore",
v_3dsxPath = "sdmc:/3ds", v_ndsPath = "sdmc:", v_archivePath = "sdmc:",
v_3dsxPath = "sdmc:/3ds", v_ndsPath = "sdmc:/roms/nds", v_archivePath = "sdmc:",
v_shortcutPath = "sdmc:/3ds/Universal-Updater/shortcuts", v_firmPath = "sdmc:/luma/payloads", v_theme = "Default";

bool v_list = false, v_autoUpdate = true, v_metadata = true, v_updateCheck = true,
bool v_list = false, v_autoUpdate = true, v_metadata = true, v_updateCheck = true, v_updateNightly = false,
v_showBg = false, v_customFont = false, v_changelog = true, v_prompt = true, v_3dsxInFolder = false;
};

Expand Down
2 changes: 1 addition & 1 deletion include/utils/download.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
#include "common.hpp"

#define APP_TITLE "Ghost eShop"
#define VERSION_STRING "13.0.0"
#define VERSION_STRING "13.5"

enum DownloadError {
DL_ERROR_NONE = 0,
Expand Down
6 changes: 3 additions & 3 deletions include/utils/scriptUtils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ enum ScriptState {
namespace ScriptUtils {
bool matchPattern(const std::string &pattern, const std::string &tested);

Result removeFile(const std::string &file, const std::string &message, bool isARG = false);
void bootTitle(const std::string &TitleID, bool isNAND, const std::string &message, bool isARG = false);
Result removeFile(const std::string &file, bool isARG = false);
void bootTitle(const std::string &TitleID, bool isNAND, bool isARG = false);
Result prompt(const std::string &message);
Result copyFile(const std::string &source, const std::string &destination, const std::string &message, bool isARG = false);
Result renameFile(const std::string &oldName, const std::string &newName, const std::string &message, bool isARG = false);
Result renameFile(const std::string &oldName, const std::string &newName, bool isARG = false);
Result downloadRelease(const std::string &repo, const std::string &file, const std::string &output, bool includePrereleases, const std::string &message, bool isARG = false);
Result downloadFile(const std::string &file, const std::string &output, const std::string &message, bool isARG = false);
void installFile(const std::string &file, bool updatingSelf, const std::string &message, bool isARG = false);
Expand Down
4 changes: 2 additions & 2 deletions ressources/Themes/default/Themes.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"BoxInside": "#C05A00",
"BoxSelected": "#FF5200",
"BoxUnselected": "#000000",
"Description": "Ghost eShop's default theme.\n\nBy: Ghost eShop Team",
"Description": "Ghost eShop's default Theme.\n\nBy: Ghost eShop Team",
"DownListPrev": "#9C6000",
"EntryBar": "#DF6500",
"EntryOutline": "#BF4500",
Expand All @@ -21,4 +21,4 @@
"SideBarUnselected": "#DF6500",
"TextColor": "#FFFFFF"
}
}
}
18 changes: 11 additions & 7 deletions romfs/lang/en/app.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"3D_BANNER": "Eden for the 3D banner",
"3DSX_IN_FOLDER": "Put 3DSX files in folder",
"3DSX_IN_FOLDER_DESC": "If they are enabled, 3DSX files will be put in a folder with the same name than the last set folder",
"3DSX_IN_FOLDER_DESC": "If enabled, 3DSX files will be put in a folder with the same name instead of directly in the set folder.",
"ACTION_CANCELED": "%s canceled!",
"ACTION_FAILED": "%s failed!",
"ACTION_REQUIRED": "Action required!",
"ACTION_SUCCEEDED": "%s succeeded!",
"ACTIVE_THEME": "Active Theme",
"ARGUMENT_INVALID": "Invalid argument.\nPlease check the xml file for proper arguments.",
"ASCENDING": "Ascending",
"ARGUMENT_INVALID": "Argument invalid.\nPlease check the xml file for proper arguments.",
"AUTHOR": "Author",
"AUTO_UPDATE_ESHOP": "Auto-update eShop",
"AUTO_UPDATE_ESHOP_DESC": "With this, the last used eShop will be updated automatically when launching Ghost eShop.",
Expand Down Expand Up @@ -38,13 +38,13 @@
"COPY_ERROR": "Copy Error!",
"CREATE_SHORTCUT": "Would you like to create a shortcut?",
"CREDITS": "Credits",
"CREDITS_BTN": "Credits...",
"CURRENT_VERSION": "Current version: ",
"CURRENTLY_EXTRACTING": "Currently extracting:",
"CUSTOM_FONT": "Use Custom Font",
"CUSTOM_FONT_DESC": "If enabled, 'sdmc:/3ds/GhosteShop/font.bcfnt' will be used instead of the system font, if found.",
"CUSTOM_FONT_DESC": "If enabled, 'sdmc:/3ds/Universal-Updater/font.bcfnt' will be used instead of the system font, if found.",
"DELETE_ERROR": "Delete Error!",
"DELETE_PROMPT": "Are you sure you want to delete this Directory?",
"DELETE_UNNEEDED_FILE": "Deleting unneeded file...",
"DELETING": "Deleting...",
"DESCENDING": "Descending",
"DIRECTION": "Direction",
Expand Down Expand Up @@ -79,9 +79,9 @@
"FEATURE_SIDE_EFFECTS": "This Feature may have side effects while the Queue is running.\nAre you sure you want to continue?",
"FETCHING_METADATA": "Fetching old metadata...",
"FETCHING_RECOMMENDED_ESHOP": "Fetching recommended eShop...",
"FILE_EXTRACTED": "file extracted.",
"FILE_SLASH": "Seems like a '/' is included in file name, which is not supported.\nPlease change 'sheet' of filename",
"FILES": "File: %d / %d",
"FILE_EXTRACTED": "file extracted.",
"FILE_SLASH": "Seems like a '/' is included, which is not supported.\nPlease change 'file' to filename only.",
"FILES_EXTRACTED": "files extracted.",
"FILTER_TO": "Filter to:",
"GITHUB": "Full credits can be found on GitHub",
Expand All @@ -93,7 +93,7 @@
"INSTALL_GHOST_ESHOP": "Installing Ghost eShop...",
"INVALID_ESHOP": "Invalid eShop",
"KEY_CONTINUE": "Press any key to continue.",
"LANGUAGE": "Language",
"LANGUAGE": "Language...",
"LAST_UPDATED": "Last updated",
"LIST": "List",
"LOADING_SCREENSHOT": "Loading Screenshot...",
Expand Down Expand Up @@ -130,6 +130,10 @@
"SETTINGS": "Settings",
"SHEET_SLASH": "Seems like a '/' is included, which is not supported.\nPlease change 'sheet' to filename only.",
"SHORTCUT_CREATED": "Shortcut created!",
"SHORTCUT_COPYING": "Copying %s...",
"SHORTCUT_DOWNLOADING": "Downloading %s...",
"SHORTCUT_EXTRACTING": "Extracting %s...",
"SHORTCUT_INSTALLING": "Installing %s...",
"SIZE": "Size",
"SORT_BY": "Sort By",
"SORTING": "Sorting",
Expand Down
10 changes: 7 additions & 3 deletions source/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,11 @@ Result Init::Initialize() {
mkdir("sdmc:/3ds/Universal-Updater/stores", 0777);
mkdir("sdmc:/3ds/Universal-Updater/shortcuts", 0777);
mkdir("sdmc:/3ds/Universal-Updater/GhosteShop", 0777);
mkdir("sdmc:/roms/", 0777);
mkdir("sdmc:/roms/nds/", 0777);
mkdir("sdmc:/_nds/", 0777);
mkdir("sdmc:/_nds/TWiLightMenu/", 0777);
mkdir("sdmc:/_nds/TWiLightMenu/boxart/", 0777);

config = std::make_unique<Config>();
UIThemes = std::make_unique<Theme>();
Expand Down Expand Up @@ -196,9 +201,8 @@ Result Init::MainLoop() {
C3D_FrameEnd(0);

if (!exiting) Gui::ScreenLogic(hDown, hHeld, touch, true, false);

if (exiting) {
if (hDown & KEY_START) fullExit = true; // Make it optionally faster.
else {
if (hidKeysDown() & KEY_START) fullExit = true; // Make it optionally faster.

if (fadeAlpha < 255) {
fadeAlpha += 4;
Expand Down
Loading

0 comments on commit 9646df9

Please sign in to comment.