Commit graph

875 commits

Author SHA1 Message Date
Gwilym Kuiper
9bfb8de481 Wrap distance_to_initial_bucket a bit better 2022-03-20 14:14:22 +00:00
Gwilym Kuiper
3f624ee87d Fail test in extreme case test if we drop twice 2022-03-20 14:10:38 +00:00
Gwilym Kuiper
9df79a16bd Replace slightly dodgy replace code 2022-03-20 14:04:27 +00:00
Gwilym Kuiper
bde36c7019 Invert the order of the HashMap, Node and NodeStorage 2022-03-20 13:59:01 +00:00
Gwilym Kuiper
e0d829a4fc Rename get_value_ref and get_value_mut to remove get 2022-03-20 13:57:41 +00:00
Gwilym Kuiper
86760f76ac Move resize to a more sensible place 2022-03-20 13:50:04 +00:00
Gwilym Kuiper
e9c56327b1 Avoid duplicating constant 2022-03-20 13:43:31 +00:00
Gwilym Kuiper
3ae0e30d3c Correctly drop key on override 2022-03-20 13:42:28 +00:00
Gwilym Kuiper
9c7d9520a7 Add test that we drop the key on override 2022-03-20 13:41:31 +00:00
Gwilym Kuiper
d4ed1cd2fa Allow swapping out the hasher 2022-03-19 23:13:02 +00:00
Gwilym Kuiper
e68a4d373f Replace .map().flatten() with .and_then() 2022-03-19 23:10:12 +00:00
Gwilym Kuiper
280e7f876d Add some drop tests 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
ee983ef7ec Use MaybeUninit to reduce memory usage by half 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
cd9798d01f Move the implementation of get_location to NodeStorage 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
321702531b Move number_of_items to NodeStorage 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
0e89f9190f Rename NodeStorage.len() to NodeStorage.capacity() 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
fdc2172b3d Move max_distance_to_initial_bucket to NodeStorage 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
cc53b0a911 Change distance_to_initial_bucket to be an i32 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
ff709d9d57 Use .drain(..).flatten() 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
e9d3c6e5c4 Fix clippy lint that we should define is_empty 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
eb00563b09 Add extreme test case and fix bug causing disappearing entries 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
89cc00f8cf Sized is implied 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
a6c7eaec1a Correctly calculate new distance to initial bucket 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
12dab0c3ba Fix issue where we weren't considering 0 distance correctly 2022-03-19 23:09:21 +00:00
Gwilym Kuiper
f7eb1866c2 Remove hashbrown from object.rs 2022-03-19 23:09:20 +00:00
Gwilym Kuiper
5edd46e085 Add default implementation 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
6ff4cbe4f1 Rename put to insert 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
a9115c23e8 Allow for resizing 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
8d976b49bc Extract a node_storage 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
e999b44c67 Put nodes in a NodeStorage 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
03f5cd0953 Add with_capacity method 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
c0d9f0ab41 Correctly initialise to 16 elements 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
bfdca7117d Make fast_mod constant 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
dd5aad0de5 Make HashMap struct public 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
05b8accaec Make the hash_map mod public 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
a459a4811c Add test for iterating through all entries 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
bfebba1ec1 Implement remove 2022-03-19 23:08:45 +00:00
Gwilym Kuiper
019872b8cc Really basic hash map which you can only add stuff to 2022-03-19 23:08:45 +00:00
Corwin
82922abddb
Merge pull request #188 from corwinkuiper/crate-version-numbers
be less specific in version numbers
2022-03-19 15:19:28 +00:00
Gwilym Kuiper
60657126ad Add comment about the #[allow] 2022-03-18 22:02:07 +00:00
Gwilym Kuiper
ccdb0e4921 Add an allow for the clippy bug 2022-03-18 22:01:02 +00:00
Gwilym Kuiper
7ae565b2c3 Remove unused import 2022-03-18 21:53:30 +00:00
Corwin
9d0fa2f40e even less specific 2022-03-18 21:35:32 +00:00
Gwilym Kuiper
add3ccd5fb
Merge pull request #186 from gwilymk/fail-build-if-there-is-an-error
Fail build if there is an error
2022-03-13 20:22:45 +00:00
Gwilym Kuiper
ec8d692029
Merge pull request #185 from gwilymk/use-dma-in-objects
Use dma in objects
2022-03-13 20:14:23 +00:00
Gwilym Kuiper
b88ad5cba5 VRamManager should definitely not have a public new 2022-03-13 20:12:49 +00:00
Gwilym Kuiper
5bf78f6274 Also for raw copy 2022-03-13 19:53:55 +00:00
Gwilym Kuiper
ef8b2edc63 Also dma the palette in backgrounds 2022-03-13 19:53:07 +00:00
Gwilym Kuiper
989fcea1d0 Fix typo in exception 2022-03-13 19:43:03 +00:00
Gwilym Kuiper
ea3d3d4936 Rename dma_copy to dma_copy16 2022-03-13 19:37:27 +00:00
Gwilym Kuiper
056a38703d Use dma in objects 2022-03-13 19:37:08 +00:00
Gwilym Kuiper
50ce96ac82 Delete library cargo.locks 2022-03-12 23:39:58 +00:00
Gwilym Kuiper
3710d9ad1c
Merge pull request #182 from gwilymk/better-backgrounds-gwilym
Improve background management
2022-03-12 23:26:42 +00:00
Corwin
44c7a93fa3 use new api 2022-03-12 17:36:38 +00:00
Corwin
e2bb5cc5c9 add panicing and try variants of api 2022-03-12 17:36:30 +00:00
Gwilym Kuiper
87c5d6ca6a Use the new allocator 2022-03-11 21:49:23 +00:00
GBA bot
3482697a25 Update lockfiles 2022-03-08 00:28:19 +00:00
Renovate Bot
ba0ce97e5a
Update Rust crate rustc-hash to 1.1 2022-03-08 00:27:15 +00:00
Gwilym Kuiper
cdd77afe22 Merge remote-tracking branch 'origin/master' into better-backgrounds-gwilym 2022-03-07 22:41:11 +00:00
Corwin
eb6b2ac5a8 initialise to correct values 2022-03-07 22:03:49 +00:00
Corwin
8c2931aca5 remove unused import 2022-03-07 20:40:53 +00:00
Corwin
40c4a26cb1 update example 2022-03-07 20:38:13 +00:00
Corwin
8f7e7748e2 Graphics 2022-03-07 20:38:06 +00:00
Corwin
6f064b0d99 update lock files 2022-03-06 13:45:16 +00:00
Corwin
4c57f85acd Inline the modulos 2022-03-06 13:37:09 +00:00
Corwin
900cd007df pull out constants 2022-03-06 13:37:07 +00:00
Corwin
c55ff3f714 const fnify 2022-03-06 13:36:50 +00:00
Corwin
8a6f341421 update hat chooses wizard 2022-03-06 13:36:26 +00:00
Corwin
4780b8525d remove unused import 2022-03-06 13:31:56 +00:00
Corwin
592a0814f8 non optional feature alloc 2022-03-06 13:31:56 +00:00
Corwin
84e6af5d2f load aseprite files directly with asefile 2022-03-06 13:31:56 +00:00
Corwin
02e6194073 make fields private 2022-03-06 13:31:56 +00:00
Corwin
6bafa3ebab use public api 2022-03-06 13:31:56 +00:00
Corwin
ecf31fa833 load multiple 2022-03-06 13:31:56 +00:00
Corwin
b3db55330a sprites example 2022-03-06 13:31:56 +00:00
Corwin
25da2a2711 expose the inner proc macro in a macro rules 2022-03-06 13:31:56 +00:00
Corwin
efe67423c1 use the types 2022-03-06 13:31:56 +00:00
Corwin
16ff9b8ec1 types for nice sprite import and usage 2022-03-06 13:31:54 +00:00
Corwin
80e53d4716 volatile writes 2022-03-06 13:31:36 +00:00
Corwin
c1901819af unblank screen on object init 2022-03-06 13:31:36 +00:00
Corwin
45823273ac satisfy linter 2022-03-06 13:31:36 +00:00
Corwin
da9a15402e use more efficient hash function 2022-03-06 13:31:36 +00:00
Corwin
8792146ddb use correct copys 2022-03-06 13:31:36 +00:00
Corwin
ae681019bb set palette location on sprite change 2022-03-06 13:31:36 +00:00
Corwin
2a7b350f57 objects now exist and work 2022-03-06 13:31:36 +00:00
Corwin
a1b67e107f object controller implementations 2022-03-06 13:31:36 +00:00
Corwin
836143e1f4 copy the sprite and palette data 2022-03-06 13:31:36 +00:00
Corwin
d764ff9900 allocate palettes too 2022-03-06 13:31:36 +00:00
Corwin
6a2c9d8826 add some sprite allocation 2022-03-06 13:31:36 +00:00
Corwin
93d994360e make alloc and dealloc public 2022-03-06 13:31:36 +00:00
Corwin
1849571344 sprite allocator 2022-03-06 13:31:34 +00:00
Corwin
beb9abbb7e allocator methods pulled out of global alloc trait 2022-03-06 13:30:47 +00:00
Corwin
475edadcb9 extend to also supporting the end 2022-03-06 13:30:47 +00:00
Corwin
3c6c7efc79 allocator that can have a custom start point 2022-03-06 13:30:47 +00:00
Gwilym Kuiper
39a8b5a64f Update lockfiles 2022-03-05 20:52:26 +00:00
Gwilym Kuiper
803527be23 Fix warning in release mode 2022-03-05 19:52:57 +00:00
Gwilym Kuiper
ba1c2e3eaf Remove unused import 2022-03-05 19:45:01 +00:00
Gwilym Kuiper
d97ceca647 Remove unused function 2022-03-05 19:44:21 +00:00
Gwilym Kuiper
09f6736497 Extract dma_copy to its own module 2022-03-05 19:43:48 +00:00
Gwilym Kuiper
068bc95fe7 Fix warning with non-constant string 2022-03-05 19:35:19 +00:00
Gwilym Kuiper
a3e5187457 Use DMA to copy the entire internal map in one go 2022-03-05 19:35:07 +00:00
Gwilym Kuiper
7b43debd3e WIP: Try removing the hashmap 2022-03-05 19:25:55 +00:00
Gwilym Kuiper
aa7823232b Try using a vec of vecs rather than a hashmap 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
ceb17a0186 Update hat chooses wizard and purple night 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
22c6e37c88 Finally extract InfiniteScrolledMap 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
6b492c5956 Extract more to new files 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
78fb706c9a Extract map to its own file 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
e88602b570 Get my brackets correct 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
a35119fdbd Fix hat chooses the wizard 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
742231fbc5 Try a different transparent tile then 0 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
ed2af0d57e Extract VRamManager to the tiled module 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
f1bc09d6cd Avoid crackle on load 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
d896adfad5 Clear the backgrounds once they aren't used any more 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
de594ad362 Make init take an impl Fn rather than a Box<dyn Fn()> 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
3a913f142a Remove pop while loading a level 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
b0b8ec55c4 Remove unused TILE_BACKGROUND 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
63dd837518 Tiny performance improvement with dma to copy the tile data 2022-03-05 19:25:09 +00:00
Gwilym Kuiper
08aeb56f1e Update background and foreground independentently 2022-03-05 19:25:06 +00:00
Gwilym Kuiper
3941117aa7 Switch to rustc-hash 2022-03-05 19:24:28 +00:00
Gwilym Kuiper
06901b3543 Move post-work to pre-work 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
530b71e0df Copy slightly too much 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
a365c14917 Small fixes 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
3a795fea8f Handle moving up to 10 tiles at once 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
610be70b92 Correctly set the initial offset value in init() 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
a998ae31a4 Correctly use the map width and not the display width 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
ebf21f4add Avoid pointless copies 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
66a61e33e6 More correctly special case tile 0 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
666867e933 Track the generation along with the tile data 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
10c97f48d8 Introduce the MapLoan to infinite scrolled map 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
2c8fce40d3 Store the used backgrounds in a bit array 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
cd05fee360 Use a concrete type for the TileReference 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
5793d6b6ab Introduce methods for increasing and decreasing the reference 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
2a04ebd884 Rename TileReference to VRamState 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
5533c9c052 Fix reuse issue 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
a2c6c6a70c Make the tile references clearer 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
bf10d9a5ff Try copying the correct amount 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
7f0d7757c5 Really trying hard to get this working 2022-03-05 19:23:53 +00:00
Gwilym Kuiper
f785d65057 Something that seems like it is close to working 2022-03-05 19:23:50 +00:00
Gwilym Kuiper
472875edac Update the wave example 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
38e57489a3 Rework the settings a little to allow for raw tile ids 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
cf72a9331a Add API for setting tile data from just a number 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
1286a58511 Ensure that we don't copy twice 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
0081d1c6ee Update the chicken example 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
06c988e952 Fix the test logo and the example 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
8fcb9e607d Special case the first element in references 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
bdeaf346cd Remove the old tile before creating the new one 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
2044cbf379 Generation makes more sense to be a u16 for better data storage 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
0ebd2c2e40 transparent is probably more correct 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
1562e63bee Marker is a better name for this probably 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
7c3725497c Add method to hide background 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
93d82f309e Test logo now displays 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
b2c16f754b Add some room to breathe 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
effaac3885 hopefully enough to actually maybe display something? 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
5ea6eb0f1d Complete re-do of tile storage management in backgrounds 2022-03-05 19:21:54 +00:00
Gwilym Kuiper
6690538781 Some inlines in SoundChannel which weren't being inlined for some reason 2022-03-05 18:51:17 +00:00
GBA bot
03dfaf9d5f Update lockfiles 2022-03-01 20:07:25 +00:00
GBA bot
84ee900e18 Update lockfiles 2022-02-24 20:50:57 +00:00
GBA bot
5a7efa660a Update lockfiles 2022-02-24 20:37:17 +00:00
Corwin Kuiper
1c5978e806 update lock files 2022-01-22 13:11:06 +00:00
Gwilym Kuiper
0744027b39 Update lockfiles 2022-01-20 23:00:53 +00:00
Corwin
5a861e7d48
Merge pull request #161 from corwinkuiper/alloc-better
Improving allocator
2022-01-20 22:53:35 +00:00
Gwilym Kuiper
5f753d791a Fix the entry link and the syntax 2022-01-20 22:34:30 +00:00
Corwin Kuiper
970b38e7da module level docs and test cfg 2022-01-20 22:28:52 +00:00
Corwin Kuiper
f7693f553c pad the either layout to align 2022-01-20 22:20:54 +00:00
Corwin Kuiper
fc6acda14d add some explanatory comments 2022-01-20 22:20:17 +00:00
Corwin Kuiper
08e07a0d37 merge multiple blocks 2022-01-20 19:06:48 +00:00
Corwin Kuiper
1614e46c4e move test runner to own module 2022-01-18 19:49:07 +00:00
Corwin Kuiper
e75adf9e67 check no blocks are leaked during testing 2022-01-18 19:33:25 +00:00
Corwin Kuiper
49c8720c8c A nice allocator!! Merges blocks together 2022-01-18 19:32:22 +00:00
Corwin Kuiper
03e9517215 only use critical section once 2022-01-17 21:46:14 +00:00
Corwin Kuiper
17de9a42bd use bare_metal mutex 2022-01-17 21:44:25 +00:00
Gwilym Kuiper
a9e728a037
Merge pull request #160 from gwilymk/make-agb-entry-create-gba-struct
Make agb entry create gba struct
2022-01-17 19:47:44 +00:00
Gwilym Kuiper
3366bfbfdf Remove siphasher by using DefaultHasher::new instead 2022-01-16 22:10:57 +00:00
Gwilym Kuiper
6d8d72077f Make it harder to call by accident 2022-01-16 21:50:18 +00:00
Gwilym Kuiper
040ff2eb0c Update the rust doc 2022-01-16 21:48:45 +00:00
Gwilym Kuiper
cf9ea504f6 Update agb tests and all the examples 2022-01-16 21:38:30 +00:00
Gwilym Kuiper
17867da596
Merge pull request #155 from agbrs/renovate/syn-1.x
Update Rust crate syn to 1.0.85
2022-01-12 23:18:16 +00:00
Gwilym Kuiper
d44e0fc796 Update lockfiles 2022-01-12 23:05:02 +00:00
Gwilym Kuiper
19f071fd5a Use agb::fixnum rather than agb::number 2022-01-12 22:09:57 +00:00
Corwin Kuiper
5b7e1a760d split to own crate 2022-01-07 16:59:19 +00:00
Corwin Kuiper
3bb3dcf1b6 allow the remaining warnings from clippy 2022-01-06 19:50:35 +00:00
Corwin Kuiper
e5efdcd29c move use to inside function 2022-01-06 19:48:44 +00:00
Corwin Kuiper
222efe9122 move tests to conditionally compiled modules
also only enable custom test framework feature in test mode
2022-01-06 19:47:30 +00:00
Corwin
039bc0acb1
Merge pull request #153 from corwinkuiper/remove-step
remove the step feature
2022-01-04 00:42:33 +00:00
Corwin Kuiper
0e55916865 add test 2022-01-04 00:31:27 +00:00
GBA bot
60e78768a4 You don't need extern crate agb; any more 2022-01-04 00:16:25 +00:00
Corwin Kuiper
6d829bd741 remove the step by feature
should have test to make sure it does what I want it to do
2022-01-04 00:10:51 +00:00
Gwilym Kuiper
e601cc53ca
Merge pull request #151 from gwilymk/remove-feature-asm-now-that-it-is-stable
Remove feature(asm) now that it is stable
2022-01-03 23:53:10 +00:00
GBA bot
234db0da96 Set waitstate to 0x4317 as is standard in most games 2022-01-03 23:27:31 +00:00
GBA bot
8afc57c158 Remove feature(asm) now that it is stable 2022-01-03 23:02:26 +00:00
Corwin
311c26caad
Merge pull request #149 from gwilymk/pong-book
First 3 chapters on writing a pong game
2022-01-03 23:01:34 +00:00
GBA bot
f62501a748 Update the examples to correctly use the new API 2022-01-02 21:48:05 +00:00
GBA bot
6277eaeaee Split vblank() into frame() and after_vblank() 2022-01-02 21:47:08 +00:00
GBA bot
8d13ee3a39 Add some blank lines to make code folding work better 2022-01-02 18:28:31 +00:00
GBA bot
99146ac048 Add doc comments for top level modules 2022-01-02 18:27:23 +00:00
GBA bot
0b986df563 Doc hide test runner stuff 2022-01-02 18:25:44 +00:00
GBA bot
d4daf8bf0a Add docs for entry macro 2022-01-02 18:22:13 +00:00
GBA bot
02939041b4 Use the entry macro for the test main 2022-01-02 18:14:37 +00:00
GBA bot
af40d48360 Add section on loading graphics and document the include_gfx! macro 2022-01-02 18:11:36 +00:00
GBA bot
a39d5cfd69 Add some more documentation 2022-01-02 11:27:26 +00:00
GBA bot
b5ff4991fa Use builder style for ObjectStandard 2022-01-02 11:14:18 +00:00
GBA bot
618929939f Document the Gba struct 2022-01-01 23:15:14 +00:00
GBA bot
3a8ec51ce1 Make Cargo.lock consistent with Cargo.toml 2022-01-01 22:21:58 +00:00
Renovate Bot
2e042d87c9
Update Rust crate bitflags to 1.3 2022-01-01 21:08:27 +00:00
GBA bot
fa88bc40c6 Add another missing must_use 2022-01-01 11:35:49 +00:00
GBA bot
5f13c69fcf Replace .map.flatten with .flat_map 2022-01-01 11:35:17 +00:00
GBA bot
afe69b98b8 Add a bunch of must_use now requested by clippy 2022-01-01 11:34:43 +00:00
GBA bot
21c934623d Import the new asm macro required in newer versions of nightly 2022-01-01 11:20:30 +00:00
Corwin Kuiper
38703c7cb8 add different implementation of sqrt 2021-12-06 23:31:42 +00:00
Corwin Kuiper
3800be4dcb test for accuracy of magnitude function 2021-12-06 22:51:43 +00:00
Corwin Kuiper
affa27c8e0 remove unused crate 2021-12-06 22:43:58 +00:00
Corwin Kuiper
9a25274bb0 switched the magnitude function to use the alpha max + beta min algorithm 2021-12-06 19:49:27 +00:00
Corwin Kuiper
b347f9338e actually test base B in test base 2021-12-04 13:52:47 +00:00
Corwin
453e098703
Merge pull request #135 from corwinkuiper/number-macro
create a number macro that can use floating point numbes
2021-12-04 03:11:26 +00:00
Corwin Kuiper
ecd04190fa remove unused stuff 2021-12-04 02:57:51 +00:00
Corwin Kuiper
6e0cbbe9eb create a number macro that can use floating point numbes 2021-12-04 02:44:57 +00:00
Gwilym Kuiper
69e3c299ca Fix clippy lint 2021-11-22 19:33:09 +00:00
Gwilym Kuiper
a331909370 Assert that gba struct is zero sized 2021-11-22 19:28:58 +00:00
Gwilym Kuiper
75bd475f08 Split out to a timer controller to keep the GBA struct zero sized 2021-11-22 19:27:08 +00:00
Gwilym Kuiper
f7a10677dd Allow use of timer again after mixer is done 2021-11-22 19:14:51 +00:00
Gwilym Kuiper
bfc02e0aa8 Make sound now take the first class timer object 2021-11-18 22:28:26 +00:00
Gwilym Kuiper
8876c47aa9 Remove the generics (sorry that GBA is no longer zero sized...) 2021-11-18 22:28:26 +00:00
Gwilym Kuiper
8ef46279c8 set overflow amount should take a mut self 2021-11-18 22:28:26 +00:00
Gwilym Kuiper
20511843ca Move timers to be fields in the controller 2021-11-18 22:28:26 +00:00
Gwilym Kuiper
fd610d8cc1 Add support for timers 2021-11-18 22:28:26 +00:00
Corwin
b88cf39a67
Merge pull request #130 from gwilymk/fix-printing-of-negative-numbers
Fix printing of negative numbers
2021-11-18 22:16:34 +00:00
Corwin Kuiper
8143d43149 fix clippy lint 2021-11-18 21:30:35 +00:00
Gwilym Kuiper
e1e4318c38 Add comment explaining how the fiddle works 2021-11-18 21:11:29 +00:00
Gwilym Kuiper
89f89803dd GREEN: Fudge fractional and integral bits to get negative numbers to work 2021-11-18 21:05:29 +00:00
Gwilym Kuiper
413a819e64 Fix compiler warning for tests 2021-11-18 20:57:18 +00:00
Gwilym Kuiper
2eec47f31a RED: Add failing tests for negative number printing 2021-11-18 20:57:18 +00:00
Corwin Kuiper
7ba84b7691 add registers to sqrt clobber list
will need to go through the other syscalls and find out whether we need
to add registers to the clobber list. We probably need to add all per
the call convention (r0, r1, r2, r3 are callee saved).
2021-10-31 20:14:41 +00:00
Gwilym Kuiper
5c10af2f72 Add methods for getting and setting a palette colour 2021-10-30 21:16:40 +01:00
Gwilym Kuiper
a92a2f503c Reduce maximum number of sound channels to 8 2021-10-30 21:16:32 +01:00
Corwin Kuiper
301e2c115a fix tile ids 2021-10-30 20:33:54 +01:00
Corwin Kuiper
d0808cb7f2 added helpful functions 2021-10-30 18:38:57 +01:00
Gwilym Kuiper
6ed9b06b22 Ensure that the buffer size isn't actually the first instruction in add 2021-10-30 16:02:40 +01:00
Gwilym Kuiper
6ac3789d11 Export ChannelId 2021-10-30 15:38:59 +01:00
Corwin Kuiper
b492f3d43d fix rect issue with touching 2021-10-30 12:24:43 +01:00
Corwin Kuiper
be44dbed3d add useful derives 2021-10-30 10:12:45 +01:00
Corwin Kuiper
2838ea5f32 add more maths 2021-10-29 18:34:42 +01:00
Gwilym Kuiper
c6e7827e34 Add support for 18157Hz 2021-10-29 15:51:05 +01:00
Gwilym Kuiper
26620e850e Have the constants only in one place 2021-10-29 15:51:05 +01:00
Gwilym Kuiper
46b40c8e5b channel.data.len() = 2 * channel.pos 2021-10-29 14:29:22 +01:00
Gwilym Kuiper
5266e7a40c Release agb v0.8.0 2021-10-28 22:28:45 +01:00
Gwilym Kuiper
c49952eff9 Reduce the length of the examples 2021-10-28 22:27:08 +01:00
Gwilym Kuiper
0a68eee3f9 Remove unused field 2021-10-28 21:48:22 +01:00
Gwilym Kuiper
e3a35a2eda Release agb-sound-converter v0.1.0 2021-10-28 21:39:33 +01:00
Corwin
2391acb68d
Merge pull request #116 from corwinkuiper/nice-objects
Sane Objects!
2021-10-27 18:32:08 +01:00
Corwin
b7734726a6
Merge pull request #123 from gwilymk/stereo-sound
Stereo sound
2021-10-27 18:30:37 +01:00
Corwin
3f310b70a2
Merge pull request #119 from corwinkuiper/partial-backgrounds
possible iter for backgrounds
2021-10-27 18:30:25 +01:00
Gwilym Kuiper
1d38b75289 Reduce stereo mixing by 1 instruction 2021-10-26 23:09:50 +01:00
Gwilym Kuiper
9524b4b3c3 Loads of comments to explain what all the steps are doing 2021-10-26 22:25:35 +01:00
Gwilym Kuiper
050ee184b0 Add stereo sound example 2021-10-26 22:14:46 +01:00
Gwilym Kuiper
5bd656d8cb Add support for stereo sound 2021-10-26 22:14:34 +01:00
Corwin Kuiper
ec0d4431ad allow direct access to screen 2021-10-24 20:41:21 +01:00
Corwin Kuiper
f2c4354c1b reduce to a byte array 2021-10-23 17:15:57 +01:00
Corwin Kuiper
713791b3fe satisfy linter 2021-10-23 17:15:57 +01:00
Corwin Kuiper
8d0c50b37a affines are referenced counted with the new RC arena(ish) implementation 2021-10-23 17:15:53 +01:00
Gwilym Kuiper
4f0b01b932 Add option to mark sound as stereo 2021-10-18 21:22:36 +01:00
Gwilym Kuiper
e92383e29c
Merge pull request #121 from gwilymk/agb-sound-converter
Agb sound converter
2021-10-18 21:19:31 +01:00
Gwilym Kuiper
eb26a21629 Attempt to make it so that the sound converter doesn't create too many tokens 2021-10-17 23:22:36 +01:00
Gwilym Kuiper
66e201ae39 Update example to use the new macro 2021-10-17 22:38:19 +01:00
Corwin Kuiper
d22e46f7e3 resolve some clippy lints 2021-10-17 22:08:33 +01:00
Corwin Kuiper
1541d514c9 possible iter for backgrounds 2021-10-17 21:59:57 +01:00
Gwilym Kuiper
6f804d884b Release agb v0.7.0 2021-10-04 23:43:18 +01:00
Gwilym Kuiper
cc62ef72a7 Release agb-macros v0.1.0 2021-10-04 21:02:52 +01:00
Corwin Kuiper
df98f58c0e fix clippy lints 2021-10-04 20:56:28 +01:00
Gwilym Kuiper
94309a2518
Merge pull request #113 from gwilymk/add-test-for-rust-bug
Add test that data_end is in the correct place
2021-10-04 20:38:54 +01:00
Corwin
3e94bd27ee
Merge pull request #101 from corwinkuiper/sane-backgrounds
Sane backgrounds
2021-10-04 20:34:12 +01:00
Gwilym Kuiper
a31efe7156 Add test that data_end is in the correct place 2021-10-04 20:15:34 +01:00
Gwilym Kuiper
25cca44b6b Cargo fmt 2021-10-03 23:26:02 +01:00
Gwilym Kuiper
871d90c889 Special case mixer without multiplication 2021-10-03 23:00:43 +01:00
Corwin Kuiper
9192722f5a fix build 2021-09-19 20:56:36 +01:00
Corwin Kuiper
f7c2118a40 start work on separating out background sizes 2021-09-19 20:17:50 +01:00
Corwin Kuiper
1ae3c34877 begin work on affine regular compatability 2021-08-28 23:02:35 +01:00
Corwin Kuiper
3d269c98fd split blocks 2021-08-21 12:56:15 +01:00
Corwin Kuiper
63d880f083 no point checking if null and returning null 2021-08-21 12:03:30 +01:00
Corwin Kuiper
6523a3c6b8 free list allocator 2021-08-21 11:07:53 +01:00
Corwin
e5f331587f
Merge pull request #108 from gwilymk/simple-alloc-implementation
Simple alloc implementation
2021-08-18 00:04:40 +01:00
Gwilym Kuiper
6d11302725 Fix clippy lint in the allocator 2021-08-16 23:40:16 +01:00
Gwilym Kuiper
bec0cc6055 Make alloc an optional default feature 2021-08-16 23:32:31 +01:00
Gwilym Kuiper
469db77437 Add allocation example 2021-08-16 23:28:33 +01:00
Gwilym Kuiper
22189eb809 Add some more allocation tests 2021-08-16 23:20:51 +01:00
Gwilym Kuiper
b30cc7715c Add really simple block reuse 2021-08-16 22:55:02 +01:00
Gwilym Kuiper
e80ad601a3 Extract current alloc to a new_block function 2021-08-16 22:33:56 +01:00
Gwilym Kuiper
d372ca74bf Use the block allocator by default now 2021-08-16 22:31:10 +01:00
Gwilym Kuiper
4b9e4ce42a Move tests to agb_alloc mod.rs 2021-08-16 22:28:41 +01:00
Gwilym Kuiper
7425e9973d Add a really basic block allocator 2021-08-16 22:25:08 +01:00
Gwilym Kuiper
f2ce19c356 Switch to non-null 2021-08-16 22:24:32 +01:00
Gwilym Kuiper
a7a1cb3ecd use super::*; 2021-08-16 21:20:52 +01:00
Gwilym Kuiper
c8ac436b84 Use constants rather than hard coded stuff 2021-08-16 21:20:29 +01:00
Gwilym Kuiper
81e9789272 Correctly handle OOM 2021-08-16 21:19:51 +01:00
Gwilym Kuiper
94d5a71007 Split out bump_allocator 2021-08-16 21:14:28 +01:00
Gwilym Kuiper
8a0cb86eda Assert that it is actually in ewram 2021-08-16 21:11:40 +01:00
Gwilym Kuiper
cd4718f8c5 Remove the need for this to be mut and write it in a more 'rusty' way 2021-08-16 21:08:39 +01:00
Gwilym Kuiper
22c6efa5fa Have a new() method 2021-08-16 21:07:25 +01:00
Gwilym Kuiper
2bacbf35dc Extern definition can be made smaller 2021-08-16 21:04:37 +01:00
Gwilym Kuiper
7062610aba Start a basic allocator with a super simple test 2021-08-16 21:02:55 +01:00
Gwilym Kuiper
1c07268f11 Include alloc 2021-08-16 21:02:36 +01:00