diff --git a/butano/include/bn_documentation.h b/butano/include/bn_documentation.h
index d6f221dfb..94f700d0e 100644
--- a/butano/include/bn_documentation.h
+++ b/butano/include/bn_documentation.h
@@ -2156,7 +2156,7 @@
* @tableofcontents
*
*
- * @section changelog_15_8_0 15.8.0 (next release)
+ * @section changelog_15_8_0 15.8.0
*
* * Color-related H-Blank effects cleanup fixed.
* * @ref getting_started page improved.
diff --git a/butano/include/bn_version.h b/butano/include/bn_version.h
index dfb390f75..794565644 100644
--- a/butano/include/bn_version.h
+++ b/butano/include/bn_version.h
@@ -34,7 +34,7 @@
* @ingroup other
*/
#ifndef BN_VERSION_MINOR
- #define BN_VERSION_MINOR 7
+ #define BN_VERSION_MINOR 8
#endif
/**
@@ -45,7 +45,7 @@
* @ingroup other
*/
#ifndef BN_VERSION_PATCH
- #define BN_VERSION_PATCH 1
+ #define BN_VERSION_PATCH 0
#endif
/**
@@ -56,7 +56,7 @@
* @ingroup other
*/
#ifndef BN_VERSION_STRING
- #define BN_VERSION_STRING "15.7.1"
+ #define BN_VERSION_STRING "15.8.0"
#endif
/**
diff --git a/docs/changelog.html b/docs/changelog.html
index bf7e9883f..72248312b 100644
--- a/docs/changelog.html
+++ b/docs/changelog.html
@@ -52,7 +52,7 @@
Contents
-Python 2 support restored.
bn:: display:: size added.Standard abort implemented. Color-related H-Blank effects update fixed. Slow game pak detection fixed (again).
bn:: seed_random added.Standard assert implemented. Thread-safe initialization of local statics disabled. Static destructors fixed. Maps commit optimized by more than 35% in some cases. Palette search optimized by more than 25% in some cases. Big maps commit optimized. Display setup commit optimized. BG blocks and sprite tiles managers ROM usage reduced. map_collision
example added.memcmp
optimized.Link flags fixed. Brightness, contrast and intensity color effects optimized. bn:: random internal variables are protected
to allow child classes to access them.compile_commands.json
generation support.-flto
memset
undefined references fixed.
memset
moved to IWRAM.Backdrop fade blending fixed. bn:: any management with types that can't be copied, moved or swapped fixed.
BN_ BASIC_ ASSERT added.Repeated color palettes reduction can be disabled when importing a regular background. See the Regular backgrounds import guide to learn how to disable it. Unaligned byte memset
fixed. Asserts without diagnostic information ROM usage reduced. Input tiles in dynamic_regular_bg
and dynamic_affine_bg
examples are imported without using a map. Frequently asked questions (FAQ) page improved.Recovery of deleted background maps fixed.
SRAM magic string fixed. BN_CODE_IWRAM
macro can be used for thumb code too.Destructors of classes with _ptr
suffix ROM usage reduced. 4BPP regular backgrounds quantization improved. Some error messages improved. Import images guide explains why Usenti is recommended over other image editors.bn:: sprite_text_generator variable width fonts rendering fixed and optimized.Sprite shape and size update ROM usage reduced. Some Cppcheck warnings removed. Automatic sprite double size detection fixed. Sprite tiles management optimized (EWRAM and CPU usage reduced). Background tiles and maps management optimized (EWRAM and CPU usage reduced). Color palettes management CPU usage reduced. Sprites and sprite affine mats management CPU usage reduced. Backgrounds management CPU usage reduced. Cameras management CPU usage reduced. Sprite tiles delayed commit fixed. V-Blank interrupt management optimized (EWRAM and CPU usage reduced). Missed link messages frequency reduced. bn:: timer:: elapsed_ticks optimized.(Breaking change) bn:: aligned fixed.Color effects optimized. Huffman images compression support (make sure to update devkitARM before using it).
Avoid data decompression in V-Blank if possible. Audio updates can no longer be interrupted. Custom linker flags can be specified in the project's Makefile
. Asserts ROM usage reduced. Audio startup fixed when link-time optimization is enabled. Audio stop fixed when link communication is active. Parallel link-time optimization temporal files ignored and added to the list of files to clean. BMP files colors count calculation fixed (again).
Hue shift palette effect added. See the palettes
example to learn how to use it. Brightness effect ROM usage reduced. bn:: sprite_item and bn:: sprite_tiles_item size reduced.Automatic sprite double size detection fixed. bn::hbe_visible_toggle_action removed, since it was not possible to use it. Clang build fixes. Clang-Tidy warnings fixed. New games made with Butano added to README.md
. Modified assets detection optimized. Audio and graphics tools unified in order to reduce build time. bn::newton_raphson_sqrt removed, since it doesn't work for bn:: fixed input values. An external bn:: bg_palette_item can be specified when importing regular and affine backgrounds. Colors count can be specified when importing sprite and background palettes. Standard containers equality comparison optimized. Asserts file name hack fixed. Universal GBA Library LGPL license files removed.Standard containers documentation improved. Frequently asked questions (FAQ) page improved.Maps commit optimized by more than 50% in some cases. Integer alignment at minimum enforced in all containers. BG blocks manager and sprite tiles manager commit fixed. (Security issue) Source code files full path is not stored in output ROMs anymore.Some Clang-Tidy and Cppcheck warnings removed. Audio and HDMA issues when updating at less than 60FPS fixed.
Run-length is preferred to LZ77 when choosing best compression mode. Sprites automatic double size mode and affine matrix management fixed. Frequently asked questions (FAQ) page improved.bn:: sprite_text_generator now can plot multiple 16x16 variable width characters in a single sprite.bn:: sprite_text_generator IWRAM usage reduced.Third party libraries to link can be specified in the project's Makefile
. Project's Makefile
allows to build source files generated with an external tool. See the external_tool
example to learn how to do it. butano-audio-tool.py
generates a list of all available music and sound items with their name.audio_player
example added.Varooom 3D improved (check its readme.txt
file for details).Varooom 3D source code and assets added.Maximum number of active H-Blank effects reduced to 6. Common files moved to common
namespace. Generated items are now constexpr inline
to avoid being copied to every translation unit. Sprites EWRAM usage reduced. Different type backgrounds sorting fixed. bn::sort with 128bit sort keys fixed. IRQs setup during startup improved. An external tool can be called from the project's Makefile
. See the external_tool
example to learn how to call it. Affine background tiles offset optimized. Big numbers to string conversion optimized. 32bit integer division optimized. 64bit integer division by 0 assert added. Big maps maximum valid position fixed. Compressed tiles warning fixed. GCC11 warning fixed. Some 8x8 sprite text characters fixed. Qt Creator setup guide added.More questions added to Frequently asked questions (FAQ) page. dynamic_bg
example added.Affine background tiles offset fixed. bn:: sprite_font supports all sprite shapes and sizes.Trivial type containers destruction optimized. Container destructors are always noexcept
. Redundant container asserts removed. GPIO direction register setup. Sprites optimized. Blending optimized. Mosaic optimized. Internal memory transfers optimized. texture_polygons
example affine parameters fixed.Clouds removed from world_map
example. Automatic sprite double size detection improved. Butano Fighter allows to disable rumble in the title menu. Automatic sprite double size detection fixed.
BG blocks manager use after move fixed.
SRAM memory usage reduced. Sprite animate actions memory usage reduced. Missing asserts added to some actions. bn:: random is now a trivial class.BG blocks manager search fixed. world_map
example frame rate back to 60FPS.Sprite tiles generation outputs sprite shape and size. BN_ ASSERT and BN_ ERROR can be modified or disabled for specific code sections.Sprites IWRAM usage reduced. Some internal asserts removed. Profiler screen fixed. Documentation explains how to place data in ROM. bn:: sprite_font allows to specify space between characters.Background palettes bits per pixel mode can be specified by the user. Palettes change optimized. Unused palette colors are not imported anymore. bn:: sprite_ptr:: set_tiles() validation fixed.H-Blank effects EWRAM usage reduced (more than 2KB by default). Optimization level changed to -O2
to avoid another No$gba crash. SRAM code moved back from ROM to EWRAM, since doing that doesn't make No$gba crash anymore. Redundant reset code removed. Sprite and background palettes can be generated from images alone, without tiles nor maps. <cstddef>
is always included (bn_cstddef.h
header file removed).bn:: unordered_map and bn:: unordered_set assignment fixed.H-Blank effects optimized (it fixes world_map
example flickering). SRAM code moved from EWRAM to ROM to avoid a No$gba crash. HDMA properly supported (now it works at less than 60fps). See bn:: hdma and the hdma_polygons
example for more. gba-link-connection remote timeout detection fixed.By removing some method overloads, lots of runtime asserts when creating resources have been removed. bn::palette_bpp_mode has been renamed to bn:: bpp_mode and bpp_ mode()
methods have been renamed to bpp()
. 8 bits per pixel background tiles allocation fixed. btn
renamed to bn
. No more API breaks will be made between minor releases after 1.0.0, promise.Background tiles manager status can be printed in the log with bn:: bg_tiles:: log_status() . This is done automatically when a non-optional background tiles allocation fails too. Background regular maps manager status can be printed in the log with bn:: bg_maps:: log_status() . This is done automatically when a non-optional regular background map allocation fails too. Sprite tiles manager status can be printed in the log with bn:: sprite_tiles:: log_status() . This is done automatically when a non-optional sprite tiles allocation fails too. Color palettes managers status can be printed in the log with bn:: bg_palettes:: log_status() and bn:: sprite_palettes:: log_status() . This is done automatically when a non-optional color palette allocation fails too. Sprites destruction optimized. Setters with an optional parameter added to some classes. Optional components documentation fixed. Other documentation improvements. Sprites update performance improved up to 30% in Butano Fighter thanks to avoid rebuilding sprites list as much as possible. Profiler can show the maximum measured ticks per entry. Assets tools print output binaries size. Performance improved up to 12% in Butano Fighter without -flto
thanks to using less build translation units. Documentation improved.
+Python 2 support restored.
bn:: display:: size added.Standard abort implemented. Color-related H-Blank effects update fixed. Slow game pak detection fixed (again).
bn:: seed_random added.Standard assert implemented. Thread-safe initialization of local statics disabled. Static destructors fixed. Maps commit optimized by more than 35% in some cases. Palette search optimized by more than 25% in some cases. Big maps commit optimized. Display setup commit optimized. BG blocks and sprite tiles managers ROM usage reduced. map_collision
example added.memcmp
optimized.Link flags fixed. Brightness, contrast and intensity color effects optimized. bn:: random internal variables are protected
to allow child classes to access them.compile_commands.json
generation support.-flto
memset
undefined references fixed.
memset
moved to IWRAM.Backdrop fade blending fixed. bn:: any management with types that can't be copied, moved or swapped fixed.
BN_ BASIC_ ASSERT added.Repeated color palettes reduction can be disabled when importing a regular background. See the Regular backgrounds import guide to learn how to disable it. Unaligned byte memset
fixed. Asserts without diagnostic information ROM usage reduced. Input tiles in dynamic_regular_bg
and dynamic_affine_bg
examples are imported without using a map. Frequently asked questions (FAQ) page improved.Recovery of deleted background maps fixed.
SRAM magic string fixed. BN_CODE_IWRAM
macro can be used for thumb code too.Destructors of classes with _ptr
suffix ROM usage reduced. 4BPP regular backgrounds quantization improved. Some error messages improved. Import images guide explains why Usenti is recommended over other image editors.bn:: sprite_text_generator variable width fonts rendering fixed and optimized.Sprite shape and size update ROM usage reduced. Some Cppcheck warnings removed. Automatic sprite double size detection fixed. Sprite tiles management optimized (EWRAM and CPU usage reduced). Background tiles and maps management optimized (EWRAM and CPU usage reduced). Color palettes management CPU usage reduced. Sprites and sprite affine mats management CPU usage reduced. Backgrounds management CPU usage reduced. Cameras management CPU usage reduced. Sprite tiles delayed commit fixed. V-Blank interrupt management optimized (EWRAM and CPU usage reduced). Missed link messages frequency reduced. bn:: timer:: elapsed_ticks optimized.(Breaking change) bn:: aligned fixed.Color effects optimized. Huffman images compression support (make sure to update devkitARM before using it).
Avoid data decompression in V-Blank if possible. Audio updates can no longer be interrupted. Custom linker flags can be specified in the project's Makefile
. Asserts ROM usage reduced. Audio startup fixed when link-time optimization is enabled. Audio stop fixed when link communication is active. Parallel link-time optimization temporal files ignored and added to the list of files to clean. BMP files colors count calculation fixed (again).
Hue shift palette effect added. See the palettes
example to learn how to use it. Brightness effect ROM usage reduced. bn:: sprite_item and bn:: sprite_tiles_item size reduced.Automatic sprite double size detection fixed. bn::hbe_visible_toggle_action removed, since it was not possible to use it. Clang build fixes. Clang-Tidy warnings fixed. New games made with Butano added to README.md
. Modified assets detection optimized. Audio and graphics tools unified in order to reduce build time. bn::newton_raphson_sqrt removed, since it doesn't work for bn:: fixed input values. An external bn:: bg_palette_item can be specified when importing regular and affine backgrounds. Colors count can be specified when importing sprite and background palettes. Standard containers equality comparison optimized. Asserts file name hack fixed. Universal GBA Library LGPL license files removed.Standard containers documentation improved. Frequently asked questions (FAQ) page improved.Maps commit optimized by more than 50% in some cases. Integer alignment at minimum enforced in all containers. BG blocks manager and sprite tiles manager commit fixed. (Security issue) Source code files full path is not stored in output ROMs anymore.Some Clang-Tidy and Cppcheck warnings removed. Audio and HDMA issues when updating at less than 60FPS fixed.
Run-length is preferred to LZ77 when choosing best compression mode. Sprites automatic double size mode and affine matrix management fixed. Frequently asked questions (FAQ) page improved.bn:: sprite_text_generator now can plot multiple 16x16 variable width characters in a single sprite.bn:: sprite_text_generator IWRAM usage reduced.Third party libraries to link can be specified in the project's Makefile
. Project's Makefile
allows to build source files generated with an external tool. See the external_tool
example to learn how to do it. butano-audio-tool.py
generates a list of all available music and sound items with their name.audio_player
example added.Varooom 3D improved (check its readme.txt
file for details).Varooom 3D source code and assets added.Maximum number of active H-Blank effects reduced to 6. Common files moved to common
namespace. Generated items are now constexpr inline
to avoid being copied to every translation unit. Sprites EWRAM usage reduced. Different type backgrounds sorting fixed. bn::sort with 128bit sort keys fixed. IRQs setup during startup improved. An external tool can be called from the project's Makefile
. See the external_tool
example to learn how to call it. Affine background tiles offset optimized. Big numbers to string conversion optimized. 32bit integer division optimized. 64bit integer division by 0 assert added. Big maps maximum valid position fixed. Compressed tiles warning fixed. GCC11 warning fixed. Some 8x8 sprite text characters fixed. Qt Creator setup guide added.More questions added to Frequently asked questions (FAQ) page. dynamic_bg
example added.Affine background tiles offset fixed. bn:: sprite_font supports all sprite shapes and sizes.Trivial type containers destruction optimized. Container destructors are always noexcept
. Redundant container asserts removed. GPIO direction register setup. Sprites optimized. Blending optimized. Mosaic optimized. Internal memory transfers optimized. texture_polygons
example affine parameters fixed.Clouds removed from world_map
example. Automatic sprite double size detection improved. Butano Fighter allows to disable rumble in the title menu. Automatic sprite double size detection fixed.
BG blocks manager use after move fixed.
SRAM memory usage reduced. Sprite animate actions memory usage reduced. Missing asserts added to some actions. bn:: random is now a trivial class.BG blocks manager search fixed. world_map
example frame rate back to 60FPS.Sprite tiles generation outputs sprite shape and size. BN_ ASSERT and BN_ ERROR can be modified or disabled for specific code sections.Sprites IWRAM usage reduced. Some internal asserts removed. Profiler screen fixed. Documentation explains how to place data in ROM. bn:: sprite_font allows to specify space between characters.Background palettes bits per pixel mode can be specified by the user. Palettes change optimized. Unused palette colors are not imported anymore. bn:: sprite_ptr:: set_tiles() validation fixed.H-Blank effects EWRAM usage reduced (more than 2KB by default). Optimization level changed to -O2
to avoid another No$gba crash. SRAM code moved back from ROM to EWRAM, since doing that doesn't make No$gba crash anymore. Redundant reset code removed. Sprite and background palettes can be generated from images alone, without tiles nor maps. <cstddef>
is always included (bn_cstddef.h
header file removed).bn:: unordered_map and bn:: unordered_set assignment fixed.H-Blank effects optimized (it fixes world_map
example flickering). SRAM code moved from EWRAM to ROM to avoid a No$gba crash. HDMA properly supported (now it works at less than 60fps). See bn:: hdma and the hdma_polygons
example for more. gba-link-connection remote timeout detection fixed.By removing some method overloads, lots of runtime asserts when creating resources have been removed. bn::palette_bpp_mode has been renamed to bn:: bpp_mode and bpp_ mode()
methods have been renamed to bpp()
. 8 bits per pixel background tiles allocation fixed. btn
renamed to bn
. No more API breaks will be made between minor releases after 1.0.0, promise.Background tiles manager status can be printed in the log with bn:: bg_tiles:: log_status() . This is done automatically when a non-optional background tiles allocation fails too. Background regular maps manager status can be printed in the log with bn:: bg_maps:: log_status() . This is done automatically when a non-optional regular background map allocation fails too. Sprite tiles manager status can be printed in the log with bn:: sprite_tiles:: log_status() . This is done automatically when a non-optional sprite tiles allocation fails too. Color palettes managers status can be printed in the log with bn:: bg_palettes:: log_status() and bn:: sprite_palettes:: log_status() . This is done automatically when a non-optional color palette allocation fails too. Sprites destruction optimized. Setters with an optional parameter added to some classes. Optional components documentation fixed. Other documentation improvements. Sprites update performance improved up to 30% in Butano Fighter thanks to avoid rebuilding sprites list as much as possible. Profiler can show the maximum measured ticks per entry. Assets tools print output binaries size. Performance improved up to 12% in Butano Fighter without -flto
thanks to using less build translation units. Documentation improved.