mirror of
https://github.com/sanni/cartreader.git
synced 2024-11-24 05:29:17 +01:00
Use CRC1 instead of cart ID in N64 database
This commit is contained in:
parent
f010f85e6e
commit
9cb0f1fc13
@ -4,8 +4,8 @@
|
||||
This project represents a community-driven effort to provide
|
||||
an easy to build and easy to modify cartridge dumper.
|
||||
|
||||
Date: 23.06.2022
|
||||
Version: 8.5 BETA
|
||||
Date: 03.07.2022
|
||||
Version: 9.0 BETA
|
||||
|
||||
SD lib: https://github.com/greiman/SdFat
|
||||
OLED lib: https://github.com/adafruit/Adafruit_SSD1306
|
||||
@ -58,7 +58,7 @@
|
||||
|
||||
**********************************************************************************/
|
||||
|
||||
char ver[5] = "8.5B";
|
||||
char ver[5] = "9.0B";
|
||||
|
||||
/******************************************
|
||||
Libraries
|
||||
@ -273,12 +273,10 @@ int romType = 0;
|
||||
byte saveType;
|
||||
word romSize = 0;
|
||||
word numBanks = 128;
|
||||
char checksumStr[5];
|
||||
char checksumStr[9];
|
||||
bool errorLvl = 0;
|
||||
byte romVersion = 0;
|
||||
char cartID[5];
|
||||
String CRC1 = "";
|
||||
String CRC2 = "";
|
||||
unsigned long cartSize;
|
||||
char flashid[5];
|
||||
char vendorID[5];
|
||||
|
@ -54,6 +54,11 @@ boolean MN63F81MPN = false;
|
||||
//ControllerTest
|
||||
bool quit = 1;
|
||||
|
||||
#ifdef savesummarytotxt
|
||||
String CRC1 = "";
|
||||
String CRC2 = "";
|
||||
#endif
|
||||
|
||||
/******************************************
|
||||
Menu
|
||||
*****************************************/
|
||||
@ -2164,7 +2169,8 @@ void printCartInfo_N64() {
|
||||
println_Msg(romName);
|
||||
print_Msg(F("ID: "));
|
||||
println_Msg(cartID);
|
||||
println_Msg("");
|
||||
print_Msg(F("CRC1: "));
|
||||
println_Msg(checksumStr);
|
||||
display_Update();
|
||||
|
||||
strcpy(romName, "GPERROR");
|
||||
@ -2281,7 +2287,7 @@ int strcicmp(char const * a, char const * b)
|
||||
// look-up cart id in file n64.txt on sd card
|
||||
void getCartInfo_N64() {
|
||||
char tempStr2[2];
|
||||
char tempStr[5];
|
||||
char tempStr[9];
|
||||
|
||||
// cart not in list
|
||||
cartSize = 0;
|
||||
@ -2296,18 +2302,18 @@ void getCartInfo_N64() {
|
||||
// Skip first line with name
|
||||
skip_line(&myFile);
|
||||
|
||||
// Skip over the CRC checksum
|
||||
// Skip over the CRC32 checksum
|
||||
myFile.seekSet(myFile.curPosition() + 9);
|
||||
|
||||
// Read 4 bytes into String, do it one at a time so byte order doesn't get mixed up
|
||||
// Read 8 bytes into String, do it one at a time so byte order doesn't get mixed up
|
||||
sprintf(tempStr, "%c", myFile.read());
|
||||
for (byte i = 0; i < 3; i++) {
|
||||
for (byte i = 0; i < 7; i++) {
|
||||
sprintf(tempStr2, "%c", myFile.read());
|
||||
strcat(tempStr, tempStr2);
|
||||
}
|
||||
|
||||
// Check if string is a match
|
||||
if (strcmp(tempStr, cartID) == 0) {
|
||||
if (strcmp(tempStr, checksumStr) == 0) {
|
||||
// Skip the , in the file
|
||||
myFile.seekSet(myFile.curPosition() + 1);
|
||||
|
||||
@ -2362,6 +2368,9 @@ void idCart() {
|
||||
sdBuffer[c + 1] = loByte;
|
||||
}
|
||||
|
||||
// CRC1
|
||||
sprintf(checksumStr, "%02X%02X%02X%02X", sdBuffer[0x10], sdBuffer[0x11], sdBuffer[0x12], sdBuffer[0x13]);
|
||||
|
||||
// Get cart id
|
||||
cartID[0] = sdBuffer[0x3B];
|
||||
cartID[1] = sdBuffer[0x3C];
|
||||
@ -2388,6 +2397,7 @@ void idCart() {
|
||||
romName[3] = sdBuffer[0x3E];
|
||||
}
|
||||
|
||||
#ifdef savesummarytotxt
|
||||
// Get CRC1
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (sdBuffer[0x10 + i] < 0x10) {
|
||||
@ -2403,6 +2413,7 @@ void idCart() {
|
||||
}
|
||||
CRC2 += String(sdBuffer[0x14 + i], HEX);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/******************************************
|
||||
@ -3607,6 +3618,7 @@ redumpsamefolder:
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef savesummarytotxt
|
||||
// Save an info.txt with information on the dumped rom to the SD card
|
||||
void savesummary_N64(boolean checkfound, char crcStr[9], unsigned long timeElapsed) {
|
||||
// Open file on sd card
|
||||
@ -3683,6 +3695,7 @@ void savesummary_N64(boolean checkfound, char crcStr[9], unsigned long timeElaps
|
||||
// Close the file:
|
||||
myFile.close();
|
||||
}
|
||||
#endif
|
||||
|
||||
/******************************************
|
||||
N64 Repro Flashrom Functions
|
||||
|
Loading…
Reference in New Issue
Block a user