From 45eb4f7894b1f69943d5ce6885fb7c9c0fe481c5 Mon Sep 17 00:00:00 2001 From: Pk11 Date: Sat, 27 Mar 2021 00:14:25 -0500 Subject: [PATCH] Fix fonts being too big on TWN/CHN/KOR consoles --- gui.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gui.cpp b/gui.cpp index 6116c06..3cf1e4c 100644 --- a/gui.cpp +++ b/gui.cpp @@ -43,6 +43,7 @@ bool fadeout = false, fadein = false, fadeout2 = false, fadein2 = false; int fadealpha = 0; int fadecolor = 0; CFG_Region loadedSystemFont = (CFG_Region)-1; +float fontScaleFix = 1.0f; /* Clear the Text Buffer. @@ -89,6 +90,7 @@ Result Gui::init(CFG_Region fontRegion) { /* Load Textbuffer. */ TextBuf = C2D_TextBufNew(4096); + fontScaleFix = C2D_FontGetInfo(nullptr)->tglp->cellHeight / 30.0f; loadSystemFont(fontRegion); return 0; } @@ -215,16 +217,20 @@ void Gui::DrawString(float x, float y, float size, u32 color, const std::string C2D_TextOptimize(&c2d_text); + // Fix Citro2D messing up font scales on Chinese / Taiwanese / Korean consoles + size *= fontScaleFix; + if(!fnt) { switch(loadedSystemFont) { case CFG_REGION_CHN: + size *= 1.1f; + y += 3.0f * size; + break; + case CFG_REGION_KOR: y += 3.0f * size; break; case CFG_REGION_TWN: - size *= 1.3f; - y += 2.5f * size; - break; - case CFG_REGION_KOR: + size *= 1.4f; y += 3.0f * size; break; default: