Gwilym Inzani
92e31aef35
Save useless zeroing of buffer ( #451 )
...
I realised we don't need to zero the buffer or read the current buffer
value for the first sound that we're writing per frame. Gets us from
17728 cycles per frame for 32768Hz down to 15291 cycles per frame.
From tests (and theory), this reduces the number of cycles per frame by
2,000 for 32768Hz.
- [x] No changelog update needed - already mentioned mixer improvements
there
2023-06-27 23:52:05 +01:00
Gwilym Inzani
13f5fe01d7
Actually use the new first methods
2023-06-27 22:34:45 +01:00
Corwin
d5d3d1a658
strip to bare renderer
2023-06-27 22:00:34 +01:00
Corwin
22b3497bb3
fix
2023-06-27 21:56:26 +01:00
Corwin
fd82b259cc
dynamic sprite allocate directly into sprite vram
2023-06-27 21:56:09 +01:00
Gwilym Inzani
3b35061a3a
Extract iterator to a variable
2023-06-27 21:51:59 +01:00
Gwilym Inzani
38868cb269
Extract even more from the loop body
2023-06-27 21:50:46 +01:00
Gwilym Inzani
57f0a8c889
Remove is_done check in for loop
2023-06-27 21:49:30 +01:00
Gwilym Inzani
f4779208e3
Implement first cases for the non stereo
2023-06-27 21:48:01 +01:00
Gwilym Inzani
e1d03929f9
Use local labels
2023-06-27 21:33:56 +01:00
Gwilym Inzani
306be59cde
Add implementation for if this is the first
2023-06-27 21:31:06 +01:00
Corwin
ce7bcacb3c
somewhat mad left align renderer
2023-06-26 23:47:19 +01:00
Corwin
b75303863d
buffered text render
2023-06-26 17:10:42 +01:00
Corwin
87ac2fe53c
reuse dynamic sprite
2023-06-26 17:10:42 +01:00
Corwin
b99fff7c8e
some object based text rendering
2023-06-26 17:10:03 +01:00
Corwin
aa38a03ac9
add read pixel method
2023-06-26 17:10:03 +01:00
Gwilym Inzani
938b052997
Schedule nightly run to be at 6:10 rather than 5:10
...
Occasionally, miri was't available yet. So we go with a 6:10 run to give it a chance to be installed.
2023-06-25 16:07:59 +01:00
Gwilym Inzani
c3268e3de2
Even faster mixer ( #447 )
...
If you do an ldmia for loading lots of samples at once, the mixer uses
significantly less CPU (10% compared to previous, 19800 cycles per frame
-> 17701 cycles per frame for 32768Hz).
I've also added a really simple unit test for the `collapse` function to
at least gain some confidence in it.
- [x] Changelog updated / no changelog update needed
2023-06-20 22:04:16 +01:00
Corwin
dbf7715e67
use assert_eq and collect
2023-06-20 21:52:07 +01:00
Corwin
389e3ecadb
make test not reliant on coincidence alignment
2023-06-20 21:52:07 +01:00
Gwilym Inzani
0e3fe2c49a
add a changelog entry
2023-06-18 16:43:00 +01:00
Gwilym Inzani
5a374ba4f0
Add collapse test and fix bug uncovered by it
2023-06-18 16:29:02 +01:00
Gwilym Inzani
b2dcd8c854
Pass buffer size as an argument
2023-06-18 16:02:14 +01:00
Gwilym Inzani
ba18a0bf4a
ldmia again
2023-06-16 23:43:37 +01:00
Gwilym Inzani
e72de28961
Can I use movne here instead?
2023-06-16 23:41:15 +01:00
Gwilym Inzani
ceb57eb002
r12 is a scratch register
2023-06-16 22:22:03 +01:00
Gwilym Inzani
334e70c664
Do multiple loads at once
2023-06-16 22:19:56 +01:00
Gwilym Inzani
9e08303e62
Extract a macro for this
2023-06-16 22:15:45 +01:00
Gwilym Inzani
6cf3ecaf36
Don't need to save r9
2023-06-16 22:11:44 +01:00
Corwin
20a7c262e9
add optimisation for 64 bit upcast multiply ( #444 )
...
This is really good now!
- [x] Changelog updated / no changelog update needed
2023-06-06 23:15:38 +01:00
Corwin
2a21c5fdab
add optimisation for 64 bit upcast multiply
2023-06-06 23:00:17 +01:00
Corwin
28e3a7faf4
Resolve stutter upon switching to dice customise screen ( #442 )
...
1. Dealloc now uses the normal dealloc procedure.
* Better because normalisation is quick, O(1).
* More normalisation means inserting into the list is faster.
2. Run sfx frame during the generation of upgrades (which can take an
unbounded amount of time).
* Both of these are required to remove the stuttering.
* It sounds really weird now that it works right :/
- [ ] Changelog updated / no changelog update needed
2023-06-05 21:01:12 +01:00
Corwin
80051a163a
Modify the enemy health rng by using a dice roll distribution ( #438 )
...
- [ ] Changelog updated / no changelog update needed
2023-06-05 21:01:04 +01:00
Corwin
a7269ed65f
Add precision support for fixnums ( #437 )
...
- [ ] Changelog updated / no changelog update needed
2023-06-05 21:00:54 +01:00
Corwin
53937b4fa8
Upcast multiply ( #436 )
...
- [ ] Changelog updated / no changelog update needed
2023-06-05 21:00:46 +01:00
Corwin
6b84833c4f
remove dealloc_no_normalise
2023-06-05 00:12:36 +01:00
Corwin
95a8804094
reset the number of attempts
2023-06-05 00:12:36 +01:00
Corwin
cbb0b7d2a0
resolve stutter
2023-06-05 00:12:36 +01:00
Corwin
083fd43ea3
just dealloc in gc
2023-06-05 00:12:36 +01:00
Corwin
80f5812039
make the letter "R" better ( #441 )
...
Hyperspace roll has a not great looking letter "R". Uses change made by
Gwilym.
- [x] no changelog update needed
2023-06-03 23:56:43 +01:00
Corwin
2b94ef0ac7
make the letter "R" better
2023-06-03 23:45:55 +01:00
Corwin
492643d0b5
Show health in hyperspace roll ( #440 )
...
Shows health in hyperspace roll
- [x] no changelog update needed
2023-06-03 23:39:04 +01:00
Corwin
95b28983ff
show health
2023-06-03 23:29:54 +01:00
Corwin
1c58a419ec
Hide objects by default ( #439 )
...
Fixes bug introduced in #430
- [x] no changelog update needed
2023-06-03 23:25:28 +01:00
Corwin
77c4741ee7
hide objects by default
2023-06-03 16:06:23 +01:00
Corwin
c011e58ec7
separate tests
2023-06-02 18:18:18 +01:00
Corwin
ae23f6fdf4
round towards nearest
2023-06-02 11:57:35 +01:00
Corwin
1d7acfb070
modify the enemy health rng by using a distribution
2023-06-02 01:24:37 +01:00
Corwin
6e0d58a674
add precision support for fixnums
2023-06-02 00:03:27 +01:00
Corwin
b5704afe5e
remove usize
2023-06-01 18:52:03 +01:00