Commit Graph

336 Commits

Author SHA1 Message Date
sanni
5580dffff0 Fix adding iNES header when manually selecting mapper 2022-07-07 23:20:45 +02:00
sanni
0a4a4d0039 Add no-intro database to NES
This is just a beta release, stuff might be broken.
2022-07-07 00:15:13 +02:00
sanni
9cb0f1fc13 Use CRC1 instead of cart ID in N64 database 2022-07-03 01:03:39 +02:00
sanni
f010f85e6e Update Cart_Reader.ino 2022-06-23 11:17:38 +02:00
sanni
d8d9716aa3 Add files via uplpad 2022-06-23 10:47:30 +02:00
sanni
44d853e1bb Add CRC32 and filenames to SNES database 2022-06-21 13:29:19 +02:00
sanni
fe5264b8ba Add CRC32 and filenames to GBA database 2022-06-20 22:36:53 +02:00
sanni
196050257b Add filenames to N64 database 2022-06-17 23:57:29 +02:00
sanni
8b96d250bd Add MD database 2022-06-16 17:17:16 +02:00
sanni
fac6f8eab2 Copy latest log to dump dir 2022-06-16 15:15:43 +02:00
sanni
f0639e20ad Improve SD logfile 2022-06-14 15:25:53 +02:00
sanni
97a233e7ec Add files via upload 2022-06-12 13:16:03 +02:00
sanni
1c6d277e84 V8.5 BETA: Add global log and GB database
Both are disabled in options.h by default since they push the RAM usage over the limit resulting in corrupted LCD output.

Global log outputs all info to OSCR_LOG.txt in the root of the SD.

no-intro calculates the CRC32 of a Gameboy ROM and if found in the database renames it to no-intro naming scheme.
2022-06-12 12:30:52 +02:00
sanni
ceca79079c Add support for HW5 2022-06-09 00:35:11 +02:00
sanni
8188a64577 Update Cart_Reader.ino 2022-06-08 22:34:28 +02:00
sanni
a27cc96ffd
Update Cart_Reader.ino 2022-06-08 22:30:10 +02:00
sanni
9c102563d1 Fix renaming PCE ROM 2022-04-15 12:52:59 +02:00
sanni
b501556954 Remove toggling CS in GB flash function 2022-04-11 00:28:18 +02:00
sanni
1cc7712b9e V8.2: Fix GB CAM bug 2022-04-10 22:44:59 +02:00
sanni
d3173ef816 Add basic support for SG-1000
For now just for cartridges with no save or mapper chip and rom size up to 32KB.
2022-03-21 01:01:35 +01:00
sanni
4d50065f2d
Update Cart_Reader.ino 2022-03-15 19:33:44 +01:00
sanni
f6eef581bc
Update Cart_Reader.ino 2022-03-14 17:49:32 +01:00
sanni
e61191ae05
Update Cart_Reader.ino 2022-03-14 17:48:35 +01:00
sanni
430f8e3952 Add option to set rom size manually for SMS 2022-03-10 15:05:20 +01:00
sanni
b578b4c47e Change NES menus 2022-03-08 20:44:14 +01:00
sanni
02e78fa06b Add menu for GB Camera Flashcart
This one: https://github.com/HDR/Gameboy-Camera-Flashcart
2022-03-08 18:13:04 +01:00
sanni
6fe2eeffb3 Fix NES LED/LCD conflict with HW4 2022-02-27 13:19:35 +01:00
sanni
9eb7ba5d7c
Update Cart_Reader.ino 2022-02-23 21:09:19 +01:00
sanni
c0abeac385 V7.7: Improve GB Camera dumping (thx to avapug) 2022-02-23 15:08:25 +01:00
sanni
7b92953e0b Reduce ram usage by a small amount 2022-02-15 12:09:21 +01:00
sanni
5f8e8e8d28 Fix LED not blinking in Serial Monitor 2022-02-08 14:12:40 +01:00
sanni
0081ad7b2f flash ID bugfix 2022-01-19 13:15:59 +01:00
sanni
eabb658be8 Clear OLED screen buffer at power on and reset 2022-01-13 17:22:16 +01:00
sanni
6a830e651d Print first 40 bytes if flashrom is unknown 2022-01-13 17:07:58 +01:00
sanni
bda18a4a8b Fix text 2021-11-29 20:11:44 +01:00
sanni
45f46704c9 Fix status LED 2021-11-29 14:32:37 +01:00
sanni
cac5392a07 V7.3: more LCD bugfxes 2021-11-29 13:10:04 +01:00
sanni
eef1c6e8cc Add check if Clockgen is working 2021-11-18 14:55:50 +01:00
sanni
ed3663a21f Fix Progressbar line break on LCD 2021-11-17 21:49:20 +01:00
sanni
7d49814fee Update Cart_Reader.ino 2021-11-17 21:33:50 +01:00
sanni
dfec64917d V7.2: LCD bugfix #2 2021-11-17 21:31:18 +01:00
sanni
2d165f93a4 Update Cart_Reader.ino 2021-11-15 21:18:51 +01:00
CaitSith2
bbe6e3cceb Add Clock generator calibration option 2021-10-28 14:26:10 -07:00
sanni
3f4d8e9728 V7.1 2021-10-27 21:28:41 +02:00
sanni
aa3ea8fa8c Add second page to main menu for LCD 2021-10-27 20:59:57 +02:00
sanni
8cb11822d1 Reduce LCD contrast and LED brightness 2021-10-26 22:19:10 +02:00
sanni
147e8edeee Add 10 second button press for rotary encoder 2021-10-26 21:57:21 +02:00
sanni
4cc94fd846 Fix filebrowser for LCD 2021-10-26 19:26:59 +02:00
sanni
5a3b311feb Fix Led and missing word wrap 2021-10-26 17:13:42 +02:00
sanni
d64ce10391 Remove bitmaps 2021-10-26 12:38:29 +02:00
sanni
852cb8f047 Port ControllerTest to MKS MINI12864 2021-10-26 11:27:07 +02:00
sanni
dfe6624e76 Make selection dot bigger 2021-10-25 22:06:08 +02:00
sanni
197bd3fad9 bugfix 2021-10-25 18:03:16 +02:00
sanni
05deb817ac V7.0: Add basic support for MKS MINI12864 V3
https://www.aliexpress.com/item/1005003098864693.html
2021-10-24 00:41:18 +02:00
sanni
a981bb0c3e Make clockgen calibration optional 2021-10-14 09:53:07 +02:00
sanni
1d55ee1b21 Update Cart_Reader.ino 2021-10-02 08:47:57 +02:00
majorpbx
451daf1502 Update Cart_Reader.ino
Added support for SD Card Add-on to use RTC for Creation/Modification Date/Time stamps.
Added code to support RTC such as startup, automatically updating time based on date compiled, and allowing for any script to add a Date/Time stamp.
2021-10-02 01:29:37 -04:00
sanni
cc1668a2e3 Update list of contributors 2021-10-01 12:07:33 +02:00
sanni
b63fb0584b Update Cart_Reader.ino 2021-09-03 10:21:02 +02:00
sanni
6dee8d67cb Update Cart_Reader.ino 2021-08-03 17:29:39 +02:00
sanni
d825da3b10 Update Cart_Reader.ino 2021-08-03 17:27:35 +02:00
sanni
84252079fe Update Cart_Reader.ino 2021-08-03 17:21:02 +02:00
sanni
9f675be766 Update Cart_Reader.ino 2021-08-03 13:04:40 +02:00
sanni
92b7b7bdef V6.6 Add slow CRC32 calculation option for N64
In option.h add // in front of #define fastcrc and remove // in front of #define slowcrc to change CRC32 calculation to slow.

// Define CRC method for dumping N64 ROMs
//#define fastcrc //crc will be calculated during dumping from memory
#define slowcrc // crc will be calculated after dumping from SD card
2021-08-02 18:18:34 +02:00
sanni
b5fd53a39d V6.5 Add GB Flash Submenu 2021-07-22 10:13:13 +02:00
Dakkaron
12b3c7ebe0 Fixes flashing MBC3; flash device id detection replaced by feature detection, adding compatibility for many repro flash carts. 2021-07-21 22:46:34 +02:00
sanni
9fb439a27f Update version number 2021-06-09 11:30:55 +02:00
sanni
78b5f7cb10 Update Cart_Reader.ino 2021-06-02 12:30:59 +02:00
sanni
6f849921bb V6.3: Add sector size menu for N64 repro 2021-05-27 15:21:24 +02:00
sanni
0c99780c5d V6.2: Add option to manually config N64 repro 2021-05-26 16:29:57 +02:00
sanni
e78d6e99e0 V6.1: Add support for exFAT SD cards (>32GB) 2021-04-26 18:20:30 +02:00
sanni
d7cc26c560 V6.0: Update SdFat to Version 2 2021-04-26 10:14:37 +02:00
sanni
72fa1ea8b4 V5.7: Add Clockgen option to N64 Eeprom
Uncomment #define clockgen_installed in options.h and switch CLK1 switch to ON position. With Adafruit clockgen the eeprom now runs at the correct 2Mhz.
2021-04-15 16:26:29 +02:00
sanni
1bf1d2b720 Up version number and default to clock correction factor 0 2021-01-31 13:31:23 +01:00
sanni
1b74a17813 Update Cart_Reader.ino 2020-11-03 11:19:16 +01:00
sanni
9eca87d975 V5.5: Reduce memory usage in Filebrowser 2020-10-28 18:44:13 +01:00
jiyunomegami
f3b2fe8252 SRAM detection fix for Psy-o-blade, segaSram16bit setting in md.txt 2020-07-12 00:14:37 +09:00
jiyunomegami
e73ee4b171 modular compilation fixes 2020-07-11 20:39:12 +09:00
sanni
4eaac930ed Update README.md 2020-07-06 08:33:49 +02:00
jiyunomegami
82ea59b942 add options.h 2020-07-04 22:37:02 +09:00
jiyunomegami
b0d8bf15ee add enable_XXX define for each module 2020-07-04 21:02:34 +09:00
jiyunomegami
61b439e09a add print_Msg_PaddedHex32 function 2020-07-04 01:25:52 +09:00
jiyunomegami
b1ad42bded add print_Msg_PaddedHexByte function 2020-07-03 22:15:26 +09:00
sanni
4d6594c0aa 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
2020-06-30 12:52:08 +02:00
sanni
ea6722d0c5 V5.2: Fix bug in GB code 2020-06-18 14:33:21 +02:00
sanni
c9f5c9ac36 V5.1: Fix Mapper 21 carts
Fix for Wai Wai World 2 (VRC4a) and Ganbare Goemon Gaiden 2 (VRC4c)
Thanks to skaman
2020-05-25 07:34:18 +02:00
sanni
8794e4c878 Update Cart_Reader.ino 2020-05-13 13:05:10 +02:00
sanni
615ef8d68c V5.0: Add suport for NeoGeo Pocket
Many thanks to splash5
2020-05-12 13:52:03 +02:00
sanni
cfb9e39cbf V4.9: Improve WS Initialization
Thanks to skaman.
The code does a deeper sanity check of the header data when initializing the cart.  It avoids having to constantly press buttons to reinit the cart.  Carts can still not initialize the MBC properly but that's normal for the WonderSwan.  Clean the pins on the cart and check that the cart and adapter are seated properly.  If the cart doesn't unlock immediately, then let the sketch run for a bit.  For stubborn carts, a power cycle might be necessary.
The sketch fixes a few typos, removes some trailing spaces, and adds another ROM size (used by Benesse Pocket Challenge V2 carts).
2020-04-20 10:35:48 +02:00
sanni
7b263115a5 V4.8: Add Reset Option to sub menues 2020-04-12 11:11:10 +02:00
sanni
aa4621a54d V4.7: Increase SA1 compatibility
Somehow a lower clock seems to work better, maybe the clock generator draws less power this way?!
2020-03-19 18:21:41 +01:00
sanni
5cec7afd1f V4.6: Increase SA1 compatibility 2020-03-17 14:09:47 +01:00
sanni
f9ca4f9108 V4.5 Fix VRC4e carts (Mapper 23)
The code change only affects readCHR().  It shortens the check to a single byte but that is enough to identify the four VRC4e carts.  The original list of VRC4e carts that I referenced only showed Boku Dracula-kun and Tiny Toon Adventures.  I found out that all four of the Mapper 23 VRC4 carts use the VRC4e submapper.  Mapper 23 includes VRC4f but there are no known examples (BTW, VRC4f = VRC2b).
2020-03-03 11:16:27 +01:00
sanni
4a1b441ae5 V4.4: Add ST M29W128GH GBA repro
Thanks to xybots for testing
2019-12-21 21:24:39 +01:00
sanni
0c54882042 V4.3: Add BS-X sram read/write thx to skaman 2019-12-17 19:53:21 +01:00
sanni
b24f4c0b01 Upload Files
More info:
Also added Pocket SNES PCB by Niltonn
https://forum.arduino.cc/index.php?topic=158974.msg4381465#msg4381465
2019-11-27 10:02:50 +01:00
sanni
1f2b9dcc4a
Forgot to advance version number after fixing var index to type int a couple of weeks ago 2019-11-12 09:49:24 +01:00
splash5
3f0fc3b577 Add support for flashing witch os
(fbin from witch kit)
2019-10-15 12:00:35 +08:00
splash5
5c1d28a0d6 Fix typo 2019-10-11 21:15:59 +08:00
splash5
991c7f8d6c Fix buffer overflow in fileBrowser 2019-10-07 11:34:22 +08:00
sanni
34d6871f7d Set eeprom location for folder number to 0 again 2019-09-27 17:38:42 +02:00
sanni
1fe0b53a0d V4.0: Add complete N64 Controller Test 2019-09-27 17:06:17 +02:00
sanni
adb2b6c56f
Update Cart_Reader.ino 2019-09-27 09:31:11 +02:00
splash5
a5f629df78 Add support for EMS GB Smart 32M flash cart 2019-09-26 13:38:03 +08:00
sanni
c681fbaec3 V3.9: Add SMS 2019-09-20 14:30:57 +02:00
Robert Neumann
60cfbda563 N64: Blink LED for EEP operations (they do take a while and the blinking tells users that there is progress); silence warning on the bitmaps; convert use of Arduino's "not" to exclamation mark 2019-09-13 18:13:37 +02:00
sanni
41e9517504 Add tip to use Arduino AVR Boards Version 1.6.21
Current Arduino IDE has a bug preventing compiling at random times.

See: https://forum.arduino.cc/index.php?topic=595550.0
2019-09-08 20:41:56 +02:00
sanni
ece384c2dc Update Cart_Reader.ino 2019-09-08 20:21:46 +02:00
sanni
9b2011c95c V3.8: Fix SF Memory 2019-09-08 15:53:46 +02:00
sanni
f79c169782 V3.7: Add MX26L6420
thanks to Ice Man for testing
2019-09-07 15:57:37 +02:00
Robert Neumann
6c2b9a9732 various: work on SNES SA-1 init / reset; LED: skip red in attract mode, as red usually indicates an error to the user 2019-09-05 15:43:27 +02:00
sanni
b8552090c8
Update Cart_Reader.ino 2019-09-05 10:34:14 +02:00
sanni
cb540d5ee7
Fix typo 2019-09-05 08:14:51 +02:00
sanni
bbdff75a6f V3.6: Code Clean-up and NES integration(untested)
Copy&pasted all the functions from "Famicom Dumper" by skaman into NES.ino and modified them to fit the enviroment.
Not tested yet.
2019-09-05 00:48:39 +02:00
Robert Neumann
1d6bd2ae86 various: forward declaration for "T" type used in EEPROM functions, necessary for non Arduino IDE 2019-09-02 20:11:08 +02:00
sanni
0c75bf8aed V3.5 Change Menu and add Sega CD Ram Cart
Thanks to skaman for the Sega CD Ram Cart code.  Writes to the Sega CD Backup RAM Cart require an extra wire from MRES (B02) to VRES (B27).
2019-09-01 14:36:53 +02:00
sanni
f6390d1604 V3.4: Add MD Checksum and autoformat all ino files 2019-08-30 20:20:41 +02:00
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