Commit Graph

119 Commits

Author SHA1 Message Date
Robert Neumann
4246ba4e07 progress_bar: Included the progress bar in the N64 and SNES modules; some OLED formatting; reverting the Arduino reset to basically jmp 0 again (due to issues with some Mega2560 bootloaders probably, my module would sometimes just hang) 2019-08-29 19:13:50 +02:00
Robert Neumann
07561bdaf0 n64_speedup: roughly double n64 dumping performance by using the 1024 byte file buffer and combining the checksum and dumping code; also some cleanup 2019-08-28 23:48:44 +02:00
Robert Neumann
f7b61cc656 strings_to_flash: conserve ~ 800 byte SRAM by putting menu strings in progmem. Free bytes now: ~ 4000 2019-08-28 12:02:17 +02:00
Robert Neumann
c5c26110fb arduino_reset: replace the assembler jmp 0 reset method with resetArduino() that uses the watchdog timer to reset the device. This is the preferred method, as it initializes the device more correctly. 2019-08-27 21:43:48 +02:00
Robert Neumann
41e7e0f6f5 small change that allows using Visual Micro instead of the Arduino IDE 2019-08-27 19:15:52 +01:00
sanni
86340db9a9
Update Cart_Reader.ino 2019-08-27 11:35:20 +02:00
sanni
13243cdba4 MD Sketch Improvements by skaman
IMPROVEMENTS:
Added read/write support for all Serial EEPROM cart types (Acclaim Type 1, Acclaim Type 2, Capcom, Codemasters, EA, and Sega).  Capcom EEPROM code is untested but should work the same as Sega EEPROM code.

Fixed SRAM code to handle all SRAM types.

Added identification of SRAM carts that have bad headers.

Added support for Super Street Fighter 2.

WARNINGS:
Serial EEPROM writes take time to complete.

Serial EEPROM support was tested using Serial Output only.  Support using the OLED Display might require some timing adjustment as display_Update() on Serial translates to delay(100).

ADDITIONAL NOTES:
I've included a save file for NBA Jam T.E. Rev 0.

NBA Jam T.E. Rev 0 has faulty code that will erase the EEPROM when the cart is played on the console.  The solution proposed by the publisher was to play the cart with two different sets of initials (XXX, NBA) to initialize the EEPROM.  The included save file was created after doing this special initialization.  My tests of the EEPROM show that it will still erase after the special initialization.

I did some additional tests and found a potential solution.  Write the included save file to the cart.  Play the cart on the console as normal.  Create new saves as needed.  When done playing, HOLD THE RESET BUTTON DOWN BEFORE TURNING THE CONSOLE OFF.  YMMV.
2019-08-25 10:15:23 +02:00
sanni
e537d7623a
Update Cart_Reader.ino 2019-08-23 12:47:53 +02:00
sanni
2451cd8cdd
Update Cart_Reader.ino 2019-08-06 18:58:35 +02:00
sanni
17522c4040
Update Cart_Reader.ino 2019-08-01 16:44:44 +02:00
sanni
79c6877fce V3.0: Update libraries to latest version 2019-03-22 22:47:59 +01:00
sanni
eee9b165a0 V2.9: Fix writing MBC3 flashcart 2019-03-01 19:16:33 +01:00
sanni
94a0d9ed1d V2.8: Fix GBA Sram issue
Thanks to Cyber_Akuma
2019-02-18 13:36:00 +01:00
sanni
7f74f22ce7 V2.7: Fix flashing 29F032 Snes repro 2019-01-31 15:30:00 +01:00
sanni
a6e2613379 V2.6 Auto backup current Gameshark ROM 2019-01-18 14:37:22 +01:00
sanni
642139ca1a V2.5 Add Support for Gameshark N64 reflashing (beta)
Sometimes the Gameshark will lock itself up, in this case it helps if you put a 6102 game into the Gamesharks slot and then put both into the Cart Reader and just start dumping the rom as if it was a game.
2019-01-16 16:50:55 +01:00
sanni
8173115c93 V2.4 Add support for SST29LE010 N64 Repro (128KB only)
For some reason I can only read or write the first 128KB while the second 128KB remain 0x00.

You might have to re-calculate your homebrew rom's checksum if you had to trim it down to 128KB. In this case you can use chksum64.exe out of the libdragon devkit. Not sure if this is needed though.

And yes by "SST29LE010 N64 Repro" I'm  jokingly referring to the Gameshark.

I wanted to turn the Gameshark into an import adapter using Lac's boot emu but the boot emu just restarts itself since the Gameshark isn't switching to the top cart slot.

Sometimes the Gameshark locks up, then you have to plug a 6102 cartridge into the Gamebuster's top slot and then connect both to the cart reader and read the rom. After that it should be accessible again.

Don't use this to update your working Gameshark since you can't read nor write the whole 256KB right now.
But if you have a broken one, have fun. :)

I tested this with a Gameshark V2.0
2019-01-13 06:15:11 +01:00
sanni
a27ee157e8
V2.3: Remove 16bit flash adapter menu
If you're still using the old 16bit adapter(the one with the additional pins left and right on the snes cart edge) you can enable the menu again by changing one line in Cart_Reader.ino:  
// Enable 16bit flash adapter menu
#define enable_flash16
2018-10-30 21:08:59 +01:00
sanni
ce4f7aeeee V2.2: Add Satellaview support
Supported carts so far:
-BS-X Sorewa Namaewo Nusumareta Machino Monogatari
2018-10-22 20:29:49 +02:00
sanni
7356a93710 V2.1: Slow down reading of N64 eeprom 2018-10-20 17:38:24 +02:00
sanni
7e0e7bd08c
V2.0: Increment version number after merge 2018-10-14 10:41:16 +02:00
sanni
ee6d1b8f81
V1.9: Fix bug with Arduino IDE 1.8.7 2018-10-05 18:33:09 +02:00
sanni
478f9c6a27
V1.8: Disable SRAM when flashing LoROM repro
[Imgur](https://i.imgur.com/YSI1xRq.jpg)
2018-09-20 02:30:23 +02:00
sanni
b7c96ef0ed
V1.7: Add repro entries to SNES menu
These two new entries just forward the user to the flashrom functions inside of flash.ino.     
I have only tested custom-made 29F033 repros using original SHVC-1J3M-20 and SHVC-1A3M-30 PCBs as shown here: https://github.com/sanni/cartreader/wiki/Reflashing-SNES-Repros
2018-09-12 20:59:48 +02:00
sanni
b816918e70
V1.6: Add support for S29GL032M flashrom (byte mode) 2018-08-29 14:10:28 +02:00
sanni
540e698e7f
V1.5: Enable 27C322 burning code again
Needs a special eprom adapter that provides 6V VCC and 12V VPP while programming. This can be achieved with two step-ups and a transistor.
2018-08-24 16:48:35 +02:00
sanni
38aa8aad39
V1.4: Add support for MX29LV320 T/B TSOP48 2018-08-16 19:00:53 +02:00
sanni
3015b1037c
V1.3: Set byte pin to low in 8bit mode 2018-07-29 11:19:25 +02:00
sanni
904e23cecd
V1.2: CX4 support by skaman
Thanks alot :)
2018-06-21 11:38:42 +02:00
sanni
f7bd4878eb
V1.1: Add support for Intel 512M29EW (64MB) N64 repro
Haven't tested it myself but should work thx to BASSIX
2018-06-11 09:42:35 +02:00
sanni
40d2361855
V1.0: Change versioning to the more common #.# format 2018-05-05 20:58:49 +02:00
sanni
f8f78cc5a1
V33C: Fixed writing first 20 bytes of 27C322 eprom
Apparently the step-up converter needs a little delay before it can provide the 12V VPP.
The verify function still does not work though, I have no clue why.
2018-04-21 19:39:56 +02:00
sanni
f9c89d4666
V33B: Updated 27C322 timings
The first 10 words still do not get written though, not sure if I need something like a setup delay or if my eprom is broken.   
Too enable the eprom menu for testing 27C322 flashing change the following lines in Flash.ino:     
  // create menu with title and 3 options to choose from     
  unsigned char flashSlot;      
  // Copy menuOptions out of progmem      
  convertPgm(menuOptionsFlash, 3);      
  flashSlot = question_box("Select flashrom slot", menuOptions, 3, 0);
2018-04-21 17:14:11 +02:00
sanni
72a1a6d7c8
V33A: Accidentally left 27C322 eprom menu enabled
Eprom programming is still highly experimental and does not work 100% yet.
2018-04-21 14:23:13 +02:00
sanni
b77519d104 V33: Add PCE support by tamanegi_taro
Many thanks to tamanegi_taro, great work.
2018-04-18 16:58:02 +02:00
sanni
09d122369f
V32A: Add verifying ST M27C322 Eproms (beta) 2018-04-05 16:47:19 +02:00
sanni
45f67ed300
V32: Add writing ST M27C322 Eproms (beta)
Needs custom flash adapter with 12V step-up converter modul for VPP.   
5V VCC seems to work even though datasheet specifies 6.25V VCC while programming.
2018-04-04 22:20:53 +02:00
sanni
8f4e33e20b
V31A: Fix writing Game Boy custom MBC3 Flashcart with MX29F016 flashrom
These: https://www.jrodrigo.net/wiki/how-to-diy-a-gameboy-flash-cartridge-with-a-rom-adapter-board/
2018-04-03 16:45:45 +02:00
sanni
b37d95b3b5
V31: Add flashing in 16bit mode for 29LV160/320/640 flashroms 2018-04-02 20:23:31 +02:00
sanni
2c2eb0e8bd
V30K: Add Momotaro Dentetsu Happy detection
and also the updated checksum calculation out of skaman's enhanced snes sketch
2018-03-19 12:24:13 +01:00
sanni
742e96151a
V30J: Fix SA1 sram write
Mayne thanks to Oatburner and skaman.
2018-03-12 13:58:03 +01:00
sanni
b369318a32
V30I: Add option to enable/disable N64 CRC32 checking
In Cart_Reader.ino line 71 change "boolean n64crc = 1" to "boolean n64crc = 0" to disable the CRC32 check when dumping roms. This is useful if you rather calculate the checksums on your much faster computer. Calculating the CRC32 is enabled by default now and can take quite some time.
2018-02-02 10:52:05 +01:00
sanni
0ba4923699
V30H: Fix MX29L3211 flashing as 16bit in 8bit mode 2018-01-09 23:36:09 +01:00
sanni
6bcc79fd88
V30G: Add N64 manual rom size and force save type menus and Spansion S29GL128N flashrom detection 2017-12-20 10:33:02 +01:00
sanni
8c6d0960fb
V30F: Fix writing MX29LV160
Reset pin needs to be connected to Reset of SNES slot.
2017-11-24 21:36:33 +01:00
sanni
76ae5c5408
V30E: Moved disabling interrupts out of the loop when reading/writing N64 eeproms
Hopefully this was the reason it sometimes froze at that point.
2017-11-22 12:44:18 +01:00
sanni
fa63471333
Add files via upload 2017-11-21 12:29:09 +01:00
sanni
21585eeb87
Update Cart_Reader.ino 2017-11-21 12:26:39 +01:00
sanni
8613f79382
V30D: Fixed dumping error with all japanese rom names and no game code either
Example cartridge: Super Family Tennis
2017-11-21 12:25:55 +01:00
sanni
13657e3a13
V30C: Removed Nintendo Power Menu entry
Nintendo Power SF Memory is now found under the SNES and Nintendo Power GB Memory under the Game Boy submenu.
2017-11-19 21:03:37 +01:00