V5.3: Update snes.txt database

Created with this Processing script parsing the No-Intro set from Dezember 2019 with all beta, proto, unlicensed, sample and missing checksun ROMs removed:

https://www.dropbox.com/s/379g607k6ka8bfq/snesdata.pde?dl=1
This commit is contained in:
sanni 2020-06-30 12:52:08 +02:00
parent ea6722d0c5
commit 4d6594c0aa
4 changed files with 768 additions and 710 deletions

View File

@ -2,8 +2,8 @@
Cartridge Reader for Arduino Mega2560 Cartridge Reader for Arduino Mega2560
Author: sanni Author: sanni
Date: 18.06.2020 Date: 30.06.2020
Version: 5.2 Version: 5.3
SD lib: https://github.com/greiman/SdFat SD lib: https://github.com/greiman/SdFat
LCD lib: https://github.com/adafruit/Adafruit_SSD1306 LCD lib: https://github.com/adafruit/Adafruit_SSD1306
@ -43,7 +43,7 @@
**********************************************************************************/ **********************************************************************************/
#include <SdFat.h> #include <SdFat.h>
char ver[5] = "5.2"; char ver[5] = "5.3";
/****************************************** /******************************************
Options Options

View File

@ -22,6 +22,7 @@ byte romSizeExp = 0; // ROM-Size Exponent
boolean NP = false; boolean NP = false;
byte cx4Type = 0; byte cx4Type = 0;
byte cx4Map = 0; byte cx4Map = 0;
boolean altconf = 0;
/****************************************** /******************************************
Menu Menu
@ -41,8 +42,9 @@ static const char SnesMenuItem2[] PROGMEM = "Read Save";
static const char SnesMenuItem3[] PROGMEM = "Write Save"; 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 = "Reset"; static const char SnesMenuItem6[] PROGMEM = "Force cart type";
static const char* const menuOptionsSNES[] PROGMEM = {SnesMenuItem1, SnesMenuItem2, SnesMenuItem3, SnesMenuItem4, SnesMenuItem5, SnesMenuItem6}; static const char SnesMenuItem7[] PROGMEM = "Reset";
static const char* const menuOptionsSNES[] PROGMEM = {SnesMenuItem1, SnesMenuItem2, SnesMenuItem3, SnesMenuItem4, SnesMenuItem5, SnesMenuItem6, SnesMenuItem7};
// Manual config menu items // Manual config menu items
static const char confMenuItem1[] PROGMEM = "Use header info"; static const char confMenuItem1[] PROGMEM = "Use header info";
@ -115,8 +117,8 @@ void snesMenu() {
// create menu with title and 7 options to choose from // create menu with title and 7 options to choose from
unsigned char mainMenu; unsigned char mainMenu;
// Copy menuOptions out of progmem // Copy menuOptions out of progmem
convertPgm(menuOptionsSNES, 6); convertPgm(menuOptionsSNES, 7);
mainMenu = question_box(F("SNES Cart Reader"), menuOptions, 6, 0); mainMenu = question_box(F("SNES Cart Reader"), menuOptions, 7, 0);
// wait for user choice to come back from the question box menu // wait for user choice to come back from the question box menu
switch (mainMenu) switch (mainMenu)
@ -239,6 +241,12 @@ void snesMenu() {
break; break;
case 5: case 5:
confMenuManual();
display_Clear();
display_Update();
break;
case 6:
stopSnesClocks_resetCic_resetCart(); stopSnesClocks_resetCic_resetCart();
resetArduino(); resetArduino();
break; break;
@ -665,7 +673,11 @@ void getCartInfo_SNES() {
else else
println_Msg(F("")); println_Msg(F(""));
print_Msg(F("Rom Size: "));
if (altconf)
print_Msg(F("Rom Size: "));
else
print_Msg(F("ROM Size: "));
print_Msg(romSize); print_Msg(romSize);
println_Msg(F("Mbit")); println_Msg(F("Mbit"));
@ -705,6 +717,7 @@ void getCartInfo_SNES() {
void checkAltConf() { void checkAltConf() {
char tempStr1[2]; char tempStr1[2];
char tempStr2[5]; char tempStr2[5];
altconf = 0;
if (myFile.open("snes.txt", O_READ)) { if (myFile.open("snes.txt", O_READ)) {
while (myFile.available()) { while (myFile.available()) {
@ -724,20 +737,20 @@ void checkAltConf() {
// Skip the , in the file // Skip the , in the file
myFile.seekSet(myFile.curPosition() + 1); myFile.seekSet(myFile.curPosition() + 1);
// Read next two bytes into a string // Read file size
romSize = myFile.read() - 48; romSize = (myFile.read() - 48) * 10 + (myFile.read() - 48);
romSize = romSize * 10 + myFile.read() - 48;
// Skip the , in the file // Skip the , in the file
myFile.seekSet(myFile.curPosition() + 1); myFile.seekSet(myFile.curPosition() + 1);
// Add next two bytes to the string // Read number of banks
numBanks = myFile.read() - 48; numBanks = (myFile.read() - 48) * 100 + (myFile.read() - 48) * 10 + (myFile.read() - 48);
numBanks = numBanks * 10 + myFile.read() - 48;
altconf = 1;
} }
// If no match empty string advance by 8 and try again // If no match empty string advance by 9 and try again
else { else {
myFile.seekSet(myFile.curPosition() + 8); myFile.seekSet(myFile.curPosition() + 9);
} }
} }
} }

View File

@ -17,7 +17,7 @@ Be sure to check the guides in the [Wiki](https://github.com/sanni/cartreader/wi
- Reads NES, Famicom and Family Basic cartridges including save - Reads NES, Famicom and Family Basic cartridges including save
- Supports Mapper 30/NESmaker and flashes INL NM30 boards - Supports Mapper 30/NESmaker and flashes INL NM30 boards
- Reads SNES roms and reads/writes save games from and to the SNES cartridge - Reads SNES roms and reads/writes save games from and to the SNES cartridge
Supported cartridge types so far: LoRom, HiRom, ExHiRom, SuperFX, SuperFX2, SDD1, CX4, SPC7110, SA1 (last two chips need Adafruit Clock Generator) Supported cartridge types so far: LoRom, HiRom, ExHiRom, DSP, SuperFX, SuperFX2, SDD1, CX4, SPC7110, SA1 (last two chips need Adafruit Clock Generator)
- Reads and writes SNES Satellaview 8M Memory packs (BS-X cartridge and Adafruit Clock Generator needed) - Reads and writes SNES Satellaview 8M Memory packs (BS-X cartridge and Adafruit Clock Generator needed)
- Reads and writes Nintendo Power Super Famicom Memory Flash Cartridges (needs Adafruit Clock Generator for best result) - Reads and writes Nintendo Power Super Famicom Memory Flash Cartridges (needs Adafruit Clock Generator for best result)
- Reflashes some Chinese or custom-made SNES repros with AM29F032, MBM29F033 or MX29LV320 flashroms - Reflashes some Chinese or custom-made SNES repros with AM29F032, MBM29F033 or MX29LV320 flashroms

File diff suppressed because it is too large Load Diff