Commit graph

1076 commits

Author SHA1 Message Date
Corwin 99f01caea4 some fun affine matrix functions! 2022-10-08 23:39:19 +01:00
Corwin f17084d4f6 Merge remote-tracking branch 'upstream/master' into object-controller2 2022-10-08 23:36:59 +01:00
Gwilym Kuiper f921da930a Fix doc comment 2022-10-08 23:15:54 +01:00
Gwilym Kuiper a09be56319 Fix example 2022-10-08 23:08:04 +01:00
Gwilym Kuiper f5f73e89f5
Merge branch 'master' into affine 2022-10-08 23:03:42 +01:00
Gwilym Kuiper 1e759dbeca Move the palettes to a single constant rather than being repeated 2022-10-08 23:02:54 +01:00
Gwilym Kuiper 9bddbdba1c Seal the TiledMap trait 2022-10-08 22:40:20 +01:00
Gwilym Kuiper 5c578df227 transparent colour definition isn't really needed here 2022-10-08 22:34:54 +01:00
Gwilym Kuiper 7d43903ee0
Merge pull request #323 from gwilymk/remove-frequency-features
Remove frequency features
2022-10-08 22:24:07 +01:00
Gwilym Kuiper cc66b65847 Update the docs 2022-10-08 21:39:48 +01:00
Gwilym Kuiper 870478353c Use the correct buffer sizes 2022-10-08 21:20:13 +01:00
Gwilym Kuiper c0821c9229 Ensure packed(4) 2022-10-08 17:14:58 +01:00
Gwilym Kuiper fe2e480f28 Remove pointless casts 2022-10-08 17:13:25 +01:00
Gwilym Kuiper faed7b456f Avoid double transforming 2022-10-08 17:12:50 +01:00
Gwilym Kuiper e63e830a9c Merge remote-tracking branch 'origin/master' into affine 2022-10-08 17:05:00 +01:00
Gwilym Kuiper c5f6e10889 Update all toml files to the new transparent requirement 2022-10-08 16:59:40 +01:00
Corwin c90e8de893 clippy autofix 2022-10-08 11:34:43 +01:00
Gwilym Kuiper c6d961cd8d Almost works 2022-10-02 21:18:29 +01:00
Gwilym Kuiper 2ffc68c5c1 Start making the frequency field dynamic rather than a feature flag 2022-10-02 21:14:01 +01:00
Corwin 5e0795ae14 add garbage collection using hashmap retain 2022-10-02 20:05:13 +01:00
Corwin 7143621407 use unsafe around creating new static sprites, no guarentee that it does it correctly though 2022-10-02 19:34:38 +01:00
Corwin b7448d714e remove unused arena 2022-10-02 19:34:38 +01:00
Corwin 5d541631ae add dynamic sprite support 2022-10-02 19:34:38 +01:00
Corwin 1acf7142da switch to using rust Rc 2022-10-02 19:34:38 +01:00
Corwin 5d21f720a5 add arena library 2022-10-02 19:34:38 +01:00
Corwin 88e1635fb1 unify types 2022-10-02 19:34:38 +01:00
Corwin 781e1efc6f satisfy linter 2022-10-02 19:34:38 +01:00
Corwin 758f9849c3 track the lifetime of the static object controller 2022-10-02 19:34:38 +01:00
Gwilym Kuiper 4bf3e0d597 Add tests for size_hint and ensure .iter() returns a better iterator 2022-10-02 19:10:50 +01:00
Gwilym Kuiper 78554862c8 Move the tests to a better location 2022-10-02 19:05:29 +01:00
Gwilym Kuiper a44b8a4013 Add comment explaining the continue statement 2022-10-02 19:00:59 +01:00
Gwilym Kuiper c658b6afe5 Add implementation of retain to HashMap 2022-10-02 18:55:21 +01:00
Gwilym Kuiper 2d23f0a36c Implement size_hint for the hashmap iterators 2022-10-02 18:44:48 +01:00
Gwilym Kuiper ae5d8818b6 Fix test in release mode (don't know why this works :/ but is more correct) 2022-10-01 17:09:48 +01:00
Gwilym Kuiper ffde16abd9 Remove crate::println! 2022-10-01 15:31:19 +01:00
Gwilym Kuiper ccc3823085 Remove unused import 2022-10-01 15:30:46 +01:00
Gwilym Kuiper cde3bca0ea Make the background rotate again 2022-10-01 15:30:37 +01:00
Gwilym Kuiper dd2030d354 Use the fact that tris turn into integers nicely 2022-10-01 15:29:42 +01:00
Gwilym Kuiper 63b0fa63c6 packed(4) to ensure alignment 2022-10-01 15:28:53 +01:00
Gwilym Kuiper 83c28254a1 Update to be closer to the API I actually want but currently only works in release mode 2022-09-22 23:29:58 +01:00
Gwilym Kuiper 59673206b3 Make the example work the way I expect it to 2022-09-22 21:34:03 +01:00
Gwilym Kuiper 496b4a4953 repr packed 2022-09-22 21:33:59 +01:00
Gwilym Kuiper 84c87a8088 Merge remote-tracking branch 'origin/master' into affine 2022-09-22 20:13:23 +01:00
Alissa Rao b920d94f83
Remove agb-tests in favor of putting the tests directly in agb. 2022-09-15 23:28:38 -07:00
Alissa Rao 8f3e438070
Final round of bugfixes, documentation fixes and clippy warning fixes. 2022-09-15 23:25:17 -07:00
Alissa Rao 821098dd26
Implement EEPROM save media.
Fix EEPROM implementation.
2022-09-15 23:25:16 -07:00
Alissa Rao 8dd0f4768a
Add support for flash save media. 2022-09-15 23:25:16 -07:00
Alissa Rao 4397bb0d66
Add tests for cartridge save access. 2022-09-15 23:25:16 -07:00
Alissa Rao 2be44c12e5
Improve codestyle in asm_routines.s, remove unsafe save implementation in hyperspace-roll. 2022-09-15 23:25:16 -07:00
Alissa Rao ec41db2fc9
Reintegrate SRAM save media reader. 2022-09-15 23:25:13 -07:00
Alissa Rao d50413a3cc
Update the code style of the save module to better match agb's philosophy. 2022-09-15 23:25:08 -07:00
Alissa Rao 217f42a635
Initial work on porting gba save code to agb codebase. 2022-09-15 23:20:07 -07:00
Alissa Rao 6d51d1bef3
Rework a simpler example to use agb::sync instead of bare_metal. 2022-09-15 23:14:30 -07:00
Alissa Rao 89c76616b6
Implement a new sync API allowing for mutexes that don't require disabling IRQs. 2022-09-15 23:14:27 -07:00
Gwilym Kuiper 654bff0cb7 Mark ignore on test runner docs 2022-09-15 22:47:08 +01:00
Gwilym Kuiper 68fb9c7e02 Remove reference to the testing feature 2022-09-15 22:39:44 +01:00
Gwilym Kuiper d6c5099209 Make testing a default feature 2022-09-15 22:37:36 +01:00
Gwilym Kuiper 45e9c860df Fix small issues from latest clippy version 2022-09-15 21:04:10 +01:00
Gwilym Kuiper fcde651821 Allow movement of the affine background 2022-08-12 00:02:10 +01:00
Gwilym Kuiper 97e3948f32 Fix warnings and remove debug logs 2022-08-11 23:49:51 +01:00
Gwilym Kuiper ff89f7f425 Get first example working 2022-08-11 23:49:51 +01:00
Gwilym Kuiper 9a5ecc5cda Assert replace tile is passed two tiles of the same size 2022-08-11 23:49:51 +01:00
Gwilym Kuiper d106b0a82b Simplify map.rs 2022-08-11 23:49:51 +01:00
Gwilym Kuiper affea47a32 Remove const and rustfmt::skip 2022-08-11 23:49:51 +01:00
Gwilym Kuiper 31f85cf6b9 Simplify tiled0-2 2022-08-11 23:49:51 +01:00
Gwilym Kuiper d59e2672c0 Remove features 2022-08-11 23:49:51 +01:00
lifning ee576597c2 Add rudimentary affine background layer support. 2022-08-11 23:49:51 +01:00
Corwin d5c9312dc4 add convenience functions for performing multiple actions on one layer 2022-08-09 19:16:12 +01:00
Corwin afa9ef9109 add docs for blend 2022-08-09 19:16:12 +01:00
Corwin 921c26f7c2 add blending to the window example 2022-08-09 19:16:12 +01:00
Corwin 7ad160e30f use struct newtypes 2022-08-09 19:16:12 +01:00
Corwin cae71ff249 add blend to distributor 2022-08-09 19:16:12 +01:00
Corwin 41ccd56919 new function for blend 2022-08-09 19:16:12 +01:00
Corwin d0b3d9e7b3 add blend abstraction 2022-08-09 19:16:12 +01:00
Corwin ca9c898c14 add general set bits 2022-08-09 19:16:12 +01:00
Corwin 4a5f77ddd6 fix doc comment to link correctly 2022-08-06 21:16:11 +01:00
Corwin 12d4a8cd81 add module level docs 2022-08-06 12:51:59 +01:00
Corwin e1448f7d81 write docs for windows 2022-08-06 12:36:28 +01:00
Corwin 78ff4011c7 merge imports 2022-08-06 12:36:28 +01:00
Corwin dbbd7a3d34 add some inlines to small functions 2022-08-06 12:36:28 +01:00
Corwin e318898197 add example for window 2022-08-06 12:36:28 +01:00
Corwin 2b4a95a4a9 clamp the position before converting to u8 2022-08-06 12:36:28 +01:00
Corwin 648ce375d5 enabling and disabling windows 2022-08-06 12:36:28 +01:00
Corwin f9d9220ead function to reset the window 2022-08-06 12:36:28 +01:00
Corwin 44fd7d0027 use a name matching rust conventions 2022-08-06 12:36:28 +01:00
Corwin 7735baecc9 use a more sensible ordering of numbers 2022-08-06 12:36:28 +01:00
Corwin a188e7ba66 add abstraction over windows 2022-08-06 12:36:28 +01:00
Corwin 10423d0752 background id exposed 2022-08-06 12:36:28 +01:00
Corwin 99af3e2b17
Merge pull request #281 from corwinkuiper/hashmap-allocator
Custom allocator support in HashMap
2022-08-04 21:55:51 +01:00
Gwilym Kuiper 73cec55e05 Move crt0.s and interrupt_handler.s to src 2022-08-04 20:08:18 +01:00
Corwin 5b3d288079 support custom allocators in hashmap 2022-08-04 19:27:08 +01:00
Corwin e3ac5de377 make the allocators clonable 2022-08-04 19:26:55 +01:00
Corwin 2e97fb2b24 Release v0.11.1 2022-08-02 23:52:43 +01:00
Corwin 43b256a9f3 Release v0.11.0 2022-08-02 23:45:44 +01:00
Gwilym Kuiper 14f42670d2
Merge pull request #277 from gwilymk/deny-missing-docs-in-hashmap
Deny missing docs in HashMap and document remaining two public structs
2022-08-02 22:59:53 +01:00
Gwilym Kuiper 460cf7db91 Deny missing docs in HashMap and document two public structs 2022-08-02 22:52:16 +01:00
Corwin 267fe80981 remove doc outside of agb_fixnum 2022-08-02 19:40:22 +01:00
Corwin 46c5dcd2de inline docs in agb crate 2022-08-02 18:49:00 +01:00
Corwin 940a92b021
Merge pull request #271 from lifning/master
Support armv4t-none-eabi target as well.
2022-08-01 20:38:39 +01:00
Corwin f7d6199ab2 add the config to be able to compile this 2022-08-01 17:36:02 +01:00
Corwin 9410f6ed1d update docs 2022-08-01 12:07:50 +01:00
lifning 22e9cbccc0 Support armv4t-none-eabi target as well. 2022-08-01 02:20:03 -07:00
Corwin 0409a20527 add examples demonstrating this 2022-08-01 01:38:26 +01:00
Corwin a7e038aa18 Release v0.10.0 2022-07-31 17:08:48 +01:00
Corwin 567244d7dc remove print from test 2022-07-31 14:45:26 +01:00
Corwin 473fc12cee document objects 2022-07-31 13:42:41 +01:00
Gwilym Kuiper 3903b10d15
Merge pull request #266 from gwilymk/update-include-gfx-docs
Update include_gfx! documentation
2022-07-31 11:38:01 +01:00
Corwin cd70a3ed22 update docs 2022-07-31 01:06:36 +01:00
Corwin e92e8d39a5 implement allocators as zsts 2022-07-31 01:06:36 +01:00
Gwilym Kuiper acf33a5058 Update include_gfx! documentation 2022-07-31 00:04:52 +01:00
Gwilym Kuiper 3ec95a0277
Merge pull request #265 from gwilymk/gc-vram-at-the-correct-time
Run the GC after copying the tiles rather than before
2022-07-30 23:22:07 +01:00
Corwin b39b6f43b3 correct end address of range 2022-07-30 22:49:26 +01:00
Gwilym Kuiper 14e371c911 Run the GC after copying the tiles rather than before 2022-07-30 22:42:01 +01:00
Corwin 0c25eb6bee fix doc examples 2022-07-30 19:47:34 +01:00
Corwin 7f760d4404 add some doc comments to explain the allocators 2022-07-30 19:34:40 +01:00
Corwin feea7d2af1 privatise agb_alloc crate 2022-07-30 19:34:30 +01:00
Corwin cd000ca767 use the end of all assigned iwram data 2022-07-30 17:21:46 +01:00
Corwin a3de583d40 fix 2022-07-30 17:07:18 +01:00
Corwin 433fad15a1 mark function as pub crate so it's not used outside agb 2022-07-30 16:52:41 +01:00
Corwin 002ccc64dd implement allocator api so we can allocate to (ew/iw)ram 2022-07-30 16:40:48 +01:00
Gwilym Kuiper 0111ec43bb agb_start_tests can now be doc(hidden) 2022-07-25 22:49:18 +01:00
Gwilym Kuiper 20aebd349a Provide an empty #[entry] in lib.rs 2022-07-25 22:49:17 +01:00
Gwilym Kuiper 2e505f9684 Remove the need for a special test implementation 2022-07-25 22:49:17 +01:00
Gwilym Kuiper 9231d16071 Add some documentation for the test runner 2022-07-25 22:49:17 +01:00
Gwilym Kuiper 553a625c91 Mkae it possible to run tests in target crates (and add a basic tests in hat-wizard) 2022-07-25 22:49:17 +01:00
Corwin 29c74f6286 move commit 2022-07-24 21:30:45 +01:00
Gwilym Kuiper 8df9f4b5c4 Go back to using DMA for sprites 2022-07-21 20:52:07 +01:00
Gwilym Kuiper c2a4845a2e Add a must_use to pos 2022-07-21 20:34:26 +01:00
Gwilym Kuiper 3de22df7a2 Add get and set position on sound channels 2022-07-17 10:32:01 +01:00
Gwilym Kuiper a5e0e145d2 Attempt to support changing the volume of stereo sound 2022-07-16 18:47:39 +01:00
Corwin 1be10ba450 align sprite data to 2 byte boundaries 2022-07-16 13:36:33 +01:00
Gwilym Kuiper 2026e49569 Start the tile ram one tile in to prevent overwriting the transparent tile 2022-07-16 09:12:15 +01:00
Corwin ebc4e15f3d constify sprite function 2022-07-15 21:59:36 +01:00
Gwilym Kuiper a9da4a65f9 Update agbabi's memcpy 2022-07-14 22:43:41 +01:00
Gwilym Kuiper 6d1d3d2b9d Add repository to Cargo.toml files
Fixes #253
2022-07-14 21:49:53 +01:00
Gwilym Kuiper 4a6b093f6d Update mixer doctests 2022-07-12 15:07:28 +01:00
Gwilym Kuiper 70b227d471 Get doctests working for mixer/mod.rs 2022-07-12 15:00:52 +01:00
Gwilym Kuiper 8929486387 Make doctest in interrupt.rs work 2022-07-12 14:45:45 +01:00
Gwilym Kuiper 5e317ef192 Get doctests working on lib.rs (will fix ignored later) 2022-07-12 14:39:50 +01:00
Gwilym Kuiper 643891a9de Make the doctests work for infinite_scrolled_map 2022-07-12 14:37:32 +01:00
Gwilym Kuiper eeefec6e27 Make the first infinite_scrolled_map test run 2022-07-12 14:21:13 +01:00
Gwilym Kuiper 4c63058ba0 Fix example 2022-07-12 13:42:30 +01:00
Gwilym Kuiper 86b9c2b3dd Deny missing docs in mixer 2022-07-12 13:33:32 +01:00
Gwilym Kuiper 2c7db427f8 Document sw_mixer 2022-07-12 13:32:35 +01:00
Gwilym Kuiper d78d9155bf Allow impl Into<Num<...>> to make it a bit simpler 2022-07-12 12:53:17 +01:00
Gwilym Kuiper ead344ca0b Document the whole of mixer/mod.rs 2022-07-12 12:50:40 +01:00
Gwilym Kuiper d3c8480ce0 Write some docs for the mixer 2022-07-12 12:29:35 +01:00
Gwilym Kuiper 3f1f290791 Bring memset.s in line with latest agbabi 2022-06-24 21:19:52 +01:00
Gwilym Kuiper fcbaacac1b Update to the latest agbabi memcpy 2022-06-24 21:12:14 +01:00
Gwilym Kuiper e08aaf6c7a Reduce input and output offsets to 0..8 to half run time 2022-06-22 23:40:41 +01:00