Commit graph

1442 commits

Author SHA1 Message Date
Corwin a2c127b72b
pull out allocator_api feature 2024-05-14 22:38:42 +01:00
Gwilym Inzani ae2eb5b448 Use the correct padding 2024-05-14 21:38:11 +01:00
Gwilym Inzani 94729e45ec Handle failure to allocate QR code on panic 2024-05-14 21:36:55 +01:00
Gwilym Inzani 8c2e079ec2 Mark the fact that it was a double panic in the fatal message 2024-05-12 14:08:03 +01:00
Gwilym Inzani 642c3c1b79 Better comments around the panic handler 2024-05-12 14:06:42 +01:00
Gwilym Inzani 18b25e242e Handle this in both panic handlers 2024-05-12 14:06:41 +01:00
Gwilym Inzani 9fe526d0bc Prevent a double panic 2024-05-12 14:06:14 +01:00
Gwilym Inzani 8ede32ea7b Mark the test as no_run rather than rust 2024-04-30 20:53:06 +01:00
Gwilym Inzani 37e9fe5066 Add a set_next method on OamIterator 2024-04-30 20:39:50 +01:00
Corwin fe972850e3
Allow customisation of the backtrace website (#647) 2024-04-23 20:38:46 +01:00
Corwin a65f6402be
fix url to point to us 2024-04-23 20:30:40 +01:00
Corwin 1c9e829bd1
have website not be an option 2024-04-23 20:09:35 +01:00
Gwilym Inzani 4243592f63
Make backtraces optional (#648)
You probably don't want backtraces if you're doing multiboot and in a
few other cases.

Also #646 broke the build if you didn't use the `testing` feature, so
I've updated the `justfile` so that a CI run checks that agb builds
correctly both without the `testing` feature and without the `backtrace`
feature. The `backtrace` feature implies the testing feature to make
things a bit simpler.

- [x] Changelog updated
2024-04-21 20:07:02 +01:00
Corwin 2560f2e15e
exclusive range 2024-04-21 16:31:41 +01:00
Gwilym Inzani 580afa9335 Make the backtrace feature optional 2024-04-20 20:28:10 +01:00
Corwin 91da2c926a
allow customisation of the backtrace website 2024-04-20 14:52:08 +01:00
Corwin 4419dfb0b5
Split mgba log if too big (#646)
- [x] Changelog updated
2024-04-20 00:21:11 +01:00
Corwin 7044c08100
large logs get split into multiple prints 2024-04-20 00:09:20 +01:00
Corwin e1a8b04616
add bounds check 2024-04-19 23:59:58 +01:00
Corwin c632eb4ea3
type use of rng 2024-04-09 22:03:33 +01:00
Corwin 32eb34f226
fix panic renderer 2024-04-09 21:58:49 +01:00
Corwin d6b32e511d
pub them in external mod 2024-04-09 21:57:26 +01:00
Corwin fb247aa8f2
move single file module out of directory 2024-04-09 21:52:04 +01:00
Corwin 10575f28a6
delay cell 2024-04-09 21:52:04 +01:00
Corwin 9fbd420089
add test that atomic read / write works 2024-04-09 21:52:04 +01:00
Corwin 2b4c4459e0
use portable atomics and other similar libraries 2024-04-09 21:52:00 +01:00
Gwilym Inzani e8aed8e376
Backtraces (#590)
Implements a very basic backtrace and the ability to format them

If you run the panic example and press A, you get:

```
[ERROR] GBA Debug: [failed]
[ERROR] GBA Debug: debug data: ce3-1ee7-1fb7-24d-1ad
[FATAL] GBA Debug: Error: panicked at src/memory_mapped.rs:101:24:
index out of bounds: the len is 240 but the index is 240
```

which you can then prettify with:

```
> agb-addr2line ../target/thumbv4t-none-eabi/debug/examples/panic 0ce3-1f57-2027-024d-01ad
0:	rust_begin_unwind <agb>/lib.rs:321
1:	core::panicking::panic_nounwind <core>/panicking.rs:151
2:	core::panicking::assert_failed_inner <core>/panicking.rs:321
3:	agb::memory_mapped::MemoryMapped2DArray<T,_,_>::set <agb>/memory_mapped.rs:101
	(inlined by) agb::display::bitmap3::Bitmap3::draw_point <agb>/display/bitmap3.rs:31
4:	main /home/gwilym/Projects/agb/agb/examples/panic.rs:15
```

- [ ] Changelog updated / no changelog update needed
2024-04-09 20:25:15 +01:00
Corwin 0d609f6d4a
satisfy linter 2024-04-06 02:36:02 +01:00
Gwilym Inzani 37ecd48a40 Add a message about the fact that the game crashed 2024-04-03 11:16:34 +01:00
Gwilym Inzani fe78711736 Alphabet should be static 2024-04-03 10:58:25 +01:00
Gwilym Inzani e21d06994f Add some tests which showed issues with the decoder 2024-04-03 10:58:06 +01:00
Gwilym Inzani 51de2ffa60 Don't need to import this macro 2024-04-02 23:38:43 +01:00
Gwilym Inzani e0d68eec15 Correctly render in release mode 2024-04-02 23:31:02 +01:00
Gwilym Inzani e5a8b39924 Print some extra useful information 2024-04-02 23:19:09 +01:00
Gwilym Inzani 6c9c23f79e Change what's being printed slightly 2024-04-02 22:37:23 +01:00
Gwilym Inzani e36145552f gwilym_encode the stack trace and generate a qr code for debugging 2024-04-02 22:24:58 +01:00
Gwilym Inzani 3f374f3e9c Print the entire backtrace 2024-04-01 14:05:22 +01:00
Gwilym Inzani 7708398981 Basic implementation of backtraces on panic 2024-04-01 13:05:39 +01:00
Gwilym Inzani 6fdd961b61
Kerning support (#588)
Some fonts look a bit weird if you don't do kerning.

@corwinkuiper can you check if I've done the correct thing for object
font rendering? I'm not entirely sure... Although it does render
correctly in my tests :D

- [x] Changelog updated / no changelog update needed
2024-03-29 15:17:18 +00:00
Corwin 184b11ed81
use static rather than const 2024-03-29 14:41:08 +00:00
Gwilym Inzani 2833045322 Add kerning support to the font rendering 2024-03-27 11:01:26 +00:00
Gwilym Inzani 232e5670d4 Say hello in japanese for the object_text_render example 2024-03-27 09:44:40 +00:00
Gwilym Inzani fa1de1fab7 Should be static 2024-03-27 09:30:41 +00:00
Gwilym Inzani f4efaf67a4 Add a japanese text rendering example 2024-03-27 09:26:11 +00:00
Gwilym Inzani a61fe79a6f Allow any character supported by the font 2024-03-27 09:21:06 +00:00
Gwilym Inzani dc8a6e3884 Add a japanese font to the examples ready for testing 2024-03-27 09:09:40 +00:00
Gwilym Inzani b25302f133 Add required doc comments 2024-03-13 14:28:48 +00:00
Gwilym Inzani 3c28324e83 Make the DMA module public 2024-03-13 14:24:14 +00:00
Corwin 9e63b2c46c
Release v0.19.1 2024-03-06 19:11:47 +00:00
Gwilym Inzani 7ebebb2942 Fix out by one in infinite scroll 2024-03-06 15:42:48 +00:00
Corwin 78146bc963
fix the incorrect copying of map tiles issue 2024-03-06 12:40:53 +00:00
Gwilym Inzani 66ec762855 Release v0.19.0 2024-03-06 09:33:58 +00:00
Gwilym Inzani 90fe94424f Add a doc entry for into_inner 2024-03-06 09:02:40 +00:00
Gwilym Inzani 569a1c0425 Add an into_inner() function on infinite scrolled map 2024-03-06 08:59:29 +00:00
Gwilym Inzani 42eadde631 Also add default implementation for InitOnce 2024-02-28 10:09:12 +00:00
Gwilym Inzani 941eb4ade1 Add missing default implementations 2024-02-28 09:55:55 +00:00
Gwilym Inzani 4ebab07d47 Manually copy the value when you set up hblank 2024-02-27 20:40:20 +00:00
Gwilym Inzani 23550e579a More .into() 2024-02-21 14:27:48 +00:00
Gwilym Inzani b357acbba8 Don't need this .into() either 2024-02-21 13:01:03 +00:00
Gwilym Inzani 74451f819c More impl Into<Vector2D<_>> and fix compile errors 2024-02-21 12:59:02 +00:00
Gwilym Inzani 4ef08a1273 Add an example of doing circular windows 2024-02-21 12:39:03 +00:00
Gwilym Inzani a0700b3a51 Move the id storage to the window itself 2024-02-21 12:13:00 +00:00
Gwilym Inzani a3f772c7a3 Split the examples into 2 different ones 2024-02-21 12:03:46 +00:00
Gwilym Inzani de0c4ca4f4 Allow recolouring of the background using DMA 2024-02-21 11:56:49 +00:00
Gwilym Inzani edcd37c203 transfer should have a lifetime on the item you're passing in 2024-02-21 11:33:09 +00:00
Gwilym Inzani de15538d42 Add basic dma effect stuff 2024-02-21 11:28:20 +00:00
Gwilym Inzani 43718773d7 Don't use DMA outside of the eeprom case 2024-02-21 11:28:20 +00:00
Gwilym Inzani 0975530e5c
Remove unnecessary imports (#567)
Fix for latest clippy / nightly upgrade

- [x] no changelog update needed
2024-02-20 22:27:00 +00:00
Gwilym Inzani 8e25f011b4 Remove unnecessary imports 2024-02-20 22:15:31 +00:00
Constantin 1d0a25bc43 Expose hflip, vflip, priority, position 2024-02-17 16:28:43 +01:00
Constantin da84131de6 Add priority set / get and set_visible / is_visible to maps 2024-02-16 11:21:27 +01:00
Corwin 90be23a192
remove block counting to no longer attempt to detect memory leaks
remove checking blocks

Signed-off-by: Corwin <corwin@kuiper.dev>
2024-02-13 21:18:14 +00:00
Corwin 844f3b29d3
Remove global alloc support from the bump allocator
Signed-off-by: Corwin <corwin@kuiper.dev>
2024-02-13 21:18:14 +00:00
Gwilym Inzani ff235a75f3 rustc_hash isn't needed in agb itself any more 2024-02-09 21:58:42 +00:00
Gwilym Inzani bd4ae7d2fb px_offset_x and px_offset_y were unused 2024-02-09 21:38:43 +00:00
Gwilym Inzani 3f607b379a Release v0.18.1 2024-02-06 22:36:11 +00:00
Gwilym Inzani fec06e0c69 Include pause and resume in the example 2024-02-03 21:09:37 +00:00
Gwilym Inzani d8110243f4 Add pausing and resuming for sound channels 2024-02-03 21:09:37 +00:00
Gwilym Inzani ade1ba5718 Also include the docs in the agb lib itself 2024-02-03 20:22:06 +00:00
Constantin b03268f363 Added macro doc 2024-02-03 13:40:59 +01:00
Corwin 7c752b2e97
fix ewram name 2024-01-13 14:34:59 +00:00
Corwin e13d844f1f
use cloned rather than a map that clones 2024-01-13 10:31:00 +00:00
Corwin 1132bc2383
use addr_of_mut rather than mut reference 2024-01-13 10:30:44 +00:00
Corwin 7a6043839e
add docs for priority 2023-12-09 20:48:46 +00:00
Gwilym Inzani 35c601d4e9 Ensure that the affine background example looks consistent 2023-12-05 20:33:00 +00:00
Gwilym Inzani 7c6eaf324b Release v0.18.0 2023-10-31 20:35:14 +00:00
Gwilym Inzani fbd138a0cf Add a symlink for the readme to the agb directory
This is an attempt to make the readme show up on crates.io
2023-10-31 20:04:18 +00:00
Gwilym Inzani c47bef8983
Add clear and draw wide point functions to bitmap4 (#505)
- Adds a proper clear and draw wide point functions to bitmap4 for
consistency.
- I must save the bitmap modes from being removed
2023-10-24 21:57:02 +01:00
Gwilym Inzani 85a8540d44 Add missing #[cfg(test)] 2023-10-24 20:22:43 +01:00
xokz fdab4a3e6f
Update bitmap4.rs 2023-10-23 17:28:22 -04:00
xokz fe90d4d8d7
Update bitmap4.rs 2023-10-23 17:26:20 -04:00
Brandon Atkinson 2f1ad07e43 allow TileSetting palette to be set 2023-10-18 23:28:13 -06:00
Gwilym Inzani 4ed2ea3784 Move the linkers scripts to the src directory so agb itself can change its script 2023-10-18 12:26:50 +01:00
Gwilym Inzani eff075f50b Remove the need for a linker script and move multiboot to a feature 2023-10-18 12:08:12 +01:00
Corwin 41e192eff2
set interrupt handler to its own section 2023-10-18 00:17:24 +01:00
Gwilym Inzani ce233f7d62 Always check the address to make sure that things work as expected 2023-10-17 23:51:40 +01:00
Gwilym Inzani 5feb67285d Add a test that multiboot works 2023-10-17 23:49:57 +01:00
Gwilym Inzani aa33a46919 Remove trailing spaces 2023-10-17 23:45:08 +01:00
Gwilym Inzani 41bda0036f Make sure mgba recognises this as a GBA rom 2023-10-17 23:44:48 +01:00
Gwilym Inzani c9c8d9e879 Don't put the entrypoint in the .text section 2023-10-17 23:22:04 +01:00