v2.8.0
2.8.0 release of the Agon Console8 VDP
This is the fourteenth official release of the Agon Console8 variant of the VDP firmware. It is suitable to be installed and run on any and all Agon Console8 and Agon Light machines, and is fully compatible with either versions 1.04 or later of the Agon Quark MOS or version 2.0.0 or later of the Agon Console8 MOS software.
Please note that the build files for this release have been removed, as this version contains a bug that makes upgrading the VDP more difficult. That bug was fixed in the (now outdated) 2.8.1 release. You are advised however to skip to the latest VDP release.
Supporting development
If you would like to support the development of the Agon Console8 and Agon Light firmware, you can sponsor me on GitHub or join my Patreon.
Please also consider supporting @breakintoprogram on Ko-Fi
Release notes
Technically, this is a "minor" release, which includes quite a few significant new features and bug fixes.
The biggest two features are the addition of a font management API, which allows for different fonts of different sizes to be uploaded to the VDP and used in place of the system font, and a graphics system context management API. The context management API will allow you to temporarily save the current graphics system context/state to a stack so you can make changes and then easily restore back to that saved state. Additionally completely separate context stacks can be selected; this can for example allow for multiple separate text viewports which can have different cursor settings and active fonts.
In summary, the new features in the 2.8.0 release are as follows:
- Font management API
- Upload fonts to buffers
- Easily select and use multiple fonts
- Context management API
- Save/restore current graphics state to a context stack
- Allow the selection and use of multiple separate/independent contexts
- Easily reset individual areas of graphics state
- Optimised text printing (measured at up to 50% faster)
- Enhanced viewport and graphics origin management commands
- Set text and/or graphics viewports and graphics origin from graphics cursor positions
- Added a "flush drawing queue" command
- VDP now boots into mode 0, a 16 colour mode
- Significant performance improvements to buffered commands API (from @calc84maniac )
- Greatly increases the speed in processing most buffer commands, especially "adjust" operations
- Compression and decompression of buffers (from @TurboVega )
- Allows significant performance boost for loading data onto the VDP
- Support for multi-direction scrolling in MODE 7 (from @lennart-benschop )
Full documentation on these new features is found in the agon-docs site
Bug fixes in the 2.8.0 release are:
- Some more cursor movement related bug fixes
- Fixes for relative coordinate-based plotting when changing origin and chosen coordinate system
- VDU 26 now actually resets graphics origin (which it was always documented to do)
Upgrading from a Console8 2.x version, or Quark 1.4 RC3
If you are already using a Console8 version 2 release of the VDP (including Alpha releases), or Quark 1.4 RC3 or later, then you are strongly recommended to use the agon-flash utility, the latest release of which (v1.6 at the time of writing) can be downloaded here.
Simply download the firmware.bin
release file below, place it on your Agon's SD card, and follow the instructions.
Upgrading from Quark 1.03 or 1.04 (before 1.4 RC3)
Upgrading can be done by building from source using PlatformIO.
Alternatively instead of building one can use esptool
from the command line of a Windows, Linux, or MacOS machine, or the ESP Flash tool on Windows using the bootloader.bin
, partitions.bin
and firmware.bin
files attached to this release. Some advice on how to do that can be found here.
This release was built using PlatformIO.
What's Changed
- Optimizations for buffered commands API by @calc84maniac in #186
- Added MODE7 scroll in all four directions by @lennart-benschop in #202
- Support multiple different graphics contexts by @stevesims in #200
- optimised string printing by @stevesims in #203
- add new “shift origin” command by @stevesims in #205
- ensure that buffers are properly cleared by @stevesims in #206
- Compression and decompression by @TurboVega in #204
- bump version to 2.8.0 by @stevesims in #207
New Contributors
- @calc84maniac made their first contribution in #186
- @lennart-benschop made their first contribution in #202
Full Changelog: v2.7.3...v2.8.0