VSCode wants the changelog formatted like this now

This commit is contained in:
Gwilym Inzani 2023-07-12 11:54:43 +01:00
parent 682a63b055
commit 868e7d4339

View file

@ -1,4 +1,5 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
@ -7,10 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Added ### Added
- New `include_palette` macro for including every colour in an image as a `u16` slice. - New `include_palette` macro for including every colour in an image as a `u16` slice.
- New object based text renderer. - New object based text renderer.
### Changed ### Changed
- Changed the default template game. - Changed the default template game.
- `DynamicSprite` has a new API which changes the constructor and adds a `set_pixel` and `clear` methods. - `DynamicSprite` has a new API which changes the constructor and adds a `set_pixel` and `clear` methods.
- You no longer need to install arm-none-eabi-binutils. In order to write games using `agb`, you now only need to install rust nightly. - You no longer need to install arm-none-eabi-binutils. In order to write games using `agb`, you now only need to install rust nightly.
@ -19,10 +22,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.15.0] - 2023/04/25 ## [0.15.0] - 2023/04/25
### Added ### Added
- You can now import aseprite files directly (in addition to the already supported png and bmp files) when importing background tiles. - You can now import aseprite files directly (in addition to the already supported png and bmp files) when importing background tiles.
- New additional unmanaged object API for interacting with a more straightforward manner with the underlying hardware. - New additional unmanaged object API for interacting with a more straightforward manner with the underlying hardware.
### Changed ### Changed
- Importing background tiles has been improved. You no longer need to use `include_gfx!` with the toml file. Instead, use `include_background_gfx`. See the documentation for usage. - Importing background tiles has been improved. You no longer need to use `include_gfx!` with the toml file. Instead, use `include_background_gfx`. See the documentation for usage.
- The hashmap implementation is now it its own crate, `agb-hashmap`. There is no change in API, but you can now use this for interop between non-agb code and agb code. - The hashmap implementation is now it its own crate, `agb-hashmap`. There is no change in API, but you can now use this for interop between non-agb code and agb code.
- Moved the existing object API to be the OamManaged API. The old names persist with deprecated notices on them. - Moved the existing object API to be the OamManaged API. The old names persist with deprecated notices on them.
@ -30,9 +35,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.14.0] - 2023/04/11 ## [0.14.0] - 2023/04/11
### Added ### Added
- Added custom `gbafix` implementation which can take the elf file produced by `cargo build` directly, removing the need for the objcopy step. - Added custom `gbafix` implementation which can take the elf file produced by `cargo build` directly, removing the need for the objcopy step.
### Changed ### Changed
- Made Vector2D::new a const function. - Made Vector2D::new a const function.
- The template now uses rust 2021 edition by default. - The template now uses rust 2021 edition by default.
- All objects which should only be created once now have the correct lifetimes to only allow one to exist. - All objects which should only be created once now have the correct lifetimes to only allow one to exist.
@ -41,6 +48,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Soundness issues with interrupts resolved which makes them unsafe and require the closure to be static (breaking change). - Soundness issues with interrupts resolved which makes them unsafe and require the closure to be static (breaking change).
### Fixed ### Fixed
- Alpha channel is now considered by `include_gfx!()` even when `transparent_colour` is absent. - Alpha channel is now considered by `include_gfx!()` even when `transparent_colour` is absent.
- 256 colour backgrounds are now correctly rendered (breaking change). - 256 colour backgrounds are now correctly rendered (breaking change).
- The `#[agb::entry]` macro now reports errors better. - The `#[agb::entry]` macro now reports errors better.
@ -49,14 +57,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.13.0] - 2023/01/19 ## [0.13.0] - 2023/01/19
### Added ### Added
- Added missed implementations of `regular()` and `affine()` to `Tiled1` which made `Tiled1` impossible to use. - Added missed implementations of `regular()` and `affine()` to `Tiled1` which made `Tiled1` impossible to use.
### Changed ### Changed
- Text renderer can now be re-used which is useful for rpg style character/word at a time text boxes. - Text renderer can now be re-used which is useful for rpg style character/word at a time text boxes.
- Audio now automatically uses interrupts, so you can remove the `setup_interrupt_handler` or `after_vblank` calls to the mixer. - Audio now automatically uses interrupts, so you can remove the `setup_interrupt_handler` or `after_vblank` calls to the mixer.
- If a vblank happens outside of `wait_for_vblank`, then next call will immediately return. - If a vblank happens outside of `wait_for_vblank`, then next call will immediately return.
### Fixed ### Fixed
- Zero volume now plays no sound. - Zero volume now plays no sound.
- Fixed issue where volume was incorrect for volumes which were powers of 2. - Fixed issue where volume was incorrect for volumes which were powers of 2.
@ -65,6 +76,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
This is a minor release to fix an alignment issue with background tiles. This is a minor release to fix an alignment issue with background tiles.
### Fixed ### Fixed
- Corrected alignment of background tiles which was causing issues with rendering tiles in some cases. - Corrected alignment of background tiles which was causing issues with rendering tiles in some cases.
## [0.12.1] - 2022/10/12 ## [0.12.1] - 2022/10/12
@ -72,6 +84,7 @@ This is a minor release to fix an alignment issue with background tiles.
This is a minor release to fix the build of the docs on [docs.rs/agb](https://docs.rs/agb). This is a minor release to fix the build of the docs on [docs.rs/agb](https://docs.rs/agb).
### Fixed ### Fixed
- Fixed the agb crate's docs.rs build - Fixed the agb crate's docs.rs build
## [0.12.0] - 2022/10/11 ## [0.12.0] - 2022/10/11
@ -84,6 +97,7 @@ This version of `agb` has some exciting new features we'd like to highlight and
We also had a contribution by @ijc8. We can't thank you all enough! We also had a contribution by @ijc8. We can't thank you all enough!
### Added ### Added
- Custom allocator support using the `Allocator` trait for `HashMap`. This means the `HashMap` can be used with `InternalAllocator` to allocate to IWRAM or the `ExternalAllocator` to explicitly allocate to EWRAM. - Custom allocator support using the `Allocator` trait for `HashMap`. This means the `HashMap` can be used with `InternalAllocator` to allocate to IWRAM or the `ExternalAllocator` to explicitly allocate to EWRAM.
- Support for using windows on the GBA. Windows are used to selectively enable rendering of certain layers or effects. - Support for using windows on the GBA. Windows are used to selectively enable rendering of certain layers or effects.
- Support for the blend mode of the GBA. Blending allows for alpha blending between layers and fading to black and white. - Support for the blend mode of the GBA. Blending allows for alpha blending between layers and fading to black and white.
@ -96,6 +110,7 @@ We also had a contribution by @ijc8. We can't thank you all enough!
- Added support for dynamic sprites generated at runtime, some parts of this may change significantly so breaking changes are expected here. - Added support for dynamic sprites generated at runtime, some parts of this may change significantly so breaking changes are expected here.
### Changed ### Changed
- Many of the places that originally disabled IRQs now use the `sync` module, reducing the chance of missed interrupts. - Many of the places that originally disabled IRQs now use the `sync` module, reducing the chance of missed interrupts.
- HashMap iterators now implement `size_hint` which should result in slightly better generation of code using those iterators. - HashMap iterators now implement `size_hint` which should result in slightly better generation of code using those iterators.
- Transparency of backgrounds is now set once in the toml file rather than once for every image. - Transparency of backgrounds is now set once in the toml file rather than once for every image.
@ -104,6 +119,7 @@ We also had a contribution by @ijc8. We can't thank you all enough!
- `testing` is now a default feature, so you no longer need to add a separate `dev-dependencies` line for `agb` in order to enable unit tests for your project. - `testing` is now a default feature, so you no longer need to add a separate `dev-dependencies` line for `agb` in order to enable unit tests for your project.
### Fixed ### Fixed
- Fixed the fast magnitude function in agb_fixnum. This is also used in fast_normalise. Previously only worked for positive (x, y). - Fixed the fast magnitude function in agb_fixnum. This is also used in fast_normalise. Previously only worked for positive (x, y).
- Fixed formatting of fixed point numbers in the range (-1, 0), which previously appeared positive. - Fixed formatting of fixed point numbers in the range (-1, 0), which previously appeared positive.
@ -112,14 +128,17 @@ We also had a contribution by @ijc8. We can't thank you all enough!
Version 0.11.1 brings documentation for fixed point numbers. We recommend all users upgrade to this version since it also includes fixes to a few functions in fixnum. See changed section for breaking changes. Version 0.11.1 brings documentation for fixed point numbers. We recommend all users upgrade to this version since it also includes fixes to a few functions in fixnum. See changed section for breaking changes.
### Added ### Added
- Support for sprites that are not square. - Support for sprites that are not square.
- Docs for fixed point numbers. - Docs for fixed point numbers.
### Changed ### Changed
- `Rect::contains_point` now considers points on the boundary to be part of the rectangle. - `Rect::contains_point` now considers points on the boundary to be part of the rectangle.
- Signature of `Rect::overlapping_rect` changed to return an Option. Returns None if rectangles don't overlap. - Signature of `Rect::overlapping_rect` changed to return an Option. Returns None if rectangles don't overlap.
### Fixed ### Fixed
- Fixed point sine calculates the sine correctly. - Fixed point sine calculates the sine correctly.
## [0.10.0] - 2022/07/31 ## [0.10.0] - 2022/07/31
@ -127,6 +146,7 @@ Version 0.11.1 brings documentation for fixed point numbers. We recommend all us
Version 0.10.0 brings about many new features. As with most `agb` upgrades, you will need to update your `gba.ld` and `gba_mb.ld` files which you can find in the [template repo](https://github.com/agbrs/template). We would also recommend copying the `[profile.dev]` and `[profile.release]` sections from `Cargo.toml` if you don't have these values already. Version 0.10.0 brings about many new features. As with most `agb` upgrades, you will need to update your `gba.ld` and `gba_mb.ld` files which you can find in the [template repo](https://github.com/agbrs/template). We would also recommend copying the `[profile.dev]` and `[profile.release]` sections from `Cargo.toml` if you don't have these values already.
### Added ### Added
- [Hyperspace roll](https://lostimmortal.itch.io/hyperspace-roll), a new game built for the GMTK Game Jam 2022 using `agb`. The source code can be found in the `examples` directory. - [Hyperspace roll](https://lostimmortal.itch.io/hyperspace-roll), a new game built for the GMTK Game Jam 2022 using `agb`. The source code can be found in the `examples` directory.
- Started using GitHub discussions as a forum - Started using GitHub discussions as a forum
- Many functions previously undocumented are now documented - Many functions previously undocumented are now documented
@ -143,6 +163,7 @@ Version 0.10.0 brings about many new features. As with most `agb` upgrades, you
- Random number generator in agb::rng - Random number generator in agb::rng
### Changed ### Changed
- Audio system optimisations - reduced CPU usage by more than 50% - Audio system optimisations - reduced CPU usage by more than 50%
- Background tiles are now removed from Video RAM during `commit()` if they are no longer used rather than immediately reducing flickering - Background tiles are now removed from Video RAM during `commit()` if they are no longer used rather than immediately reducing flickering
- Improved the README for both the main agb crate and the template - Improved the README for both the main agb crate and the template
@ -152,9 +173,11 @@ Version 0.10.0 brings about many new features. As with most `agb` upgrades, you
- A few methods accepting `Num<..>` have been changed to accept `impl Into<Num<..>>` to make them easier to use - A few methods accepting `Num<..>` have been changed to accept `impl Into<Num<..>>` to make them easier to use
### Removed ### Removed
- The ability to use timer0 and timer1 through the `timer` module. This was done in order to fully support 32kHz audio - The ability to use timer0 and timer1 through the `timer` module. This was done in order to fully support 32kHz audio
### Fixed ### Fixed
- Sprite data is now correctly aligned so fast copies will always work - Sprite data is now correctly aligned so fast copies will always work
- A few methods which should really be internal have had `pub` removed - A few methods which should really be internal have had `pub` removed
- The crate now compiles (but does not run) doctests in CI which pointed out a large number of non-compiling examples - The crate now compiles (but does not run) doctests in CI which pointed out a large number of non-compiling examples