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.
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.
Add support for :
- "16M / 32M Pocket Flash Card" : old flashcarts, respectively in black, and transparent purple cases. Since their flash chips are returning 0x204C value (4Mbits), you will need to manually select the wanted ROM size before dumping them.
- "NeoGeo USB Flash Masta 2 in 1" : contains 2x 16Mbits Fujitsu chips, now detected fine.
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.
New feature added, save flash chip report file to SD containing:
- software basic info (game, version...)
- chip IDs (maker, device code)
- memory sectors protection status (game and save data)