From 84dfe45866e5ba7667909f7120e4da722bfb9704 Mon Sep 17 00:00:00 2001 From: The Gears of Progress Date: Wed, 28 Jan 2026 21:52:55 -0500 Subject: [PATCH] Adding Japanese comma and debug text options --- include/debug_mode.h | 2 +- include/text_engine.h | 2 +- source/text_engine.cpp | 28 ++++++++++---------------- text_helper/fonts/japanese_normal.png | Bin 2932 -> 2929 bytes text_helper/main.py | 2 +- 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/include/debug_mode.h b/include/debug_mode.h index 2992aed..c5d6b4b 100644 --- a/include/debug_mode.h +++ b/include/debug_mode.h @@ -2,7 +2,7 @@ #define DEBUG_MODE_H #define VERSION "v1.2.1" -#define PTGB_BUILD_LANGUAGE 2 +#define PTGB_BUILD_LANGUAGE 1 #define DEBUG_MODE true diff --git a/include/text_engine.h b/include/text_engine.h index a4274a1..fd993f5 100644 --- a/include/text_engine.h +++ b/include/text_engine.h @@ -30,6 +30,6 @@ int ptgb_write(const byte *text, bool instant); int ptgb_write(const byte *text, bool instant, int length); int ptgb_write_debug(const u16* charset, const char *text, bool instant); void wait_for_user_to_continue(bool clear_text); -void scroll_text(const byte *text, bool instant, int length, int curr_index, TTC *tc); +void scroll_text(bool instant, TTC *tc); #endif \ No newline at end of file diff --git a/source/text_engine.cpp b/source/text_engine.cpp index 60c57ee..98437e4 100644 --- a/source/text_engine.cpp +++ b/source/text_engine.cpp @@ -72,8 +72,6 @@ void init_text_engine() // Load the TTE // tte_init_se(3, BG_CBB(TEXT_CBB) | BG_SBB(TEXT_SBB) | BG_PRIO(0), 0, CLR_WHITE, 14, &japanese_smallFont, NULL); - - tte_init_chr4c(3, // BG 3 BG_CBB(TEXT_CBB) | BG_SBB(TEXT_SBB), // Charblock 0; screenblock 10 0xF000, // Screen-entry offset @@ -174,6 +172,7 @@ int text_loop(int script) { bool exit = false; bool update_text = true; + bool instant_text = false; key_poll(); while (!exit) { @@ -197,8 +196,9 @@ int text_loop(int script) text_section = (text_section + (NUM_TEXT_SECTIONS - 1)) % NUM_TEXT_SECTIONS; update_text = true; } - else if (key_hit(KEY_START)) + else if (key_hit(KEY_START) || key_hit(KEY_SELECT)) { + instant_text = key_hit(KEY_START); // instant with start, not with select exit = true; } if (update_text) @@ -239,7 +239,7 @@ int text_loop(int script) } show_text_box(); tte_erase_rect(0, 0, 240, 160); - ptgb_write(curr_text, false); + ptgb_write(curr_text, instant_text); } wait_for_user_to_continue(false); @@ -247,7 +247,6 @@ int text_loop(int script) hide_text_box(); REG_BG3VOFS = 0; - if (text_exit) { text_exit = false; @@ -332,7 +331,7 @@ int ptgb_write(const byte *text, bool instant, int length) tc->drawgProc(0x79); } wait_for_user_to_continue(false); - scroll_text(text, instant, length, num, tc); + scroll_text(instant, tc); tc->cursorY += tc->font->charH; tc->cursorX = tc->marginLeft; break; @@ -445,22 +444,17 @@ void wait_for_user_to_continue(bool clear_text) } } -void scroll_text(const byte *text, bool instant, int length, int curr_index, TTC *tc) +void scroll_text(bool instant, TTC *tc) { for (int i = 1; i <= tc->font->charH; i++) { REG_BG3VOFS = i; tte_erase_rect(LEFT, TOP - tc->font->charH, RIGHT, TOP + i); - global_next_frame(); + if (!instant) + { + global_next_frame(); + } } - //wait_for_user_to_continue(true); - // Remove current text - //tte_erase_rect(LEFT, TOP, RIGHT, BOTTOM); - // Write old text offset up one line - //tte_set_pos(LEFT, TOP - tc->font->charH); - //ptgb_write(text, true, curr_index); - // Remove text that went outside of the box + // Remove text that went outside of the box tte_erase_rect(LEFT, TOP - tc->font->charH, RIGHT, TOP); - // Prepare to continue - //tte_set_pos(LEFT, TOP); } diff --git a/text_helper/fonts/japanese_normal.png b/text_helper/fonts/japanese_normal.png index 68747f397f8c4812272b3b44e3c0680ad4336f03..2d00f15af950cd6fb0a16b931ae88e630195bf9e 100644 GIT binary patch delta 2862 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 diff --git a/text_helper/main.py b/text_helper/main.py index b3d7eff..2bd25b1 100755 --- a/text_helper/main.py +++ b/text_helper/main.py @@ -93,7 +93,7 @@ def split_into_sentences(text: str) -> list[str]: def split_sentence_into_lines(sentence, offset, pixelsPerChar, pixelsInLine, lang): # If we can optimize this to remove the spaces, it could save a few bytes. - splitChars = [' ', '、'] + splitChars = [' '] outStr = "" currLine = "" lineCount = 0