aboutsummaryrefslogtreecommitdiffhomepage
path: root/Cart_Reader/ARC.ino
diff options
context:
space:
mode:
authorsanni <[email protected]>2023-01-15 15:25:24 +0100
committersanni <[email protected]>2023-01-15 15:25:24 +0100
commit978fc80287975ac10bf4901aba91284499348b55 (patch)
tree557b21007682bd36dc0313e44e44d6b233aa758f /Cart_Reader/ARC.ino
parent8114721d9d7b86bca41ed860df956edf1fca1d06 (diff)
downloadcartreader-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.ino60
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:"));