diff --git a/Cart_Reader/Cart_Reader.ino b/Cart_Reader/Cart_Reader.ino index c0c62f9..a672655 100644 --- a/Cart_Reader/Cart_Reader.ino +++ b/Cart_Reader/Cart_Reader.ino @@ -830,7 +830,7 @@ boolean checkCartSelection(FsFile& database, void (*readData)(FsFile&, void*), v print_STR(press_to_select_STR, 1); #elif defined(SERIAL_MONITOR) println_Msg(F("U/D to Change")); - println_Msg(F("Space to Select")); + println_Msg(F("Space/Zero to Select")); #endif display_Update(); @@ -905,7 +905,7 @@ void printInstructions() { print_STR(press_to_select_STR, 1); # elif defined(SERIAL_MONITOR) println_Msg(F("U/D to Change")); - println_Msg(F("Space to Select")); + println_Msg(F("Space/Zero to Select")); # endif /* ENABLE_OLED | ENABLE_LCD | SERIAL_MONITOR */ display_Update(); @@ -980,6 +980,15 @@ int navigateMenu(int min, int max, void (*printSelection)(int)) { } } } +#elif defined(SERIAL_MONITOR) +int navigateMenu(__attribute__((unused)) int min,__attribute__((unused)) int max, void (*printSelection)(int)) { + printSelection(0); + Serial.println(F("Enter number to change:_")); + while (Serial.available() == 0) {} + int selectedNumber = Serial.parseInt(); + delay(200); + return selectedNumber; +} # endif /* (ENABLE_OLED | ENABLE_LCD) */ # endif /* ENABLE_ */ @@ -2844,18 +2853,24 @@ void blinkLED() { #if defined(ENABLE_VSELECT) // Nothing #elif defined(HW5) + // 3mm LED on D38, front of PCB PORTD ^= (1 << 7); #elif defined(ENABLE_OLED) + // 5mm LED on D10, above SD slot PORTB ^= (1 << 4); -#elif defined(ENABLE_LCD) +#elif defined(ENABLE_LCD) // HW4 + // TX LED on D1, build-in PORTE ^= (1 << 1); #elif defined(ENABLE_SERIAL) - PORTB ^= (1 << 4); + // 5mm LED on D10, above SD slot (HW3) + PORTB ^= (1 << 4); //HW4/HW5 LCD RST connects there now too + // 3mm LED on D38, front of PCB (HW5) PORTB ^= (1 << 7); #endif } #if defined(HW5) && !defined(ENABLE_VSELECT) +// 3mm LED on D38, front of PCB void statusLED(boolean on) { if (!on) PORTD |= (1 << 7); @@ -3159,7 +3174,7 @@ uint8_t checkButton() { } //Selection - else if (incomingByte == 240) { + else if ((incomingByte == 240) || (incomingByte == -16) || (incomingByte == 0)) { return 3; } diff --git a/Cart_Reader/GBA.ino b/Cart_Reader/GBA.ino index ef4336a..171c56a 100644 --- a/Cart_Reader/GBA.ino +++ b/Cart_Reader/GBA.ino @@ -2532,7 +2532,9 @@ byte selectBlockNumber(boolean option) { blockNumber = navigateMenu(0, 63, &printblockNumber); else blockNumber = navigateMenu(0, 32, &printFileSize); +#if (defined(ENABLE_OLED) || defined(ENABLE_LCD)) display.setCursor(0, 56); // Display selection at bottom +#endif if (option) { print_Msg(F("Block Number: ")); println_Msg(blockNumber); @@ -2569,6 +2571,9 @@ void read369in1(byte blockNumber, byte fileSizeByte) { unsigned long lastBlock = 0x2000000; if (fileSize < lastBlock) lastBlock = startBlock + fileSize; + unsigned long lastBuffer = 0x400000; + if (fileSize < lastBuffer) + lastBuffer = fileSize; //Initialize progress bar uint32_t processedProgressBar = 0; @@ -2582,7 +2587,7 @@ void read369in1(byte blockNumber, byte fileSizeByte) { // Set-up 369-in-1 mapper mapBlock369in1((currBank + currBlock) / 1024 / 1024); // 4MB Block - for (unsigned long currBuffer = 0; currBuffer < 0x400000; currBuffer += 1024) { + for (unsigned long currBuffer = 0; currBuffer < lastBuffer; currBuffer += 1024) { // 1024 byte readBuffer for (int currWord = 0; currWord < 1024; currWord += 2) { word tempWord = readWord_GBA(currBlock + currBuffer + currWord); @@ -2723,9 +2728,9 @@ void write369in1(byte blockNumber) { void flashRepro_GBA(boolean option) { // Check flashrom ID's idFlashrom_GBA(); - byte blockNum; if ((flashid == 0x8802) || (flashid == 0x8816) || (flashid == 0x227E) || (flashid == 0x8812)) { + byte blockNum = 0; print_Msg(F("ID: ")); print_Msg(flashid_str); print_Msg(F(" Size: ")); diff --git a/Cart_Reader/MD.ino b/Cart_Reader/MD.ino index 4bed801..ef8ed58 100644 --- a/Cart_Reader/MD.ino +++ b/Cart_Reader/MD.ino @@ -2896,7 +2896,9 @@ void printRomSize_MD(int index) { void force_cartSize_MD() { cartSize = navigateMenu(0, 9, &printRomSize_MD); cartSize = pgm_read_byte(&(MDSize[cartSize])) * 131072; + #if (defined(ENABLE_OLED) || defined(ENABLE_LCD)) display.setCursor(0, 56); // Display selection at bottom + #endif print_Msg(FS(FSTRING_ROM_SIZE)); print_Msg(cartSize / 131072); println_Msg(F(" Mbit")); diff --git a/Cart_Reader/NES.ino b/Cart_Reader/NES.ino index 2b1241d..089000e 100644 --- a/Cart_Reader/NES.ino +++ b/Cart_Reader/NES.ino @@ -1163,7 +1163,7 @@ setmapper: String newmap; bool mapfound = false; Serial.println(F("SUPPORTED MAPPERS:")); - for (size_t i = 0; i < mapcount; i++) { + for (int i = 0; i < mapcount; i++) { mapselect = pgm_read_word(mapsize + i); Serial.print("["); Serial.print(mapselect); @@ -1257,7 +1257,7 @@ void setPRGSize() { else { setprg: String sizePRG; - for (size_t i = 0; i < (prghi - prglo + 1); i++) { + for (int i = 0; i < (prghi - prglo + 1); i++) { Serial.print(F("Select PRG Size: ")); Serial.print(i); Serial.print(F(" = ")); @@ -1325,7 +1325,7 @@ void setCHRSize() { else { setchr: String sizeCHR; - for (size_t i = 0; i < (chrhi - chrlo + 1); i++) { + for (int i = 0; i < (chrhi - chrlo + 1); i++) { Serial.print(F("Select CHR Size: ")); Serial.print(i); Serial.print(F(" = ")); @@ -1435,7 +1435,7 @@ void setRAMSize() { else { setram: String sizeRAM; - for (size_t i = 0; i < (ramhi - ramlo + 1); i++) { + for (int i = 0; i < (ramhi - ramlo + 1); i++) { Serial.print(F("Select RAM Size: ")); Serial.print(i); Serial.print(F(" = "));