Commit Graph

979 Commits

Author SHA1 Message Date
sanni
0203e4bf93
Add option to force ROM size for MD carts 2024-06-13 19:40:57 +02:00
sanni
27a213a3c1
Add CFI option to SNES repro menu
Only tested with 29LV640 on Chinese LoROM repro.
2024-06-13 16:43:20 +02:00
Ancyker
8535552b9a
Fix compilation errors when the FLASH core is enabled without FLASH16
Commit References:
* a32c6b3bff - Added ATTENTION_3_3V flash string but placed the definition inside a FLASH16 ifdef.
* 4d000418a8 - Added use of writeWord_Flash to FLASH8 without removing the FLASH16 ifdef around it.
2024-06-10 11:46:26 -04:00
smesgr9000
52fc5be7ad reuse command sequence for GB 2024-06-03 18:51:51 +02:00
smesgr9000
ccbb5447d3 reuse GB common functions 2024-06-03 17:56:46 +02:00
Ancyker
2b01f7fc4d
Add checks for unsafe configurations
* Fixes #929
* Updated `ci.yml` to define `GITHUB_CI`
* Compilation will now error if VSELECT is enabled on hardware versions that don't support it (any version other than HW5).
  * HW4 and SERIAL might work but are untested. The error message for these versions reflects this.
* Erroring when unsafe configurations are defined can be overridden by defining `ALLOW_UNSAFE_CONFIG` which will throw a warning instead.
  * This should only be done if trying to implement or test on a currently unsupported platform.
  * If both `GITHUB_CI` and `ALLOW_UNSAFE_CONFIG` are defined an error will be thrown causing the CI tests to fail. This is just in case someone makes a commit with it defined.
2024-06-02 11:56:08 -04:00
Ancyker
740c2698bc
Fix compilation errors and warnings
Fixing issues when only ENABLE_GBX was enabled or when compiling for a serial-only firmware.
2024-06-02 11:15:50 -04:00
smesgr9000
ad69abdf57 use common function to create file/folder and increment foldern counter 2024-06-01 09:58:23 +02:00
smesgr9000
22e06d8ec1 reuse n64 flashrom Xplorer command sequence 2024-05-30 18:52:38 +02:00
smesgr9000
fb78a1fce5 reuse n64 flashrom command sequence 2024-05-30 18:18:53 +02:00
smesgr9000
86059ae070 reuse code to write NES maker command 2024-05-30 08:15:22 +02:00
smesgr9000
5b43a162b8 reuse common strings, remove duplicate 2024-05-30 08:00:13 +02:00
smesgr9000
d039c590cc define more commonly used string in OSCR and reuse them 2024-05-28 21:11:48 +02:00
smesgr9000
0d9596eb70 replace custom FLASH saving code with common function 2024-05-28 20:20:29 +02:00
smesgr9000
cb111077f8 replace NES defines with rgbLed function calls 2024-05-26 22:43:41 +02:00
smesgr9000
363d18b542 add common function to open create folder, print message and open file. Remove duplicate code 2024-05-26 22:20:47 +02:00
smesgr9000
78bf1462d0 replace custom folder creation function with common 2024-05-26 21:48:57 +02:00
smesgr9000
41182a7eb0 add option to clear display and remove duplicate code 2024-05-25 14:25:35 +02:00
smesgr9000
6abe29fcd9 remove duplicate code to print saving and increment of folder id 2024-05-25 14:07:08 +02:00
smesgr9000
d1d83bbd10 remove local variables which are only used in function context 2024-05-25 09:57:46 +02:00
smesgr9000
73700e2886 support mapper > 255, implement mapper 446 submapper 0&1 - thanks to NewRisingSun for support, fix iNES2.0 mapper parsing of byte 8 2024-05-24 23:54:13 +02:00
smesgr9000
1aaa90af97 remove custom code to print 0 prefixes in sprintf 2024-05-20 13:17:44 +02:00
smesgr9000
4d000418a8 remove duplicate code to write Flash Command 2024-05-20 12:54:33 +02:00
smesgr9000
aaaa6ea3cd reuse menu item strings 2024-05-20 12:27:53 +02:00
smesgr9000
a32c6b3bff define PROGMEM string for Attention 3.3V 2024-05-20 12:07:28 +02:00
smesgr9000
f82be2d5db remove duplicate code to open file for verfication 2024-05-20 11:57:32 +02:00
smesgr9000
d7e795fbed remove duplicate code to open file to write on flash 2024-05-20 11:39:35 +02:00
smesgr9000
ea0b47de57 use constant for "Saving to" instead declare the string several times 2024-05-12 15:54:49 +02:00
smesgr9000
9f0aa09197 remove duplicate code to create folder 2024-05-12 15:37:11 +02:00
smesgr9000
38b2b2476b remove duplicate GB Flash reading function 2024-05-12 14:33:21 +02:00
smesgr9000
dc47202c4d remove duplicate code for 2600 3E & 3F mapper 2024-05-12 14:03:34 +02:00
smesgr9000
a8cd9c52a6 reduce duplicate code in bank 7800 switching code 2024-05-12 12:09:59 +02:00
smesgr9000
32f6b4151b reduce duplicate code by parameterise ROML/ROMH 2024-05-12 11:40:34 +02:00
smesgr9000
c09e772299 replace hardcoded bank maps with power of 2 2024-05-12 08:15:03 +02:00
smesgr9000
7ba32d24fc remove duplicate code for checking pin number 2024-05-11 23:44:40 +02:00
smesgr9000
74352c6e31 define "File doesn't exist" in OSCR.cpp/h 2024-05-11 23:32:06 +02:00
smesgr9000
ab03ab879c pass onyl 16bit parameter where only 16bit address is used 2024-05-11 23:18:31 +02:00
smesgr9000
90fa37c491 add serial printing to print instructions 2024-05-10 19:15:24 +02:00
smesgr9000
9e2ef3580c reuse print instructions function, more efficiant read code 2024-05-10 19:13:19 +02:00
smesgr9000
94c6bd460a add c64 function to read 16k segments. Remove duplicate code for C64 2024-05-10 18:14:54 +02:00
Ancyker
40238b18a1
Fixed (added) missing FS() macro on some FSTRING constants
This was causing two symptoms/bugs:
* OSCR_LOG.txt was being spammed with random data.
* The size of OSCR_LOG.txt would get so big that copying the log would take a long time, possibly minutes. Oftentimes this caused the display to appear to hang after searching for the CRC (after "->") but before displaying the result.

If using the global log and a version of master since e61ac414d8 you should delete OSCR_LOG.txt from your SD card as it will likely be very large and continue to cause dumping to be slow.
2024-05-07 17:16:51 -04:00
smesgr9000
8bd6d7dfdc remove duplicate code for F4,F6 & F8 mapper 2024-05-07 20:30:02 +02:00
smesgr9000
53b71f9108 fix 2600 mapper selection for Serial 2024-05-07 19:38:31 +02:00
JWS
2c72652671 Add support for X07 mapper (Stella's Stockings) 2024-05-03 20:34:26 -05:00
JWS
f4ba8d7af8 Add support for mapper 3E, 32K ROM 32K RAM Tigervision 2024-05-03 18:52:37 -05:00
smesgr9000
2134c9f58b move PRG/CHR dumping code to own function 2024-05-03 23:42:06 +02:00
smesgr9000
4b70766094 remove duplicate code to store NES games with and without header 2024-05-03 21:56:22 +02:00
smesgr9000
5f3d63a123 fix signed/unsigned warning 2024-05-03 20:47:48 +02:00
smesgr9000
990b61ca3a make cast in read function explicit and reduce duplicate read functions 2024-05-03 19:12:48 +02:00
smesgr9000
e8e6d15a72 remove duplicate string literals 2024-05-03 17:12:31 +02:00
smesgr9000
6c05709871 fix compiler warnings 2024-05-03 17:11:55 +02:00
smesgr9000
330e615b8c remove duplicate code to select mapper, rom and ram configurations 2024-05-01 21:27:45 +02:00
smesgr9000
2826ded431 remove duplicate code in printing CRC 2024-05-01 18:59:00 +02:00
smesgr9000
d233387acc fix issue #939. Remove duplicate write of laster buffer. Also add Berzerk Enhanced 2024-05-01 18:50:35 +02:00
smesgr9000
254982cbe7 remove duplicate CRC printing and calculation function 2024-05-01 10:48:58 +02:00
smesgr9000
ccc06ef4e4 fix reading mapper > 9 from database 2024-05-01 09:35:00 +02:00
smesgr9000
bb12c99fac replace FAIRCHILD, ODY2, MSX and VECTREX cart selection code with code used in NES, COLV & INTV. Define "Database not found" in OSCR.cpp 2024-05-01 09:06:23 +02:00
sanni
ecc937bab3
Fix romType for Yuyu no Quiz de GO!GO!
https://github.com/sanni/cartreader/issues/922
2024-04-30 12:25:58 +02:00
smesgr9000
9909fdafb3 replace 5200 and ARC cart selection code with code used in NES, COLV & INTV 2024-04-29 19:09:50 +02:00
smesgr9000
06d5f28d0c port NES fast forward selection to other systems 2024-04-28 13:35:21 +02:00
smesgr9000
394dcdcf1f replace C64 cart selection code with code used in NES, COLV & INTV 2024-04-28 09:50:48 +02:00
sakman55
254c824292
Update 7800.ino
Update checkStatus_7800() to account for the added Bankset mapper (#7).
2024-04-27 18:33:27 -10:00
sakman55
43e18fce80
Update C64.ino
Fix Issue #902 Handling of GAME and EXROM lines of C64 cartridges is wrong.  Requires updated c64cart.txt on SD card.
2024-04-27 12:49:34 -10:00
smesgr9000
57bf121c06 replace 2600 cart selection code with code used in NES, COLV & INTV 2024-04-27 09:59:36 +02:00
smesgr9000
3ff99bfe48 Merge remote-tracking branch 'origin/master' into a7800database 2024-04-24 20:28:42 +02:00
smesgr9000
4502d1e56e revert accidently committed Config.h 2024-04-24 20:17:10 +02:00
smesgr9000
d8809b198d revert accidently committed Config.h 2024-04-24 20:13:45 +02:00
smesgr9000
3ce23a57ad replace cart select code with code used in NES, COLV, INTV 2024-04-24 20:07:44 +02:00
smesgr9000
3441cedfd4 remove duplicate code of seeking database files for letter 2024-04-24 19:55:43 +02:00
smesgr9000
e7e0da80b0 remove some duplicate printing code and declare more global text strings 2024-04-22 18:51:01 +02:00
sanni
5d0ae986c9
Merge pull request #932 from PsychoFox11/master
Fix Slaughter Sport title, two CRC32s
2024-04-22 12:42:08 +02:00
Don Jones
dc1e776b19
Update MD.ino
Fix Slaughter Sport's title and folder name
2024-04-21 02:08:30 -04:00
smesgr9000
4c8f8266a1 support CLOCKGEN for C64 2024-04-18 18:09:19 +02:00
smesgr9000
e1716d48bb fix reading mapping > 5 causes crc32 0x0000000 2024-04-12 20:15:16 +02:00
smesgr9000
cf1d01855d reduce memory footprint for 7800.ino 2024-04-12 19:07:00 +02:00
smesgr9000
9ad338a821 support for F4SC, F6SC & F8SC 2024-03-24 14:06:06 +01:00
smesgr9000
a2924e4f58 create a merge request for https://github.com/sanni/cartreader/issues/916 2024-03-23 23:30:17 +01:00
PsyK0p4T
281639370f
CRC check added
CRC check added for SFC Sufami Turbo sub-carts
2024-03-11 16:38:10 +01:00
PsyK0p4T
6d89a279f2
Update MD.ino
Thanks to psychofox : 
- Fix Madden NFL 98 (USA)
- More aftermarket games added
2024-03-07 11:13:09 +01:00
Ancyker
a86f140198 Follow up to/fix for e61ac414d8 2024-03-02 11:30:44 -05:00
Ancyker
e61ac414d8 Code optimization, cleanup, and stylization
* Reduced PROGMEM / DRAM usage slightly (Using defaults w/HW5: Before -> 214,668 bytes / 5,757 bytes; After -> 213,414 bytes / 5,751 bytes)
  * Optimized some menu options and calls
  * Added more string constants and implemented them where found.
* Fixed some stylization
  * Constants should always be uppercase.
  * Features should use the `ENABLE_<feature name>` format.
  * Options for features should use the `OPTION_<feature name>_<option name>` format.
  * Added ENUMs for more clarity and better type checking.
  * Moved some defines over to `constexpr` and `const` types. These are preferred over preprocessor constants when not intended for use with `#if` and other preprocessor language.
2024-03-02 11:26:35 -05:00
Ancyker
3468703a51 Added ability to use config file for some options.
A sample `config.txt` is in the SD folder. Currently the option is disabled by default and must be enabled.

Also:
* Eliminated the 5V spike at boot when VSELECT is installed and enabled. See discussion #906
* Fixed a warning in `MD.ino`
* Did some code cleanup, more cleanup to come.
2024-02-29 17:52:04 -05:00
PsyK0p4T
35eca2a9f4
Update 7800.ino
Add clock generator usage to fix timing issues (thanks to @smesgr9000)
2024-02-29 23:17:41 +01:00
sanni
f947fb4e3f Add support for MBC30 flash cart by HDR (thx to ManCloud)
Two issues were resolved:
- this flashcart uses the Audio-In pin instead of the WR pin
- Writing 4MB gets stuck after bank 170 and needed the SRAM to be mapped (same as MBC5)
2024-02-29 09:36:23 +01:00
PsyK0p4T
417e88d7d1
Update MD.ino
Force saveType to 0 for some aftermarket games not using SRAM
2024-02-25 13:58:06 +01:00
LuigiBlood
bbe37d9839 SNES: Add Game Processor RAM Cassette Read/Write support 2024-02-09 23:02:59 +01:00
PsyK0p4T
e4e4c7f1f5
Update PCE.ino
Add compatibility for "Games Express CD Card (Japan) (Green Version)"
2024-02-02 00:12:39 +01:00
PsyK0p4T
d556e5a4af
Update Cart_Reader.ino
Standardize all Atari codes
2023-12-26 23:13:51 +01:00
PsyK0p4T
a8b493026e
Update Config.h
Standardize all Atari codes
2023-12-26 23:12:11 +01:00
PsyK0p4T
a9bccaf8f7
Update 5200.ino
Standardize all Atari codes
2023-12-26 23:10:23 +01:00
PsyK0p4T
2bdba9c8bd
Update 7800.ino
Standardize all Atari codes
2023-12-26 23:09:38 +01:00
PsyK0p4T
c06f1c4e95
Update 2600.ino
Modify Atari 2600 code to follow 5200/7800 model.
2023-12-26 23:08:10 +01:00
PsyK0p4T
319d110339
Update VECTREX.ino
Allows to manually select and dump carts up to 64 KB.
2023-12-26 21:53:39 +01:00
PsyK0p4T
d0fe5c8ca1
Update Cart_Reader.ino
Add Sufami Turbo support
2023-11-25 00:34:13 +01:00
PsyK0p4T
70d52636d7
Update SNES.ino
Add Sufami Turbo support
2023-11-25 00:32:51 +01:00
PsyK0p4T
0287ea8ed2
Update Config.h
add Sufami Turbo support
2023-11-25 00:29:55 +01:00
PsyK0p4T
f86a861628
Add Sufami Turbo module 2023-11-25 00:26:38 +01:00
sanni
1eac83ef79
Update OSCR.cpp 2023-11-21 09:55:10 +01:00
sanni
ad294f651f
Update Cart_Reader.ino 2023-11-21 09:54:54 +01:00
sanni
5176a15199
Update ARC.ino
Fix compilation error in combination with ENABLE_UPDATER
2023-11-21 09:43:00 +01:00
PsyK0p4T
a55aa7bbff
Update SNES.ino
Avoids a compilation warning
2023-11-20 21:46:44 +01:00
sanni
654686cf15
Update Cart_Reader.ino 2023-11-20 12:23:34 +01:00
sanni
a06d9ee87b Update version 2023-11-20 12:19:32 +01:00
qufb
ac1c6db12d Fix PH3 pin typo 2023-11-16 22:27:01 +00:00
PsyK0p4T
8fdd93f293
Update PCW.ino
- Added : size detection for Multi-pack cartridges
- Modified : dump function for Multi-pack cartridges
- Added : timing fixes needed for recent HW revisions
2023-11-02 17:21:52 +01:00
sanni
029c33dfb9 N64: Add error message if eeprom does not return data
Should prevent problem as described in discussion #857
2023-10-17 22:07:51 +02:00
sanni
2e72842bb1 Fix Clock Gen Calibration Menu
Function didn't display negative calibration factors correctly.

Also added option to use the calibration factor without enabling the calibration menu to save some space.
2023-10-17 18:41:14 +02:00
sakman55
a257fc2ee5
Update MD.ino
Add John Madden Football '93 (U) (EA Sports) to EEPROM list.
2023-10-14 20:06:08 -10:00
Richard Weick
0e04c1c1a1
Update GB.ino
This updates the GBC Gameshark functions to check the Chip ID before performing any other functions, which ensures a good connection with the Gameshark cartridge and prevents erroneous dumps or writes due to poor connection.
2023-10-01 12:46:10 -05:00
sanni
c873d3cf9d
Update Cart_Reader.ino 2023-09-25 18:32:44 +02:00
PsyK0p4T
b270f0c30e
Update Cart_Reader.ino
compilation fix
2023-09-25 16:23:43 +02:00
PsyK0p4T
4ddd867f87
Update OSCR.cpp
update app version
2023-09-25 16:16:07 +02:00
PsyK0p4T
b2415c0287
Update Cart_Reader.ino
Add the possibility to hide Self Test from menu
2023-09-25 16:12:04 +02:00
sakman55
603a22116c
Update 7800.ino
Removed "[UNTESTED]" from Karateka (PAL) entries.
2023-09-23 07:36:05 -10:00
sanni
559010079c Add support for Atari 5200/7800, C64, Vectrex (thx to skaman) 2023-09-23 00:11:08 +02:00
But Thou Must
c88978f5ea SNES.ino: Fix dumping Sound Novel Tsukuru (Japan) with same fix as for Derby Stallion '96 (Japan) 2023-09-21 18:39:18 -04:00
Ancyker
74fba5e29d N64.ino: Handle reused global from FLASH.ino 2023-09-14 12:00:58 -04:00
Ancyker
4f8ef61355 Remove unused variables in N64.ino 2023-09-13 10:32:48 -04:00
Richard Weick
e92e42c581
Update N64.ino
Update Xplorer64 functions in N64.ino to fix a potential issue for some hardware.
2023-09-12 19:31:55 -05:00
Richard Weick
bc62414c59
Update N64.ino
This adds full support for the Xplorer 64, including backup and writing of new firmware to the device. Firmware must be unscrambled (not dumped directly from the chips in a chip reader) in order to work with this program. Firmware dumped via the Sanni Cart Reader with this function work perfectly when written back.
2023-09-10 21:49:11 -05:00
Richard Weick
61bfc81ce4
Update N64.ino
This updates the N64 Gameshark function description, adds progress bars for the writing and verification functions, and updates the Chip ID function to report an unknown chip.
2023-09-08 10:06:27 -05:00
Richard Weick
b748faecde
Update N64.ino
This completes the N64 Gameshark functions. It adds the command to enable CPLD address ranges of 0x1EEx_xxxx, 0x1EFx_xxxx, and 0x1ECx_xxxx which are necessary to program the SST 28LF040 eeprom. This also adds full support for the SST 28LF040 eeproms.
2023-09-07 21:50:06 -05:00
sakman55
7cf03d3542
Update FAIRCHILD.ino
Modifications for reading 4K carts
2023-09-04 12:38:32 -10:00
Ancyker
749d60de3f Fixed warnings in GB.ino 2023-09-04 16:29:00 -04:00
Ancyker
03bef214ec Add some clarification to Config.h 2023-08-25 03:57:15 -04:00
Ancyker
d99e2d4040 Update MD.ino
Add "Dynamite Headdy (USA, Europe)", "NHL 98 (USA)", "Gain Ground (USA)", "Wonder Boy III - Monster Lair (Japan, Europe) (En)"
2023-08-25 03:54:38 -04:00
Ancyker
ec3d048172 Update MD.ino
Add "NHL 98 (USA)"
Fixes #841
2023-08-24 01:52:45 -04:00
Richard Weick
b2c5999380
Update GB.ino
Add GBC to Gameshark menu labels
2023-08-19 22:24:28 -05:00
Richard Weick
2143fe71af
Update GB.ino
Add Datel Device menu
2023-08-19 22:23:30 -05:00
Richard Weick
8aee244bd0
Update GB.ino
Add support for Gameboy Gameshark and Mega Memory Card
2023-08-19 22:17:22 -05:00
PsyK0p4T
8d7fc3a486
Fix Xplorer_N64 dump 2023-08-18 20:37:15 +02:00
sanni
a969a93281
Add Xplorer 64 dump option to N64
Thx to [RWeick](https://github.com/RWeick/FCD-0003.1S-Xplorer64) for finding the address the firmware is mapped to.
2023-08-18 11:01:14 +02:00
PsyK0p4T
74aaaa4d0e
Add a progressbar to Pokemon Mini
Add a progressbar to Pokemon Mini
2023-08-14 15:30:29 +02:00
Richard Weick
1bc74f055d
Update GB.ino
Removed unnecessary VSelect Option that may cause issues during compilation.
2023-08-13 19:13:43 -05:00
Richard Weick
5b554bc6e3
Update GB.ino 2023-08-13 19:05:57 -05:00
Ancyker
6733c9f57c Add note to self-test on HW3 that the EEP switch should be set to on.
Unable to actually test this myself because I do not have a HW3 to test on. However, looking at the schematic, if the EEP switch is set to the off position then the pin will be floating and the result of the 1K resistor test will be random.
2023-08-01 18:26:20 -04:00
sanni
fee5c867aa
Update INTV.ino for 12K carts (thx to skaman) 2023-07-29 12:39:21 +02:00
PsyK0p4T
42c409baf2
Add Pokémon Mini CRC check 2023-07-28 15:32:54 +02:00
sanni
63aeb335a4
Add support for DS1307 RTC module
DS1307 does not seem to have the lost lostPower function. So the time does not get set on upload and needs to be set manually as described in the [wiki](https://github.com/sanni/cartreader/wiki/Real%E2%80%90Time-Clock#setting-the-time).

In Config.h set like this:

````
#define RTC_installed
//#define DS3231
#define DS1307
````

Connect "Tiny RTC I2C module" or similar to the SDA/SCL/VCC/GND pins.
2023-07-22 15:21:02 +02:00
sanni
97eada64e7
Fix Serial Monitor menu 2023-07-19 16:32:34 +02:00
sanni
829408c655
Unify HW3 and HW5 menues 2023-07-19 15:13:06 +02:00
sanni
b4d6b4e637
E7/F4/F6/F8 mapper changes and new mapper for Time Pilot (thx to skaman) 2023-07-18 22:54:28 +02:00
nsx0r
66dfc8b4e9
[NES] fix mapper 148 2023-07-18 07:17:17 +02:00
Roger Braunstein
a334129e2a Fixes Loopy SRAM dumping 2023-07-15 23:15:19 -07:00
Ancyker
ff62f494eb Firmware Updates for RTC
Also minor edits to `setVoltage()`
2023-07-16 01:01:58 -04:00
sanni
95f4f44786
Update OSCR.cpp 2023-07-13 10:32:02 +02:00
sanni
ac03c4bede
Update Cart_Reader.ino 2023-07-13 10:31:15 +02:00
sanni
74e46f4322
Merge pull request #824 from partlyhuman/support-casio-loopy
Casio Loopy Adapter
2023-07-11 09:53:04 +02:00
Roger Braunstein
1d147828f6 PR ready? 2023-07-10 16:01:23 -07:00
Roger Braunstein
0d7b51806a Moves loopy db into loopy.ino, adds format sram option 2023-07-10 15:52:02 -07:00