Commit Graph

122 Commits

Author SHA1 Message Date
sanni
63b3c7ee24 Update GB.ino 2024-09-13 17:13:53 +02:00
sanni
34e2ef2bae #define ENABLE_FLASH now enables/disables all repro flash code
This cuts down memory usage from 90%/66% to 68%/63%. Useful for people that don't flash repros and would like to enable more systems instead.
2024-08-16 11:43:08 +02:00
sanni
d25b98ddfd GBA: Add option to dump F0088H0 repro 2024-07-12 14:08:21 +02:00
smesgr9000
4e7ef93cc6 declare "Revision: " and "Serial: " as common string and reuse string 2024-06-29 11:48:32 +02:00
smesgr9000
9e13964889 reuse common string "ROM Size: " 2024-06-29 11:28:41 +02:00
smesgr9000
4040d2b2a6 define common string "Select file" 2024-06-16 10:55:50 +02: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
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
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
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
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
c09e772299 replace hardcoded bank maps with power of 2 2024-05-12 08:15:03 +02:00
smesgr9000
74352c6e31 define "File doesn't exist" in OSCR.cpp/h 2024-05-11 23:32:06 +02: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
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
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
Ancyker
749d60de3f Fixed warnings in GB.ino 2023-09-04 16:29:00 -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
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
2cf7f5dbe7 Cleanup voltage requests
The `setVoltage()` function should be called even when `ENABLE_VSELECT` is disabled because `ENABLE_3V3FIX` also uses it. There is no resource cost to do this as when both options are disabled the compiler will optimize this function out. This just "future proofs" the code so if that function ever does more it doesn't need updated everywhere. This applies to `setup_FlashVoltage()` as well.

The changes to OSCR.cpp are just for code formatting and additional comments to clarify this.
2023-06-26 15:25:54 -04:00
sanni
dee54dd30e Move automatic voltage selection from menu to setup functions 2023-06-26 12:04:00 +02:00
splash5
1ab4147e1e Add support for reading/writing MBC7 EEPROM 2023-06-08 01:23:16 +08:00
Ancyker
010b7e7525 Firmware Updater support, 3.3V Fix, and more
Lots of changes/additions.

Added:
* Firmware Updater support: Supports the Firmware Updater app (release to follow soon). Enabled by default, can be disabled in the config.
* 3.3V Fix (3V3FIX): Enable if you have stability issues when using 3.3V, works best with VSELECT. Disabled by default, can be enabled in the config.
* `DynamicClockSerial`: Class that extends and modifies HardwareSerial to be compatible with a dynamically changing clock speed. Used through the `ClockedSerial` object/variable.
* `OSCR.cpp` & `OSCR.h`: New files for storing globals. Only contains these new additions for now. More code cleanup to come.

Changed:
* Moved configuration flags to `Config.h` and documented them better.
* Removed `vselect()` function. Now uses `setVoltage()` with the params `VOLTS_SET_3V3` and `VOLTS_SET_5V`.

Known Issues:
* Rarely the LCD backlight turns white when using 3V3FIX. Resetting fixes it. Doesn't affect functionality/usability; it's just weird.
2023-03-29 21:05:01 -04:00
Remy Starshade
aee632642d Add Voltage Selection Module 2022-11-12 14:13:22 -05:00
Vincent Pelletier
f07f6f9025 All: Replace print_Error(*, boolean) calls with print_{,Fatal}Error(*)
Also, make print_FatalError(*) independent from print_Error(*).
Also, factorise common parts of print_Error(*).

Frees 2336 bytes of program space and 5 bytes of global ram space.
2022-10-31 08:52:33 +00:00
sanni
a8a981e137 Auto format 2022-10-28 15:02:51 +02:00
Vincent Pelletier
67b54a690b All: Factorise title generation from cart.
Fix out-of-bound access when first byte is not an ascii printable
character.
Reduces program space use by 480 bytes.
2022-10-28 05:29:44 +00:00
Vincent Pelletier
a555f2117f All: Resolve all compiler and linker warnings
No functional change intended.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
e7ef7fd4bd All: Make flashid an integer
flashid (almost) always contains the hexadecimal representation of two
bytes, which then means it gets compares with strcmp, which in turn need
another string argument. Instead, make it an integer, removing the need to
call strcmp.
Add a separate string representation for printing purposes (maybe this can be
avoided by having the print function format it when needed ?).
The only apparent case where flashid is not an hexadecimal representation
of a pair of bytes is when N64 clears it to "CONF". Set flashid to zero
this case.
This saves about 500 bytes of program space and 200 bytes of ram.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
3fcd1a808d https://github.com/sanni/cartreader/issues/574#issuecomment-1286956251 2022-10-28 05:29:20 +00:00
sanni
4badfff458 Move to Arduino IDE 2.0.0 (different auto formatting, no code changes) 2022-10-13 09:49:03 +02:00
sanni
bef9d0f5f9 Don't log manual mapper selection to file for NES/GBA 2022-10-04 20:30:53 +02:00
Lesserkuma
4cac40e011 Remove debug output 2022-09-28 21:46:21 +02:00
Lesserkuma
dab124def7 Find Game Serial for Game Boy 2022-09-28 21:31:49 +02:00
Lesserkuma
9d42ce0964 Add support for the Game Boy MBC6 mapper (save write) 2022-09-28 18:52:52 +02:00
Lesserkuma
f7d9051b95 Add support for the Game Boy MBC6 mapper (save read) 2022-09-28 18:00:16 +02:00
Lesserkuma
38c2262f1c Add support for the Game Boy MBC6 mapper (ROM read) 2022-09-28 15:15:04 +02:00
Lesserkuma
282f5bc108 Add support for the Game Boy TAMA5 mapper (ROM read) 2022-09-25 23:35:29 +02:00
Lesserkuma
6098700fdd Merge branch 'master' 2022-09-25 17:06:58 +02:00
Lesserkuma
866f0ce2b5 Add support for the Game Boy MBC1M mapper 2022-09-25 16:58:58 +02:00
Lesserkuma
140401161b UI improvements for GB, GBA, N64, SNES 2022-09-25 16:40:21 +02:00
sanni
6659b84d9d Add support for Benesse Pocket Challenge W Module (thx to skaman) 2022-09-25 10:36:28 +02:00
Lesserkuma
ff758768df Add support for GB MBC5 8 MiB cartridges 2022-09-25 01:46:46 +02:00