Commit graph

3320 commits

Author SHA1 Message Date
Corwin 400abe5b31
Release v0.15.0 2023-04-25 21:51:29 +01:00
Corwin b5d8201eb0
Add toolchain file for hashmap (#422)
- [x] no changelog update needed
2023-04-25 21:49:52 +01:00
Corwin febee09e3a
add toolchain file 2023-04-25 21:43:17 +01:00
Corwin 68e981f3c8
Objects, again, again (#402)
* A redesign of objects giving the option of a more managed and an
unmanaged system.
* Managed system features
    * Z ordering (should be efficient, based on a doubly linked list).
* More than 128 objects if some are disabled (not currently efficient).
* Unmanaged
    * Same sprite system as before.
    * You control how objects get put in to OAM with the unmanaged OAM.
    
TODO before this is mergable:
* [x] Docs pass, aim for everything to have docs as before.
* [x] Tests, some of these needs some run time testing.
* [x] Affine matrices, I'm not leaving this to die this time.
* [x] Some API redo, so the names make sense / are similar to before.

Future work:
* The Sprite loader should keep most recently used sprites around and
upon allocation of a new sprite try unloading the least recently used
sprite. (Performance wise this would be a disaster as it would be doing
dealloc and alloc in vblank, so really we want to "learn" how much
buffer we should maintain and try to get that during GC).

- [x] Changelog updated
2023-04-25 21:14:49 +01:00
Corwin 409798c3bf
use fancy way of getting and setting slots 2023-04-25 21:07:31 +01:00
Corwin 929eef1569
add deny 2023-04-25 21:01:04 +01:00
Corwin d54560f362
fix warnings 2023-04-25 21:00:26 +01:00
Corwin 4ea75bc064
add amplitude to combo rom 2023-04-25 20:57:18 +01:00
Corwin 9dc3f46209
Make test runner sounder (#421)
- [x] no changelog update needed
2023-04-25 20:44:05 +01:00
Corwin d44461610d
go back to tab spacing 2023-04-25 20:39:25 +01:00
Corwin 1eadd5bdf7
make it sounder 2023-04-25 20:34:47 +01:00
Gwilym Inzani d45486b189
Maybe make the build faster by using the same settings for all crates (#420)
Just creating a PR so I can time the CI

- [x] Changelog updated / no changelog update needed
2023-04-25 20:32:53 +01:00
Corwin e78a6624ff
add amplitude 2023-04-25 20:32:28 +01:00
Gwilym Inzani 9835f81b5f Maybe make the build faster by using the same settings for all crates 2023-04-25 20:22:44 +01:00
Gwilym Inzani 3747d6192a
Ensure mod tests is at the end (#419)
Fixes build failure

- [x] Changelog updated / no changelog update needed
2023-04-25 20:17:13 +01:00
Gwilym Inzani 8e152f05c9 Ensure mod tests is at the end 2023-04-25 20:06:52 +01:00
Corwin 3ec9bd2610
Merge remote-tracking branch 'upstream/master' into new-objects 2023-04-23 20:44:46 +01:00
Corwin 8ab539acbb
add changelog entries 2023-04-23 20:43:09 +01:00
Corwin 94a8e2d4c3
add deprecation for old names 2023-04-23 20:41:42 +01:00
Gwilym Inzani 6355ac0df7
Extract agb hashmap (#418)
Pulls out the hashmap to its own crate. Allows us to use this in interop
code between agb and desktop code and also gives us the ability to run
miri on it to make sure we're not running into any crazy unsoundness
bugs.

- [x] Changelog updated / no changelog update needed
2023-04-23 19:25:33 +01:00
Corwin b75481b88e
Merge remote-tracking branch 'upstream/master' into new-objects 2023-04-23 18:56:07 +01:00
Corwin 14c7028aa0
reverse change of name 2023-04-23 18:55:23 +01:00
Gwilym Inzani cd369f212e Ensure tests run on hashmap too 2023-04-23 18:48:16 +01:00
Gwilym Inzani 4cace7b01d Also for remove 2023-04-23 18:45:39 +01:00
Gwilym Inzani 11b98eab29 Give index and get_mut the Borrow treatment 2023-04-23 18:44:03 +01:00
Gwilym Inzani 39edc4ab36 Also do Borrow shenanigans for get and get_key_value 2023-04-23 18:40:13 +01:00
Gwilym Inzani 150b1a3078 Add documentation example and add Borrow stuff for easier contains_key 2023-04-23 18:37:30 +01:00
Gwilym Inzani d594e9e078 Also build docs for agb-hashmap 2023-04-23 18:37:22 +01:00
Gwilym Inzani 88d3d027b7 Maybe we need to set nightly as default? 2023-04-23 18:08:59 +01:00
Gwilym Inzani a053c8f0c3 Seems nightly isn't installed by default 2023-04-23 18:06:52 +01:00
Gwilym Inzani 6d0bd187a2 Explicitly state nightly 2023-04-23 18:04:42 +01:00
Gwilym Inzani 6d7801788e Add changelog entry 2023-04-23 18:02:00 +01:00
Gwilym Inzani 7029b66c62 Update lockfiles 2023-04-23 18:00:31 +01:00
Gwilym Inzani 0841759c8d Fix publish test 2023-04-23 17:58:59 +01:00
Gwilym Inzani 69687aa519 Import all the denys from the main crate 2023-04-23 17:58:45 +01:00
Gwilym Inzani 9c27e9ca4d Add section about agb-hashmap in the readme 2023-04-23 17:48:55 +01:00
Gwilym Inzani f667804cf8 Add section in readme about miri 2023-04-23 17:47:15 +01:00
Gwilym Inzani db0eab7589 Add miri test step 2023-04-23 17:46:00 +01:00
Gwilym Inzani 4ade408d30 Avoid the really slow test under miri 2023-04-23 17:43:30 +01:00
Gwilym Inzani d80e3f876e Extract agb hashmap to its own crate 2023-04-23 17:39:00 +01:00
Corwin 0ed84d699a
Remove alloc error handler (#417)
* Increases minimum nightly version

- [x] No changelog update needed
2023-04-23 14:00:34 +01:00
Corwin da61ba78ae
remove alloc error handler 2023-04-23 12:50:15 +01:00
Corwin e26a9c2c24
Merge remote-tracking branch 'upstream/master' into new-objects 2023-04-22 00:46:41 +01:00
Corwin 7e1f996d90
correct doc test 2023-04-22 00:40:06 +01:00
Corwin 6417570a51
add docs 2023-04-21 17:14:51 +01:00
Gwilym Inzani 06db23d574
New include gfx macro (#414)
Replaces `include_gfx!` with `include_background_gfx!` which is much
nicer since it doesn't require the external toml file. See the example
repos for how much better it is :).

Also adds support for aseprite files in `include_background_gfx` and
uses that ability where we still have the original files.

- [x] Changelog updated / no changelog update needed
2023-04-18 21:14:28 +01:00
Corwin 15411aaec5
Move mixer frame (#416)
Some cracking maybe

- [x] No changelog update needed
2023-04-18 20:42:16 +01:00
Gwilym Inzani 1e0102d615 Also update the combo rom 2023-04-18 20:29:45 +01:00
Corwin f3c4593a51
move mixer frame 2023-04-18 20:25:31 +01:00
Gwilym Inzani 6575a067b5 Fix documentation compilation 2023-04-18 20:07:08 +01:00