diff --git a/Cart_Reader/Cart_Reader.ino b/Cart_Reader/Cart_Reader.ino index d26fff0..ab40e7a 100644 --- a/Cart_Reader/Cart_Reader.ino +++ b/Cart_Reader/Cart_Reader.ino @@ -2,8 +2,8 @@ Cartridge Reader for Arduino Mega2560 Author: sanni - Date: 08-09-2019 - Version: 3.8 + Date: 20-09-2019 + Version: 3.9 SD lib: https://github.com/greiman/SdFat LCD lib: https://github.com/adafruit/Adafruit_SSD1306 @@ -41,7 +41,7 @@ **********************************************************************************/ #include -char ver[5] = "3.8"; +char ver[5] = "3.9"; /****************************************** Options diff --git a/Cart_Reader/SMS.ino b/Cart_Reader/SMS.ino index 61a5005..1f5e82e 100644 --- a/Cart_Reader/SMS.ino +++ b/Cart_Reader/SMS.ino @@ -51,15 +51,17 @@ void setup_SMS() { // Set Address Pins to Output //A0-A7 DDRF = 0xFF; - //A8-A15 + //A8-A14 DDRK = 0xFF; + //A15 + DDRH |= (1 << 3); // Set Control Pins to Output RST(PH0) WR(PH5) OE(PH6) DDRH |= (1 << 0) | (1 << 5) | (1 << 6); // CE(PL1) DDRL |= (1 << 1); - // Setting RST(PH0) WR(PH5) OE(PH6) HIGH + // Setting RST(PH0) WR(PH5) OE(PH6) HIGH PORTH |= (1 << 0) | (1 << 5) | (1 << 6); // CE(PL1) PORTL |= (1 << 1); @@ -92,6 +94,7 @@ void writeByte_SMS(word myAddress, byte myData) { // Set address PORTF = myAddress & 0xFF; PORTK = (myAddress >> 8) & 0xFF; + PORTH = (PORTH & 0b11110111) | ((myAddress >> 12) & 0b00001000); // Output data PORTC = myData; @@ -124,6 +127,7 @@ byte readByte_SMS(word myAddress) { // Set Address PORTF = myAddress & 0xFF; PORTK = (myAddress >> 8) & 0xFF; + PORTH = (PORTH & 0b11110111) | ((myAddress >> 12) & 0b00001000); __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t"); diff --git a/README.md b/README.md index 6da5911..ab94f6c 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Be sure to check the guides in the [Wiki](https://github.com/sanni/cartreader/wi - Reads Game Boy Advance roms and reads/writes most of the save games(4K Eeprom, 64K Eeprom, Sram/Fram, SST39VF512 512K flash + MX29L010 1M flash) - Reflashes some Chinese GBA repros with Intel 4000L0YBQ0, Macronix MX29GL128E or Fujitsu MSP55LV128 flashroms - Reads Sega Mega Drive roms and reads/writes save games(Sram/Fram, Eeprom) +- Reads Sega Master System roms (only default mapper and no SRAM supported so far) - Reads PC engine/TG16 (custom-made adapter needed) - Programs Flashroms like 29F016, 29F032 and 29F033, 29F1601, 29F1610, 29L3211, 29LV160, 29LV320 and S29GL032M - Programs 27C322 Eproms diff --git a/extras/pcb/26L6420_adapter.png b/extras/pcb/26L6420_adapter_schematics.png similarity index 100% rename from extras/pcb/26L6420_adapter.png rename to extras/pcb/26L6420_adapter_schematics.png diff --git a/extras/pcb/README.md b/extras/pcb/README.md index adb5648..500234c 100644 --- a/extras/pcb/README.md +++ b/extras/pcb/README.md @@ -6,6 +6,10 @@ ![image](https://dl.dropboxusercontent.com/s/z2atlcly642sewj/nes_adapter.png?dl=1) +#### sms_adapter.zip is an add-on for reading Sega Master System carts. You can order a 2.54mm 50pin SMS slot [here](https://www.aliexpress.com/item/32818469880.html). + +![image](https://dl.dropboxusercontent.com/s/r6lavgoaccjtrz7/sms_adapter.png?dl=1) + #### flash_adapter.zip is an add-on for writing flashroms like the 29F032, 29L3211, 29LV160, [PCB thickness needs to be changed to 1.2mm](https://dl.dropboxusercontent.com/s/va1c72073cqfy90/pcb12.jpg?dl=1), this is very important or else it won't fit into the SNES slot. ![image](https://dl.dropboxusercontent.com/s/afrfmiuwvmvg9px/flash_adapter.png?dl=1) diff --git a/extras/pcb/sms_adapter.zip b/extras/pcb/sms_adapter.zip new file mode 100644 index 0000000..80cf482 Binary files /dev/null and b/extras/pcb/sms_adapter.zip differ diff --git a/extras/pcb/sms_adapter_schematics.png b/extras/pcb/sms_adapter_schematics.png new file mode 100644 index 0000000..9dc4439 Binary files /dev/null and b/extras/pcb/sms_adapter_schematics.png differ