Flag SYS_FLAG_SHOW_LOGO added to EEPROM_SYS_FLAGS. The boot logo
functions check the flag and bypass the logo sequence if the flag
isn't set.
Added functions writeShowBootLogoFlag() and readShowBootLogoFlag()
for writing and reading the SYS_FLAG_SHOW_LOGO flag.
Renamed example sketch SetNameAndID to SetSystemEEPROM and added
the ability to set the SYS_FLAG_SHOW_LOGO flag, plus menus to reset
the system and user EEPROM areas.
The SpritesB class has functions identical to those in Sprites.
When used in place of Sprites it will usually reduce code size (at the
expense of slower execution speed). Code size reduction is accomplished
by factoring all draw modes into the same loop.
Modifications made to the Sprites class to create this class made by
@dxxb (Delio Brignoli).
Creation of the SpritesB class and documentation by
@MLXXXp (Scott Allen).
Also, bootLogoSpritesBSelfMasked() and bootLogoSpritesBOverwrite()
alternative boot logo functions added by @MLXXXp.
New function waitNoButtons() replaces the code at the end of begin()
that waits for all buttons to be released. This is to make it easier
to add back this functionality when using boot() in place of begin().
- Inlined : 332 -> 358 ops/ms
- Non-inlined : 222 -> 303 ops/ms
Moves most of the pixel offset calculation math into assembly.
Also uses a shift lookup table vs calculting bit shifts on the
CPU (which is slow)
Same as Arduino delay() except takes a 16 bit value.
Mainly added to save some code in the library but can be used by
sketches for the same purpose.
Also changed a delay in bootLogoText() to match a previous change in
bootLogo()
New functions bootLogoCompressed(), bootLogoSpritesSelfMasked() and
bootLogoSpritesOverwrite() can be used in place of bootLogo() to
reduce code size in cases where their drawing functions are shared
with the same functions used by the sketch.
New function bootLogoShell() added to provide common code for the
above functions.
Also, the Sprites class functions, and functions used for drawing the
logos, were made static.
- Added a flag in system EEPROM to indicate if the unit name
should be displayed at the end of the boot logo sequence.
Function bootLogoExtra() displays the unit name only if the
flag is set.
- Added functions writeShowUnitNameFlag() and readShowUnitNameFlag()
to write and read the "Show Unit Name" flag in EEPROM.
- Enhanced the SetNameAndID example sketch to allow setting the
"Show Unit Name" flag in EEPROM.
- Timer 0 is disabled in flashlight() and safeMode() in case its
variables overlap the bootloader "magic key" location.
- Flashlight mode never exits if invoked.
- Made safeMode() public for use as a smaller code size alternative
to flashlight().
This eliminates calls to pinMode(), digitalWrite(), functions to
initialize hardware, etc.
New 2 parameter version of digitalWriteRGB() added, which sets an
individual RGB LED on or off digitally.
New function SPItransfer() added to replace Arduino SPI.transfer().
Also:
- Changes to show the unit name on the boot logo screen
- Added new example sketch SetNameAndID to allow setting the name and ID
- Updated the LICENSE.txt file and made changes to include it in the
Doxygen generated documentation
- Version changed to 2.1.0
- Added sprite, button and collision functions from ArduboyExtra
- Added drawCompressed() function from Arglib
- Updated LICENSE.txt
- Removed CONTRIBUTORS.md (now covered by LICENSE.txt)
- Changed banner name from ARAKNOID to BREAKOUT.
- Set frame rate appropriately for the corrected nextFrame() function.
- Removed dead and non-functioning code.
- Cleaned up save, load and display of high scores.
- Made pausing the game work.
- Display the achieved score on the "game over" screen.
Also: Minor refactor of function nextFrame()
A change made to nextFrame(), from the Arduboy library, caused it to not work
correctly. The original version works as designed.
Also:
- Changed longs to unsigned longs for better type matching.
- Removed the frameRate variable. It was being set but never used.
- Added a missing return value to the write() function.
- Changed a int8_t to uint8_t in function lcdCommandMode() to address a
compiler warning.
- Rearranged the specification of the font[] array to address a compiler
warning.
Mainly to give an indication that the device is in "flashlight" mode
for units that have the RGB LED installed reversed.
Also, the test for the UP button is moved to within flashlight() itself.
Instead of PWM, basic digital output is used to control the RGB LED in the
bootLogo() and flashlight() functions. This reduces code size for sketches
which don't use the setRGBled() function. In bootLogo(), instead of dimming
the red LED, the red then green then blue LEDs are lit in sequence at full
brightness.
digitalWriteRGB() was added as a public function and is also used for the
changes above.
Checks if the "B" button is being held down when begin() is called.
If so, waits for other buttons to be pressed to control system functions.
Functions implemented:
"UP" button: Set "sound enabled" in EEPROM.
"DOWN" button: Set "sound disabled" (mute) in EEPROM.