Another appology: I realised I forgot to credit @Dreamer3 for the concept of how to remove the USB code. This has been corrected in the release notes (but unfortunately, again, I can’t add it to the git logs).
I recompiled RogueBoy and gained over 1k bytes, Great work!
Yes great work @MLXXXp - now I can remove the setRGBled() code that you lent me with the real version!
Super! Great work! I regained 106bytes in my project.
7 posts were split to a new topic: Sim-AVR problems with the new Arduboy2 V5
Does this have any impact on existing software titles?
I don’t think so … the changes to existing functionality is just performance enhancements / code size reductions.
The major version was increased so there should be at least one thing that breaks backwards compatibility.
That said, I can’t find it.
As far as I can tell all the changes are either bugfixes, new features or optimisations
The impact will be smaller/faster code.
(Assuming the games are recompiled with the new library.)
There isn’t really. However, the boot logo has been sped up, so sketches won’t behave exactly as before
The main reason I bumped the major version number, though not strictly adhering to guidelines, is due the the large number of changes. Plus, it’s easier to remember and state things like:
If you want users to be able to use the system EEPROM flag to suppress the boot logo, you must compile with version 5 or higher.
Rather than remembering and stating: between 4.1.0 and 4.2.0
Circuit Dude [2.1] - Awesome Puzzle Game With 50 Levels!
You could argue that’s a bugfix.
For people used to using semver it’s not that hard,
but I guess since we get a lot of beginners here that makes sense.
A post was merged into an existing topic: Circuit Dude [2.1] - Awesome Puzzle Game With 50 Levels!
Is this still an issue? Part of not going back to fix up Circuit Dude was the sound/LED conflict. Is there a suggested way to fix this on my end? I wouldn’t mind updating Circuit Dude to fix it and also touch up the graphics to include his new look.
Arduboy2 library version 5.1.0 has been released and is available through the Arduino Library Manager.
There is only one significant change for this release:
A flag has been added to system EEPROM that will allow the RGB LED to remain off while the boot logo is being displayed. This flag can be set by uploading the SetSystemEEPROM example sketch.
File > Examples > Arduboy2 > SetSystemEEPROM
Functions writeShowBootLogoLEDsFlag() and readShowBootLogoLEDsFlag() have been added to the library, to allow manipulating the new flag.
For all sketches using the Arduboy2 library that include the boot logo, users can now customize each individual Arduboy so that it will do one of the following:
Perform all features of the boot logo sequence:
- The logo scrolls down.
- The RGB LED flashes red, green, blue.
- If set, a custom Unit Name is displayed at the bottom of the screen after the logo stops scrolling.
This is the default setting.
Display the logo and Unit Name but don’t flash the LEDs. The LEDs remain off.
Display the logo and LEDs but don’t show the Unit Name.
Display the logo only, not the Unit Name or LEDs.
Don’t display the boot logo sequence at all. Go straight to the sketch when the Arduboy is powered up or reset.
Note that for sketches that leave out the text functions of the library by using the Arduboy2Base class instead of the Arduboy2 class, the Unit Name won’t be displayed regardless of the “show Unit Name” EEPROM flag setting.
Note also that even if the logo is left enabled, it can be bypassed or aborted by pressing the RIGHT button when powering up or while the logo is scrolling down.
P.S. The Unit Name (up to 6 characters) can be set using the aforementioned SetSystemEEPROM example sketch.
Discussion And Survey - Boot Vs Begin
Arduboy2 library version 5.2.0 has been released and is available through the Arduino Library Manager.
Release change notes:
Added function generateRandomSeed(), which will return a random value suitable for seeding random number generators. (This new function is now used by the initRandomSeed() function.) Thanks @Pharap
Function drawPixel() has been rewritten to address an issue with the compiler introduced in Arduino V1.8.6. It has also been made static. Plus, it saves a few bytes of program memory. Thanks @Mr.Blinky
Constructors were added to the Point and Rect objects used for collision detection features. The collide() functions were made static. Thanks @Pharap
Minor cleanup of
#includestatements. Thanks @Pharap
Arduboy2 library version 5.2.1 has been released and is available through the Arduino Library Manager.
This release has only a few minor changes, which won’t affect the majority of users.
Release change notes:
Changed the loopto label in fillScreen() to a local label, to prevent a “symbol already defined” error under some circumstances. Thanks @blakewford
Exposed all Print::write() overloads in the inherited Print class. Thanks @Pharap
Added a CONTRIBUTING.md file, to specify how commit messages should be formatted.
Thinking of making a low-memory / lower speed version of the library… any interest in that being in core and determined with defines? I’m not completely sure I actually want to support the exact same API anyways, but just thought I’d float the idea here.
I always tried to optimize the main library for small size/high speed. But now I’m thinking about really small size/small RAM footprint being the main drivers, which means taking quite a few things in entirely different directions.
But I think such a “sister” library would be perfect for some of the slower paced games we’re seeing that would benefit from more flash storage or more RAM.
It’s probably better to fork and maintain it separately. Using defines can get complicated if there are many changes. Also, it’s not easy to pass defines to an Arduino library, since the libraries are pre-compiled separately from the sketch code.
Yeah, I was kind of thinking that. Its is possible (see what Gamebuino does), but it’s kind of a royal pain.
Its an interesting idea - as you say, a lot of games actually do not need the performance or even all of the bells and whistles of the current library and would benefit from extra memory savings.