From dd59c61e04915a64e62e40ea98c01783e2bbe239 Mon Sep 17 00:00:00 2001 From: BeezBumba Date: Thu, 27 Aug 2026 18:31:16 -0500 Subject: [PATCH 1/3] Fix font issues with game titles --- rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp b/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp index f6bb10a38500..c03a4d0abd4b 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp @@ -126,7 +126,10 @@ namespace rsx result.font_names.emplace_back("Roboto-Regular.ttf"); result.font_names.emplace_back("OpenSans-Regular.ttf"); result.font_names.emplace_back("FreeSans.ttf"); -#elif !defined(_WIN32) +#elif defined(_WIN32) + // Covers symbol blocks (e.g. Roman numerals) that plain Arial may be missing glyphs for. + result.font_names.emplace_back("tahoma.ttf"); +#else result.font_names.emplace_back("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"); // ubuntu result.font_names.emplace_back("/usr/share/fonts/TTF/DejaVuSans.ttf"); // arch #endif @@ -360,6 +363,14 @@ namespace rsx default: { const bool is_whitespace = c == ' '; + + // CJK/Hangul scripts don't use spaces between words, so allow breaking right + // before each such character instead of only at whitespace. + if (!is_whitespace && classify(get_page_id(c)) != language_class::default_) + { + begin_of_word = result.size(); + } + stbtt_aligned_quad quad{}; if (is_whitespace) From 82b185a3678201f562a391a4f146e2acfc8c613d Mon Sep 17 00:00:00 2001 From: BeezBumba Date: Fri, 28 Aug 2026 17:32:17 -0500 Subject: [PATCH 2/3] moved conditon --- rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp b/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp index c03a4d0abd4b..c84ef74d84e5 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp @@ -364,13 +364,6 @@ namespace rsx { const bool is_whitespace = c == ' '; - // CJK/Hangul scripts don't use spaces between words, so allow breaking right - // before each such character instead of only at whitespace. - if (!is_whitespace && classify(get_page_id(c)) != language_class::default_) - { - begin_of_word = result.size(); - } - stbtt_aligned_quad quad{}; if (is_whitespace) @@ -413,8 +406,9 @@ namespace rsx result.emplace_back(quad.x0, quad.y1, quad.s0, quad.t1); result.emplace_back(quad.x1, quad.y1, quad.s1, quad.t1); - // The next word will begin after any whitespaces. - if (is_whitespace) + // The next word will begin after any whitespaces. CJK/Hangul scripts don't use spaces + // between words, so also allow breaking right after each such character. + if (is_whitespace || classify(get_page_id(c)) != language_class::default_) { begin_of_word = result.size(); } From d3ac6b7f629aaad471d13737c8ab8d54e2ee6f29 Mon Sep 17 00:00:00 2001 From: BeezBumba <130922034+BeezBumba@users.noreply.github.com> Date: Sat, 29 Aug 2026 09:42:29 -0500 Subject: [PATCH 3/3] Update overlay_fonts.cpp --- rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp b/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp index c84ef74d84e5..9320005796b3 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp @@ -363,7 +363,6 @@ namespace rsx default: { const bool is_whitespace = c == ' '; - stbtt_aligned_quad quad{}; if (is_whitespace)