Updated Mapper 45 to handle Dynavision 101 Games and 106 Games carts (4096K PRG). Added Mappers 237, 289, 319, and 332. Mappers 289 and 332 need pulsing M2 code to dump properly.
- Removed strcpy_P from print_STR, not necessary as print*_Msg supports
__FlashStringHelper strings, so pass those through.
- Change RTCStamp signature, don't return String as that allocates on
the heap, require caller to allocate a buffer however they want of at
least 21 bytes in size. Updated call-sites to follow this new
convention. String output is now no longer completely uppercase.
- delete print_right(). This function doesn't quite do what it claims
to do, at least on HW5, as the font isn't monospace.
- Fix number literal types for clkcal. No need to use ULL, as the
variables in use are int32_t, and on AVR these are just L. Unsure of
how to make it more cross-platform for now.
- delete atoi32_signed, as we can just use atol() and save progmem.
- cleanup readClockOffset(), and use atol also.
- minor cleanups in initializeClockOffset that actually reduced
progmem.
- rewrote void print_Msg(const char myString[]) wrapping implementation
to reduce progmem. call print_Msg in println_Msg (not sure why it
wasn't called). This actually fixes a bug where only the first line
would wrap.
- checkButton(), rotaryDir doesn't need to be more than int8_t.
- delete large switch-case in fileBrowser, unnecessary, just index the
fileNames string directly.
- buildRom, loop size doesn't need to be more than byte as length is a
byte.
- In total, progmem usage went from 181634 bytes to 180484 (over 1KB
saved).
Update nes.txt - sync'd with no-intro + sorted by release type instead of alphabetical: Licensed > Unlicensed > Pirate > Aftermarket. that will speed up things for the vast majority of users
Modified Mapper 226 to use pulsing M2 code (BMC Super 42-in-1, 76-in-1, et al.).
Added Mapper 233 which requires power cycling the cart reader to switch between the two PRG chips (BMC 22-in-1/20-in-1 (42-in-1)).
- Add support for simulating a long press for the serial interface by
seinding `l` or `L`. This lets someone actually run the SNES clock
calibration using the serial interface.
- Don't use `Serial.read() - 48` to extract chars. Just treat the data
as chars. This is more legible, and actually reduced the program
storage space utilization slightly.
- Remove incomingByte global variable, mark all uses as local
variables. This leads to a tiny (yet measurable) decrease in global
variable use, and no change in sketch memory use. Of course, the
variable now resides in the stack, but only while the functions using
it exist, which isn't always.
- RAM dump extension changed from .bin to .sav for direct use with emulators (see https://github.com/sanni/cartreader/discussions/1049)
- regrouped scripts for MMC3-based mappers
- regrouped scripts for CxROM-like mappers
- regrouped scripts for BxROM-like mappers
- added support for 268 submapper 1