mirror of
https://github.com/sanni/cartreader.git
synced 2024-12-25 04:21:53 +01:00
This commit is contained in:
parent
fc8df6e1b5
commit
3fcd1a808d
@ -51,8 +51,8 @@ byte newcolsize;
|
|||||||
static const char colMenuItem1[] PROGMEM = "Select Cart";
|
static const char colMenuItem1[] PROGMEM = "Select Cart";
|
||||||
static const char colMenuItem2[] PROGMEM = "Read ROM";
|
static const char colMenuItem2[] PROGMEM = "Read ROM";
|
||||||
static const char colMenuItem3[] PROGMEM = "Set Size";
|
static const char colMenuItem3[] PROGMEM = "Set Size";
|
||||||
static const char colMenuItem4[] PROGMEM = "Reset";
|
//static const char colMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsCOL[] PROGMEM = { colMenuItem1, colMenuItem2, colMenuItem3, colMenuItem4 };
|
static const char* const menuOptionsCOL[] PROGMEM = { colMenuItem1, colMenuItem2, colMenuItem3, string_reset2 };
|
||||||
|
|
||||||
void setup_COL() {
|
void setup_COL() {
|
||||||
// Set Address Pins to Output
|
// Set Address Pins to Output
|
||||||
@ -175,14 +175,14 @@ void readROM_COL() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// open file on sdcard
|
// open file on sdcard
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
// write new folder number back to EEPROM
|
// write new folder number back to EEPROM
|
||||||
foldern++;
|
foldern++;
|
||||||
@ -216,7 +216,8 @@ void readROM_COL() {
|
|||||||
compareCRC("colv.txt", 0, 1, 0);
|
compareCRC("colv.txt", 0, 1, 0);
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -239,11 +240,11 @@ void setROMSize_COL() {
|
|||||||
println_Msg(COL[i]);
|
println_Msg(COL[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -261,11 +262,11 @@ void setROMSize_COL() {
|
|||||||
println_Msg(COL[i]);
|
println_Msg(COL[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -281,11 +282,11 @@ void setROMSize_COL() {
|
|||||||
println_Msg(COL[i]);
|
println_Msg(COL[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -349,7 +350,8 @@ void checkStatus_COL() {
|
|||||||
print_Msg(COL[colsize]);
|
print_Msg(COL[colsize]);
|
||||||
println_Msg(F("K"));
|
println_Msg(F("K"));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#else
|
#else
|
||||||
@ -460,11 +462,11 @@ void setCart_COL() {
|
|||||||
println_Msg(F("KB"));
|
println_Msg(F("KB"));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#elif defined(SERIAL_MONITOR)
|
#elif defined(SERIAL_MONITOR)
|
||||||
println_Msg(F("U/D to Change"));
|
println_Msg(F("U/D to Change"));
|
||||||
println_Msg(F("Space to Select"));
|
println_Msg(F("Space to Select"));
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
**********************************************************************************/
|
**********************************************************************************/
|
||||||
|
|
||||||
char ver[5] = "10.3";
|
char ver[5] = "10.4";
|
||||||
|
|
||||||
//******************************************
|
//******************************************
|
||||||
// !!! CHOOSE HARDWARE VERSION !!!
|
// !!! CHOOSE HARDWARE VERSION !!!
|
||||||
@ -263,6 +263,57 @@ bool i2c_found;
|
|||||||
#include "FreqCount.h"
|
#include "FreqCount.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/******************************************
|
||||||
|
Common Strings
|
||||||
|
*****************************************/
|
||||||
|
#define press_button_STR 0
|
||||||
|
#define sd_error_STR 1
|
||||||
|
#define reset_STR 2
|
||||||
|
#define did_not_verify_STR 3
|
||||||
|
#define _bytes_STR 4
|
||||||
|
#define error_STR 5
|
||||||
|
#define create_file_STR 6
|
||||||
|
#define open_file_STR 7
|
||||||
|
#define file_too_big_STR 8
|
||||||
|
#define done_STR 9
|
||||||
|
#define saving_to_STR 10
|
||||||
|
#define verifying_STR 11
|
||||||
|
#define flashing_file_STR 12
|
||||||
|
#define press_to_change_STR 13
|
||||||
|
#define right_to_select_STR 14
|
||||||
|
#define rotate_to_change_STR 15
|
||||||
|
#define press_to_select_STR 16
|
||||||
|
|
||||||
|
// This arrays holds the most often uses strings
|
||||||
|
static const char string_press_button0[] PROGMEM = "Press Button...";
|
||||||
|
static const char string_sd_error1[] PROGMEM = "SD Error";
|
||||||
|
static const char string_reset2[] PROGMEM = "Reset";
|
||||||
|
static const char string_did_not_verify3[] PROGMEM = "did not verify";
|
||||||
|
static const char string_bytes4[] PROGMEM = " bytes ";
|
||||||
|
static const char string_error5[] PROGMEM = "Error: ";
|
||||||
|
static const char string_create_file6[] PROGMEM = "Can't create file";
|
||||||
|
static const char string_open_file7[] PROGMEM = "Can't open file";
|
||||||
|
static const char string_file_too_big8[] PROGMEM = "File too big";
|
||||||
|
static const char string_done9[] PROGMEM = "Done";
|
||||||
|
static const char string_saving_to10[] PROGMEM = "Saving to ";
|
||||||
|
static const char string_verifying11[] PROGMEM = "Verifying...";
|
||||||
|
static const char string_flashing_file12[] PROGMEM = "Flashing file ";
|
||||||
|
static const char string_press_to_change13[] PROGMEM = "Press left to Change";
|
||||||
|
static const char string_right_to_select14[] PROGMEM = "and right to Select";
|
||||||
|
static const char string_rotate_to_change15[] PROGMEM = "Rotate to Change";
|
||||||
|
static const char string_press_to_select16[] PROGMEM = "Press to Select";
|
||||||
|
|
||||||
|
static const char* const string_table[] PROGMEM = { string_press_button0, string_sd_error1, string_reset2, string_did_not_verify3, string_bytes4, string_error5, string_create_file6, string_open_file7, string_file_too_big8, string_done9, string_saving_to10, string_verifying11, string_flashing_file12, string_press_to_change13, string_right_to_select14, string_rotate_to_change15, string_press_to_select16 };
|
||||||
|
|
||||||
|
void print_STR(byte string_number, boolean newline) {
|
||||||
|
char string_buffer[22];
|
||||||
|
strcpy_P(string_buffer, (char*)pgm_read_word(&(string_table[string_number])));
|
||||||
|
if (newline)
|
||||||
|
println_Msg(string_buffer);
|
||||||
|
else
|
||||||
|
print_Msg(string_buffer);
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************
|
/******************************************
|
||||||
Defines
|
Defines
|
||||||
*****************************************/
|
*****************************************/
|
||||||
@ -629,7 +680,7 @@ boolean compareCRC(char* database, char* crcString, boolean renamerom, int offse
|
|||||||
// Write iNES header
|
// Write iNES header
|
||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
if (!myFile.open(fileName, O_RDWR)) {
|
if (!myFile.open(fileName, O_RDWR)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
for (byte z = 0; z < 16; z++) {
|
for (byte z = 0; z < 16; z++) {
|
||||||
myFile.write(iNES_HEADER[z]);
|
myFile.write(iNES_HEADER[z]);
|
||||||
@ -973,15 +1024,15 @@ static const char modeItem4[] PROGMEM = "Nintendo 64(3V EEP)";
|
|||||||
#endif
|
#endif
|
||||||
static const char modeItem5[] PROGMEM = "Game Boy";
|
static const char modeItem5[] PROGMEM = "Game Boy";
|
||||||
static const char modeItem6[] PROGMEM = "About";
|
static const char modeItem6[] PROGMEM = "About";
|
||||||
static const char modeItem7[] PROGMEM = "Reset";
|
// static const char modeItem7[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const modeOptions[] PROGMEM = { modeItem1, modeItem2, modeItem3, modeItem4, modeItem5, modeItem6, modeItem7 };
|
static const char* const modeOptions[] PROGMEM = { modeItem1, modeItem2, modeItem3, modeItem4, modeItem5, modeItem6, string_reset2 };
|
||||||
|
|
||||||
// Add-ons submenu
|
// Add-ons submenu
|
||||||
static const char addonsItem1[] PROGMEM = "Consoles";
|
static const char addonsItem1[] PROGMEM = "Consoles";
|
||||||
static const char addonsItem2[] PROGMEM = "Handhelds";
|
static const char addonsItem2[] PROGMEM = "Handhelds";
|
||||||
static const char addonsItem3[] PROGMEM = "Flashrom Programmer";
|
static const char addonsItem3[] PROGMEM = "Flashrom Programmer";
|
||||||
static const char addonsItem4[] PROGMEM = "Reset";
|
//static const char addonsItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const addonsOptions[] PROGMEM = { addonsItem1, addonsItem2, addonsItem3, addonsItem4 };
|
static const char* const addonsOptions[] PROGMEM = { addonsItem1, addonsItem2, addonsItem3, string_reset2 };
|
||||||
|
|
||||||
// Consoles submenu
|
// Consoles submenu
|
||||||
static const char consolesItem1[] PROGMEM = "NES/Famicom";
|
static const char consolesItem1[] PROGMEM = "NES/Famicom";
|
||||||
@ -989,8 +1040,8 @@ static const char consolesItem2[] PROGMEM = "PC Engine/TG16";
|
|||||||
static const char consolesItem3[] PROGMEM = "SMS/GG/MIII/SG-1000";
|
static const char consolesItem3[] PROGMEM = "SMS/GG/MIII/SG-1000";
|
||||||
static const char consolesItem4[] PROGMEM = "Intellivision";
|
static const char consolesItem4[] PROGMEM = "Intellivision";
|
||||||
static const char consolesItem5[] PROGMEM = "Colecovision";
|
static const char consolesItem5[] PROGMEM = "Colecovision";
|
||||||
static const char consolesItem6[] PROGMEM = "Reset";
|
//static const char consolesItem6[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const consolesOptions[] PROGMEM = { consolesItem1, consolesItem2, consolesItem3, consolesItem4, consolesItem5, consolesItem6 };
|
static const char* const consolesOptions[] PROGMEM = { consolesItem1, consolesItem2, consolesItem3, consolesItem4, consolesItem5, string_reset2 };
|
||||||
|
|
||||||
// Handhelds submenu
|
// Handhelds submenu
|
||||||
static const char handheldsItem1[] PROGMEM = "Virtual Boy";
|
static const char handheldsItem1[] PROGMEM = "Virtual Boy";
|
||||||
@ -998,8 +1049,8 @@ static const char handheldsItem2[] PROGMEM = "WonderSwan";
|
|||||||
static const char handheldsItem3[] PROGMEM = "NeoGeo Pocket";
|
static const char handheldsItem3[] PROGMEM = "NeoGeo Pocket";
|
||||||
static const char handheldsItem4[] PROGMEM = "Watara Supervision";
|
static const char handheldsItem4[] PROGMEM = "Watara Supervision";
|
||||||
static const char handheldsItem5[] PROGMEM = "Pocket Challenge W";
|
static const char handheldsItem5[] PROGMEM = "Pocket Challenge W";
|
||||||
static const char handheldsItem6[] PROGMEM = "Reset";
|
//static const char handheldsItem6[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const handheldsOptions[] PROGMEM = { handheldsItem1, handheldsItem2, handheldsItem3, handheldsItem4, handheldsItem5, handheldsItem6 };
|
static const char* const handheldsOptions[] PROGMEM = { handheldsItem1, handheldsItem2, handheldsItem3, handheldsItem4, handheldsItem5, string_reset2 };
|
||||||
|
|
||||||
// All included slots
|
// All included slots
|
||||||
void mainMenu() {
|
void mainMenu() {
|
||||||
@ -1227,7 +1278,8 @@ void aboutScreen() {
|
|||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
@ -1539,14 +1591,14 @@ void savetofile() {
|
|||||||
delay(2000);
|
delay(2000);
|
||||||
|
|
||||||
if (!myFile.open("/snes_clk.txt", O_WRITE | O_CREAT | O_TRUNC)) {
|
if (!myFile.open("/snes_clk.txt", O_WRITE | O_CREAT | O_TRUNC)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
// Write calibration factor to file
|
// Write calibration factor to file
|
||||||
myFile.print(cal_factor);
|
myFile.print(cal_factor);
|
||||||
|
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
delay(1000);
|
delay(1000);
|
||||||
resetArduino();
|
resetArduino();
|
||||||
@ -1726,12 +1778,12 @@ void setup() {
|
|||||||
// Init SD card
|
// Init SD card
|
||||||
if (!sd.begin(SS)) {
|
if (!sd.begin(SS)) {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef global_log
|
#ifdef global_log
|
||||||
if (!myLog.open("OSCR_LOG.txt", O_RDWR | O_CREAT | O_APPEND)) {
|
if (!myLog.open("OSCR_LOG.txt", O_RDWR | O_CREAT | O_APPEND)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(HW1)
|
#if defined(HW1)
|
||||||
@ -1849,6 +1901,32 @@ void print_Error(const __FlashStringHelper* errorMessage, boolean forceReset) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void print_Error(byte errorMessage, boolean forceReset) {
|
||||||
|
errorLvl = 1;
|
||||||
|
setColor_RGB(255, 0, 0);
|
||||||
|
print_STR(errorMessage, 1);
|
||||||
|
display_Update();
|
||||||
|
|
||||||
|
if (forceReset) {
|
||||||
|
println_Msg(F(""));
|
||||||
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
|
display_Update();
|
||||||
|
wait();
|
||||||
|
if (ignoreError == 0) {
|
||||||
|
resetArduino();
|
||||||
|
} else {
|
||||||
|
ignoreError = 0;
|
||||||
|
display_Clear();
|
||||||
|
println_Msg(F(""));
|
||||||
|
println_Msg(F("Error Overwrite"));
|
||||||
|
println_Msg(F(""));
|
||||||
|
display_Update();
|
||||||
|
delay(2000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void wait() {
|
void wait() {
|
||||||
// Switch status LED off
|
// Switch status LED off
|
||||||
statusLED(false);
|
statusLED(false);
|
||||||
@ -1916,7 +1994,7 @@ void save_log() {
|
|||||||
strcpy(fileName, romName);
|
strcpy(fileName, romName);
|
||||||
strcat(fileName, ".txt");
|
strcat(fileName, ".txt");
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (myLog.available()) {
|
while (myLog.available()) {
|
||||||
@ -2310,7 +2388,7 @@ byte questionBox_Serial(const __FlashStringHelper* question, char answers[7][20]
|
|||||||
EEPROM_readAnything(0, foldern);
|
EEPROM_readAnything(0, foldern);
|
||||||
sprintf(fileName, "IMPORT/%d.bin", foldern);
|
sprintf(fileName, "IMPORT/%d.bin", foldern);
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read file from serial
|
// Read file from serial
|
||||||
@ -2577,7 +2655,7 @@ void wait_serial() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print_Error(F("Can't open file"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
@ -2915,7 +2993,7 @@ browserstart:
|
|||||||
// Open filepath directory
|
// Open filepath directory
|
||||||
if (!myDir.open(filePath)) {
|
if (!myDir.open(filePath)) {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count files in directory
|
// Count files in directory
|
||||||
@ -2973,7 +3051,8 @@ page:
|
|||||||
println_Msg(F("Too many files"));
|
println_Msg(F("Too many files"));
|
||||||
display_Update();
|
display_Update();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -2981,7 +3060,7 @@ page:
|
|||||||
// Open filepath directory
|
// Open filepath directory
|
||||||
if (!myDir.open(filePath)) {
|
if (!myDir.open(filePath)) {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int countFile = 0;
|
int countFile = 0;
|
||||||
@ -3231,7 +3310,8 @@ void loop() {
|
|||||||
print_Msg(F("Mode = "));
|
print_Msg(F("Mode = "));
|
||||||
print_Msg(mode);
|
print_Msg(mode);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
resetArduino();
|
resetArduino();
|
||||||
|
@ -27,16 +27,16 @@ static const char flash8MenuItem3[] PROGMEM = "Read";
|
|||||||
static const char flash8MenuItem4[] PROGMEM = "Write";
|
static const char flash8MenuItem4[] PROGMEM = "Write";
|
||||||
static const char flash8MenuItem5[] PROGMEM = "ID";
|
static const char flash8MenuItem5[] PROGMEM = "ID";
|
||||||
static const char flash8MenuItem6[] PROGMEM = "Print";
|
static const char flash8MenuItem6[] PROGMEM = "Print";
|
||||||
static const char flash8MenuItem7[] PROGMEM = "Reset";
|
//static const char flash8MenuItem7[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
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, string_reset2 };
|
||||||
|
|
||||||
#ifdef enable_FLASH16
|
#ifdef enable_FLASH16
|
||||||
// Flash start menu
|
// Flash start menu
|
||||||
static const char flashMenuItem1[] PROGMEM = "8bit Flash adapter";
|
static const char flashMenuItem1[] PROGMEM = "8bit Flash adapter";
|
||||||
static const char flashMenuItem2[] PROGMEM = "Eprom adapter";
|
static const char flashMenuItem2[] PROGMEM = "Eprom adapter";
|
||||||
static const char flashMenuItem3[] PROGMEM = "MX26L6420 adapter";
|
static const char flashMenuItem3[] PROGMEM = "MX26L6420 adapter";
|
||||||
static const char flashMenuItem4[] PROGMEM = "Reset";
|
// static const char flashMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsFlash[] PROGMEM = { flashMenuItem1, flashMenuItem2, flashMenuItem3, flashMenuItem4 };
|
static const char* const menuOptionsFlash[] PROGMEM = { flashMenuItem1, flashMenuItem2, flashMenuItem3, string_reset2 };
|
||||||
|
|
||||||
// 16bit Flash menu items
|
// 16bit Flash menu items
|
||||||
static const char flash16MenuItem1[] PROGMEM = "Blankcheck";
|
static const char flash16MenuItem1[] PROGMEM = "Blankcheck";
|
||||||
@ -45,8 +45,8 @@ static const char flash16MenuItem3[] PROGMEM = "Read";
|
|||||||
static const char flash16MenuItem4[] PROGMEM = "Write";
|
static const char flash16MenuItem4[] PROGMEM = "Write";
|
||||||
static const char flash16MenuItem5[] PROGMEM = "ID";
|
static const char flash16MenuItem5[] PROGMEM = "ID";
|
||||||
static const char flash16MenuItem6[] PROGMEM = "Print";
|
static const char flash16MenuItem6[] PROGMEM = "Print";
|
||||||
static const char flash16MenuItem7[] PROGMEM = "Reset";
|
//static const char flash16MenuItem7[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsFLASH16[] PROGMEM = { flash16MenuItem1, flash16MenuItem2, flash16MenuItem3, flash16MenuItem4, flash16MenuItem5, flash16MenuItem6, flash16MenuItem7 };
|
static const char* const menuOptionsFLASH16[] PROGMEM = { flash16MenuItem1, flash16MenuItem2, flash16MenuItem3, flash16MenuItem4, flash16MenuItem5, flash16MenuItem6, string_reset2 };
|
||||||
|
|
||||||
// Eprom menu items
|
// Eprom menu items
|
||||||
static const char epromMenuItem1[] PROGMEM = "Blankcheck";
|
static const char epromMenuItem1[] PROGMEM = "Blankcheck";
|
||||||
@ -54,8 +54,8 @@ static const char epromMenuItem2[] PROGMEM = "Read";
|
|||||||
static const char epromMenuItem3[] PROGMEM = "Write";
|
static const char epromMenuItem3[] PROGMEM = "Write";
|
||||||
static const char epromMenuItem4[] PROGMEM = "Verify";
|
static const char epromMenuItem4[] PROGMEM = "Verify";
|
||||||
static const char epromMenuItem5[] PROGMEM = "Print";
|
static const char epromMenuItem5[] PROGMEM = "Print";
|
||||||
static const char epromMenuItem6[] PROGMEM = "Reset";
|
// static const char epromMenuItem6[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsEprom[] PROGMEM = { epromMenuItem1, epromMenuItem2, epromMenuItem3, epromMenuItem4, epromMenuItem5, epromMenuItem6 };
|
static const char* const menuOptionsEprom[] PROGMEM = { epromMenuItem1, epromMenuItem2, epromMenuItem3, epromMenuItem4, epromMenuItem5, string_reset2 };
|
||||||
|
|
||||||
void flashMenu() {
|
void flashMenu() {
|
||||||
// create menu with title and 3 options to choose from
|
// create menu with title and 3 options to choose from
|
||||||
@ -222,7 +222,8 @@ void flashromMenu8() {
|
|||||||
println_Msg(F("s"));
|
println_Msg(F("s"));
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
print_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -555,7 +556,8 @@ idtheflash:
|
|||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("UNKNOWN FLASHROM"));
|
println_Msg(F("UNKNOWN FLASHROM"));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -570,7 +572,8 @@ idtheflash:
|
|||||||
print_Error(F("Press Button to reset"), true);
|
print_Error(F("Press Button to reset"), true);
|
||||||
}
|
}
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
resetFlash8();
|
resetFlash8();
|
||||||
@ -625,7 +628,8 @@ void id_Flash16() {
|
|||||||
println_Msg("");
|
println_Msg("");
|
||||||
}
|
}
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1038,7 +1042,7 @@ void eraseFlash29F032() {
|
|||||||
void writeFlash29F032() {
|
void writeFlash29F032() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
print_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 0);
|
||||||
print_Msg(filePath);
|
print_Msg(filePath);
|
||||||
println_Msg(F("..."));
|
println_Msg(F("..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1048,7 +1052,7 @@ void writeFlash29F032() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut();
|
dataOut();
|
||||||
@ -1113,7 +1117,7 @@ void writeFlash29F032() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1179,7 +1183,7 @@ void resetFlash29F1610() {
|
|||||||
void writeFlash29F1610() {
|
void writeFlash29F1610() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1188,7 +1192,7 @@ void writeFlash29F1610() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut();
|
dataOut();
|
||||||
@ -1225,7 +1229,7 @@ void writeFlash29F1610() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file on SD"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1233,7 +1237,7 @@ void writeFlash29F1610() {
|
|||||||
void writeFlash29F1601() {
|
void writeFlash29F1601() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1242,7 +1246,7 @@ void writeFlash29F1601() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut();
|
dataOut();
|
||||||
@ -1284,7 +1288,7 @@ void writeFlash29F1601() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file on SD"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1376,7 +1380,7 @@ void busyCheck29LV640(unsigned long myAddress, byte myData) {
|
|||||||
void writeFlash29LV640() {
|
void writeFlash29LV640() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1385,7 +1389,7 @@ void writeFlash29LV640() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut();
|
dataOut();
|
||||||
@ -1412,7 +1416,7 @@ void writeFlash29LV640() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file on SD"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1423,7 +1427,7 @@ void writeFlash29LV640() {
|
|||||||
void writeFlash29GL(unsigned long sectorSize, byte bufferSize) {
|
void writeFlash29GL(unsigned long sectorSize, byte bufferSize) {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1432,7 +1436,7 @@ void writeFlash29GL(unsigned long sectorSize, byte bufferSize) {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut();
|
dataOut();
|
||||||
@ -1479,7 +1483,7 @@ void writeFlash29GL(unsigned long sectorSize, byte bufferSize) {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file on SD"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1490,7 +1494,7 @@ void writeFlash29GL(unsigned long sectorSize, byte bufferSize) {
|
|||||||
void writeFlash29F800() {
|
void writeFlash29F800() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1499,7 +1503,7 @@ void writeFlash29F800() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut();
|
dataOut();
|
||||||
@ -1528,7 +1532,7 @@ void writeFlash29F800() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file on SD"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1580,7 +1584,7 @@ void eraseFlash28FXXX() {
|
|||||||
|
|
||||||
void writeFlash28FXXX() {
|
void writeFlash28FXXX() {
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
print_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 0);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1594,7 +1598,7 @@ void writeFlash28FXXX() {
|
|||||||
|
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file on SD"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1602,7 +1606,7 @@ void writeFlash28FXXX() {
|
|||||||
void writeFlashE28FXXXJ3A() {
|
void writeFlashE28FXXXJ3A() {
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize) {
|
if (fileSize > flashSize) {
|
||||||
print_Error(F("File size exceeds flash size."), false);
|
print_Error(file_too_big_STR, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1653,7 +1657,7 @@ void writeFlashE28FXXXJ3A() {
|
|||||||
void writeFlashLH28F0XX() {
|
void writeFlashLH28F0XX() {
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize) {
|
if (fileSize > flashSize) {
|
||||||
print_Error(F("File size exceeds flash size."), false);
|
print_Error(file_too_big_STR, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1713,7 +1717,7 @@ void blankcheck_Flash() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void verifyFlash() {
|
void verifyFlash() {
|
||||||
println_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
@ -1721,7 +1725,7 @@ void verifyFlash() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
blank = 0;
|
blank = 0;
|
||||||
for (unsigned long currByte = 0; currByte < fileSize; currByte += 512) {
|
for (unsigned long currByte = 0; currByte < fileSize; currByte += 512) {
|
||||||
@ -1737,15 +1741,15 @@ void verifyFlash() {
|
|||||||
println_Msg(F("Flashrom verified OK"));
|
println_Msg(F("Flashrom verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(blank);
|
print_Msg(blank);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file on SD"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1772,7 +1776,7 @@ void readFlash() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
for (unsigned long currByte = 0; currByte < flashSize; currByte += 512) {
|
for (unsigned long currByte = 0; currByte < flashSize; currByte += 512) {
|
||||||
for (int c = 0; c < 512; c++) {
|
for (int c = 0; c < 512; c++) {
|
||||||
@ -1834,7 +1838,7 @@ void resetFlash16() {
|
|||||||
void writeFlash16() {
|
void writeFlash16() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1843,7 +1847,7 @@ void writeFlash16() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut16();
|
dataOut16();
|
||||||
@ -1892,7 +1896,7 @@ void writeFlash16() {
|
|||||||
void writeFlash16_29F1601() {
|
void writeFlash16_29F1601() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -1901,7 +1905,7 @@ void writeFlash16_29F1601() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut16();
|
dataOut16();
|
||||||
@ -2024,7 +2028,7 @@ void blankcheck16() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void verifyFlash16() {
|
void verifyFlash16() {
|
||||||
println_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
@ -2032,7 +2036,7 @@ void verifyFlash16() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize) {
|
if (fileSize > flashSize) {
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
blank = 0;
|
blank = 0;
|
||||||
@ -2190,7 +2194,7 @@ void busyCheck16_29LV640(unsigned long myAddress, word myData) {
|
|||||||
void writeFlash16_29LV640() {
|
void writeFlash16_29LV640() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -2199,7 +2203,7 @@ void writeFlash16_29LV640() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut16();
|
dataOut16();
|
||||||
@ -2417,7 +2421,7 @@ void read_Eprom() {
|
|||||||
void write_Eprom() {
|
void write_Eprom() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
println_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 1);
|
||||||
println_Msg(filePath);
|
println_Msg(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -2426,7 +2430,7 @@ void write_Eprom() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize)
|
if (fileSize > flashSize)
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
|
|
||||||
// Switch VPP/OE(PH5) to HIGH
|
// Switch VPP/OE(PH5) to HIGH
|
||||||
PORTH |= (1 << 5);
|
PORTH |= (1 << 5);
|
||||||
@ -2477,7 +2481,7 @@ void write_Eprom() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void verify_Eprom() {
|
void verify_Eprom() {
|
||||||
println_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
@ -2485,7 +2489,7 @@ void verify_Eprom() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize) {
|
if (fileSize > flashSize) {
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
blank = 0;
|
blank = 0;
|
||||||
|
@ -19,15 +19,15 @@ static const char gbxMenuItem1[] PROGMEM = "Game Boy (Color)";
|
|||||||
static const char gbxMenuItem2[] PROGMEM = "GB Advance (3V)";
|
static const char gbxMenuItem2[] PROGMEM = "GB Advance (3V)";
|
||||||
static const char gbxMenuItem3[] PROGMEM = "Flash GBC Cart";
|
static const char gbxMenuItem3[] PROGMEM = "Flash GBC Cart";
|
||||||
static const char gbxMenuItem4[] PROGMEM = "NPower GB Memory";
|
static const char gbxMenuItem4[] PROGMEM = "NPower GB Memory";
|
||||||
static const char gbxMenuItem5[] PROGMEM = "Reset";
|
//static const char gbxMenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsGBx[] PROGMEM = { gbxMenuItem1, gbxMenuItem2, gbxMenuItem3, gbxMenuItem4, gbxMenuItem5 };
|
static const char* const menuOptionsGBx[] PROGMEM = { gbxMenuItem1, gbxMenuItem2, gbxMenuItem3, gbxMenuItem4, string_reset2 };
|
||||||
|
|
||||||
// GB menu items
|
// GB menu items
|
||||||
static const char GBMenuItem1[] PROGMEM = "Read ROM";
|
static const char GBMenuItem1[] PROGMEM = "Read ROM";
|
||||||
static const char GBMenuItem2[] PROGMEM = "Read Save";
|
static const char GBMenuItem2[] PROGMEM = "Read Save";
|
||||||
static const char GBMenuItem3[] PROGMEM = "Write Save";
|
static const char GBMenuItem3[] PROGMEM = "Write Save";
|
||||||
static const char GBMenuItem4[] PROGMEM = "Reset";
|
//static const char GBMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsGB[] PROGMEM = { GBMenuItem1, GBMenuItem2, GBMenuItem3, GBMenuItem4 };
|
static const char* const menuOptionsGB[] PROGMEM = { GBMenuItem1, GBMenuItem2, GBMenuItem3, string_reset2 };
|
||||||
|
|
||||||
// GB Flash items
|
// GB Flash items
|
||||||
static const char GBFlashItem1[] PROGMEM = "29F Cart (MBC3)";
|
static const char GBFlashItem1[] PROGMEM = "29F Cart (MBC3)";
|
||||||
@ -36,8 +36,8 @@ static const char GBFlashItem3[] PROGMEM = "29F Cart (CAM)";
|
|||||||
static const char GBFlashItem4[] PROGMEM = "CFI Cart";
|
static const char GBFlashItem4[] PROGMEM = "CFI Cart";
|
||||||
static const char GBFlashItem5[] PROGMEM = "CFI Cart and Save";
|
static const char GBFlashItem5[] PROGMEM = "CFI Cart and Save";
|
||||||
static const char GBFlashItem6[] PROGMEM = "GB Smart";
|
static const char GBFlashItem6[] PROGMEM = "GB Smart";
|
||||||
static const char GBFlashItem7[] PROGMEM = "Reset";
|
//static const char GBFlashItem7[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsGBFlash[] PROGMEM = { GBFlashItem1, GBFlashItem2, GBFlashItem3, GBFlashItem4, GBFlashItem5, GBFlashItem6, GBFlashItem7 };
|
static const char* const menuOptionsGBFlash[] PROGMEM = { GBFlashItem1, GBFlashItem2, GBFlashItem3, GBFlashItem4, GBFlashItem5, GBFlashItem6, string_reset2 };
|
||||||
|
|
||||||
// Start menu for both GB and GBA
|
// Start menu for both GB and GBA
|
||||||
void gbxMenu() {
|
void gbxMenu() {
|
||||||
@ -84,7 +84,8 @@ void gbxMenu() {
|
|||||||
//MBC3
|
//MBC3
|
||||||
writeFlash29F_GB(3, 1);
|
writeFlash29F_GB(3, 1);
|
||||||
// Reset
|
// Reset
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
resetArduino();
|
resetArduino();
|
||||||
@ -102,7 +103,8 @@ void gbxMenu() {
|
|||||||
//MBC5
|
//MBC5
|
||||||
writeFlash29F_GB(5, 1);
|
writeFlash29F_GB(5, 1);
|
||||||
// Reset
|
// Reset
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
resetArduino();
|
resetArduino();
|
||||||
@ -120,7 +122,8 @@ void gbxMenu() {
|
|||||||
sd.chdir("/");
|
sd.chdir("/");
|
||||||
//MBC3
|
//MBC3
|
||||||
writeFlash29F_GB(3, 1);
|
writeFlash29F_GB(3, 1);
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -131,7 +134,8 @@ void gbxMenu() {
|
|||||||
println_Msg(F("if you want to flash"));
|
println_Msg(F("if you want to flash"));
|
||||||
println_Msg(F("a second game"));
|
println_Msg(F("a second game"));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -143,7 +147,8 @@ void gbxMenu() {
|
|||||||
|
|
||||||
// Reset
|
// Reset
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
resetArduino();
|
resetArduino();
|
||||||
@ -167,7 +172,8 @@ void gbxMenu() {
|
|||||||
if (!writeCFI_GB()) {
|
if (!writeCFI_GB()) {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("Flashing failed, time out!"));
|
println_Msg(F("Flashing failed, time out!"));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -194,7 +200,8 @@ void gbxMenu() {
|
|||||||
if (!writeCFI_GB()) {
|
if (!writeCFI_GB()) {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("Flashing failed, time out!"));
|
println_Msg(F("Flashing failed, time out!"));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
resetArduino();
|
resetArduino();
|
||||||
@ -230,10 +237,10 @@ void gbxMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(wrErrors);
|
print_Msg(wrErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -333,10 +340,10 @@ void gbMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(wrErrors);
|
print_Msg(wrErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -349,7 +356,8 @@ void gbMenu() {
|
|||||||
resetArduino();
|
resetArduino();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -534,7 +542,8 @@ void showCartInfo_GB() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
} else {
|
} else {
|
||||||
@ -938,7 +947,7 @@ void readROM_GB() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -949,7 +958,7 @@ void readROM_GB() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int endAddress = 0x7FFF;
|
int endAddress = 0x7FFF;
|
||||||
@ -1158,7 +1167,7 @@ void readSRAM_GB() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// MBC2 Fix
|
// MBC2 Fix
|
||||||
@ -1289,7 +1298,7 @@ unsigned long verifySRAM_GB() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1306,7 +1315,7 @@ void readSRAMFLASH_MBC6_GB() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1317,7 +1326,7 @@ void readSRAMFLASH_MBC6_GB() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Initialize progress bar
|
//Initialize progress bar
|
||||||
@ -1788,7 +1797,7 @@ void writeFlash29F_GB(byte MBC, boolean flashErase) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// Go back to file beginning
|
// Go back to file beginning
|
||||||
@ -1837,11 +1846,11 @@ void writeFlash29F_GB(byte MBC, boolean flashErase) {
|
|||||||
} else {
|
} else {
|
||||||
println_Msg(F("Error"));
|
println_Msg(F("Error"));
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), true);
|
print_Error(did_not_verify_STR, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2018,7 +2027,8 @@ bool writeCFI_GB() {
|
|||||||
print_Msg(F("but needs "));
|
print_Msg(F("but needs "));
|
||||||
print_Msg(romBanks);
|
print_Msg(romBanks);
|
||||||
println_Msg(F("."));
|
println_Msg(F("."));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
resetArduino();
|
resetArduino();
|
||||||
@ -2194,13 +2204,13 @@ bool writeCFI_GB() {
|
|||||||
println_Msg(F("OK"));
|
println_Msg(F("OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -18,8 +18,8 @@ static const char GBAMenuItem2[] PROGMEM = "Read Save";
|
|||||||
static const char GBAMenuItem3[] PROGMEM = "Write Save";
|
static const char GBAMenuItem3[] PROGMEM = "Write Save";
|
||||||
static const char GBAMenuItem4[] PROGMEM = "Force Savetype";
|
static const char GBAMenuItem4[] PROGMEM = "Force Savetype";
|
||||||
static const char GBAMenuItem5[] PROGMEM = "Flash Repro";
|
static const char GBAMenuItem5[] PROGMEM = "Flash Repro";
|
||||||
static const char GBAMenuItem6[] PROGMEM = "Reset";
|
//static const char GBAMenuItem6[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsGBA[] PROGMEM = { GBAMenuItem1, GBAMenuItem2, GBAMenuItem3, GBAMenuItem4, GBAMenuItem5, GBAMenuItem6 };
|
static const char* const menuOptionsGBA[] PROGMEM = { GBAMenuItem1, GBAMenuItem2, GBAMenuItem3, GBAMenuItem4, GBAMenuItem5, string_reset2 };
|
||||||
|
|
||||||
// Rom menu
|
// Rom menu
|
||||||
static const char GBARomItem1[] PROGMEM = "1 MB";
|
static const char GBARomItem1[] PROGMEM = "1 MB";
|
||||||
@ -129,7 +129,8 @@ void gbaMenu() {
|
|||||||
#ifdef global_log
|
#ifdef global_log
|
||||||
save_log();
|
save_log();
|
||||||
#endif
|
#endif
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -231,7 +232,8 @@ void gbaMenu() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -289,10 +291,10 @@ void gbaMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
setROM_GBA();
|
setROM_GBA();
|
||||||
break;
|
break;
|
||||||
@ -307,10 +309,10 @@ void gbaMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
setROM_GBA();
|
setROM_GBA();
|
||||||
break;
|
break;
|
||||||
@ -326,10 +328,10 @@ void gbaMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
setROM_GBA();
|
setROM_GBA();
|
||||||
break;
|
break;
|
||||||
@ -358,7 +360,8 @@ void gbaMenu() {
|
|||||||
//print_Error(F(""), true);
|
//print_Error(F(""), true);
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
display_Clear();
|
display_Clear();
|
||||||
@ -399,7 +402,8 @@ void gbaMenu() {
|
|||||||
//print_Error(F(""), true);
|
//print_Error(F(""), true);
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
display_Clear();
|
display_Clear();
|
||||||
@ -437,16 +441,17 @@ void gbaMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
setROM_GBA();
|
setROM_GBA();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -498,7 +503,8 @@ void gbaMenu() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
flashRepro_GBA();
|
flashRepro_GBA();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
resetArduino();
|
resetArduino();
|
||||||
@ -565,7 +571,8 @@ void setup_GBA() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -942,12 +949,12 @@ void getCartInfo_GBA() {
|
|||||||
println_Msg(saveTypeStr);
|
println_Msg(saveTypeStr);
|
||||||
|
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#elif defined(SERIAL_MONITOR)
|
#elif defined(SERIAL_MONITOR)
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("U/D to Change"));
|
println_Msg(F("U/D to Change"));
|
||||||
@ -1056,7 +1063,8 @@ void getCartInfo_GBA() {
|
|||||||
println_Msg(calcChecksumStr);
|
println_Msg(calcChecksumStr);
|
||||||
print_Error(F("Checksum Error"), false);
|
print_Error(F("Checksum Error"), false);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -1127,7 +1135,7 @@ void readROM_GBA() {
|
|||||||
|
|
||||||
//clear the screen
|
//clear the screen
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1138,7 +1146,7 @@ void readROM_GBA() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Initialize progress bar
|
//Initialize progress bar
|
||||||
@ -1234,7 +1242,7 @@ void readSRAM_GBA(boolean browseFile, unsigned long sramSize, uint32_t pos) {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
// Save location
|
// Save location
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1245,7 +1253,7 @@ void readSRAM_GBA(boolean browseFile, unsigned long sramSize, uint32_t pos) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Seek to a new position in the file
|
// Seek to a new position in the file
|
||||||
@ -1265,7 +1273,7 @@ void readSRAM_GBA(boolean browseFile, unsigned long sramSize, uint32_t pos) {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
// Signal end of process
|
// Signal end of process
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1363,7 +1371,7 @@ void readFRAM_GBA(unsigned long framSize) {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
// Save location
|
// Save location
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1373,7 +1381,7 @@ void readFRAM_GBA(unsigned long framSize) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
for (unsigned long currAddress = 0; currAddress < framSize; currAddress += 512) {
|
for (unsigned long currAddress = 0; currAddress < framSize; currAddress += 512) {
|
||||||
for (int c = 0; c < 512; c++) {
|
for (int c = 0; c < 512; c++) {
|
||||||
@ -1407,7 +1415,7 @@ void readFRAM_GBA(unsigned long framSize) {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
// Signal end of process
|
// Signal end of process
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1790,7 +1798,7 @@ void readFLASH_GBA(boolean browseFile, unsigned long flashSize, uint32_t pos) {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
// Save location
|
// Save location
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1802,7 +1810,7 @@ void readFLASH_GBA(boolean browseFile, unsigned long flashSize, uint32_t pos) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Seek to a new position in the file
|
// Seek to a new position in the file
|
||||||
@ -1829,7 +1837,7 @@ void readFLASH_GBA(boolean browseFile, unsigned long flashSize, uint32_t pos) {
|
|||||||
PORTH |= (1 << 0);
|
PORTH |= (1 << 0);
|
||||||
|
|
||||||
// Signal end of process
|
// Signal end of process
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1915,7 +1923,7 @@ void writeFLASH_GBA(boolean browseFile, unsigned long flashSize, uint32_t pos, b
|
|||||||
|
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -1947,7 +1955,7 @@ void verifyFLASH_GBA(unsigned long flashSize, uint32_t pos) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(filePath, O_READ)) {
|
if (!myFile.open(filePath, O_READ)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Seek to a new position in the file
|
// Seek to a new position in the file
|
||||||
@ -2010,7 +2018,7 @@ void writeEeprom_GBA(word eepSize) {
|
|||||||
|
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Error"));
|
println_Msg(F("Error"));
|
||||||
@ -2032,7 +2040,7 @@ void readEeprom_GBA(word eepSize) {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
// Save location
|
// Save location
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -2043,7 +2051,7 @@ void readEeprom_GBA(word eepSize) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Each block contains 8 Bytes, so for a 8KB eeprom 1024 blocks need to be read
|
// Each block contains 8 Bytes, so for a 8KB eeprom 1024 blocks need to be read
|
||||||
@ -2285,7 +2293,7 @@ unsigned long verifyEEP_GBA(word eepSize) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(filePath, O_READ)) {
|
if (!myFile.open(filePath, O_READ)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fill sd Buffer
|
// Fill sd Buffer
|
||||||
@ -2779,7 +2787,7 @@ boolean verifyFlashrom_GBA() {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file"), true);
|
print_Error(open_file_STR, true);
|
||||||
return 9999;
|
return 9999;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2824,7 +2832,8 @@ void flashRepro_GBA() {
|
|||||||
println_Msg(F("Repro Cartridge."));
|
println_Msg(F("Repro Cartridge."));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button"));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -2903,7 +2912,7 @@ void flashRepro_GBA() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
// Verify
|
// Verify
|
||||||
print_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
if (strcmp(flashid, "8802") == 0) {
|
if (strcmp(flashid, "8802") == 0) {
|
||||||
// Don't know the correct size so just take some guesses
|
// Don't know the correct size so just take some guesses
|
||||||
@ -2935,7 +2944,7 @@ void flashRepro_GBA() {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Error"));
|
println_Msg(F("Error"));
|
||||||
|
@ -42,7 +42,8 @@ void gbmMenu() {
|
|||||||
println_Msg(F("cartreader directly"));
|
println_Msg(F("cartreader directly"));
|
||||||
println_Msg(F("before reading"));
|
println_Msg(F("before reading"));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
// Clear screen
|
// Clear screen
|
||||||
@ -71,7 +72,8 @@ void gbmMenu() {
|
|||||||
println_Msg(F("NP Cartridge."));
|
println_Msg(F("NP Cartridge."));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
// Clear screen
|
// Clear screen
|
||||||
@ -131,7 +133,8 @@ void gbmMenu() {
|
|||||||
println_Msg(F("NP Cartridge's"));
|
println_Msg(F("NP Cartridge's"));
|
||||||
println_Msg(F("mapping data"));
|
println_Msg(F("mapping data"));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -171,7 +174,8 @@ void gbmMenu() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -333,7 +337,7 @@ void readROM_GBM(word numBanks) {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
} else {
|
} else {
|
||||||
// Read rom
|
// Read rom
|
||||||
word currAddress = 0;
|
word currAddress = 0;
|
||||||
@ -677,7 +681,7 @@ void writeFlash_GBM() {
|
|||||||
}
|
}
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file"), false);
|
print_Error(F("Can't open file"), false);
|
||||||
}
|
}
|
||||||
@ -716,7 +720,7 @@ void readMapping_GBM() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
} else {
|
} else {
|
||||||
for (byte currByte = 0; currByte < 128; currByte++) {
|
for (byte currByte = 0; currByte < 128; currByte++) {
|
||||||
sdBuffer[currByte] = readByte_GBM(currByte);
|
sdBuffer[currByte] = readByte_GBM(currByte);
|
||||||
@ -891,7 +895,7 @@ void writeMapping_GBM() {
|
|||||||
|
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file"), false);
|
print_Error(F("Can't open file"), false);
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
// GB Smart menu items
|
// GB Smart menu items
|
||||||
static const char gbSmartMenuItem1[] PROGMEM = "Game Menu";
|
static const char gbSmartMenuItem1[] PROGMEM = "Game Menu";
|
||||||
static const char gbSmartMenuItem2[] PROGMEM = "Flash Menu";
|
static const char gbSmartMenuItem2[] PROGMEM = "Flash Menu";
|
||||||
static const char gbSmartMenuItem3[] PROGMEM = "Reset";
|
//static const char gbSmartMenuItem3[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsGBSmart[] PROGMEM = { gbSmartMenuItem1, gbSmartMenuItem2, gbSmartMenuItem3 };
|
static const char* const menuOptionsGBSmart[] PROGMEM = { gbSmartMenuItem1, gbSmartMenuItem2, string_reset2 };
|
||||||
|
|
||||||
static const char gbSmartFlashMenuItem1[] PROGMEM = "Read Flash";
|
static const char gbSmartFlashMenuItem1[] PROGMEM = "Read Flash";
|
||||||
static const char gbSmartFlashMenuItem2[] PROGMEM = "Write Flash";
|
static const char gbSmartFlashMenuItem2[] PROGMEM = "Write Flash";
|
||||||
@ -23,8 +23,8 @@ static const char gbSmartGameMenuItem1[] PROGMEM = "Read Game";
|
|||||||
static const char gbSmartGameMenuItem2[] PROGMEM = "Read SRAM";
|
static const char gbSmartGameMenuItem2[] PROGMEM = "Read SRAM";
|
||||||
static const char gbSmartGameMenuItem3[] PROGMEM = "Write SRAM";
|
static const char gbSmartGameMenuItem3[] PROGMEM = "Write SRAM";
|
||||||
static const char gbSmartGameMenuItem4[] PROGMEM = "Switch Game";
|
static const char gbSmartGameMenuItem4[] PROGMEM = "Switch Game";
|
||||||
static const char gbSmartGameMenuItem5[] PROGMEM = "Reset";
|
//static const char gbSmartGameMenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsGBSmartGame[] PROGMEM = { gbSmartGameMenuItem1, gbSmartGameMenuItem2, gbSmartGameMenuItem3, gbSmartGameMenuItem4, gbSmartGameMenuItem5 };
|
static const char* const menuOptionsGBSmartGame[] PROGMEM = { gbSmartGameMenuItem1, gbSmartGameMenuItem2, gbSmartGameMenuItem3, gbSmartGameMenuItem4, string_reset2 };
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -216,10 +216,10 @@ void gbSmartGameOptions() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(wrErrors);
|
print_Msg(wrErrors);
|
||||||
println_Msg(F(" bytes"));
|
println_Msg(F(" bytes"));
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -238,7 +238,8 @@ void gbSmartGameOptions() {
|
|||||||
|
|
||||||
if (gameSubMenu != 3) {
|
if (gameSubMenu != 3) {
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -310,7 +311,8 @@ void gbSmartFlashMenu() {
|
|||||||
println_Msg(F("This will erase your"));
|
println_Msg(F("This will erase your"));
|
||||||
println_Msg(F("GB Smart Cartridge."));
|
println_Msg(F("GB Smart Cartridge."));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -331,7 +333,8 @@ void gbSmartFlashMenu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -419,7 +422,7 @@ void gbSmartReadFlash() {
|
|||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
// reset flash to read array state
|
// reset flash to read array state
|
||||||
for (int i = 0x00; i < gbSmartBanks; i += gbSmartBanksPerFlashChip)
|
for (int i = 0x00; i < gbSmartBanks; i += gbSmartBanksPerFlashChip)
|
||||||
@ -470,7 +473,7 @@ void gbSmartWriteFlash() {
|
|||||||
gbSmartEraseFlash(bank);
|
gbSmartEraseFlash(bank);
|
||||||
gbSmartResetFlash(bank);
|
gbSmartResetFlash(bank);
|
||||||
|
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
print_Msg(F("Blankcheck..."));
|
print_Msg(F("Blankcheck..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -487,7 +490,7 @@ void gbSmartWriteFlash() {
|
|||||||
gbSmartWriteFlashByte(0x0000, 0xff);
|
gbSmartWriteFlashByte(0x0000, 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
print_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
writeErrors = gbSmartVerifyFlash();
|
writeErrors = gbSmartVerifyFlash();
|
||||||
@ -495,16 +498,16 @@ void gbSmartWriteFlash() {
|
|||||||
println_Msg(F("OK"));
|
println_Msg(F("OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), true);
|
print_Error(did_not_verify_STR, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void gbSmartWriteFlash(uint32_t start_bank) {
|
void gbSmartWriteFlash(uint32_t start_bank) {
|
||||||
if (!myFile.open(filePath, O_READ))
|
if (!myFile.open(filePath, O_READ))
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
|
|
||||||
// switch to flash base bank
|
// switch to flash base bank
|
||||||
gbSmartRemapStartBank(start_bank, gbSmartFlashSizeGB, gbSmartSramSizeGB);
|
gbSmartRemapStartBank(start_bank, gbSmartFlashSizeGB, gbSmartSramSizeGB);
|
||||||
|
@ -95,8 +95,8 @@ byte newintvsize;
|
|||||||
static const char intvMenuItem1[] PROGMEM = "Select Cart";
|
static const char intvMenuItem1[] PROGMEM = "Select Cart";
|
||||||
static const char intvMenuItem2[] PROGMEM = "Read ROM";
|
static const char intvMenuItem2[] PROGMEM = "Read ROM";
|
||||||
static const char intvMenuItem3[] PROGMEM = "Set Mapper + Size";
|
static const char intvMenuItem3[] PROGMEM = "Set Mapper + Size";
|
||||||
static const char intvMenuItem4[] PROGMEM = "Reset";
|
//static const char intvMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsINTV[] PROGMEM = { intvMenuItem1, intvMenuItem2, intvMenuItem3, intvMenuItem4 };
|
static const char* const menuOptionsINTV[] PROGMEM = { intvMenuItem1, intvMenuItem2, intvMenuItem3, string_reset2 };
|
||||||
|
|
||||||
void setup_INTV() {
|
void setup_INTV() {
|
||||||
// Set Address Pins to Output (UNUSED)
|
// Set Address Pins to Output (UNUSED)
|
||||||
@ -316,14 +316,14 @@ void readROM_INTV() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// open file on sdcard
|
// open file on sdcard
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
// write new folder number back to EEPROM
|
// write new folder number back to EEPROM
|
||||||
foldern++;
|
foldern++;
|
||||||
@ -423,7 +423,8 @@ void readROM_INTV() {
|
|||||||
compareCRC("intv.txt", 0, 1, 0);
|
compareCRC("intv.txt", 0, 1, 0);
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -528,11 +529,11 @@ void setMapper_INTV() {
|
|||||||
println_Msg(intvmapselect);
|
println_Msg(intvmapselect);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -553,11 +554,11 @@ void setMapper_INTV() {
|
|||||||
println_Msg(intvmapselect);
|
println_Msg(intvmapselect);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -575,11 +576,11 @@ void setMapper_INTV() {
|
|||||||
println_Msg(intvmapselect);
|
println_Msg(intvmapselect);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -647,11 +648,11 @@ void setROMSize_INTV() {
|
|||||||
println_Msg(INTV[i]);
|
println_Msg(INTV[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -669,11 +670,11 @@ void setROMSize_INTV() {
|
|||||||
println_Msg(INTV[i]);
|
println_Msg(INTV[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -688,11 +689,11 @@ void setROMSize_INTV() {
|
|||||||
println_Msg(INTV[i]);
|
println_Msg(INTV[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -887,11 +888,11 @@ void setCart_INTV() {
|
|||||||
print_Msg(F("Mapper: "));
|
print_Msg(F("Mapper: "));
|
||||||
println_Msg(intvmapper);
|
println_Msg(intvmapper);
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#elif defined(SERIAL_MONITOR)
|
#elif defined(SERIAL_MONITOR)
|
||||||
println_Msg(F("U/D to Change"));
|
println_Msg(F("U/D to Change"));
|
||||||
println_Msg(F("Space to Select"));
|
println_Msg(F("Space to Select"));
|
||||||
|
@ -192,8 +192,8 @@ void mdLoadConf() {
|
|||||||
static const char MDMenuItem1[] PROGMEM = "Game Cartridge";
|
static const char MDMenuItem1[] PROGMEM = "Game Cartridge";
|
||||||
static const char MDMenuItem2[] PROGMEM = "SegaCD RamCart";
|
static const char MDMenuItem2[] PROGMEM = "SegaCD RamCart";
|
||||||
static const char MDMenuItem3[] PROGMEM = "Flash Repro";
|
static const char MDMenuItem3[] PROGMEM = "Flash Repro";
|
||||||
static const char MDMenuItem4[] PROGMEM = "Reset";
|
//static const char MDMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsMD[] PROGMEM = { MDMenuItem1, MDMenuItem2, MDMenuItem3, MDMenuItem4 };
|
static const char* const menuOptionsMD[] PROGMEM = { MDMenuItem1, MDMenuItem2, MDMenuItem3, string_reset2 };
|
||||||
|
|
||||||
// Cart menu items
|
// Cart menu items
|
||||||
static const char MDCartMenuItem1[] PROGMEM = "Read Rom";
|
static const char MDCartMenuItem1[] PROGMEM = "Read Rom";
|
||||||
@ -202,14 +202,14 @@ static const char MDCartMenuItem3[] PROGMEM = "Write Sram";
|
|||||||
static const char MDCartMenuItem4[] PROGMEM = "Read EEPROM";
|
static const char MDCartMenuItem4[] PROGMEM = "Read EEPROM";
|
||||||
static const char MDCartMenuItem5[] PROGMEM = "Write EEPROM";
|
static const char MDCartMenuItem5[] PROGMEM = "Write EEPROM";
|
||||||
static const char MDCartMenuItem6[] PROGMEM = "Cycle cart";
|
static const char MDCartMenuItem6[] PROGMEM = "Cycle cart";
|
||||||
static const char MDCartMenuItem7[] PROGMEM = "Reset";
|
//static const char MDCartMenuItem7[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsMDCart[] PROGMEM = { MDCartMenuItem1, MDCartMenuItem2, MDCartMenuItem3, MDCartMenuItem4, MDCartMenuItem5, MDCartMenuItem6, MDCartMenuItem7 };
|
static const char* const menuOptionsMDCart[] PROGMEM = { MDCartMenuItem1, MDCartMenuItem2, MDCartMenuItem3, MDCartMenuItem4, MDCartMenuItem5, MDCartMenuItem6, string_reset2 };
|
||||||
|
|
||||||
// Sega CD Ram Backup Cartridge menu items
|
// Sega CD Ram Backup Cartridge menu items
|
||||||
static const char SCDMenuItem1[] PROGMEM = "Read Backup RAM";
|
static const char SCDMenuItem1[] PROGMEM = "Read Backup RAM";
|
||||||
static const char SCDMenuItem2[] PROGMEM = "Write Backup RAM";
|
static const char SCDMenuItem2[] PROGMEM = "Write Backup RAM";
|
||||||
static const char SCDMenuItem3[] PROGMEM = "Reset";
|
//static const char SCDMenuItem3[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsSCD[] PROGMEM = { SCDMenuItem1, SCDMenuItem2, SCDMenuItem3 };
|
static const char* const menuOptionsSCD[] PROGMEM = { SCDMenuItem1, SCDMenuItem2, string_reset2 };
|
||||||
|
|
||||||
// Sega start menu
|
// Sega start menu
|
||||||
void mdMenu() {
|
void mdMenu() {
|
||||||
@ -275,7 +275,8 @@ void mdMenu() {
|
|||||||
// Set CS(PH3) HIGH
|
// Set CS(PH3) HIGH
|
||||||
PORTH |= (1 << 3);
|
PORTH |= (1 << 3);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -350,10 +351,10 @@ void mdCartMenu() {
|
|||||||
println_Msg(F("Sram verified OK"));
|
println_Msg(F("Sram verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Cart has no Sram"), false);
|
print_Error(F("Cart has no Sram"), false);
|
||||||
@ -400,7 +401,8 @@ void mdCartMenu() {
|
|||||||
resetArduino();
|
resetArduino();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -441,7 +443,8 @@ void segaCDMenu() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -1082,7 +1085,8 @@ void getCartInfo_MD() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
#if (defined(enable_LCD) || defined(enable_OLED))
|
#if (defined(enable_LCD) || defined(enable_OLED))
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#endif
|
#endif
|
||||||
@ -1155,7 +1159,7 @@ void readROM_MD() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1166,7 +1170,7 @@ void readROM_MD() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte buffer[1024] = { 0 };
|
byte buffer[1024] = { 0 };
|
||||||
@ -1489,10 +1493,10 @@ void writeSram_MD() {
|
|||||||
|
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
dataIn_MD();
|
dataIn_MD();
|
||||||
}
|
}
|
||||||
@ -1517,7 +1521,7 @@ void readSram_MD() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned long currBuffer = sramBase; currBuffer < sramBase + sramSize; currBuffer += 256) {
|
for (unsigned long currBuffer = sramBase; currBuffer < sramBase + sramSize; currBuffer += 256) {
|
||||||
@ -1611,7 +1615,7 @@ unsigned long verifySram_MD() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
// Return 0 if verified ok, or number of errors
|
// Return 0 if verified ok, or number of errors
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
@ -1637,7 +1641,7 @@ void resetFlash_MD() {
|
|||||||
void write29F1610_MD() {
|
void write29F1610_MD() {
|
||||||
// Create filepath
|
// Create filepath
|
||||||
sprintf(filePath, "%s/%s", filePath, fileName);
|
sprintf(filePath, "%s/%s", filePath, fileName);
|
||||||
print_Msg(F("Flashing file "));
|
print_STR(flashing_file_STR, 0);
|
||||||
print_Msg(filePath);
|
print_Msg(filePath);
|
||||||
println_Msg(F("..."));
|
println_Msg(F("..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1647,7 +1651,7 @@ void write29F1610_MD() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize) {
|
if (fileSize > flashSize) {
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
}
|
}
|
||||||
// Set data pins to output
|
// Set data pins to output
|
||||||
dataOut_MD();
|
dataOut_MD();
|
||||||
@ -1686,7 +1690,7 @@ void write29F1610_MD() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1764,7 +1768,7 @@ void verifyFlash_MD() {
|
|||||||
// Get rom size from file
|
// Get rom size from file
|
||||||
fileSize = myFile.fileSize();
|
fileSize = myFile.fileSize();
|
||||||
if (fileSize > flashSize) {
|
if (fileSize > flashSize) {
|
||||||
print_Error(F("File size exceeds flash size."), true);
|
print_Error(file_too_big_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
blank = 0;
|
blank = 0;
|
||||||
@ -1789,15 +1793,15 @@ void verifyFlash_MD() {
|
|||||||
println_Msg(F("Flashrom verified OK"));
|
println_Msg(F("Flashrom verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(blank);
|
print_Msg(blank);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2382,7 +2386,7 @@ void readEEP_MD() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
if (eepSize > 0x100) { // 24C04+
|
if (eepSize > 0x100) { // 24C04+
|
||||||
for (word currByte = 0; currByte < eepSize; currByte += 256) {
|
for (word currByte = 0; currByte < eepSize; currByte += 256) {
|
||||||
@ -2448,10 +2452,10 @@ void writeEEP_MD() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
dataIn_MD();
|
dataIn_MD();
|
||||||
}
|
}
|
||||||
@ -2481,7 +2485,7 @@ void readBram_MD() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned long currByte = 0; currByte < bramSize; currByte += 512) {
|
for (unsigned long currByte = 0; currByte < bramSize; currByte += 512) {
|
||||||
@ -2527,10 +2531,10 @@ void writeBram_MD() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
dataIn_MD();
|
dataIn_MD();
|
||||||
}
|
}
|
||||||
@ -2568,7 +2572,7 @@ void readRealtec_MD() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -2579,7 +2583,7 @@ void readRealtec_MD() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Realtec Registers
|
// Realtec Registers
|
||||||
|
@ -58,30 +58,30 @@ static const char n64MenuItem1[] PROGMEM = "Game Cartridge";
|
|||||||
static const char n64MenuItem2[] PROGMEM = "Controller";
|
static const char n64MenuItem2[] PROGMEM = "Controller";
|
||||||
static const char n64MenuItem3[] PROGMEM = "Flash Repro";
|
static const char n64MenuItem3[] PROGMEM = "Flash Repro";
|
||||||
static const char n64MenuItem4[] PROGMEM = "Flash Gameshark";
|
static const char n64MenuItem4[] PROGMEM = "Flash Gameshark";
|
||||||
static const char n64MenuItem5[] PROGMEM = "Reset";
|
//static const char n64MenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsN64[] PROGMEM = { n64MenuItem1, n64MenuItem2, n64MenuItem3, n64MenuItem4, n64MenuItem5 };
|
static const char* const menuOptionsN64[] PROGMEM = { n64MenuItem1, n64MenuItem2, n64MenuItem3, n64MenuItem4, string_reset2 };
|
||||||
|
|
||||||
// N64 controller menu items
|
// N64 controller menu items
|
||||||
static const char N64ContMenuItem1[] PROGMEM = "Test Controller";
|
static const char N64ContMenuItem1[] PROGMEM = "Test Controller";
|
||||||
static const char N64ContMenuItem2[] PROGMEM = "Read ControllerPak";
|
static const char N64ContMenuItem2[] PROGMEM = "Read ControllerPak";
|
||||||
static const char N64ContMenuItem3[] PROGMEM = "Write ControllerPak";
|
static const char N64ContMenuItem3[] PROGMEM = "Write ControllerPak";
|
||||||
static const char N64ContMenuItem4[] PROGMEM = "Reset";
|
//static const char N64ContMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsN64Controller[] PROGMEM = { N64ContMenuItem1, N64ContMenuItem2, N64ContMenuItem3, N64ContMenuItem4 };
|
static const char* const menuOptionsN64Controller[] PROGMEM = { N64ContMenuItem1, N64ContMenuItem2, N64ContMenuItem3, string_reset2 };
|
||||||
|
|
||||||
// N64 cart menu items
|
// N64 cart menu items
|
||||||
static const char N64CartMenuItem1[] PROGMEM = "Read ROM";
|
static const char N64CartMenuItem1[] PROGMEM = "Read ROM";
|
||||||
static const char N64CartMenuItem2[] PROGMEM = "Read Save";
|
static const char N64CartMenuItem2[] PROGMEM = "Read Save";
|
||||||
static const char N64CartMenuItem3[] PROGMEM = "Write Save";
|
static const char N64CartMenuItem3[] PROGMEM = "Write Save";
|
||||||
static const char N64CartMenuItem4[] PROGMEM = "Force Savetype";
|
static const char N64CartMenuItem4[] PROGMEM = "Force Savetype";
|
||||||
static const char N64CartMenuItem5[] PROGMEM = "Reset";
|
//static const char N64CartMenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsN64Cart[] PROGMEM = { N64CartMenuItem1, N64CartMenuItem2, N64CartMenuItem3, N64CartMenuItem4, N64CartMenuItem5 };
|
static const char* const menuOptionsN64Cart[] PROGMEM = { N64CartMenuItem1, N64CartMenuItem2, N64CartMenuItem3, N64CartMenuItem4, string_reset2 };
|
||||||
|
|
||||||
// N64 CRC32 error menu items
|
// N64 CRC32 error menu items
|
||||||
static const char N64CRCMenuItem1[] PROGMEM = "No";
|
static const char N64CRCMenuItem1[] PROGMEM = "No";
|
||||||
static const char N64CRCMenuItem2[] PROGMEM = "Yes and keep old";
|
static const char N64CRCMenuItem2[] PROGMEM = "Yes and keep old";
|
||||||
static const char N64CRCMenuItem3[] PROGMEM = "Yes and delete old";
|
static const char N64CRCMenuItem3[] PROGMEM = "Yes and delete old";
|
||||||
static const char N64CRCMenuItem4[] PROGMEM = "Reset";
|
//static const char N64CRCMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsN64CRC[] PROGMEM = { N64CRCMenuItem1, N64CRCMenuItem2, N64CRCMenuItem3, N64CRCMenuItem4 };
|
static const char* const menuOptionsN64CRC[] PROGMEM = { N64CRCMenuItem1, N64CRCMenuItem2, N64CRCMenuItem3, string_reset2 };
|
||||||
|
|
||||||
// Rom menu
|
// Rom menu
|
||||||
static const char N64RomItem1[] PROGMEM = "4 MB";
|
static const char N64RomItem1[] PROGMEM = "4 MB";
|
||||||
@ -194,7 +194,8 @@ void n64ControllerMenu() {
|
|||||||
verifyCRC();
|
verifyCRC();
|
||||||
validateMPK();
|
validateMPK();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -215,7 +216,8 @@ void n64ControllerMenu() {
|
|||||||
delay(500);
|
delay(500);
|
||||||
verifyMPK();
|
verifyMPK();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -266,7 +268,8 @@ void n64CartMenu() {
|
|||||||
print_Error(F("Savetype Error"), false);
|
print_Error(F("Savetype Error"), false);
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -285,10 +288,10 @@ void n64CartMenu() {
|
|||||||
println_Msg(F("SRAM verified OK"));
|
println_Msg(F("SRAM verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else if (saveType == 4) {
|
} else if (saveType == 4) {
|
||||||
// Launch file browser
|
// Launch file browser
|
||||||
@ -296,7 +299,7 @@ void n64CartMenu() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
getFramType();
|
getFramType();
|
||||||
writeFram(flashramType);
|
writeFram(flashramType);
|
||||||
print_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
writeErrors = verifyFram(flashramType);
|
writeErrors = verifyFram(flashramType);
|
||||||
if (writeErrors == 0) {
|
if (writeErrors == 0) {
|
||||||
@ -304,10 +307,10 @@ void n64CartMenu() {
|
|||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else if ((saveType == 5) || (saveType == 6)) {
|
} else if ((saveType == 5) || (saveType == 6)) {
|
||||||
// Launch file browser
|
// Launch file browser
|
||||||
@ -326,16 +329,17 @@ void n64CartMenu() {
|
|||||||
println_Msg(F("EEPROM verified OK"));
|
println_Msg(F("EEPROM verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Error(F("Save Type Error"), false);
|
print_Error(F("Save Type Error"), false);
|
||||||
}
|
}
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -1611,12 +1615,12 @@ void readMPK() {
|
|||||||
strcat(filePath, ".crc");
|
strcat(filePath, ".crc");
|
||||||
FsFile crcFile;
|
FsFile crcFile;
|
||||||
if (!crcFile.open(filePath, O_RDWR | O_CREAT)) {
|
if (!crcFile.open(filePath, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//open mpk file on sd card
|
//open mpk file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
print_Msg(F("Saving N64/MPK/"));
|
print_Msg(F("Saving N64/MPK/"));
|
||||||
@ -1669,18 +1673,18 @@ void readMPK() {
|
|||||||
void verifyCRC() {
|
void verifyCRC() {
|
||||||
writeErrors = 0;
|
writeErrors = 0;
|
||||||
|
|
||||||
println_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
//open CRC file on sd card
|
//open CRC file on sd card
|
||||||
FsFile crcFile;
|
FsFile crcFile;
|
||||||
if (!crcFile.open(filePath, O_READ)) {
|
if (!crcFile.open(filePath, O_READ)) {
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//open MPK file on sd card
|
//open MPK file on sd card
|
||||||
if (!myFile.open(fileName, O_READ)) {
|
if (!myFile.open(fileName, O_READ)) {
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Initialize progress bar
|
//Initialize progress bar
|
||||||
@ -1715,10 +1719,10 @@ void verifyCRC() {
|
|||||||
sd.remove(filePath);
|
sd.remove(filePath);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" blocks "));
|
println_Msg(F(" blocks "));
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1743,7 +1747,7 @@ boolean checkHeader(byte startAddress) {
|
|||||||
void validateMPK() {
|
void validateMPK() {
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_READ)) {
|
if (!myFile.open(fileName, O_READ)) {
|
||||||
print_Error(F("Can't open file"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read first 256 byte which contains the header including checksum and reverse checksum and three copies of it
|
// Read first 256 byte which contains the header including checksum and reverse checksum and three copies of it
|
||||||
@ -1856,7 +1860,7 @@ void writeMPK() {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1864,12 +1868,12 @@ void writeMPK() {
|
|||||||
void verifyMPK() {
|
void verifyMPK() {
|
||||||
writeErrors = 0;
|
writeErrors = 0;
|
||||||
|
|
||||||
println_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(filePath, O_READ)) {
|
if (!myFile.open(filePath, O_READ)) {
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Initialize progress bar
|
//Initialize progress bar
|
||||||
@ -1911,10 +1915,10 @@ void verifyMPK() {
|
|||||||
println_Msg(F("Written successfully"));
|
println_Msg(F("Written successfully"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1963,7 +1967,8 @@ void printCartInfo_N64() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F(" "));
|
println_Msg(F(" "));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
} else {
|
} else {
|
||||||
@ -1982,7 +1987,8 @@ void printCartInfo_N64() {
|
|||||||
strcpy(romName, "GPERROR");
|
strcpy(romName, "GPERROR");
|
||||||
print_Error(F("Cartridge unknown"), false);
|
print_Error(F("Cartridge unknown"), false);
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -2344,11 +2350,11 @@ void writeEeprom_CLK() {
|
|||||||
|
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
delay(600);
|
delay(600);
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Savetype Error"), true);
|
print_Error(F("Savetype Error"), true);
|
||||||
@ -2378,7 +2384,7 @@ void readEeprom_CLK() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (byte i = 0; i < (eepPages / 64); i++) {
|
for (byte i = 0; i < (eepPages / 64); i++) {
|
||||||
@ -2481,7 +2487,7 @@ unsigned long verifyEeprom_CLK() {
|
|||||||
} else {
|
} else {
|
||||||
// SD Error
|
// SD Error
|
||||||
writeErrors = 999999;
|
writeErrors = 999999;
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
// Return 0 if verified ok, or number of errors
|
// Return 0 if verified ok, or number of errors
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
@ -2713,11 +2719,11 @@ void writeEeprom() {
|
|||||||
|
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
delay(600);
|
delay(600);
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Savetype Error"), true);
|
print_Error(F("Savetype Error"), true);
|
||||||
@ -2743,7 +2749,7 @@ void readEeprom() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (byte i = 0; i < (eepPages / 64); i++) {
|
for (byte i = 0; i < (eepPages / 64); i++) {
|
||||||
@ -2847,7 +2853,7 @@ unsigned long verifyEeprom() {
|
|||||||
} else {
|
} else {
|
||||||
// SD Error
|
// SD Error
|
||||||
writeErrors = 999999;
|
writeErrors = 999999;
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
// Return 0 if verified ok, or number of errors
|
// Return 0 if verified ok, or number of errors
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
@ -2888,10 +2894,10 @@ void writeSram(unsigned long sramSize) {
|
|||||||
}
|
}
|
||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -2931,7 +2937,7 @@ void readSram(unsigned long sramSize, byte flashramType) {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned long currByte = sramBase; currByte < (sramBase + (sramSize / flashramType)); currByte += offset) {
|
for (unsigned long currByte = sramBase; currByte < (sramBase + (sramSize / flashramType)); currByte += offset) {
|
||||||
@ -2994,7 +3000,7 @@ unsigned long verifySram(unsigned long sramSize, byte flashramType) {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
// Return 0 if verified ok, or number of errors
|
// Return 0 if verified ok, or number of errors
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
@ -3100,7 +3106,7 @@ void writeFram(byte flashramType) {
|
|||||||
// Close the file:
|
// Close the file:
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Savetype Error"), true);
|
print_Error(F("Savetype Error"), true);
|
||||||
@ -3327,7 +3333,7 @@ redumpnewfolder:
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -3339,7 +3345,7 @@ redumpnewfolder:
|
|||||||
redumpsamefolder:
|
redumpsamefolder:
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// dumping rom slow
|
// dumping rom slow
|
||||||
@ -3478,7 +3484,8 @@ redumpsamefolder:
|
|||||||
print_Msg(timeElapsed); // include elapsed time
|
print_Msg(timeElapsed); // include elapsed time
|
||||||
println_Msg(F("s)"));
|
println_Msg(F("s)"));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
// This saves a tt file with rom info next to the dumped rom
|
// This saves a tt file with rom info next to the dumped rom
|
||||||
#ifdef savesummarytotxt
|
#ifdef savesummarytotxt
|
||||||
@ -3493,7 +3500,8 @@ redumpsamefolder:
|
|||||||
errorLvl = 1;
|
errorLvl = 1;
|
||||||
setColor_RGB(255, 0, 0);
|
setColor_RGB(255, 0, 0);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
// This saves a tt file with rom info next to the dumped rom
|
// This saves a tt file with rom info next to the dumped rom
|
||||||
#ifdef savesummarytotxt
|
#ifdef savesummarytotxt
|
||||||
@ -3528,7 +3536,7 @@ redumpsamefolder:
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
// Delete old file
|
// Delete old file
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
if (!myFile.remove()) {
|
if (!myFile.remove()) {
|
||||||
print_Error(F("Delete Error"), true);
|
print_Error(F("Delete Error"), true);
|
||||||
@ -3554,7 +3562,7 @@ redumpsamefolder:
|
|||||||
void savesummary_N64(boolean checkfound, char crcStr[9], unsigned long timeElapsed) {
|
void savesummary_N64(boolean checkfound, char crcStr[9], unsigned long timeElapsed) {
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open("N64/ROM/n64log.txt", O_RDWR | O_CREAT | O_APPEND)) {
|
if (!myFile.open("N64/ROM/n64log.txt", O_RDWR | O_CREAT | O_APPEND)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Write the info
|
//Write the info
|
||||||
@ -3675,7 +3683,8 @@ void flashRepro_N64() {
|
|||||||
println_Msg(F("Repro Cartridge."));
|
println_Msg(F("Repro Cartridge."));
|
||||||
println_Msg(F("Attention: Use 3.3V!"));
|
println_Msg(F("Attention: Use 3.3V!"));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
} else {
|
} else {
|
||||||
@ -3821,7 +3830,7 @@ void flashRepro_N64() {
|
|||||||
|
|
||||||
// Compare file size to flashrom size
|
// Compare file size to flashrom size
|
||||||
if ((fileSize / 1048576) > cartSize) {
|
if ((fileSize / 1048576) > cartSize) {
|
||||||
print_Error(F("File too big"), true);
|
print_Error(file_too_big_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Erase needed sectors
|
// Erase needed sectors
|
||||||
@ -3879,7 +3888,7 @@ void flashRepro_N64() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
// Verify
|
// Verify
|
||||||
print_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
writeErrors = verifyFlashrom_N64();
|
writeErrors = verifyFlashrom_N64();
|
||||||
if (writeErrors == 0) {
|
if (writeErrors == 0) {
|
||||||
@ -3888,7 +3897,7 @@ void flashRepro_N64() {
|
|||||||
} else {
|
} else {
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
print_Msg(F(" bytes "));
|
print_Msg(F(" bytes "));
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Close the file
|
// Close the file
|
||||||
@ -3899,7 +3908,8 @@ void flashRepro_N64() {
|
|||||||
print_Error(F("Can't open file"), false);
|
print_Error(F("Can't open file"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
display_Clear();
|
display_Clear();
|
||||||
@ -4598,7 +4608,7 @@ unsigned long verifyFlashrom_N64() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
return 9999;
|
return 9999;
|
||||||
}
|
}
|
||||||
@ -4627,7 +4637,8 @@ void flashGameshark_N64() {
|
|||||||
println_Msg(F("Gameshark cartridge"));
|
println_Msg(F("Gameshark cartridge"));
|
||||||
println_Msg(F("Attention: Use 3.3V!"));
|
println_Msg(F("Attention: Use 3.3V!"));
|
||||||
println_Msg(F("Power OFF if Unsure!"));
|
println_Msg(F("Power OFF if Unsure!"));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -4652,7 +4663,7 @@ void flashGameshark_N64() {
|
|||||||
|
|
||||||
// Compare file size to flashrom size
|
// Compare file size to flashrom size
|
||||||
if (fileSize > 262144) {
|
if (fileSize > 262144) {
|
||||||
print_Error(F("File too big"), true);
|
print_Error(file_too_big_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SST 29LE010, chip erase not needed as this eeprom automaticly erases during the write cycle
|
// SST 29LE010, chip erase not needed as this eeprom automaticly erases during the write cycle
|
||||||
@ -4668,7 +4679,7 @@ void flashGameshark_N64() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
// Verify
|
// Verify
|
||||||
print_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
writeErrors = verifyGameshark_N64();
|
writeErrors = verifyGameshark_N64();
|
||||||
|
|
||||||
@ -4682,7 +4693,7 @@ void flashGameshark_N64() {
|
|||||||
} else {
|
} else {
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
print_Msg(F(" bytes "));
|
print_Msg(F(" bytes "));
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file"), false);
|
print_Error(F("Can't open file"), false);
|
||||||
@ -4695,7 +4706,8 @@ void flashGameshark_N64() {
|
|||||||
print_Error(F("Unknown flashrom"), false);
|
print_Error(F("Unknown flashrom"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
display_Clear();
|
display_Clear();
|
||||||
@ -4755,7 +4767,7 @@ void backupGameshark_N64() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned long currByte = romBase + 0xC00000; currByte < (romBase + 0xC00000 + 262144); currByte += 512) {
|
for (unsigned long currByte = romBase + 0xC00000; currByte < (romBase + 0xC00000 + 262144); currByte += 512) {
|
||||||
@ -4865,7 +4877,7 @@ unsigned long verifyGameshark_N64() {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("Can't open file"));
|
print_STR(open_file_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
return 9999;
|
return 9999;
|
||||||
}
|
}
|
||||||
|
@ -227,8 +227,8 @@ static const char nesMenuItem3[] PROGMEM = "Read Sram";
|
|||||||
static const char nesMenuItem4[] PROGMEM = "Write Sram";
|
static const char nesMenuItem4[] PROGMEM = "Write Sram";
|
||||||
static const char nesMenuItem5[] PROGMEM = "Change Mapper";
|
static const char nesMenuItem5[] PROGMEM = "Change Mapper";
|
||||||
static const char nesMenuItem6[] PROGMEM = "Flash NESMaker";
|
static const char nesMenuItem6[] PROGMEM = "Flash NESMaker";
|
||||||
static const char nesMenuItem7[] PROGMEM = "Reset";
|
//static const char nesMenuItem7[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsNES[] PROGMEM = { nesMenuItem1, nesMenuItem2, nesMenuItem3, nesMenuItem4, nesMenuItem5, nesMenuItem6, nesMenuItem7 };
|
static const char* const menuOptionsNES[] PROGMEM = { nesMenuItem1, nesMenuItem2, nesMenuItem3, nesMenuItem4, nesMenuItem5, nesMenuItem6, string_reset2 };
|
||||||
|
|
||||||
// NES chips menu
|
// NES chips menu
|
||||||
#ifndef nointro
|
#ifndef nointro
|
||||||
@ -269,7 +269,8 @@ void nesMenu() {
|
|||||||
sd.chdir("/");
|
sd.chdir("/");
|
||||||
readRom_NES();
|
readRom_NES();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
#ifdef global_log
|
#ifdef global_log
|
||||||
save_log();
|
save_log();
|
||||||
#endif
|
#endif
|
||||||
@ -289,7 +290,8 @@ void nesMenu() {
|
|||||||
readRAM();
|
readRAM();
|
||||||
resetROM();
|
resetROM();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -299,7 +301,8 @@ void nesMenu() {
|
|||||||
writeRAM();
|
writeRAM();
|
||||||
resetROM();
|
resetROM();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -329,7 +332,8 @@ void nesMenu() {
|
|||||||
println_Msg(F("Error:"));
|
println_Msg(F("Error:"));
|
||||||
println_Msg(F("Can't write to this cartridge"));
|
println_Msg(F("Can't write to this cartridge"));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
wait();
|
wait();
|
||||||
@ -361,14 +365,16 @@ void nesChipMenu() {
|
|||||||
resetROM();
|
resetROM();
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
#else
|
#else
|
||||||
display_Clear();
|
display_Clear();
|
||||||
// Change working dir to root
|
// Change working dir to root
|
||||||
sd.chdir("/");
|
sd.chdir("/");
|
||||||
readRaw_NES();
|
readRaw_NES();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
#ifdef global_log
|
#ifdef global_log
|
||||||
save_log();
|
save_log();
|
||||||
#endif
|
#endif
|
||||||
@ -383,7 +389,8 @@ void nesChipMenu() {
|
|||||||
readPRG(false);
|
readPRG(false);
|
||||||
resetROM();
|
resetROM();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -394,7 +401,8 @@ void nesChipMenu() {
|
|||||||
readCHR(false);
|
readCHR(false);
|
||||||
resetROM();
|
resetROM();
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -717,11 +725,11 @@ boolean getMapping() {
|
|||||||
println_Msg(F("K"));
|
println_Msg(F("K"));
|
||||||
}
|
}
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#elif defined(SERIAL_MONITOR)
|
#elif defined(SERIAL_MONITOR)
|
||||||
println_Msg(F("U/D to Change"));
|
println_Msg(F("U/D to Change"));
|
||||||
println_Msg(F("Space to Select"));
|
println_Msg(F("Space to Select"));
|
||||||
@ -1005,11 +1013,11 @@ void selectMapping() {
|
|||||||
println_Msg(F("K"));
|
println_Msg(F("K"));
|
||||||
}
|
}
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#elif defined(SERIAL_MONITOR)
|
#elif defined(SERIAL_MONITOR)
|
||||||
println_Msg(F("U/D to Change"));
|
println_Msg(F("U/D to Change"));
|
||||||
println_Msg(F("Space to Select"));
|
println_Msg(F("Space to Select"));
|
||||||
@ -1101,7 +1109,7 @@ void readRom_NES() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1112,7 +1120,7 @@ void readRom_NES() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Initialize progress bar
|
//Initialize progress bar
|
||||||
@ -1160,7 +1168,7 @@ void readRaw_NES() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1171,7 +1179,7 @@ void readRaw_NES() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Initialize progress bar
|
//Initialize progress bar
|
||||||
@ -1530,7 +1538,7 @@ void CreatePRGFileInSD() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("PRG FILE FAILED!"));
|
println_Msg(F("PRG FILE FAILED!"));
|
||||||
display_Update();
|
display_Update();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
|
|
||||||
LED_RED_OFF;
|
LED_RED_OFF;
|
||||||
}
|
}
|
||||||
@ -1555,7 +1563,7 @@ void CreateCHRFileInSD() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("CHR FILE FAILED!"));
|
println_Msg(F("CHR FILE FAILED!"));
|
||||||
display_Update();
|
display_Update();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
|
|
||||||
LED_RED_OFF;
|
LED_RED_OFF;
|
||||||
}
|
}
|
||||||
@ -1580,7 +1588,7 @@ void CreateRAMFileInSD() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("RAM FILE FAILED!"));
|
println_Msg(F("RAM FILE FAILED!"));
|
||||||
display_Update();
|
display_Update();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
|
|
||||||
LED_RED_OFF;
|
LED_RED_OFF;
|
||||||
}
|
}
|
||||||
@ -1682,7 +1690,7 @@ void outputNES() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("PRG FILE FAILED!"));
|
println_Msg(F("PRG FILE FAILED!"));
|
||||||
display_Update();
|
display_Update();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has_header) {
|
if (has_header) {
|
||||||
@ -1702,7 +1710,7 @@ void outputNES() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("NES FILE FAILED!"));
|
println_Msg(F("NES FILE FAILED!"));
|
||||||
display_Update();
|
display_Update();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has_header) {
|
if (has_header) {
|
||||||
@ -1726,7 +1734,7 @@ void outputNES() {
|
|||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("CHR FILE FAILED!"));
|
println_Msg(F("CHR FILE FAILED!"));
|
||||||
display_Update();
|
display_Update();
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
while ((n = myFile.read(sdBuffer, sizeof(sdBuffer))) > 0) {
|
while ((n = myFile.read(sdBuffer, sizeof(sdBuffer))) > 0) {
|
||||||
nesFile.write(sdBuffer, n);
|
nesFile.write(sdBuffer, n);
|
||||||
@ -2065,7 +2073,7 @@ chooseMapper:
|
|||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
|
|
||||||
if (digit == 0) {
|
if (digit == 0) {
|
||||||
@ -2185,8 +2193,8 @@ chooseMapper:
|
|||||||
print_Msg(F("Mapper: "));
|
print_Msg(F("Mapper: "));
|
||||||
println_Msg(mapselect);
|
println_Msg(mapselect);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
@ -2203,8 +2211,8 @@ chooseMapper:
|
|||||||
print_Msg(F("Mapper: "));
|
print_Msg(F("Mapper: "));
|
||||||
println_Msg(mapselect);
|
println_Msg(mapselect);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2219,8 +2227,8 @@ chooseMapper:
|
|||||||
print_Msg(F("Mapper: "));
|
print_Msg(F("Mapper: "));
|
||||||
println_Msg(mapselect);
|
println_Msg(mapselect);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2321,11 +2329,11 @@ void setPRGSize() {
|
|||||||
println_Msg(PRG[i]);
|
println_Msg(PRG[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -2343,11 +2351,11 @@ void setPRGSize() {
|
|||||||
println_Msg(PRG[i]);
|
println_Msg(PRG[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -2362,11 +2370,11 @@ void setPRGSize() {
|
|||||||
println_Msg(PRG[i]);
|
println_Msg(PRG[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -2441,11 +2449,11 @@ void setCHRSize() {
|
|||||||
println_Msg(CHR[i]);
|
println_Msg(CHR[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -2463,11 +2471,11 @@ void setCHRSize() {
|
|||||||
println_Msg(CHR[i]);
|
println_Msg(CHR[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -2483,11 +2491,11 @@ void setCHRSize() {
|
|||||||
println_Msg(CHR[i]);
|
println_Msg(CHR[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -2576,11 +2584,11 @@ void setRAMSize() {
|
|||||||
println_Msg(RAM[i]);
|
println_Msg(RAM[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -2612,11 +2620,11 @@ void setRAMSize() {
|
|||||||
println_Msg(RAM[i]);
|
println_Msg(RAM[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -2646,11 +2654,11 @@ void setRAMSize() {
|
|||||||
println_Msg(RAM[i]);
|
println_Msg(RAM[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("Press right to select"));
|
println_Msg(F("Press right to select"));
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -2859,7 +2867,8 @@ void checkStatus_NES() {
|
|||||||
println_Msg(F("K"));
|
println_Msg(F("K"));
|
||||||
}
|
}
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -4808,7 +4817,7 @@ void writeRAM() {
|
|||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD ERROR"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
static const char ngpMenuItem1[] PROGMEM = "Read Rom";
|
static const char ngpMenuItem1[] PROGMEM = "Read Rom";
|
||||||
static const char ngpMenuItem2[] PROGMEM = "Read chip info";
|
static const char ngpMenuItem2[] PROGMEM = "Read chip info";
|
||||||
static const char ngpMenuItemReset[] PROGMEM = "Reset";
|
//static const char ngpMenuItemReset[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsNGP[] PROGMEM = { ngpMenuItem1, ngpMenuItem2, ngpMenuItemReset };
|
static const char* const menuOptionsNGP[] PROGMEM = { ngpMenuItem1, ngpMenuItem2, string_reset2 };
|
||||||
|
|
||||||
static const char ngpRomItem1[] PROGMEM = "4 Mbits / 512 KB";
|
static const char ngpRomItem1[] PROGMEM = "4 Mbits / 512 KB";
|
||||||
static const char ngpRomItem2[] PROGMEM = "8 Mbits / 1 MB";
|
static const char ngpRomItem2[] PROGMEM = "8 Mbits / 1 MB";
|
||||||
@ -73,7 +73,8 @@ void ngpMenu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -169,7 +170,8 @@ void printCartInfo_NGP() {
|
|||||||
println_Msg(F(" Mbits"));
|
println_Msg(F(" Mbits"));
|
||||||
}
|
}
|
||||||
|
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -206,14 +208,14 @@ void readROM_NGP(char* outPathBuf, size_t bufferSize) {
|
|||||||
snprintf(outPathBuf, bufferSize, "%s/%s", folder, fileName);
|
snprintf(outPathBuf, bufferSize, "%s/%s", folder, fileName);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// open file on sdcard
|
// open file on sdcard
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
// write new folder number back to EEPROM
|
// write new folder number back to EEPROM
|
||||||
foldern++;
|
foldern++;
|
||||||
@ -264,7 +266,7 @@ void scanChip_NGP() {
|
|||||||
|
|
||||||
// open file on sdcard
|
// open file on sdcard
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
// write new folder number back to EEPROM
|
// write new folder number back to EEPROM
|
||||||
foldern++;
|
foldern++;
|
||||||
|
@ -54,14 +54,14 @@ uint8_t tennokoe_bank_index = 0;
|
|||||||
static const char pceMenuItem1[] PROGMEM = "HuCARD (swapped)";
|
static const char pceMenuItem1[] PROGMEM = "HuCARD (swapped)";
|
||||||
static const char pceMenuItem2[] PROGMEM = "HuCARD(not swapped)";
|
static const char pceMenuItem2[] PROGMEM = "HuCARD(not swapped)";
|
||||||
static const char pceMenuItem3[] PROGMEM = "Turbochip";
|
static const char pceMenuItem3[] PROGMEM = "Turbochip";
|
||||||
static const char pceMenuItem4[] PROGMEM = "Reset";
|
//static const char pceMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char *const menuOptionspce[] PROGMEM = { pceMenuItem1, pceMenuItem2, pceMenuItem3, pceMenuItem4 };
|
static const char *const menuOptionspce[] PROGMEM = { pceMenuItem1, pceMenuItem2, pceMenuItem3, string_reset2 };
|
||||||
|
|
||||||
// PCE card menu items
|
// PCE card menu items
|
||||||
static const char pceCartMenuItem1[] = "Read ROM";
|
static const char pceCartMenuItem1[] = "Read ROM";
|
||||||
static char pceCartMenuItem2[20];
|
static char pceCartMenuItem2[20];
|
||||||
static char pceCartMenuItem3[20];
|
static char pceCartMenuItem3[20];
|
||||||
static const char pceCartMenuItem4[] = "Reset";
|
//static const char pceCartMenuItem4[] = "Reset"; (stored in common strings array)
|
||||||
static const char pceCartMenuItem5[] = "Inc Bank Number";
|
static const char pceCartMenuItem5[] = "Inc Bank Number";
|
||||||
static const char pceCartMenuItem6[] = "Dec Bank Number";
|
static const char pceCartMenuItem6[] = "Dec Bank Number";
|
||||||
static char pceCartMenuItem7[20];
|
static char pceCartMenuItem7[20];
|
||||||
@ -69,8 +69,8 @@ static char menuOptionspceCart[7][20];
|
|||||||
|
|
||||||
// Turbochip menu items
|
// Turbochip menu items
|
||||||
static const char pceTCMenuItem1[] PROGMEM = "Read ROM";
|
static const char pceTCMenuItem1[] PROGMEM = "Read ROM";
|
||||||
static const char pceTCMenuItem2[] PROGMEM = "Reset";
|
//static const char pceTCMenuItem2[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char *const menuOptionspceTC[] PROGMEM = { pceTCMenuItem1, pceTCMenuItem2 };
|
static const char *const menuOptionspceTC[] PROGMEM = { pceTCMenuItem1, string_reset2 };
|
||||||
|
|
||||||
// PCE start menu
|
// PCE start menu
|
||||||
void pcsMenu(void) {
|
void pcsMenu(void) {
|
||||||
@ -549,7 +549,7 @@ void read_tennokoe_bank_PCE(int bank_index) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
pin_read_write_PCE();
|
pin_read_write_PCE();
|
||||||
@ -688,8 +688,8 @@ void write_tennokoe_bank_PCE(int bank_index) {
|
|||||||
} else {
|
} else {
|
||||||
println_Msg(F("Verify failed..."));
|
println_Msg(F("Verify failed..."));
|
||||||
print_Msg(diffcnt);
|
print_Msg(diffcnt);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
pin_init_PCE();
|
pin_init_PCE();
|
||||||
@ -743,7 +743,7 @@ void read_rom_PCE(void) {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
pin_read_write_PCE();
|
pin_read_write_PCE();
|
||||||
@ -800,7 +800,7 @@ void pceMenu() {
|
|||||||
strcpy(menuOptionspceCart[0], pceCartMenuItem1);
|
strcpy(menuOptionspceCart[0], pceCartMenuItem1);
|
||||||
strcpy(menuOptionspceCart[1], pceCartMenuItem2);
|
strcpy(menuOptionspceCart[1], pceCartMenuItem2);
|
||||||
strcpy(menuOptionspceCart[2], pceCartMenuItem3);
|
strcpy(menuOptionspceCart[2], pceCartMenuItem3);
|
||||||
strcpy(menuOptionspceCart[3], pceCartMenuItem4);
|
strcpy(menuOptionspceCart[3], string_reset2); // (stored in common strings array)
|
||||||
strcpy(menuOptionspceCart[4], pceCartMenuItem5);
|
strcpy(menuOptionspceCart[4], pceCartMenuItem5);
|
||||||
strcpy(menuOptionspceCart[5], pceCartMenuItem6);
|
strcpy(menuOptionspceCart[5], pceCartMenuItem6);
|
||||||
if (pce_force_rom_size > 0) {
|
if (pce_force_rom_size > 0) {
|
||||||
@ -865,7 +865,8 @@ void pceMenu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
|
@ -137,8 +137,8 @@ void setup_PCW() {
|
|||||||
static const char pcwmenuItem1[] PROGMEM = "Read ROM";
|
static const char pcwmenuItem1[] PROGMEM = "Read ROM";
|
||||||
static const char pcwmenuItem2[] PROGMEM = "Read SRAM";
|
static const char pcwmenuItem2[] PROGMEM = "Read SRAM";
|
||||||
static const char pcwmenuItem3[] PROGMEM = "Write SRAM";
|
static const char pcwmenuItem3[] PROGMEM = "Write SRAM";
|
||||||
static const char pcwmenuItem4[] PROGMEM = "Reset";
|
//static const char pcwmenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsPCW[] PROGMEM = { pcwmenuItem1, pcwmenuItem2, pcwmenuItem3, pcwmenuItem4 };
|
static const char* const menuOptionsPCW[] PROGMEM = { pcwmenuItem1, pcwmenuItem2, pcwmenuItem3, string_reset2 };
|
||||||
|
|
||||||
void pcwMenu() {
|
void pcwMenu() {
|
||||||
convertPgm(menuOptionsPCW, 4);
|
convertPgm(menuOptionsPCW, 4);
|
||||||
@ -164,7 +164,8 @@ void pcwMenu() {
|
|||||||
readSRAM_PCW();
|
readSRAM_PCW();
|
||||||
sd.chdir("/");
|
sd.chdir("/");
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -181,10 +182,10 @@ void pcwMenu() {
|
|||||||
println_Msg(F("SRAM verified OK"));
|
println_Msg(F("SRAM verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -468,7 +469,7 @@ void readROM_PCW() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -477,7 +478,7 @@ void readROM_PCW() {
|
|||||||
EEPROM_writeAnything(0, foldern);
|
EEPROM_writeAnything(0, foldern);
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
read_setup_PCW();
|
read_setup_PCW();
|
||||||
for (unsigned long address = 0; address < 0x400000; address += 512) { // 4MB
|
for (unsigned long address = 0; address < 0x400000; address += 512) { // 4MB
|
||||||
@ -495,7 +496,8 @@ void readROM_PCW() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -510,7 +512,7 @@ void readMultiROM_PCW() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -519,7 +521,7 @@ void readMultiROM_PCW() {
|
|||||||
EEPROM_writeAnything(0, foldern);
|
EEPROM_writeAnything(0, foldern);
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
display_Clear();
|
display_Clear();
|
||||||
println_Msg(F("READING MULTI-PACK"));
|
println_Msg(F("READING MULTI-PACK"));
|
||||||
@ -554,7 +556,8 @@ void readMultiROM_PCW() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -576,7 +579,7 @@ void readSRAM_PCW() { // readSRAM_1A()
|
|||||||
EEPROM_writeAnything(0, foldern);
|
EEPROM_writeAnything(0, foldern);
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
display_Clear();
|
display_Clear();
|
||||||
read_setup_PCW();
|
read_setup_PCW();
|
||||||
@ -620,13 +623,13 @@ void writeSRAM_PCW() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
display_Clear();
|
display_Clear();
|
||||||
}
|
}
|
||||||
@ -649,7 +652,7 @@ unsigned long verifySRAM_PCW() {
|
|||||||
}
|
}
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
|
@ -34,8 +34,8 @@ boolean hirom[8];
|
|||||||
// SFM menu items
|
// SFM menu items
|
||||||
static const char sfmMenuItem1[] PROGMEM = "Game Menu";
|
static const char sfmMenuItem1[] PROGMEM = "Game Menu";
|
||||||
static const char sfmMenuItem2[] PROGMEM = "Flash Menu";
|
static const char sfmMenuItem2[] PROGMEM = "Flash Menu";
|
||||||
static const char sfmMenuItem3[] PROGMEM = "Reset";
|
//static const char sfmMenuItem3[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsSFM[] PROGMEM = { sfmMenuItem1, sfmMenuItem2, sfmMenuItem3 };
|
static const char* const menuOptionsSFM[] PROGMEM = { sfmMenuItem1, sfmMenuItem2, string_reset2 };
|
||||||
|
|
||||||
// SFM flash menu items
|
// SFM flash menu items
|
||||||
static const char sfmFlashMenuItem1[] PROGMEM = "Read Flash";
|
static const char sfmFlashMenuItem1[] PROGMEM = "Read Flash";
|
||||||
@ -51,8 +51,8 @@ static const char sfmGameMenuItem1[] PROGMEM = "Read Sram";
|
|||||||
static const char sfmGameMenuItem2[] PROGMEM = "Read Game";
|
static const char sfmGameMenuItem2[] PROGMEM = "Read Game";
|
||||||
static const char sfmGameMenuItem3[] PROGMEM = "Write Sram";
|
static const char sfmGameMenuItem3[] PROGMEM = "Write Sram";
|
||||||
static const char sfmGameMenuItem4[] PROGMEM = "Switch Game";
|
static const char sfmGameMenuItem4[] PROGMEM = "Switch Game";
|
||||||
static const char sfmGameMenuItem5[] PROGMEM = "Reset";
|
//static const char sfmGameMenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsSFMGame[] PROGMEM = { sfmGameMenuItem1, sfmGameMenuItem2, sfmGameMenuItem3, sfmGameMenuItem4, sfmGameMenuItem5 };
|
static const char* const menuOptionsSFMGame[] PROGMEM = { sfmGameMenuItem1, sfmGameMenuItem2, sfmGameMenuItem3, sfmGameMenuItem4, string_reset2 };
|
||||||
|
|
||||||
void sfmMenu() {
|
void sfmMenu() {
|
||||||
// create menu with title and 3 options to choose from
|
// create menu with title and 3 options to choose from
|
||||||
@ -182,10 +182,10 @@ void sfmGameOptions() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(wrErrors);
|
print_Msg(wrErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -201,7 +201,8 @@ void sfmGameOptions() {
|
|||||||
}
|
}
|
||||||
if (gameSubMenu != 3) {
|
if (gameSubMenu != 3) {
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -267,7 +268,8 @@ void sfmFlashMenu() {
|
|||||||
println_Msg(F("This will erase your"));
|
println_Msg(F("This will erase your"));
|
||||||
println_Msg(F("NP Cartridge."));
|
println_Msg(F("NP Cartridge."));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -379,7 +381,8 @@ void sfmFlashMenu() {
|
|||||||
println_Msg(F("This will erase your"));
|
println_Msg(F("This will erase your"));
|
||||||
println_Msg(F("NP Cartridge."));
|
println_Msg(F("NP Cartridge."));
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
|
||||||
@ -429,7 +432,8 @@ void sfmFlashMenu() {
|
|||||||
}
|
}
|
||||||
if (flashSubMenu != 5) {
|
if (flashSubMenu != 5) {
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -784,7 +788,8 @@ void getCartInfo_SFM() {
|
|||||||
print_Msg(F("Sram: "));
|
print_Msg(F("Sram: "));
|
||||||
print_Msg(sramSize);
|
print_Msg(sramSize);
|
||||||
println_Msg(F("Kbit"));
|
println_Msg(F("Kbit"));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
wait();
|
wait();
|
||||||
@ -927,7 +932,7 @@ void readROM_SFM() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if LoROM or HiROM...
|
// Check if LoROM or HiROM...
|
||||||
@ -1098,7 +1103,7 @@ void writeFlash_SFM(int startBank, uint32_t pos) {
|
|||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg("");
|
println_Msg("");
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Can't open file on SD"), true);
|
print_Error(open_file_STR, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1261,7 +1266,7 @@ void readFlash_SFM() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
if (romType) {
|
if (romType) {
|
||||||
for (int currBank = 0xC0; currBank < 0xC0 + numBanks; currBank++) {
|
for (int currBank = 0xC0; currBank < 0xC0 + numBanks; currBank++) {
|
||||||
@ -1405,7 +1410,7 @@ void readMapping() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the mapping info out of the 1st chip
|
// Read the mapping info out of the 1st chip
|
||||||
@ -1730,7 +1735,7 @@ void write_SFM(int startBank, uint32_t pos) {
|
|||||||
display_Update();
|
display_Update();
|
||||||
eraseFlash_SFM(startBank);
|
eraseFlash_SFM(startBank);
|
||||||
resetFlash_SFM(startBank);
|
resetFlash_SFM(startBank);
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
print_Msg(F("Blankcheck..."));
|
print_Msg(F("Blankcheck..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
if (blankcheck_SFM(startBank)) {
|
if (blankcheck_SFM(startBank)) {
|
||||||
@ -1747,17 +1752,17 @@ void write_SFM(int startBank, uint32_t pos) {
|
|||||||
resetFlash_SFM(startBank);
|
resetFlash_SFM(startBank);
|
||||||
|
|
||||||
// Checking for errors
|
// Checking for errors
|
||||||
print_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 0);
|
||||||
display_Update();
|
display_Update();
|
||||||
writeErrors = verifyFlash_SFM(startBank, pos);
|
writeErrors = verifyFlash_SFM(startBank, pos);
|
||||||
if (writeErrors == 0) {
|
if (writeErrors == 0) {
|
||||||
println_Msg(F("OK"));
|
println_Msg(F("OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), true);
|
print_Error(did_not_verify_STR, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Error: Wrong Flash ID"), true);
|
print_Error(F("Error: Wrong Flash ID"), true);
|
||||||
|
@ -18,9 +18,9 @@ static const char* const menuAdapterSMS[] PROGMEM = { SMSAdapterItem1, SMSAdapte
|
|||||||
static const char SMSMenuItem1[] PROGMEM = "Read Rom";
|
static const char SMSMenuItem1[] PROGMEM = "Read Rom";
|
||||||
static const char SMSMenuItem2[] PROGMEM = "Read from SRAM";
|
static const char SMSMenuItem2[] PROGMEM = "Read from SRAM";
|
||||||
static const char SMSMenuItem3[] PROGMEM = "Write to SRAM";
|
static const char SMSMenuItem3[] PROGMEM = "Write to SRAM";
|
||||||
static const char SMSMenuItem4[] PROGMEM = "Reset";
|
//static const char SMSMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char SMSMenuItem5[] PROGMEM = "Change Retrode Mode";
|
static const char SMSMenuItem5[] PROGMEM = "Change Retrode Mode";
|
||||||
static const char* const menuOptionsSMS[] PROGMEM = { SMSMenuItem1, SMSMenuItem2, SMSMenuItem3, SMSMenuItem4, SMSMenuItem5 };
|
static const char* const menuOptionsSMS[] PROGMEM = { SMSMenuItem1, SMSMenuItem2, SMSMenuItem3, string_reset2, SMSMenuItem5 };
|
||||||
|
|
||||||
// Rom Size menu
|
// Rom Size menu
|
||||||
static const char SMSRomItem1[] PROGMEM = "8KB";
|
static const char SMSRomItem1[] PROGMEM = "8KB";
|
||||||
@ -114,10 +114,12 @@ void _smsMenu() {
|
|||||||
}
|
}
|
||||||
if (retrode_mode) {
|
if (retrode_mode) {
|
||||||
println_Msg(retrode_mode ? (retrode_mode_sms ? F("Retrode Mode SMS") : F("Retrode Mode GG")) : F("Retrode Mode Off"));
|
println_Msg(retrode_mode ? (retrode_mode_sms ? F("Retrode Mode SMS") : F("Retrode Mode GG")) : F("Retrode Mode Off"));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
}
|
}
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
@ -550,7 +552,8 @@ void getCartInfo_SMS() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
#if (defined(enable_LCD) || defined(enable_OLED))
|
#if (defined(enable_LCD) || defined(enable_OLED))
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#endif
|
#endif
|
||||||
@ -579,7 +582,7 @@ void readROM_SMS() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -590,7 +593,7 @@ void readROM_SMS() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set default bank size to 16KB
|
// set default bank size to 16KB
|
||||||
@ -664,7 +667,7 @@ void readSRAM_SMS() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -675,7 +678,7 @@ void readSRAM_SMS() {
|
|||||||
|
|
||||||
// Open file on sd card
|
// Open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
// Write the whole 32KB
|
// Write the whole 32KB
|
||||||
// When there is only 8KB of SRAM, the contents should be duplicated
|
// When there is only 8KB of SRAM, the contents should be duplicated
|
||||||
@ -742,10 +745,10 @@ void writeSRAM_SMS() {
|
|||||||
blinkLED();
|
blinkLED();
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("DONE"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD ERROR"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,11 +35,11 @@ static const char snsMenuItem3[] PROGMEM = "Satellaview BS-X";
|
|||||||
static const char snsMenuItem4[] PROGMEM = "Flash repro";
|
static const char snsMenuItem4[] PROGMEM = "Flash repro";
|
||||||
#ifdef clockgen_calibration
|
#ifdef clockgen_calibration
|
||||||
static const char snsMenuItem5[] PROGMEM = "Calibrate Clock";
|
static const char snsMenuItem5[] PROGMEM = "Calibrate Clock";
|
||||||
static const char snsMenuItem6[] PROGMEM = "Reset";
|
//static const char snsMenuItem6[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsSNS[] PROGMEM = { snsMenuItem1, snsMenuItem2, snsMenuItem3, snsMenuItem4, snsMenuItem5, snsMenuItem6 };
|
static const char* const menuOptionsSNS[] PROGMEM = { snsMenuItem1, snsMenuItem2, snsMenuItem3, snsMenuItem4, snsMenuItem5, string_reset2 };
|
||||||
#else
|
#else
|
||||||
static const char snsMenuItem5[] PROGMEM = "Reset";
|
//static const char snsMenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsSNS[] PROGMEM = { snsMenuItem1, snsMenuItem2, snsMenuItem3, snsMenuItem4, snsMenuItem5 };
|
static const char* const menuOptionsSNS[] PROGMEM = { snsMenuItem1, snsMenuItem2, snsMenuItem3, snsMenuItem4, string_reset2 };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// SNES menu items
|
// SNES menu items
|
||||||
@ -49,24 +49,24 @@ static const char SnesMenuItem3[] PROGMEM = "Write Save";
|
|||||||
static const char SnesMenuItem4[] PROGMEM = "Test SRAM";
|
static const char SnesMenuItem4[] PROGMEM = "Test SRAM";
|
||||||
static const char SnesMenuItem5[] PROGMEM = "Cycle cart";
|
static const char SnesMenuItem5[] PROGMEM = "Cycle cart";
|
||||||
static const char SnesMenuItem6[] PROGMEM = "Force cart type";
|
static const char SnesMenuItem6[] PROGMEM = "Force cart type";
|
||||||
static const char SnesMenuItem7[] PROGMEM = "Reset";
|
//static const char SnesMenuItem7[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsSNES[] PROGMEM = { SnesMenuItem1, SnesMenuItem2, SnesMenuItem3, SnesMenuItem4, SnesMenuItem5, SnesMenuItem6, SnesMenuItem7 };
|
static const char* const menuOptionsSNES[] PROGMEM = { SnesMenuItem1, SnesMenuItem2, SnesMenuItem3, SnesMenuItem4, SnesMenuItem5, SnesMenuItem6, string_reset2 };
|
||||||
|
|
||||||
// Manual config menu items
|
// Manual config menu items
|
||||||
static const char confMenuItem1[] PROGMEM = "Use header info";
|
static const char confMenuItem1[] PROGMEM = "Use header info";
|
||||||
static const char confMenuItem2[] PROGMEM = "4MB LoROM 256K SRAM";
|
static const char confMenuItem2[] PROGMEM = "4MB LoROM 256K SRAM";
|
||||||
static const char confMenuItem3[] PROGMEM = "4MB HiROM 64K SRAM";
|
static const char confMenuItem3[] PROGMEM = "4MB HiROM 64K SRAM";
|
||||||
static const char confMenuItem4[] PROGMEM = "6MB ExROM 256K SRAM";
|
static const char confMenuItem4[] PROGMEM = "6MB ExROM 256K SRAM";
|
||||||
static const char confMenuItem5[] PROGMEM = "Reset";
|
//static const char confMenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsConfManual[] PROGMEM = { confMenuItem1, confMenuItem2, confMenuItem3, confMenuItem4, confMenuItem5 };
|
static const char* const menuOptionsConfManual[] PROGMEM = { confMenuItem1, confMenuItem2, confMenuItem3, confMenuItem4, string_reset2 };
|
||||||
|
|
||||||
// Repro menu items
|
// Repro menu items
|
||||||
static const char reproMenuItem1[] PROGMEM = "LoROM (P0)";
|
static const char reproMenuItem1[] PROGMEM = "LoROM (P0)";
|
||||||
static const char reproMenuItem2[] PROGMEM = "HiROM (P0)";
|
static const char reproMenuItem2[] PROGMEM = "HiROM (P0)";
|
||||||
static const char reproMenuItem3[] PROGMEM = "ExLoROM (P1)";
|
static const char reproMenuItem3[] PROGMEM = "ExLoROM (P1)";
|
||||||
static const char reproMenuItem4[] PROGMEM = "ExHiROM (P1)";
|
static const char reproMenuItem4[] PROGMEM = "ExHiROM (P1)";
|
||||||
static const char reproMenuItem5[] PROGMEM = "Reset";
|
//static const char reproMenuItem5[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsRepro[] PROGMEM = { reproMenuItem1, reproMenuItem2, reproMenuItem3, reproMenuItem4, reproMenuItem5 };
|
static const char* const menuOptionsRepro[] PROGMEM = { reproMenuItem1, reproMenuItem2, reproMenuItem3, reproMenuItem4, string_reset2 };
|
||||||
|
|
||||||
// SNES repro menu
|
// SNES repro menu
|
||||||
void reproMenu() {
|
void reproMenu() {
|
||||||
@ -247,10 +247,10 @@ void snesMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(wrErrors);
|
print_Msg(wrErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
@ -282,10 +282,10 @@ void snesMenu() {
|
|||||||
println_Msg(F("Restored OK"));
|
println_Msg(F("Restored OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(wrErrors);
|
print_Msg(wrErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
display_Clear();
|
display_Clear();
|
||||||
@ -323,7 +323,8 @@ void snesMenu() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//println_Msg(F(""));
|
//println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -840,7 +841,8 @@ void getCartInfo_SNES() {
|
|||||||
|
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
#if (defined(enable_LCD) || defined(enable_OLED))
|
#if (defined(enable_LCD) || defined(enable_OLED))
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#endif
|
#endif
|
||||||
@ -1314,7 +1316,7 @@ void readROM_SNES() {
|
|||||||
|
|
||||||
//clear the screen
|
//clear the screen
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -1325,7 +1327,7 @@ void readROM_SNES() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Dump Derby Stallion '96 (Japan) Actual Size is 24Mb
|
//Dump Derby Stallion '96 (Japan) Actual Size is 24Mb
|
||||||
@ -1678,7 +1680,7 @@ void readSRAM() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
int sramBanks = 0;
|
int sramBanks = 0;
|
||||||
if (romType == LO) {
|
if (romType == LO) {
|
||||||
@ -1951,10 +1953,10 @@ unsigned long verifySRAM() {
|
|||||||
if (writeErrors == 0) {
|
if (writeErrors == 0) {
|
||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
|
@ -82,10 +82,10 @@ void svMenu() {
|
|||||||
println_Msg(F("Verified OK"));
|
println_Msg(F("Verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(wrErrors);
|
print_Msg(wrErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
wait();
|
wait();
|
||||||
break;
|
break;
|
||||||
@ -300,7 +300,7 @@ void readSRAM_SV() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
int sramBanks = 0;
|
int sramBanks = 0;
|
||||||
|
|
||||||
@ -435,7 +435,7 @@ void readROM_SV() {
|
|||||||
|
|
||||||
//clear the screen
|
//clear the screen
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -446,7 +446,7 @@ void readROM_SV() {
|
|||||||
|
|
||||||
//open file on sd card
|
//open file on sd card
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read Banks
|
// Read Banks
|
||||||
@ -559,7 +559,7 @@ void writeROM_SV(void) {
|
|||||||
dataIn(); //Set pins to input
|
dataIn(); //Set pins to input
|
||||||
controlIn_SNES();
|
controlIn_SNES();
|
||||||
myFile.seekSet(0); // Go back to file beginning
|
myFile.seekSet(0); // Go back to file beginning
|
||||||
println_Msg(F("Verifying..."));
|
print_STR(verifying_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
for (int currBank = 0xC0; currBank < 0xD0; currBank++) {
|
for (int currBank = 0xC0; currBank < 0xD0; currBank++) {
|
||||||
draw_progressbar(((currBank - 0xC0) * 0x10000), 0x100000);
|
draw_progressbar(((currBank - 0xC0) * 0x10000), 0x100000);
|
||||||
|
@ -97,8 +97,8 @@ void setup_VBOY() {
|
|||||||
static const char vboyMenuItem1[] PROGMEM = "Read ROM";
|
static const char vboyMenuItem1[] PROGMEM = "Read ROM";
|
||||||
static const char vboyMenuItem2[] PROGMEM = "Read SRAM";
|
static const char vboyMenuItem2[] PROGMEM = "Read SRAM";
|
||||||
static const char vboyMenuItem3[] PROGMEM = "Write SRAM";
|
static const char vboyMenuItem3[] PROGMEM = "Write SRAM";
|
||||||
static const char vboyMenuItem4[] PROGMEM = "Reset";
|
//static const char vboyMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsVBOY[] PROGMEM = { vboyMenuItem1, vboyMenuItem2, vboyMenuItem3, vboyMenuItem4 };
|
static const char* const menuOptionsVBOY[] PROGMEM = { vboyMenuItem1, vboyMenuItem2, vboyMenuItem3, string_reset2 };
|
||||||
|
|
||||||
void vboyMenu() {
|
void vboyMenu() {
|
||||||
convertPgm(menuOptionsVBOY, 4);
|
convertPgm(menuOptionsVBOY, 4);
|
||||||
@ -126,7 +126,8 @@ void vboyMenu() {
|
|||||||
}
|
}
|
||||||
#if (defined(enable_OLED) || defined(enable_LCD))
|
#if (defined(enable_OLED) || defined(enable_LCD))
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#endif
|
#endif
|
||||||
@ -145,17 +146,18 @@ void vboyMenu() {
|
|||||||
println_Msg(F("SRAM verified OK"));
|
println_Msg(F("SRAM verified OK"));
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(writeErrors);
|
print_Msg(writeErrors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("Cart has no SRAM"), false);
|
print_Error(F("Cart has no SRAM"), false);
|
||||||
}
|
}
|
||||||
#if (defined(enable_OLED) || defined(enable_LCD))
|
#if (defined(enable_OLED) || defined(enable_LCD))
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#endif
|
#endif
|
||||||
@ -395,7 +397,8 @@ void getCartInfo_VB() {
|
|||||||
|
|
||||||
#if (defined(enable_OLED) || defined(enable_LCD))
|
#if (defined(enable_OLED) || defined(enable_LCD))
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#endif
|
#endif
|
||||||
@ -417,7 +420,7 @@ void readROM_VB() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
@ -426,7 +429,7 @@ void readROM_VB() {
|
|||||||
EEPROM_writeAnything(0, foldern);
|
EEPROM_writeAnything(0, foldern);
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
word d = 0;
|
word d = 0;
|
||||||
@ -469,7 +472,8 @@ void readROM_VB() {
|
|||||||
#if (defined(enable_OLED) || defined(enable_LCD))
|
#if (defined(enable_OLED) || defined(enable_LCD))
|
||||||
// Wait for user input
|
// Wait for user input
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
#endif
|
#endif
|
||||||
@ -493,10 +497,10 @@ void writeSRAM_VB() {
|
|||||||
writeByte_VB(currByte, (myFile.read()));
|
writeByte_VB(currByte, (myFile.read()));
|
||||||
}
|
}
|
||||||
myFile.close();
|
myFile.close();
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
dataIn_VB();
|
dataIn_VB();
|
||||||
}
|
}
|
||||||
@ -516,7 +520,7 @@ void readSRAM_VB() {
|
|||||||
EEPROM_writeAnything(0, foldern);
|
EEPROM_writeAnything(0, foldern);
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
if (!myFile.open(fileName, O_RDWR | O_CREAT)) {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
for (unsigned long currBuffer = 0; currBuffer < sramSize; currBuffer += 512) {
|
for (unsigned long currBuffer = 0; currBuffer < sramSize; currBuffer += 512) {
|
||||||
for (int currByte = 0; currByte < 512; currByte++) {
|
for (int currByte = 0; currByte < 512; currByte++) {
|
||||||
@ -550,7 +554,7 @@ unsigned long verifySRAM_VB() {
|
|||||||
}
|
}
|
||||||
myFile.close();
|
myFile.close();
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("SD Error"), true);
|
print_Error(sd_error_STR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return writeErrors;
|
return writeErrors;
|
||||||
|
@ -35,9 +35,9 @@
|
|||||||
static const char wsMenuItem1[] PROGMEM = "Read Rom";
|
static const char wsMenuItem1[] PROGMEM = "Read Rom";
|
||||||
static const char wsMenuItem2[] PROGMEM = "Read Save";
|
static const char wsMenuItem2[] PROGMEM = "Read Save";
|
||||||
static const char wsMenuItem3[] PROGMEM = "Write Save";
|
static const char wsMenuItem3[] PROGMEM = "Write Save";
|
||||||
static const char wsMenuItem4[] PROGMEM = "Reset";
|
//static const char wsMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char wsMenuItem5[] PROGMEM = "Write WitchOS";
|
static const char wsMenuItem5[] PROGMEM = "Write WitchOS";
|
||||||
static const char *const menuOptionsWS[] PROGMEM = { wsMenuItem1, wsMenuItem2, wsMenuItem3, wsMenuItem4, wsMenuItem5 };
|
static const char *const menuOptionsWS[] PROGMEM = { wsMenuItem1, wsMenuItem2, wsMenuItem3, string_reset2, wsMenuItem5 };
|
||||||
|
|
||||||
static const uint8_t wwLaunchCode[] PROGMEM = { 0xea, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xff };
|
static const uint8_t wwLaunchCode[] PROGMEM = { 0xea, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xff, 0xff };
|
||||||
|
|
||||||
@ -184,7 +184,8 @@ void wsMenu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
|
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
@ -404,7 +405,8 @@ void showCartInfo_WS() {
|
|||||||
print_Msg(F("Checksum: "));
|
print_Msg(F("Checksum: "));
|
||||||
println_Msg(checksumStr);
|
println_Msg(checksumStr);
|
||||||
|
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -487,14 +489,14 @@ void readROM_WS(char *outPathBuf, size_t bufferSize) {
|
|||||||
snprintf(outPathBuf, bufferSize, "%s/%s", folder, fileName);
|
snprintf(outPathBuf, bufferSize, "%s/%s", folder, fileName);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// open file on sdcard
|
// open file on sdcard
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
// write new folder number back to EEPROM
|
// write new folder number back to EEPROM
|
||||||
foldern++;
|
foldern++;
|
||||||
@ -561,7 +563,7 @@ void readSRAM_WS() {
|
|||||||
EEPROM_writeAnything(0, foldern);
|
EEPROM_writeAnything(0, foldern);
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
uint32_t bank_size = (sramSize << 7);
|
uint32_t bank_size = (sramSize << 7);
|
||||||
uint16_t end_bank = (bank_size >> 16); // 64KB per bank
|
uint16_t end_bank = (bank_size >> 16); // 64KB per bank
|
||||||
@ -591,7 +593,7 @@ void readSRAM_WS() {
|
|||||||
|
|
||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -630,10 +632,10 @@ void verifySRAM_WS() {
|
|||||||
println_Msg(F("passed"));
|
println_Msg(F("passed"));
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("failed"));
|
println_Msg(F("failed"));
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(write_errors);
|
print_Msg(write_errors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("File doesn't exist"), false);
|
print_Error(F("File doesn't exist"), false);
|
||||||
@ -706,7 +708,7 @@ void readEEPROM_WS() {
|
|||||||
EEPROM_writeAnything(0, foldern);
|
EEPROM_writeAnything(0, foldern);
|
||||||
|
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
uint32_t eepromSize = (sramSize << 7);
|
uint32_t eepromSize = (sramSize << 7);
|
||||||
uint32_t bufSize = (eepromSize < 512 ? eepromSize : 512);
|
uint32_t bufSize = (eepromSize < 512 ? eepromSize : 512);
|
||||||
@ -738,7 +740,7 @@ void readEEPROM_WS() {
|
|||||||
|
|
||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void verifyEEPROM_WS() {
|
void verifyEEPROM_WS() {
|
||||||
@ -784,10 +786,10 @@ void verifyEEPROM_WS() {
|
|||||||
println_Msg(F("passed"));
|
println_Msg(F("passed"));
|
||||||
} else {
|
} else {
|
||||||
println_Msg(F("failed"));
|
println_Msg(F("failed"));
|
||||||
print_Msg(F("Error: "));
|
print_STR(error_STR, 0);
|
||||||
print_Msg(write_errors);
|
print_Msg(write_errors);
|
||||||
println_Msg(F(" bytes "));
|
print_STR(_bytes_STR, 1);
|
||||||
print_Error(F("did not verify."), false);
|
print_Error(did_not_verify_STR, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("File doesn't exist"), false);
|
print_Error(F("File doesn't exist"), false);
|
||||||
@ -839,7 +841,7 @@ void writeEEPROM_WS() {
|
|||||||
|
|
||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("File doesn't exist"), false);
|
print_Error(F("File doesn't exist"), false);
|
||||||
}
|
}
|
||||||
@ -928,7 +930,7 @@ void writeWitchOS_WS() {
|
|||||||
|
|
||||||
myFile.close();
|
myFile.close();
|
||||||
|
|
||||||
println_Msg(F("Done"));
|
print_STR(done_STR, 1);
|
||||||
} else {
|
} else {
|
||||||
print_Error(F("File doesn't exist"), false);
|
print_Error(F("File doesn't exist"), false);
|
||||||
}
|
}
|
||||||
|
@ -102,8 +102,8 @@ void setup_WSV() {
|
|||||||
static const char wsvMenuItem1[] PROGMEM = "Select Cart";
|
static const char wsvMenuItem1[] PROGMEM = "Select Cart";
|
||||||
static const char wsvMenuItem2[] PROGMEM = "Read ROM";
|
static const char wsvMenuItem2[] PROGMEM = "Read ROM";
|
||||||
static const char wsvMenuItem3[] PROGMEM = "Set Size";
|
static const char wsvMenuItem3[] PROGMEM = "Set Size";
|
||||||
static const char wsvMenuItem4[] PROGMEM = "Reset";
|
//static const char wsvMenuItem4[] PROGMEM = "Reset"; (stored in common strings array)
|
||||||
static const char* const menuOptionsSV[] PROGMEM = { wsvMenuItem1, wsvMenuItem2, wsvMenuItem3, wsvMenuItem4 };
|
static const char* const menuOptionsSV[] PROGMEM = { wsvMenuItem1, wsvMenuItem2, wsvMenuItem3, string_reset2 };
|
||||||
|
|
||||||
void wsvMenu() {
|
void wsvMenu() {
|
||||||
convertPgm(menuOptionsSV, 4);
|
convertPgm(menuOptionsSV, 4);
|
||||||
@ -198,14 +198,14 @@ void readROM_WSV() {
|
|||||||
sd.chdir(folder);
|
sd.chdir(folder);
|
||||||
|
|
||||||
display_Clear();
|
display_Clear();
|
||||||
print_Msg(F("Saving to "));
|
print_STR(saving_to_STR, 0);
|
||||||
print_Msg(folder);
|
print_Msg(folder);
|
||||||
println_Msg(F("/..."));
|
println_Msg(F("/..."));
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
// open file on sdcard
|
// open file on sdcard
|
||||||
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
if (!myFile.open(fileName, O_RDWR | O_CREAT))
|
||||||
print_Error(F("Can't create file on SD"), true);
|
print_Error(create_file_STR, true);
|
||||||
|
|
||||||
// write new folder number back to EEPROM
|
// write new folder number back to EEPROM
|
||||||
foldern++;
|
foldern++;
|
||||||
@ -233,7 +233,8 @@ void readROM_WSV() {
|
|||||||
compareCRC("wsv.txt", 0, 1, 0);
|
compareCRC("wsv.txt", 0, 1, 0);
|
||||||
|
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
println_Msg(F("Press Button..."));
|
// Prints string out of the common strings array either with or without newline
|
||||||
|
print_STR(press_button_STR, 1);
|
||||||
display_Update();
|
display_Update();
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -256,11 +257,11 @@ void setROMSize_WSV() {
|
|||||||
println_Msg(WSV[i]);
|
println_Msg(WSV[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
|
|
||||||
@ -278,11 +279,11 @@ void setROMSize_WSV() {
|
|||||||
println_Msg(WSV[i]);
|
println_Msg(WSV[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -298,11 +299,11 @@ void setROMSize_WSV() {
|
|||||||
println_Msg(WSV[i]);
|
println_Msg(WSV[i]);
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#endif
|
#endif
|
||||||
display_Update();
|
display_Update();
|
||||||
}
|
}
|
||||||
@ -478,11 +479,11 @@ void setCart_WSV() {
|
|||||||
println_Msg(F("KB"));
|
println_Msg(F("KB"));
|
||||||
println_Msg(F(""));
|
println_Msg(F(""));
|
||||||
#if defined(enable_OLED)
|
#if defined(enable_OLED)
|
||||||
println_Msg(F("Press left to Change"));
|
print_STR(press_to_change_STR, 1);
|
||||||
println_Msg(F("and right to Select"));
|
print_STR(right_to_select_STR, 1);
|
||||||
#elif defined(enable_LCD)
|
#elif defined(enable_LCD)
|
||||||
println_Msg(F("Rotate to Change"));
|
print_STR(rotate_to_change_STR, 1);
|
||||||
println_Msg(F("Press to Select"));
|
print_STR(press_to_select_STR, 1);
|
||||||
#elif defined(SERIAL_MONITOR)
|
#elif defined(SERIAL_MONITOR)
|
||||||
println_Msg(F("U/D to Change"));
|
println_Msg(F("U/D to Change"));
|
||||||
println_Msg(F("Space to Select"));
|
println_Msg(F("Space to Select"));
|
||||||
|
Loading…
Reference in New Issue
Block a user