mirror of
https://github.com/sanni/cartreader.git
synced 2025-02-03 07:12:42 +01:00
Up version to V12.4
This commit is contained in:
parent
626b10ea50
commit
b5e6ac00a5
@ -4,8 +4,8 @@
|
|||||||
This project represents a community-driven effort to provide
|
This project represents a community-driven effort to provide
|
||||||
an easy to build and easy to modify cartridge dumper.
|
an easy to build and easy to modify cartridge dumper.
|
||||||
|
|
||||||
Date: 13.02.2023
|
Date: 23.02.2023
|
||||||
Version: 12.3
|
Version: 12.4
|
||||||
|
|
||||||
SD lib: https://github.com/greiman/SdFat
|
SD lib: https://github.com/greiman/SdFat
|
||||||
LCD lib: https://github.com/olikraus/u8g2
|
LCD lib: https://github.com/olikraus/u8g2
|
||||||
@ -23,7 +23,7 @@
|
|||||||
Wayne and Layne - Video Game Shield menu
|
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
|
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
|
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
|
hkz & themanbehindthecurtain - N64 flashram commands
|
||||||
Andrew Brown & Peter Den Hartog - N64 controller protocol
|
Andrew Brown & Peter Den Hartog - N64 controller protocol
|
||||||
libdragon - N64 controller checksum functions
|
libdragon - N64 controller checksum functions
|
||||||
@ -57,7 +57,7 @@
|
|||||||
|
|
||||||
**********************************************************************************/
|
**********************************************************************************/
|
||||||
|
|
||||||
char ver[5] = "12.3";
|
char ver[5] = "12.4";
|
||||||
|
|
||||||
//******************************************
|
//******************************************
|
||||||
// !!! CHOOSE HARDWARE VERSION !!!
|
// !!! 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 modeItem16[] PROGMEM = "Magnavox Odyssey 2";
|
||||||
static const char modeItem17[] PROGMEM = "Arcadia 2001";
|
static const char modeItem17[] PROGMEM = "Arcadia 2001";
|
||||||
static const char modeItem18[] PROGMEM = "Fairchild Channel F";
|
static const char modeItem18[] PROGMEM = "Fairchild Channel F";
|
||||||
static const char modeItem19[] PROGMEM = "Flashrom Programmer";
|
static const char modeItem19[] PROGMEM = "Super A'can";
|
||||||
static const char modeItem20[] PROGMEM = "Super A'can";
|
static const char modeItem20[] PROGMEM = "Flashrom Programmer";
|
||||||
static const char modeItem21[] PROGMEM = "About";
|
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
|
// All included slots
|
||||||
void mainMenu() {
|
void mainMenu() {
|
||||||
@ -1020,7 +1021,7 @@ void mainMenu() {
|
|||||||
// Main menu spans across three pages
|
// Main menu spans across three pages
|
||||||
currPage = 1;
|
currPage = 1;
|
||||||
lastPage = 1;
|
lastPage = 1;
|
||||||
numPages = 3;
|
numPages = 4;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
if (currPage == 1) {
|
if (currPage == 1) {
|
||||||
@ -1029,9 +1030,12 @@ void mainMenu() {
|
|||||||
} else if (currPage == 2) {
|
} else if (currPage == 2) {
|
||||||
option_offset = 7;
|
option_offset = 7;
|
||||||
num_answers = 7;
|
num_answers = 7;
|
||||||
} else { // currPage == 3
|
} else if (currPage == 3) {
|
||||||
option_offset = 14;
|
option_offset = 14;
|
||||||
num_answers = 7;
|
num_answers = 7;
|
||||||
|
} else { // currPage == 4
|
||||||
|
option_offset = 21;
|
||||||
|
num_answers = 1;
|
||||||
}
|
}
|
||||||
// Copy menuOptions out of progmem
|
// Copy menuOptions out of progmem
|
||||||
convertPgm(modeOptions + option_offset, num_answers);
|
convertPgm(modeOptions + option_offset, num_answers);
|
||||||
@ -1179,8 +1183,14 @@ void mainMenu() {
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef enable_FLASH
|
#ifdef enable_SUPRACAN
|
||||||
case 18:
|
case 18:
|
||||||
|
setup_SuprAcan();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef enable_FLASH
|
||||||
|
case 19:
|
||||||
#ifdef enable_FLASH16
|
#ifdef enable_FLASH16
|
||||||
flashMenu();
|
flashMenu();
|
||||||
#else
|
#else
|
||||||
@ -1189,16 +1199,14 @@ void mainMenu() {
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef enable_SUPRACAN
|
|
||||||
case 19:
|
|
||||||
setup_SuprAcan();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
case 20:
|
case 20:
|
||||||
aboutScreen();
|
aboutScreen();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 21:
|
||||||
|
resetArduino();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
print_MissingModule(); // does not return
|
print_MissingModule(); // does not return
|
||||||
}
|
}
|
||||||
|
@ -109,26 +109,26 @@ bool getCartInfo_NGP() {
|
|||||||
// 4 Mbits
|
// 4 Mbits
|
||||||
case 0x98ab: // Toshiba
|
case 0x98ab: // Toshiba
|
||||||
case 0x204c: // STMicroelectronics ?
|
case 0x204c: // STMicroelectronics ?
|
||||||
cartSize = 524288;
|
cartSize = 524288;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// 8 Mbits
|
// 8 Mbits
|
||||||
case 0x982c: // Toshiba
|
case 0x982c: // Toshiba
|
||||||
case 0xec2c: // Samsung
|
case 0xec2c: // Samsung
|
||||||
cartSize = 1048576;
|
cartSize = 1048576;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// 16 Mbits
|
// 16 Mbits
|
||||||
case 0x982f: // Toshiba
|
case 0x982f: // Toshiba
|
||||||
case 0xec2f: // Samsung
|
case 0xec2f: // Samsung
|
||||||
case 0x4c7: // Fujitsu (FlashMasta USB)
|
case 0x4c7: // Fujitsu (FlashMasta USB)
|
||||||
cartSize = 2097152;
|
cartSize = 2097152;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// detection error (no cart inserted or hw problem)
|
// detection error (no cart inserted or hw problem)
|
||||||
case 0xffff:
|
case 0xffff:
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset to read mode
|
// reset to read mode
|
||||||
@ -159,7 +159,7 @@ bool getCartInfo_NGP() {
|
|||||||
for (uint32_t i = 0; i < 17; i++) {
|
for (uint32_t i = 0; i < 17; i++) {
|
||||||
romName[i] = readByte_NGP(0x24 + 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] == '/')
|
if (romName[i] == '/')
|
||||||
romName[i] = '_';
|
romName[i] = '_';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user