This commit is contained in:
sanni 2022-07-17 14:50:59 +02:00
parent acddafb0af
commit e87de58328
3 changed files with 62 additions and 31 deletions

View File

@ -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: 08.07.2022 Date: 17.07.2022
Version: 9.0 BETA Version: 9.0
SD lib: https://github.com/greiman/SdFat SD lib: https://github.com/greiman/SdFat
OLED lib: https://github.com/adafruit/Adafruit_SSD1306 OLED lib: https://github.com/adafruit/Adafruit_SSD1306
@ -36,6 +36,7 @@
insidegadgets - GBCartRead insidegadgets - GBCartRead
RobinTheHood - GameboyAdvanceRomDumper RobinTheHood - GameboyAdvanceRomDumper
Gens-gs - Megadrive checksum Gens-gs - Megadrive checksum
fceux - iNes header
And a special Thank You to all coders and contributors on Github and the Arduino forum: And a special Thank You to all coders and contributors on Github and the Arduino forum:
jiyunomegami, splash5, Kreeblah, ramapcsx2, PsyK0p4T, Dakkaron, majorpbx, Pickle, sdhizumi, jiyunomegami, splash5, Kreeblah, ramapcsx2, PsyK0p4T, Dakkaron, majorpbx, Pickle, sdhizumi,
@ -58,7 +59,7 @@
**********************************************************************************/ **********************************************************************************/
char ver[5] = "9.0B"; char ver[5] = "9.0";
//****************************************** //******************************************
// !!! CHOOSE HARDWARE VERSION !!! // !!! CHOOSE HARDWARE VERSION !!!
@ -75,6 +76,24 @@ char ver[5] = "9.0B";
# error !!! PLEASE CHOOSE HARDWARE VERSION !!! # error !!! PLEASE CHOOSE HARDWARE VERSION !!!
#endif #endif
//******************************************
// ENABLE MODULES
//******************************************
// remove // before #define to enable a module
#define enable_SNES
#define enable_NP
#define enable_SV
#define enable_MD
#define enable_SMS
#define enable_N64
#define enable_GBX
#define enable_NES
#define enable_FLASH
#define enable_FLASH16
//#define enable_PCE
//#define enable_WS
//#define enable_NGP
//****************************************** //******************************************
// HW CONFIGS // HW CONFIGS
//****************************************** //******************************************
@ -140,25 +159,6 @@ char ver[5] = "9.0B";
// saves a n64log.txt file with rom info in /N64/ROM // saves a n64log.txt file with rom info in /N64/ROM
// #define savesummarytotxt // #define savesummarytotxt
//******************************************
// DISABLE MODULES
//******************************************
// add // before #define to disable a module
#define enable_SNES
#define enable_NP
#define enable_SV
#define enable_MD
#define enable_SMS
#define enable_N64
#define enable_GBX
#define enable_NES
#define enable_FLASH
#define enable_PCE
#define enable_WS
#define enable_NGP
/****************************************** /******************************************
Libraries Libraries
*****************************************/ *****************************************/
@ -795,13 +795,23 @@ void mainMenu() {
#ifdef enable_FLASH #ifdef enable_FLASH
case 9: case 9:
#ifdef enable_FLASH16
flashMenu(); flashMenu();
#else
flashromMenu8();
#endif
break; break;
#endif #endif
case 10: case 10:
aboutScreen(); aboutScreen();
break; break;
default:
display_Clear();
println_Msg(F("Please enable module"));
print_Error(F("in Cart_Reader.ino."), true);
break;
} }
} }
@ -943,6 +953,12 @@ void addonsMenu() {
case 6: case 6:
resetArduino(); resetArduino();
break; break;
default:
display_Clear();
println_Msg(F("Please enable module"));
print_Error(F("in Cart_Reader.ino."), true);
break;
} }
} }
#endif #endif
@ -2904,6 +2920,7 @@ void loop() {
else if (mode == mode_FLASH8) { else if (mode == mode_FLASH8) {
flashromMenu8(); flashromMenu8();
} }
#ifdef enable_FLASH16
else if (mode == mode_FLASH16) { else if (mode == mode_FLASH16) {
flashromMenu16(); flashromMenu16();
} }
@ -2911,6 +2928,7 @@ void loop() {
epromMenu(); epromMenu();
} }
#endif #endif
#endif
#ifdef enable_NP #ifdef enable_NP
else if (mode == mode_SFM) { else if (mode == mode_SFM) {
sfmMenu(); sfmMenu();

View File

@ -20,13 +20,6 @@ byte mapping = 1;
/****************************************** /******************************************
Menu Menu
*****************************************/ *****************************************/
// Flash start menu
static const char flashMenuItem1[] PROGMEM = "8bit Flash adapter";
static const char flashMenuItem2[] PROGMEM = "Eprom adapter";
static const char flashMenuItem3[] PROGMEM = "MX26L6420 adapter";
static const char flashMenuItem4[] PROGMEM = "Reset";
static const char* const menuOptionsFlash[] PROGMEM = {flashMenuItem1, flashMenuItem2, flashMenuItem3, flashMenuItem4};
// 8bit Flash menu items // 8bit Flash menu items
static const char flash8MenuItem1[] PROGMEM = "Blankcheck"; static const char flash8MenuItem1[] PROGMEM = "Blankcheck";
static const char flash8MenuItem2[] PROGMEM = "Erase"; static const char flash8MenuItem2[] PROGMEM = "Erase";
@ -37,6 +30,14 @@ static const char flash8MenuItem6[] PROGMEM = "Print";
static const char flash8MenuItem7[] PROGMEM = "Reset"; static const char flash8MenuItem7[] PROGMEM = "Reset";
static const char* const menuOptionsFLASH8[] PROGMEM = {flash8MenuItem1, flash8MenuItem2, flash8MenuItem3, flash8MenuItem4, flash8MenuItem5, flash8MenuItem6, flash8MenuItem7}; static const char* const menuOptionsFLASH8[] PROGMEM = {flash8MenuItem1, flash8MenuItem2, flash8MenuItem3, flash8MenuItem4, flash8MenuItem5, flash8MenuItem6, flash8MenuItem7};
#ifdef enable_FLASH16
// Flash start menu
static const char flashMenuItem1[] PROGMEM = "8bit Flash adapter";
static const char flashMenuItem2[] PROGMEM = "Eprom adapter";
static const char flashMenuItem3[] PROGMEM = "MX26L6420 adapter";
static const char flashMenuItem4[] PROGMEM = "Reset";
static const char* const menuOptionsFlash[] PROGMEM = {flashMenuItem1, flashMenuItem2, flashMenuItem3, flashMenuItem4};
// 16bit Flash menu items // 16bit Flash menu items
static const char flash16MenuItem1[] PROGMEM = "Blankcheck"; static const char flash16MenuItem1[] PROGMEM = "Blankcheck";
static const char flash16MenuItem2[] PROGMEM = "Erase"; static const char flash16MenuItem2[] PROGMEM = "Erase";
@ -97,6 +98,7 @@ void flashMenu() {
break; break;
} }
} }
#endif
void flashromMenu8() { void flashromMenu8() {
// create menu with title and 7 options to choose from // create menu with title and 7 options to choose from
@ -231,6 +233,7 @@ void flashromMenu8() {
wait(); wait();
} }
#ifdef enable_FLASH16
void flashromMenu16() { void flashromMenu16() {
// create menu with title "Flashrom Writer 16" and 7 options to choose from // create menu with title "Flashrom Writer 16" and 7 options to choose from
unsigned char mainMenu; unsigned char mainMenu;
@ -393,6 +396,7 @@ void epromMenu() {
} }
wait(); wait();
} }
#endif
/****************************************** /******************************************
Flash IDs Flash IDs
@ -605,6 +609,7 @@ idtheflash:
resetFlash8(); resetFlash8();
} }
#ifdef enable_FLASH16
void id_Flash16() { void id_Flash16() {
// ID flash // ID flash
idFlash16(); idFlash16();
@ -663,6 +668,7 @@ void id_Flash16() {
println_Msg(F("Press Button...")); println_Msg(F("Press Button..."));
display_Update(); display_Update();
} }
#endif
/****************************************** /******************************************
Setup Setup
@ -689,6 +695,7 @@ void setup_Flash8() {
PORTC = 0x00; PORTC = 0x00;
} }
#ifdef enable_FLASH16
void setup_Flash16() { void setup_Flash16() {
// Set Address Pins to Output // Set Address Pins to Output
//A0-A7 //A0-A7
@ -743,6 +750,7 @@ void setup_Eprom() {
// 27C322 is a 4MB eprom // 27C322 is a 4MB eprom
flashSize = 4194304; flashSize = 4194304;
} }
#endif
/****************************************** /******************************************
I/O Functions I/O Functions
@ -753,6 +761,7 @@ void dataIn8() {
DDRC = 0x00; DDRC = 0x00;
} }
#ifdef enable_FLASH16
// Switch data pins to write // Switch data pins to write
void dataOut16() { void dataOut16() {
DDRC = 0xFF; DDRC = 0xFF;
@ -764,6 +773,7 @@ void dataIn16() {
DDRC = 0x00; DDRC = 0x00;
DDRA = 0x00; DDRA = 0x00;
} }
#endif
/****************************************** /******************************************
Low level functions Low level functions
@ -906,6 +916,7 @@ byte readByte_Flash(unsigned long myAddress) {
return tempByte; return tempByte;
} }
#ifdef enable_FLASH16
void writeWord_Flash(unsigned long myAddress, word myData) { void writeWord_Flash(unsigned long myAddress, word myData) {
PORTF = myAddress & 0xFF; PORTF = myAddress & 0xFF;
PORTK = (myAddress >> 8) & 0xFF; PORTK = (myAddress >> 8) & 0xFF;
@ -954,6 +965,7 @@ word readWord_Flash(unsigned long myAddress) {
return tempWord; return tempWord;
} }
#endif
/****************************************** /******************************************
29F032 flashrom functions 29F032 flashrom functions
@ -1801,6 +1813,7 @@ void resetFlash8() {
} }
} }
#ifdef enable_FLASH16
/****************************************** /******************************************
29L3211 16bit flashrom functions 29L3211 16bit flashrom functions
*****************************************/ *****************************************/
@ -2535,7 +2548,7 @@ void print_Eprom(int numBytes) {
} }
display_Update(); display_Update();
} }
#endif
#endif #endif
//****************************************** //******************************************

View File

@ -1,7 +1,7 @@
//******************************************************** //********************************************************
// SEGA MASTER SYSTEM/Mark III/SG-1000/GAME GEAR MODULE // SEGA MASTER SYSTEM/Mark III/SG-1000/GAME GEAR MODULE
//******************************************************** //********************************************************
#ifdef enable_MD #ifdef enable_SMS
/****************************************** /******************************************
Variables Variables