aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Cart_Reader/Cart_Reader.ino40
-rw-r--r--Cart_Reader/NGP.ino18
2 files changed, 33 insertions, 25 deletions
diff --git a/Cart_Reader/Cart_Reader.ino b/Cart_Reader/Cart_Reader.ino
index 0ef9c2f..e8b43a0 100644
--- a/Cart_Reader/Cart_Reader.ino
+++ b/Cart_Reader/Cart_Reader.ino
@@ -4,8 +4,8 @@
This project represents a community-driven effort to provide
an easy to build and easy to modify cartridge dumper.
- Date: 13.02.2023
- Version: 12.3
+ Date: 23.02.2023
+ Version: 12.4
SD lib: https://github.com/greiman/SdFat
LCD lib: https://github.com/olikraus/u8g2
@@ -23,7 +23,7 @@
Wayne and Layne - Video Game Shield menu
skaman - Cart ROM READER SNES ENHANCED, Famicom Cart Dumper, Coleco-, Intellivision, Virtual Boy, WSV, PCW, ARC, Atari, ODY2, Fairchild modules
Tamanegi_taro - PCE and Satellaview modules
- splash5 - GBSmart, Wonderswan and NGP modules
+ splash5 - GBSmart, Wonderswan, NGP and Super A'can modules
hkz & themanbehindthecurtain - N64 flashram commands
Andrew Brown & Peter Den Hartog - N64 controller protocol
libdragon - N64 controller checksum functions
@@ -57,7 +57,7 @@
**********************************************************************************/
-char ver[5] = "12.3";
+char ver[5] = "12.4";
//******************************************
// !!! CHOOSE HARDWARE VERSION !!!
@@ -1005,10 +1005,11 @@ static const char modeItem15[] PROGMEM = "Atari 2600";
static const char modeItem16[] PROGMEM = "Magnavox Odyssey 2";
static const char modeItem17[] PROGMEM = "Arcadia 2001";
static const char modeItem18[] PROGMEM = "Fairchild Channel F";
-static const char modeItem19[] PROGMEM = "Flashrom Programmer";
-static const char modeItem20[] PROGMEM = "Super A'can";
+static const char modeItem19[] PROGMEM = "Super A'can";
+static const char modeItem20[] PROGMEM = "Flashrom Programmer";
static const char modeItem21[] PROGMEM = "About";
-static const char* const modeOptions[] PROGMEM = { modeItem1, modeItem2, modeItem3, modeItem4, modeItem5, modeItem6, modeItem7, modeItem8, modeItem9, modeItem10, modeItem11, modeItem12, modeItem13, modeItem14, modeItem15, modeItem16, modeItem17, modeItem18, modeItem19, modeItem20, modeItem21 };
+//static const char modeItem22[] PROGMEM = "Reset"; (stored in common strings array)
+static const char* const modeOptions[] PROGMEM = { modeItem1, modeItem2, modeItem3, modeItem4, modeItem5, modeItem6, modeItem7, modeItem8, modeItem9, modeItem10, modeItem11, modeItem12, modeItem13, modeItem14, modeItem15, modeItem16, modeItem17, modeItem18, modeItem19, modeItem20, modeItem21, string_reset2 };
// All included slots
void mainMenu() {
@@ -1020,7 +1021,7 @@ void mainMenu() {
// Main menu spans across three pages
currPage = 1;
lastPage = 1;
- numPages = 3;
+ numPages = 4;
while (1) {
if (currPage == 1) {
@@ -1029,9 +1030,12 @@ void mainMenu() {
} else if (currPage == 2) {
option_offset = 7;
num_answers = 7;
- } else { // currPage == 3
+ } else if (currPage == 3) {
option_offset = 14;
num_answers = 7;
+ } else { // currPage == 4
+ option_offset = 21;
+ num_answers = 1;
}
// Copy menuOptions out of progmem
convertPgm(modeOptions + option_offset, num_answers);
@@ -1179,8 +1183,14 @@ void mainMenu() {
break;
#endif
-#ifdef enable_FLASH
+#ifdef enable_SUPRACAN
case 18:
+ setup_SuprAcan();
+ break;
+#endif
+
+#ifdef enable_FLASH
+ case 19:
#ifdef enable_FLASH16
flashMenu();
#else
@@ -1189,16 +1199,14 @@ void mainMenu() {
break;
#endif
-#ifdef enable_SUPRACAN
- case 19:
- setup_SuprAcan();
- break;
-#endif
-
case 20:
aboutScreen();
break;
+ case 21:
+ resetArduino();
+ break;
+
default:
print_MissingModule(); // does not return
}
diff --git a/Cart_Reader/NGP.ino b/Cart_Reader/NGP.ino
index cd81ba5..2359e46 100644
--- a/Cart_Reader/NGP.ino
+++ b/Cart_Reader/NGP.ino
@@ -109,26 +109,26 @@ bool getCartInfo_NGP() {
// 4 Mbits
case 0x98ab: // Toshiba
case 0x204c: // STMicroelectronics ?
- cartSize = 524288;
- break;
+ cartSize = 524288;
+ break;
// 8 Mbits
case 0x982c: // Toshiba
case 0xec2c: // Samsung
- cartSize = 1048576;
- break;
+ cartSize = 1048576;
+ break;
// 16 Mbits
case 0x982f: // Toshiba
case 0xec2f: // Samsung
case 0x4c7: // Fujitsu (FlashMasta USB)
- cartSize = 2097152;
- break;
+ cartSize = 2097152;
+ break;
// detection error (no cart inserted or hw problem)
case 0xffff:
- return false;
- break;
+ return false;
+ break;
}
// reset to read mode
@@ -159,7 +159,7 @@ bool getCartInfo_NGP() {
for (uint32_t i = 0; i < 17; i++) {
romName[i] = readByte_NGP(0x24 + i);
- // replace '/' chars in game name to avoid path errors
+ // replace '/' chars in game name to avoid path errors
if (romName[i] == '/')
romName[i] = '_';
}