Commit graph

2274 commits

Author SHA1 Message Date
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
Corwin 9fa8f75202
upcast multiply 2023-05-30 22:21:12 +01:00
Gwilym Inzani da5aed83e3
Use bilge rather than modular-bitfield (#430)
Thought I'd give bilge a go rather than modular bitfield after reading
this blog post:
https://hecatia-elegua.github.io/blog/no-more-bit-fiddling/

- [ ] Changelog updated / no changelog update needed
2023-05-30 20:41:46 +01:00
Corwin a178e28b77
Optimise Normalisation (#435)
This only optimises the relevant blocks during normalisation.

The benchmark in CI goes from 12023166 cycles to 9260517 cycles, a
decrease of 23%.

- [x] no changelog update needed
2023-05-26 18:23:33 +01:00
Corwin 7e111e0327
remove unused import 2023-05-25 19:30:38 +01:00
Corwin 9c15adf6c8
only normalise the relevant blocks 2023-05-25 19:25:26 +01:00
Corwin 1b687b787d
Inline always in new_from_parts (#433)
Mentioned here that we should probably do it:
https://github.com/agbrs/agb/discussions/370#discussioncomment-4650702

From decompiling, it seems that this normally happens, but lets at least
ensure it if you don't have lto enabled.

- [x] no changelog update needed
2023-05-24 01:47:03 +01:00
Gwilym Inzani 8c1c725dfa Inline always in new_from_parts 2023-05-23 21:46:25 +01:00
Gwilym Inzani 98484783b4
Minor speed up for tiles (#432)
We currently do lots of redundant hash calculations while changing a
tile in vram. We can cache the value and then use the entry API to reuse
it.

- [x] no changelog update needed
2023-05-23 21:41:25 +01:00
Gwilym Inzani 9ec0836da9 Put the capacity check back in 2023-05-23 21:29:05 +01:00
Gwilym Inzani 903157325f Don't recalculate the hash 2023-05-23 21:20:49 +01:00
Gwilym Inzani d393ad7e99 Bypass some duplicated work if you use the entry API 2023-05-23 21:10:27 +01:00
Corwin 1bb70aa24b
Remove workarounds (#426)
Removes some workaronds for rust bugs

- [x] no changelog update needed
2023-05-23 20:29:35 +01:00
Corwin 6b7088773e
remove codegen units 2023-05-23 20:12:42 +01:00
Corwin d638134d37
remove codegen-units
these were added as a workaround for rust bugs
2023-05-23 20:10:24 +01:00
Corwin 37c30586c3
remove profiles from some projects
these projects are not tested or run on the gba or
are dependencies and therefore follow the binaries settings
2023-05-23 20:10:21 +01:00
Gwilym Inzani 6e441efe92
Remove the need for binutils (#425)
Just uses `global_asm!` instead.

- [x] Changelog updated / no changelog update needed
2023-05-21 20:35:06 +01:00
Gwilym Inzani 7cf66e67e5 Update agb version in amplitude 2023-05-21 16:49:06 +01:00
Gwilym Inzani 0278fc8158 Add changelog entry for removing binutils dependency 2023-05-21 16:38:06 +01:00
Gwilym Inzani 1b27bf4613 Remove codegen-units = 1 since it won't be needed any more 2023-05-21 16:37:35 +01:00
Gwilym Inzani 958f32b177 Include macros.inc properly 2023-05-21 16:37:35 +01:00
Gwilym Inzani 78bad29f88 Add codegen-units=1 to prevent miscompiles 2023-05-21 16:37:35 +01:00
Gwilym Inzani fe23bee18b Prevent multiple include errors 2023-05-21 16:37:35 +01:00
Gwilym Inzani 878402a5b6 Don't install arm-none-eabi-binutils 2023-05-21 16:37:35 +01:00
Gwilym Inzani 2de1b08f42 Remove references to arm-none-eabi 2023-05-21 16:37:35 +01:00
Gwilym Inzani 5ab0176ddb Entirely remove the need for binutils 2023-05-21 16:37:34 +01:00
Corwin 2012f2ec35
Fix alignment of thumb functions defined in assembly (#431)
- [x] Changelog updated / no changelog update needed
2023-05-18 19:25:48 +01:00
Corwin df696a1093
align after section 2023-05-18 12:06:30 +01:00
Corwin e1426d8ef7
correct non thumb-interwork return 2023-05-17 23:25:27 +01:00