Commit graph

67 commits

Author SHA1 Message Date
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
GBA bot 4a0aa0e9d7 Update lockfiles 2024-04-04 20:58:42 +00:00
Gwilym Inzani b3e18d130f Use a different footer to announce the file type 2024-04-03 14:19:28 +01:00
Gwilym Inzani 5366fc252b Don't need special release stuff here to make local testing faster 2024-04-03 14:19:09 +01:00
Gwilym Inzani 25e15baa2b Compress the debug data for quite a large saving 2024-04-03 13:38:49 +01:00
Gwilym Inzani 2475b5676a Include the debug info in the rom (optionally) 2024-04-03 13:33:50 +01:00
GBA bot 5f24660b27 Update lockfiles 2024-04-02 12:10:47 +00:00
GBA bot 4bf1778dec Update lockfiles 2024-03-19 23:30:08 +00:00
GBA bot 0b669e513e Update lockfiles 2024-03-09 15:28:03 +00:00
Corwin 9e63b2c46c
Release v0.19.1 2024-03-06 19:11:47 +00:00
Gwilym Inzani 66ec762855 Release v0.19.0 2024-03-06 09:33:58 +00:00
GBA bot 6dbf946ca3 Update lockfiles 2024-02-27 22:05:08 +00:00
Gwilym Inzani 7d6ea45670 Update ahash in the cargo.lock files.
Fixes #553 and allows building on latest nightly again.
2024-02-11 16:17:59 +00:00
GBA bot 5d82f96396 Update lockfiles 2024-02-06 22:49:04 +00:00
Gwilym Inzani 3f607b379a Release v0.18.1 2024-02-06 22:36:11 +00:00
GBA bot cc0853518b Update lockfiles 2024-01-31 23:15:12 +00:00
GBA bot 7a7aa5c57b Update lockfiles 2024-01-17 17:23:23 +00:00
GBA bot 4fdd0e0263 Update lockfiles 2024-01-07 15:10:41 +00:00
GBA bot 91154a897e Update lockfiles 2023-12-28 22:33:58 +00:00
GBA bot 05851558df Update lockfiles 2023-12-20 17:09:12 +00:00
GBA bot 382d465f3e Update lockfiles 2023-12-05 20:51:29 +00:00
GBA bot b1df507fa6 Update lockfiles 2023-11-26 04:15:22 +00:00
GBA bot 323dbd8f01 Update lockfiles 2023-11-14 20:04:00 +00:00
Gwilym Inzani 7c6eaf324b Release v0.18.0 2023-10-31 20:35:14 +00:00
Gwilym Inzani e8eb216ff4 Update lockfiles 2023-10-26 22:27:19 +01:00
Gwilym Inzani 53685b0410 Release v0.17.1 2023-10-05 22:18:04 +01:00
Gwilym Inzani b6916d7e74 Release v0.17.0 2023-10-03 22:33:10 +01:00
Gwilym Inzani c6e98ea2dd Update lockfiles 2023-10-03 22:23:24 +01:00
GBA bot 2516a6f831 Update lockfiles 2023-09-26 20:25:56 +00:00
GBA bot 81aae96d18 Update lockfiles 2023-09-22 18:27:01 +00:00
GBA bot c7540a440d Update lockfiles 2023-09-13 13:17:49 +00:00
GBA bot ab07ed31db Update lockfiles 2023-09-04 12:36:38 +00:00
GBA bot c29ba6e9ec Update lockfiles 2023-08-13 10:36:46 +00:00
Gwilym Inzani 6607ea3f1f Update lockfiles 2023-08-06 21:06:12 +01:00
Gwilym Inzani f3a6bead13 Actually update the gbafix licence 2023-07-28 21:54:36 +01:00
GBA bot e08024ae5b Update lockfiles 2023-07-26 11:31:26 +01:00
Gwilym Inzani 61c4b03f7d Update the licence to be MPL since we have no GPL dependency any more 2023-07-26 10:23:34 +01:00
Gwilym Inzani d9fc333644 Implement the padding flag 2023-07-26 10:21:54 +01:00
Gwilym Inzani 9eee5a03f2 Implement our own gba header 2023-07-26 10:18:28 +01:00
Gwilym Inzani eb31a98f29 Extract write_gba_file to lib.rs 2023-07-26 09:53:32 +01:00
Corwin a7f9fdf011
Release v0.16.0 2023-07-18 18:55:12 +01:00
GBA bot 28683e701f Update lockfiles 2023-06-30 22:03:31 +01:00
Corwin 6b7088773e
remove codegen units 2023-05-23 20:12:42 +01:00
Corwin 400abe5b31
Release v0.15.0 2023-04-25 21:51:29 +01:00
Corwin 68e981f3c8
Objects, again, again (#402)
* A redesign of objects giving the option of a more managed and an
unmanaged system.
* Managed system features
    * Z ordering (should be efficient, based on a doubly linked list).
* More than 128 objects if some are disabled (not currently efficient).
* Unmanaged
    * Same sprite system as before.
    * You control how objects get put in to OAM with the unmanaged OAM.
    
TODO before this is mergable:
* [x] Docs pass, aim for everything to have docs as before.
* [x] Tests, some of these needs some run time testing.
* [x] Affine matrices, I'm not leaving this to die this time.
* [x] Some API redo, so the names make sense / are similar to before.

Future work:
* The Sprite loader should keep most recently used sprites around and
upon allocation of a new sprite try unloading the least recently used
sprite. (Performance wise this would be a disaster as it would be doing
dealloc and alloc in vblank, so really we want to "learn" how much
buffer we should maintain and try to get that during GC).

- [x] Changelog updated
2023-04-25 21:14:49 +01:00
Gwilym Inzani 9835f81b5f Maybe make the build faster by using the same settings for all crates 2023-04-25 20:22:44 +01:00
Corwin e26a9c2c24
Merge remote-tracking branch 'upstream/master' into new-objects 2023-04-22 00:46:41 +01:00
Gwilym Inzani 45343efe52 Update lockfiles 2023-04-13 22:33:59 +01:00
Corwin fc5ce97db4
Release v0.14.0 2023-04-11 21:28:22 +01:00
Gwilym Inzani 8af41a9b3c Add required fields for publishing 2023-04-09 18:40:33 +01:00