mirror of
https://github.com/sanni/cartreader.git
synced 2024-11-30 16:34:14 +01:00
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:
parent
ea6722d0c5
commit
4d6594c0aa
@ -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
|
||||||
|
@ -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(""));
|
||||||
|
|
||||||
|
|
||||||
|
if (altconf)
|
||||||
print_Msg(F("Rom Size: "));
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
1431
sd/snes.txt
1431
sd/snes.txt
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user