diff options
author | sanni <[email protected]> | 2023-01-15 15:25:24 +0100 |
---|---|---|
committer | sanni <[email protected]> | 2023-01-15 15:25:24 +0100 |
commit | 978fc80287975ac10bf4901aba91284499348b55 (patch) | |
tree | 557b21007682bd36dc0313e44e44d6b233aa758f /Cart_Reader/ARC.ino | |
parent | 8114721d9d7b86bca41ed860df956edf1fca1d06 (diff) | |
download | cartreader-978fc80287975ac10bf4901aba91284499348b55.tar.gz cartreader-978fc80287975ac10bf4901aba91284499348b55.zip |
Fix display flicker on HW5 with Arc, Atari, Fairchild and Ody2 size/mapper selection
Diffstat (limited to 'Cart_Reader/ARC.ino')
-rw-r--r-- | Cart_Reader/ARC.ino | 60 |
1 files changed, 50 insertions, 10 deletions
diff --git a/Cart_Reader/ARC.ino b/Cart_Reader/ARC.ino index 8efc01b..946cb12 100644 --- a/Cart_Reader/ARC.ino +++ b/Cart_Reader/ARC.ino @@ -192,7 +192,7 @@ void readROM_ARC() { calcCRC(fileName, crcsize, NULL, 0); println_Msg(F("")); - println_Msg(F("Press Button...")); + print_STR(press_button_STR, 1); display_Update(); wait(); } @@ -209,26 +209,61 @@ void setROMSize_ARC() { else { int b = 0; int i = arclo; + + display_Clear(); + print_Msg(F("ROM Size: ")); + println_Msg(ARC[i]); + println_Msg(F("")); +#if defined(enable_OLED) + print_STR(press_to_change_STR, 1); + print_STR(right_to_select_STR, 1); +#elif defined(enable_LCD) + print_STR(rotate_to_change_STR, 1); + print_STR(press_to_select_STR, 1); +#endif + display_Update(); + while (1) { - display_Clear(); - print_Msg(F("ROM Size: ")); - println_Msg(ARC[i]); - println_Msg(F("")); - println_Msg(F("Press to Change")); - println_Msg(F("Hold to Select")); - display_Update(); b = checkButton(); if (b == 2) { // Previous (doubleclick) if (i == arclo) i = archi; else i--; + + // Only update display after input because of slow LCD library + display_Clear(); + print_Msg(F("ROM Size: ")); + println_Msg(ARC[i]); + println_Msg(F("")); +#if defined(enable_OLED) + print_STR(press_to_change_STR, 1); + print_STR(right_to_select_STR, 1); +#elif defined(enable_LCD) + print_STR(rotate_to_change_STR, 1); + print_STR(press_to_select_STR, 1); +#endif + display_Update(); } if (b == 1) { // Next (press) if (i == archi) i = arclo; else i++; + + // Only update display after input because of slow LCD library + display_Clear(); + print_Msg(F("ROM Size: ")); + println_Msg(ARC[i]); + println_Msg(F("")); +#if defined(enable_OLED) + print_STR(press_to_change_STR, 1); + print_STR(right_to_select_STR, 1); +#elif defined(enable_LCD) + print_STR(rotate_to_change_STR, 1); + print_STR(press_to_select_STR, 1); +#endif + display_Update(); } if (b == 3) { // Long Press - Execute (hold) newarcsize = i; @@ -423,8 +458,13 @@ bool getCartListInfo_ARC() { println_Msg(F("")); println_Msg(arcgame); display.setCursor(0, 48); - println_Msg(F("Press to Change")); - println_Msg(F("Hold to Select")); +#if defined(enable_OLED) + print_STR(press_to_change_STR, 1); + print_STR(right_to_select_STR, 1); +#elif defined(enable_LCD) + print_STR(rotate_to_change_STR, 1); + print_STR(press_to_select_STR, 1); +#endif display_Update(); #else Serial.print(F("CART TITLE:")); |