Commit graph

24 commits

Author SHA1 Message Date
Corwin 400abe5b31
Release v0.15.0 2023-04-25 21:51:29 +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
Gwilym Inzani 9835f81b5f Maybe make the build faster by using the same settings for all crates 2023-04-25 20:22:44 +01:00
Corwin e26a9c2c24
Merge remote-tracking branch 'upstream/master' into new-objects 2023-04-22 00:46:41 +01:00
Gwilym Inzani 45343efe52 Update lockfiles 2023-04-13 22:33:59 +01:00
Corwin fc5ce97db4
Release v0.14.0 2023-04-11 21:28:22 +01:00
Gwilym Inzani 8af41a9b3c Add required fields for publishing 2023-04-09 18:40:33 +01:00
Gwilym Inzani 1c56de287a Do the padding correctly 2023-04-09 18:33:37 +01:00
Gwilym Inzani 2412ac4dc5 Add GPL 3.0 licence for gbafix as required by dependencies 2023-04-08 21:22:02 +01:00
Gwilym Inzani f70a280aea Don't create a dictionary here 2023-04-08 21:18:56 +01:00
Gwilym Inzani 7ec077e08a Implement makercode as expected 2023-04-08 21:18:27 +01:00
Gwilym Inzani 32d19debfb Add -p argument for compatibility with stock gbafix 2023-04-08 21:13:22 +01:00
Gwilym Inzani b13318f699 Autogenerate the title 2023-04-07 00:03:00 +01:00
Gwilym Inzani e87c90d7ad Remove cargo feature 2023-04-06 23:59:28 +01:00
Gwilym Inzani d81c28a0d0 Allow configuration of the header 2023-04-06 23:56:19 +01:00
Gwilym Inzani 8aa6e3182b Add a CLI 2023-04-06 23:43:57 +01:00
Gwilym Inzani 44e0d24f1b Pad the result 2023-04-06 23:35:44 +01:00
Gwilym Inzani b76781799a Use anyhow for errors 2023-04-06 23:16:38 +01:00
Gwilym Inzani d278d50528 Extract function 2023-04-06 23:13:42 +01:00
Gwilym Inzani 07318256e0 Generate correct 0 bytes 2023-04-06 23:09:19 +01:00
Gwilym Inzani a111a41deb Extract constant 2023-04-06 21:55:11 +01:00
Gwilym Inzani dce7a6726e Add the correct header 2023-04-06 21:54:26 +01:00
Gwilym Inzani aa77255720 Correct error message 2023-04-06 21:10:03 +01:00
Gwilym Inzani 16c3395524 Really basic elf parser 2023-04-06 21:09:44 +01:00