Commit graph

850 commits

Author SHA1 Message Date
Gwilym Kuiper bc1bf3416c Add some doc comments around the video struct 2022-06-16 22:30:26 +01:00
Gwilym Kuiper 21b8f12c03 Make the 32768Hz example print the timing to the gba screen 2022-06-16 21:36:48 +01:00
Gwilym Kuiper 9eb087ad60 Print the CPU usage for the stereo sound example 2022-06-16 21:32:16 +01:00
Gwilym Kuiper 24749ac645 Do the zeroing of the buffer in assembly 2022-06-12 17:53:39 +01:00
Gwilym Kuiper 33c948208a Don't actually need to clear the buffer 2022-06-12 17:30:01 +01:00
Gwilym Kuiper 2ace226db8 Extract a function to do the clearing of the buffer 2022-06-12 17:26:16 +01:00
Gwilym Kuiper 4969672c73 Use hand written fast fill to save a few more cycles 2022-06-12 16:53:46 +01:00
Gwilym Kuiper bec1a17cfd This doesn't need the allow 2022-06-12 13:57:16 +01:00
Gwilym Kuiper bbad55af65 Deny the stricter lints 2022-06-11 20:57:40 +01:00
Gwilym Kuiper 9759555e42 Remove cast_lossless because it isn't supported by bitfield 2022-06-11 20:56:48 +01:00
Gwilym Kuiper ba35b85c81 Final clippy lint fixes 2022-06-11 20:56:05 +01:00
Gwilym Kuiper bf9f298972 Fix some sound related lints 2022-06-11 20:51:41 +01:00
Gwilym Kuiper 062e8c8881 Fix some more linter errors 2022-06-11 20:48:18 +01:00
Gwilym Kuiper 1b393cd612 Fix new clippy lints in tiled 2022-06-11 20:40:12 +01:00
Gwilym Kuiper f2e565f512 Take advantage of the fact that CriticalSection is Copy 2022-06-11 20:34:19 +01:00
Gwilym Kuiper 1edd7f4166 Add a bunch of new clippy lints 2022-06-11 20:27:08 +01:00
Gwilym Kuiper b8cf5090cb Make clippy warnings and let CI fail if there are issues 2022-06-11 20:17:37 +01:00
Gwilym Kuiper e6f5494242 Use the syscall to do the memset because the default implementation is really slow 2022-06-11 17:22:29 +01:00
Gwilym Kuiper 4633fe7e3c Set sound bias (which seems to make this work on hardware) 2022-06-11 16:53:39 +01:00
Gwilym Kuiper 3a419b05de Improve timer API and use it 2022-06-11 16:44:29 +01:00
Gwilym Kuiper d65fd5d740 Don't require the 32kHz frequency for interrupts 2022-06-11 16:22:28 +01:00
Gwilym Kuiper 3bd85c7d7c Get correct song name 2022-06-11 16:11:18 +01:00
Gwilym Kuiper 879a4f5270 Unroll the loop a bit 2022-06-11 16:10:58 +01:00
Gwilym Kuiper 5f7a1007a2 Triple buffer the sound to avoid skipping 2022-06-11 16:08:00 +01:00
Gwilym Kuiper 7d8890b03e 32768 example 2022-06-11 15:46:10 +01:00
Gwilym Kuiper a4c696ad33 Build a special version of 'frame' for freq32768 2022-06-11 13:23:39 +01:00
Gwilym Kuiper c709455e3d Add defines for freq32768 2022-06-11 13:19:56 +01:00
Gwilym Kuiper 42d3455abf Avoid duplicating the feature flag definition 2022-06-11 13:19:52 +01:00
Gwilym Kuiper 73d6dc448f Add new frequency option 2022-06-11 13:05:30 +01:00
Gwilym Kuiper 0a9a3fdf1d Remove timer field to mixer 2022-06-11 12:57:59 +01:00
Gwilym Kuiper b7bc27403e Remove pointless 'a 2022-05-12 20:28:10 +01:00
Gwilym Kuiper 93ed4b87e8
Merge pull request #226 from gwilymk/another-audio-performance-improvement
Another audio performance improvement
2022-05-04 21:05:55 +01:00
Gwilym Kuiper 4d2ad8859b Add a comment explaining the improvement 2022-05-04 20:56:39 +01:00
Gwilym Kuiper 4a06acba6b Allow volumes to be a lot higher and check that clipping is handled 2022-05-04 20:42:32 +01:00
Gwilym Kuiper abfbf6a454 Use the renamed register names 2022-05-04 20:36:06 +01:00
Gwilym Kuiper 0ec3c499cb Just use range push and pop 2022-05-04 20:27:41 +01:00
Gwilym Kuiper a0b28176c6 Use .rept rather than defining a macro 2022-05-04 20:25:55 +01:00
Gwilym Kuiper 863abe1d42 Only load SWAP_SIGN once 2022-05-04 18:08:15 +01:00
Gwilym Kuiper 8ec839f181 Be more consistent with instruction use 2022-05-04 18:07:01 +01:00
Gwilym Kuiper b02cdd9233 Calculate 127 + sample earlier 2022-05-04 18:06:11 +01:00
Gwilym Kuiper 3fea9aada0 Somehow reduce clamp_s8 by 1 instruction 2022-05-04 17:58:24 +01:00
Gwilym Kuiper 0229b95d7c Move macro definition 2022-05-04 16:59:17 +01:00
Gwilym Kuiper 73b8530240 Reduce register usage 2022-05-04 16:58:46 +01:00
Gwilym Kuiper 3b9909ad5b Add comment about how silly the implementation of gba_offset is 2022-05-03 23:43:08 +01:00
Gwilym Kuiper 2853d34b30 Correctly render different sized backgrounds and make HTTW have
pointlessly different sized backgrounds to test it properly
2022-05-03 23:42:11 +01:00
Gwilym Kuiper 5211781429 Rename rem_euclid functions 2022-05-03 23:23:55 +01:00
Gwilym Kuiper be650779e6 Correctly allocate screenblocks 2022-05-03 23:23:25 +01:00
Gwilym Kuiper ae65af4ca2 Make rem_euclid_* return a u16 2022-05-03 23:03:23 +01:00
Gwilym Kuiper 817e1e305e Add rem_euclid_*_px for pixel calculations 2022-05-03 23:00:31 +01:00
Gwilym Kuiper 4d3d2acd3b This should always be 32 2022-05-03 22:55:50 +01:00
Gwilym Kuiper 5513c8566f Replace calls to rem_euclid with unknown denominator with simple & 2022-05-03 22:46:01 +01:00
Gwilym Kuiper fae71bfbca Fix all the examples 2022-05-03 22:29:51 +01:00
Gwilym Kuiper 4f2eddb367 Actually set the correct flag 2022-05-03 21:51:00 +01:00
Gwilym Kuiper cc57dcf649 Fix compile errors 2022-05-03 21:48:08 +01:00
Gwilym Kuiper 384a5bc887 Remove a bunch of hard coded widths and heights 2022-05-03 21:46:32 +01:00
Gwilym Kuiper d514aafad4 Pass through the size 2022-05-03 21:34:41 +01:00
Gwilym Kuiper 5dd0c61808 Derive normal stuff on an enum 2022-05-03 21:30:32 +01:00
Gwilym Kuiper 288fa0c85e Add an enum for tracking background size of regular tiles 2022-05-03 21:28:32 +01:00
Gwilym Kuiper 06f701af75
Merge pull request #224 from gwilymk/print-warnings-for-assembler
Print warnings for assembler
2022-04-26 22:27:31 +01:00
Gwilym Kuiper 94f66f74b1 Fix warning in assembly 2022-04-26 22:16:56 +01:00
Gwilym Kuiper c3bfe83f6b Collect warnings to print them 2022-04-26 22:15:32 +01:00
Gwilym Kuiper 0761132779 Range of a signed byte is -128 - 127... 2022-04-26 21:22:50 +01:00
Gwilym Kuiper 921e2e9adf Calculate 32-bits at a time, since we're storing into IWRAM 2022-04-26 21:17:07 +01:00
Gwilym Kuiper 245cafa599 Calculate 2 samples per loop 2022-04-26 21:08:22 +01:00
Gwilym Kuiper 260f664c36 Extract to macro 2022-04-26 21:04:33 +01:00
Gwilym Kuiper 61ed2b905d Allow warnings when developing, but still fail CI 2022-04-24 17:07:43 +01:00
Gwilym Kuiper 563138937e Fix set_background_palette (not sure why dma wasn't working) 2022-04-23 23:26:47 +01:00
Gwilym Kuiper 178db91072 Add gc step for tiles 2022-04-23 23:03:02 +01:00
Gwilym Kuiper 7688316034 Add a gc step in commit 2022-04-23 22:58:25 +01:00
Gwilym Kuiper a562a4f600 Print frame which shows issue 2022-04-23 22:48:05 +01:00
Gwilym Kuiper 85c3287680 Run clippy on examples and tests 2022-04-23 21:03:37 +01:00
Gwilym Kuiper 1593c0e8b6 Move clippy deny to config.toml and fix warnings 2022-04-23 17:10:29 +01:00
Gwilym Kuiper a32bb2125b Remove deny clippy::all from lib.rs to ensure it always builds for users 2022-04-23 16:26:42 +01:00
Gwilym Kuiper fb197d3e79 Store font data more compressed 2022-04-23 15:42:08 +01:00
Gwilym Kuiper 1b71ef6473 Add test for font output 2022-04-23 15:33:57 +01:00
Gwilym Kuiper 6485cc895a Extract method 2022-04-23 14:34:34 +01:00
Gwilym Kuiper fec4015978 Remove hash map lookup for every pixel rendered 2022-04-23 14:30:46 +01:00
Gwilym Kuiper 6d0f95c21b
Merge pull request #214 from gwilymk/random-number-generator
Random number generator
2022-04-11 22:20:16 +01:00
Gwilym Kuiper dc62ba4467 Rename rng::next to rng::gen 2022-04-11 22:07:31 +01:00
Gwilym Kuiper f304412053 Use unsigned_abs to satisfy clippy 2022-04-11 21:15:17 +01:00
Gwilym Kuiper d56e4d5888 Correctly remove dynamic tiles if not committing a text renderer 2022-04-07 23:07:58 +01:00
Gwilym Kuiper dc4ccee451 Add a commit method for text_render 2022-04-07 23:01:01 +01:00
Gwilym Kuiper 5701667f53 Avoid overwriting text on the line above 2022-04-07 22:56:28 +01:00
Corwin f7ef25f3f0
Merge pull request #209 from corwinkuiper/z-ordered-sprites
Z ordered sprites
2022-04-07 22:46:26 +01:00
Corwin 859029a7a9 delete sprites during commit 2022-04-06 23:55:13 +01:00
Gwilym Kuiper 82c5ebf426 Use a core::fmt::Write instead 2022-04-06 21:13:57 +01:00
Gwilym Kuiper a0013096cc Remove argument 2022-04-05 23:43:35 +01:00
Gwilym Kuiper f3c467c2f1 set_background_palette seems inconsistent between release and debug mode :/ 2022-04-05 23:39:06 +01:00
Gwilym Kuiper 45e18d5cc7 Use a better example font which isn't monospace 2022-04-05 23:35:18 +01:00
Gwilym Kuiper 5c24e4089a Minimise generated dynamic tiles by using a hashmap 2022-04-05 23:11:32 +01:00
Gwilym Kuiper 22f89ed9e2 Return the bounding box 2022-04-05 23:03:56 +01:00
Gwilym Kuiper 1f65f94ee3 Support rendering multiple lines 2022-04-05 23:03:10 +01:00
Gwilym Kuiper 8a1a433f99 Replace returning number of lines printed to x width 2022-04-05 22:49:34 +01:00
Gwilym Kuiper 6bea61bb7a Update the dynamic tiles example 2022-04-05 22:48:03 +01:00
Gwilym Kuiper 2c2931fa97 Handle the height of letters correctly 2022-04-05 22:44:32 +01:00
Gwilym Kuiper e7e35f8ad8 Take xmin into account 2022-04-05 22:35:45 +01:00
Gwilym Kuiper a6f5cc9ec1 Render some text 2022-04-05 22:32:11 +01:00
Corwin 845076d0b4 add a test exploring some usage 2022-04-05 21:30:38 +01:00
Corwin 454bb872c9 resolve some unsoundness 2022-04-04 23:02:06 +01:00
Gwilym Kuiper c3a64690cd
Merge pull request #207 from gwilymk/dynamic-tileset
Add a slightly crappy dynamic tiles API
2022-04-04 20:41:16 +01:00