v0.0.7 Beta
It's been a long time coming
It's been about 6 months since I tagged a new release and a lot has changed.
Daft Freak has, as usual, been an absolute legend; carrying the torch with numerous 32Blit software improvements while we've been tangled up surviving lockdown.
The codebase has moved forward to embrace C++17 features such as string_view
, which now requires a minimum GCC version of 7, which added experimental support for these features. Ubuntu 20.04 is recommended and includes GCC 9. @Daft-Freak also supplies a PPA with a GCC backport for 18.04 users.
New Tooling Requirements
- CMake minimum version is now 3.8
- GCC minimum version is now GCC 7
- Python minimum version is 3.6
Screenshots
@Daft-Freak has graced 32Blit's firmware with the ability to dump the framebuffer into a .bmp file.
Just use the "Take Screenshot" option in the menu, and a numerically ordered "screenshotX.bmp" will be saved to the SD card.
Palette Mode
Also gracing this release, albeit it's been around for a while, is palette mode. We don't know if this is its final form but it makes a lot of sense for DOS ports. If my lockdown-addled, tired and rusty memory serves it was added by @Daft-Freak to support his DOOM port - https://github.com/Daft-Freak/32BlitDoom
Nicer Firmware Menu
@Daft-Freak has also ported some of our firmware menu enhancements into the master branch, this - at long last - brings the ability to have more games on 32Blit than is possible to fit on a single screen.
TLDR
Documentation:
Thank you to @shane-powell, @ahnlak and @mylogon341 for contributing to the documentation.
New stuff:
- new paletted screen mode! (thanks @Daft-Freak)
- Embedded/concatenated assets can be treated as files (thanks @Daft-Freak)
- Rename/remove added to file API (thanks @Daft-Freak)
vec2 * vec2
(multiply operator) (thanks @Daft-Freak)- firmware menu has a screenshot button! (thanks @Daft-Freak)
- firmware game list now scrolls, whee! (thanks @lowfatcode and @Daft-Freak)
- hard faults will now reset back to firmware, with an error screen (thanks @Daft-Freak)
API changes:
blit::pi
is the newmath_pi
orM_PI
(thanks @Daft-Freak)- all basic types are moved into the
blit
namespace (thanks @Daft-Freak) - various methods converted to snake_case and other tidying (clang-tidy) (thanks @Daft-Freak)
clip
argument removed fromtext
, now uses global clipping rect (thanks @Daft-Freak)blit::buttons
is now a struct with.pressed
and.released
tracking (thanks @Daft-Freak)
Fixes, tweaks & tidyup:
- QSPI switched to 4-byte addressing for those tasty tasy high bytes (thanks @Daft-Freak)
- i2c bus speed bumped to 400KHz
- fixes to battery voltage ADC reading, increasing integration time
- multiple tweaks for code size reduction (thanks @Daft-Freak)
- fixed overflow/loading bugs in Surface (thanks @ymauray)
- fix audio timing from ~21633Hz to ~22048Hz (thanks @Daft-Freak)
- numerous SD card tweaks, fixes and performance enhancements (thanks @Daft-Freak)
- fixes & tweaks to 32Blit uploader tool (cpp) (thanks @illbewithee & @sminifie2)
- fixed game template not compiling with VS2019 (thanks @lenardg)
- tweaks to mass storage- can manually exit if not mounted, resets when USB disconnected (thanks @Daft-Freak)
Examples:
- Flight and Platformer now use asset pipeline (thanks @Daft-Freak)
- New jpeg example (thanks @Daft-Freak)
I've tried to highlight everything noteworthy- but it's a huge changeset. For a complete list of commits in this release, see: v0.0.6...v0.0.7