diff --git a/.gitignore b/.gitignore index d2d3c66..f3cbfa7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ cmake-build-debug CMakeLists.txt build +build_big output +output_big diff --git a/Makefile b/Makefile index daaf2c9..8459514 100644 --- a/Makefile +++ b/Makefile @@ -24,11 +24,11 @@ LIBRARY_DIRS := LIBRARIES := BUILD_FLAGS := -BUILD_FLAGS_CC := +BUILD_FLAGS_CC := -DSFTSYSTEM_MODE=64 BUILD_FLAGS_CXX := RUN_FLAGS := -VERSION_MAJOR := 2 +VERSION_MAJOR := 3 VERSION_MINOR := 0 VERSION_MICRO := 0 diff --git a/Makefile_big b/Makefile_big new file mode 100644 index 0000000..2e46d4e --- /dev/null +++ b/Makefile_big @@ -0,0 +1,72 @@ +# TARGET # + +TARGET := 3DS +LIBRARY := 0 + +ifeq ($(TARGET),$(filter $(TARGET),3DS WIIU)) + ifeq ($(strip $(DEVKITPRO)),) + $(error "Please set DEVKITPRO in your environment. export DEVKITPRO=devkitPro") + endif +endif + +# COMMON CONFIGURATION # + +NAME := SFontT80 + +BUILD_DIR := build_big +OUTPUT_DIR := output_big +INCLUDE_DIRS := include +SOURCE_DIRS := source + +EXTRA_OUTPUT_FILES := + +LIBRARY_DIRS := +LIBRARIES := + +BUILD_FLAGS := +BUILD_FLAGS_CC := -DSFTSYSTEM_MODE=80 +BUILD_FLAGS_CXX := +RUN_FLAGS := + +VERSION_MAJOR := 3 +VERSION_MINOR := 0 +VERSION_MICRO := 0 + +# 3DS/Wii U CONFIGURATION # + +ifeq ($(TARGET),$(filter $(TARGET),3DS WIIU)) + TITLE := $(NAME) + DESCRIPTION := Big Shared Font Tool + AUTHOR := dnasdw and enler +endif + +# 3DS CONFIGURATION # + +ifeq ($(TARGET),3DS) + LIBRARY_DIRS += $(DEVKITPRO)/libctru + LIBRARIES += ctru + + PRODUCT_CODE := CTR-P-BSFA + UNIQUE_ID := 0xF0002 + + CATEGORY := Application + USE_ON_SD := true + + MEMORY_TYPE := Application + SYSTEM_MODE := 80MB + SYSTEM_MODE_EXT := Legacy + CPU_SPEED := 268MHz + ENABLE_L2_CACHE := true + + ICON_FLAGS := + + ROMFS_DIR := romfs + BANNER_AUDIO := meta/audio_3ds.wav + BANNER_IMAGE := meta/banner_3ds_big.png + ICON := meta/icon_3ds_big.png + LOGO := meta/logo.darc.lz +endif + +# INTERNAL # + +include buildtools/make_base diff --git a/build_big.bat b/build_big.bat new file mode 100644 index 0000000..02e2dcc --- /dev/null +++ b/build_big.bat @@ -0,0 +1,3 @@ +make -f Makefile_big clean +make -f Makefile_big +PAUSE diff --git a/meta/banner_3ds.png b/meta/banner_3ds.png index f418bdf..37b35d3 100644 Binary files a/meta/banner_3ds.png and b/meta/banner_3ds.png differ diff --git a/meta/banner_3ds_big.png b/meta/banner_3ds_big.png new file mode 100644 index 0000000..c3b4466 Binary files /dev/null and b/meta/banner_3ds_big.png differ diff --git a/meta/icon_3ds.png b/meta/icon_3ds.png index 00349ac..30c017d 100644 Binary files a/meta/icon_3ds.png and b/meta/icon_3ds.png differ diff --git a/meta/icon_3ds_big.png b/meta/icon_3ds_big.png new file mode 100644 index 0000000..c4ceb82 Binary files /dev/null and b/meta/icon_3ds_big.png differ diff --git a/source/main.c b/source/main.c index 4696ebc..8db0c84 100644 --- a/source/main.c +++ b/source/main.c @@ -97,7 +97,11 @@ typedef struct FontCodeMap } __attribute__((packed)) FontCodeMap; #define CONVERT_ENDIAN(n) (((n) >> 24 & 0xFF) | ((n) >> 8 & 0xFF00) | (((n) & 0xFF00) << 8) | (((n) & 0xFF) << 24)) +#if SFTSYSTEM_MODE == 64 #define ADDRESS_NON_NEW_3DS 0x18000000 +#elif SFTSYSTEM_MODE == 80 +#define ADDRESS_NON_NEW_3DS 0x19000000 +#endif #define ADDRESS_NEW_3DS 0x1bc00000 #define GSP_HEAP_START_OFFSET_DEFAULT 0x14000000 #define GSP_HEAP_START_OFFSET_FIRM80 0x30000000 @@ -344,8 +348,12 @@ int main(int argc, char* argv[]) consoleInit(GFX_TOP, &g_TopScreen); consoleInit(GFX_BOTTOM, &g_BottomScreen); romfsInit(); - const char* pTitle = "Shared Font Tool v2.0"; - const char* pAuthors = "dnasdw, enler"; +#if SFTSYSTEM_MODE == 64 + const char* pTitle = "Shared Font Tool v3.0"; +#elif SFTSYSTEM_MODE == 80 + const char* pTitle = "Big Shared Font Tool v3.0"; +#endif + const char* pAuthors = "dnasdw and enler"; consoleSelect(&g_BottomScreen); // bottom 2,1 printf("\E[%d;1H", g_nBottomCurrentLine++); @@ -388,6 +396,13 @@ int main(int argc, char* argv[]) // top 5,6 printf("\E[%d;6H""New3DS: %s", g_nTopCurrentLine++, g_bNew3DS ? "true" : "false"); initSharedFontType(); + s32 nExitPossibility = 2; + if (!g_bNew3DS) + { +#if SFTSYSTEM_MODE == 64 + nExitPossibility = 0; +#endif + } s32 nRecoverPossibility = g_uSharedFontType == SHARED_FONT_TYPE_STD || g_uSharedFontType == SHARED_FONT_TYPE_CN || g_uSharedFontType == SHARED_FONT_TYPE_KR || g_uSharedFontType == SHARED_FONT_TYPE_TW ? 2 : 0; s32 nChangeFontPossibility[FONT_COUNT] = {}; nChangeFontPossibility[0] = g_uSharedFontType == SHARED_FONT_TYPE_STD || g_uSharedFontType == SHARED_FONT_TYPE_CN || g_uSharedFontType == SHARED_FONT_TYPE_KR || g_uSharedFontType == SHARED_FONT_TYPE_TW ? 2 : 0; @@ -476,7 +491,18 @@ int main(int argc, char* argv[]) // top 28,6 printf("\E[%d;6H""\E[0;%dm""Press SELECT : recover font""\E[0m", g_nTopCurrentLine++, nColor[nRecoverPossibility]); // top 29,6 - printf("\E[%d;6H""Press START : exit", g_nTopCurrentLine++); + if (g_bNew3DS) + { + printf("\E[%d;6H""Press START : exit", g_nTopCurrentLine++); + } + else + { +#if SFTSYSTEM_MODE == 64 + printf("\E[%d;6H""Press START : exit", g_nTopCurrentLine++); +#else + printf("\E[%d;6H""Press HOME : for start the game manually", g_nTopCurrentLine++); +#endif + } clearTop(); consoleSelect(&g_BottomScreen); while (aptMainLoop()) @@ -486,7 +512,10 @@ int main(int argc, char* argv[]) u32 uKeysDown = hidKeysDown(); if ((uKeysDown & KEY_START) != 0) { - break; + if (nExitPossibility != 0) + { + break; + } } else if ((uKeysDown & KEY_SELECT) != 0) {