diff --git a/butano/include/bn_config_assert.h b/butano/include/bn_config_assert.h index 2ab7a8a4..0eac270a 100644 --- a/butano/include/bn_config_assert.h +++ b/butano/include/bn_config_assert.h @@ -13,7 +13,7 @@ * @ingroup assert */ -#include "bn_common.h" +#include "bn_version.h" /** * @def BN_CFG_ASSERT_ENABLED @@ -39,6 +39,17 @@ #define BN_CFG_ASSERT_SHOW_DIAGNOSTIC true #endif +/** + * @def BN_CFG_ASSERT_TAG + * + * Specifies the default tag displayed in assert messages. + * + * @ingroup assert + */ +#ifndef BN_CFG_ASSERT_TAG + #define BN_CFG_ASSERT_TAG BN_VERSION_STRING " " BN_TOOLCHAIN_TAG +#endif + /** * @def BN_CFG_ASSERT_BUFFER_SIZE * diff --git a/butano/include/documentation/bn_documentation_g_changelog.h b/butano/include/documentation/bn_documentation_g_changelog.h index d1fa3591..56d0c49f 100644 --- a/butano/include/documentation/bn_documentation_g_changelog.h +++ b/butano/include/documentation/bn_documentation_g_changelog.h @@ -15,6 +15,7 @@ * @section changelog_18_8_0 18.8.0 (next release) * * * bn::best_fit_allocator::check_empty_on_destructor and bn::best_fit_allocator::set_check_empty_on_destructor added. + * * @ref BN_CFG_ASSERT_TAG added. * * Import tool now allows to specify the width of sprites and sprite tiles. * See the @ref import_image import guide to learn how to specify it. * * Show the sum of the ticks of all entries in the profiler results. diff --git a/butano/src/bn_core.cpp b/butano/src/bn_core.cpp index 6dc901d2..4d94e982 100644 --- a/butano/src/bn_core.cpp +++ b/butano/src/bn_core.cpp @@ -11,7 +11,6 @@ #include "bn_keypad.h" #include "bn_memory.h" #include "bn_timers.h" -#include "bn_version.h" #include "bn_profiler.h" #include "bn_system_font.h" #include "bn_bgs_manager.h" @@ -19,6 +18,7 @@ #include "bn_link_manager.h" #include "bn_gpio_manager.h" #include "bn_audio_manager.h" +#include "bn_config_assert.h" #include "bn_keypad_manager.h" #include "bn_memory_manager.h" #include "bn_display_manager.h" @@ -132,7 +132,7 @@ namespace timer cpu_usage_timer; ticks last_ticks; bn::system_font system_font; - string_view assert_tag = BN_VERSION_STRING " " BN_TOOLCHAIN_TAG; + string_view assert_tag = BN_CFG_ASSERT_TAG; int skip_frames = 0; int last_update_frames = 1; int missed_frames = 0; diff --git a/docs/changelog.html b/docs/changelog.html index 4702008d..49e7c0b7 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -220,7 +220,7 @@
new
calls with user-provided operator new
overloads fixed.green_swap
example to see how to set how a background must be displayed when green swap is enabled.operator<<
added.operator<<
added.libstdc++
is now linked by default (thanks asie!).create_new
map methods are deprecated.create
methods is now optional.timer
example added.README.md
.Tools no longer crash on Windows with more than 60 logical CPU cores.
BN_UNREACHABLE
deprecated.nullptr
is disallowed (thanks C++23).nullptr
char array is disallowed.constexpr
.constexpr
anymore (it didn't work before).nullptr
constructor and method overloads added to bn::new
and delete
supported.bn::is_constant_evaluated
replaced with consteval
.operator!=
implementations removed.hdma_palette
example added.README.md
.random
example added.log
example improved.profiler
coroutine test.Makefile
.friend
operators allow different levels of precision.profiler
coroutine test improved.profiler
test.README.md
.profiler
test.log
example to see how to log the current stack trace.bn::pair
is now a std::pair
alias.profiler
example simplified.profiler
test.README.md
.bn::
world_map
example.blending
example to learn how to do it.__FILE_NAME__
macro is no longer required.profiler
example.STACKTRACE
makefile variable.GRAPHICS
, AUDIO
and DMGAUDIO
makefile variables accept file and folder paths.bn::audio::dmg_sync_enabled
and bn::audio::set_dmg_sync_enabled
removed as they don't work properly.dynamic_regular_bg
example shows how to deal with multiple palette ids.dynamic_regular_bg
and dynamic_affine_bg
examples.date_time
example to learn how to deal with the RTC.memcmp
optimized.*.gba
file is rebuilt when the target *.elf
file isn't present.audio
example to learn how to stop, release and setup sound effects with them.bn::
Python 2 support restored.
BN_DATA_EWRAM_BSS
added.bn::
*.vgm
extension thanks to VGM player. See the DMG music import guide and the dmg_audio
example to learn how to import and play it.BG blocks commit fixed.
Slow game pak detection fixed (again).
map_collision
example added.memcmp
optimized.Makefile
.height
field.height
field is now optional.bn::
protected
to allow child classes to access them.compile_commands.json
generation support.Tonclib linking error fixed.
world_map
example fixed.memset
undefined references with link-time optimization fixed.
memset
moved to IWRAM.memset
fixed.README.md
.bn::
memset
fixed.dynamic_regular_bg
and dynamic_affine_bg
examples are imported without using a map.bn::
sram
example.Recovery of deleted background maps fixed.
dynamic_regular_bg
example.README.md
.README.md
.BN_CODE_IWRAM
macro can be used for thumb code too._ptr
suffix ROM usage reduced.bn::
Huffman images compression support (make sure to update devkitARM before using it).
bn::
__FILE_NAME__
macro check added.memcpy
and memset
optimized thanks to agbabi.Makefile
.world_map
example.Makefile
.mod2gbt
executable is no longer necessary for importing DMG music with *.mod
extension.BMP files colors count calculation fixed (again).
dmg_audio
example to learn how to import and play it.README.md
.bn::
README.md
.BN_CFG_SPRITE_TEXT_MAX_UTF8_CHARACTERS
removed..elf
files No$gba support restored.-O0
builds support restored.palettes
example to learn how to use it.README.md
.inline
keyword usages removed.uncompress
methods renamed to decompress
.bn_graphics
to bn_gfx
. Remember to rebuild your project after updating.Audio and HDMA issues when updating at less than 60FPS fixed.
Makefile
.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.readme.txt
file for details).dynamic_regular_bg
example added.dynamic_bg
example renamed to dynamic_affine_bg
and improved.bn::
README.md
.bn::
common
namespace.constexpr inline
to avoid being copied to every translation unit.*.elfbin
output files renamed to *.elf
as it should.constexpr
.constexpr const
replaced with constexpr
where it makes sense.Makefile
. See the external_tool
example to learn how to call it.dynamic_bg
example added.noexcept
.texture_polygons
example affine parameters fixed.world_map
example.Automatic sprite double size detection fixed.
BG blocks manager use after move fixed.
world_map
example frame rate back to 60FPS.texture_polygons
example added.rumble
example.bn::
butano-graphics-tool.py
errors reporting improved.butano-graphics-tool.py
now uses all CPU cores.<cstddef>
is always included (bn_cstddef.h
header file removed).world_map
example flickering).affine_bgs
, mode_7
and world_map
examples for more.hdma_polygons
example for more.bn::
bn::constexpr
.
Thanks to the awesome gba-link-connection, multiplayer support has been implemented! See bn::link
example for more.
bpp_mode()
methods have been renamed to bpp()
.btn
renamed to bn
. No more API breaks will be made between minor releases after 1.0.0, promise.-flto
thanks to using less build translation units.First release.
new
calls with user-provided operator new
overloads fixed.green_swap
example to see how to set how a background must be displayed when green swap is enabled.operator<<
added.operator<<
added.libstdc++
is now linked by default (thanks asie!).create_new
map methods are deprecated.create
methods is now optional.timer
example added.README.md
.Tools no longer crash on Windows with more than 60 logical CPU cores.
BN_UNREACHABLE
deprecated.nullptr
is disallowed (thanks C++23).nullptr
char array is disallowed.constexpr
.constexpr
anymore (it didn't work before).nullptr
constructor and method overloads added to bn::new
and delete
supported.bn::is_constant_evaluated
replaced with consteval
.operator!=
implementations removed.hdma_palette
example added.README.md
.random
example added.log
example improved.profiler
coroutine test.Makefile
.friend
operators allow different levels of precision.profiler
coroutine test improved.profiler
test.README.md
.profiler
test.log
example to see how to log the current stack trace.bn::pair
is now a std::pair
alias.profiler
example simplified.profiler
test.README.md
.bn::
world_map
example.blending
example to learn how to do it.__FILE_NAME__
macro is no longer required.profiler
example.STACKTRACE
makefile variable.GRAPHICS
, AUDIO
and DMGAUDIO
makefile variables accept file and folder paths.bn::audio::dmg_sync_enabled
and bn::audio::set_dmg_sync_enabled
removed as they don't work properly.dynamic_regular_bg
example shows how to deal with multiple palette ids.dynamic_regular_bg
and dynamic_affine_bg
examples.date_time
example to learn how to deal with the RTC.memcmp
optimized.*.gba
file is rebuilt when the target *.elf
file isn't present.audio
example to learn how to stop, release and setup sound effects with them.bn::
Python 2 support restored.
BN_DATA_EWRAM_BSS
added.bn::
*.vgm
extension thanks to VGM player. See the DMG music import guide and the dmg_audio
example to learn how to import and play it.BG blocks commit fixed.
Slow game pak detection fixed (again).
map_collision
example added.memcmp
optimized.Makefile
.height
field.height
field is now optional.bn::
protected
to allow child classes to access them.compile_commands.json
generation support.Tonclib linking error fixed.
world_map
example fixed.memset
undefined references with link-time optimization fixed.
memset
moved to IWRAM.memset
fixed.README.md
.bn::
memset
fixed.dynamic_regular_bg
and dynamic_affine_bg
examples are imported without using a map.bn::
sram
example.Recovery of deleted background maps fixed.
dynamic_regular_bg
example.README.md
.README.md
.BN_CODE_IWRAM
macro can be used for thumb code too._ptr
suffix ROM usage reduced.bn::
Huffman images compression support (make sure to update devkitARM before using it).
bn::
__FILE_NAME__
macro check added.memcpy
and memset
optimized thanks to agbabi.Makefile
.world_map
example.Makefile
.mod2gbt
executable is no longer necessary for importing DMG music with *.mod
extension.BMP files colors count calculation fixed (again).
dmg_audio
example to learn how to import and play it.README.md
.bn::
README.md
.BN_CFG_SPRITE_TEXT_MAX_UTF8_CHARACTERS
removed..elf
files No$gba support restored.-O0
builds support restored.palettes
example to learn how to use it.README.md
.inline
keyword usages removed.uncompress
methods renamed to decompress
.bn_graphics
to bn_gfx
. Remember to rebuild your project after updating.Audio and HDMA issues when updating at less than 60FPS fixed.
Makefile
.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.readme.txt
file for details).dynamic_regular_bg
example added.dynamic_bg
example renamed to dynamic_affine_bg
and improved.bn::
README.md
.bn::
common
namespace.constexpr inline
to avoid being copied to every translation unit.*.elfbin
output files renamed to *.elf
as it should.constexpr
.constexpr const
replaced with constexpr
where it makes sense.Makefile
. See the external_tool
example to learn how to call it.dynamic_bg
example added.noexcept
.texture_polygons
example affine parameters fixed.world_map
example.Automatic sprite double size detection fixed.
BG blocks manager use after move fixed.
world_map
example frame rate back to 60FPS.texture_polygons
example added.rumble
example.bn::
butano-graphics-tool.py
errors reporting improved.butano-graphics-tool.py
now uses all CPU cores.<cstddef>
is always included (bn_cstddef.h
header file removed).world_map
example flickering).affine_bgs
, mode_7
and world_map
examples for more.hdma_polygons
example for more.bn::
bn::constexpr
.
Thanks to the awesome gba-link-connection, multiplayer support has been implemented! See bn::link
example for more.
bpp_mode()
methods have been renamed to bpp()
.btn
renamed to bn
. No more API breaks will be made between minor releases after 1.0.0, promise.-flto
thanks to using less build translation units.First release.
Specifies if asserts diagnostic information must be shown or not.
Disabling diagnostic information reduces ROM size.
+ +Specifies the default tag displayed in assert messages.