Commit graph

120 commits

Author SHA1 Message Date
Gwilym Inzani c863b94f49 Hello world for desktop player 2024-07-11 21:58:44 +01:00
Gwilym Inzani d0925f6787 Make agb optional for the tracker 2024-07-11 21:58:44 +01:00
Gwilym Inzani 3305ca0ff2 Make the tracker generic on the mixer 2024-07-11 21:58:44 +01:00
Gwilym Inzani d00de7b2a4 Make agb-xm-core return the interop rather than the tokens 2024-07-11 21:58:44 +01:00
Corwin a4d6ba5bc9
Release v0.20.5 2024-06-18 17:49:56 +01:00
Corwin 592e6dce09
fix xmrs minor version breakage 2024-06-17 20:37:32 +01:00
Corwin ac2e6b5046
Release v0.20.4 2024-06-13 23:13:02 +01:00
Corwin bc63776b9e
Exclude tests / examples / benches from the published packages (#589)
The package published to crates.io should not include tests / examples /
benches. Previously we ran into issues with having a too large package
from example data, but we avoided this by making the examples smaller. A
better way to avoid this is to not include them at all.

- [x] no changelog update needed
2024-06-13 22:48:00 +01:00
Corwin a6e4be0577
Release v0.20.3 2024-06-12 17:57:39 +01:00
Corwin 50f2ad6f52
exclude tests / examples / benches from the published packages 2024-06-12 01:19:18 +01:00
renovate[bot] dd15cb2ee0
Update Rust crate xmrs to 0.6 2024-05-29 16:36:06 +00:00
Corwin d05965b98f
Release v0.20.2 2024-05-25 13:20:03 +01:00
Corwin 6a5346026a
Release v0.20.1 2024-05-17 23:09:16 +01:00
Gwilym Inzani 93a3bc8e56 just fmt 2024-05-16 23:04:26 +01:00
Gwilym Inzani 352b352b27 Properly implement delay and envelopes 2024-05-16 00:27:20 +01:00
Gwilym Inzani 5494ae29e1 Get the envelopes correct 2024-05-15 23:47:37 +01:00
Gwilym Inzani 2e0f89978a Add note delay support (effect EDx) 2024-05-15 22:30:13 +01:00
Gwilym Inzani b5fc27d243 Spell amiga correctly 2024-05-15 21:54:31 +01:00
Gwilym Inzani 2ab3fa79e1 Notes are 1 indexed, not 0 indexed
Versions of xmrs below 0.4.1 (unreleased, 0.4.2 is on crates.io but
0.4.1 is in the repo) have a bug where they swap linear and amiga
frequencies. This caused all old versions of agb (which were using
version 0.3) to use the amiga frequency table rather than the linear
one. Technically it sounds slightly wrong but it is kinda hard to tell.

Since agb 0.20.0, we are now using xmrs 0.5, which correctly reports the
frequency type for the XM file. That pointed out an error in the
note_to_speed method for linear frequencies (since those are now being
used). It turns out that the formula for calculating the frequency
expects a 0 based index for the note, but we were passing a 1 based
index for the note. Moving this down a note fixes the issue where things
were being played at the wrong frequency.
2024-05-15 21:35:03 +01:00
Corwin 737b547343
Release v0.20.0 2024-05-14 22:57:40 +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
renovate[bot] 0b7e3464ab
Update Rust crate xmrs to 0.5 2024-04-02 12:10:08 +00:00
Gwilym Inzani 71bdb085be Include the new option in all the config.tomls 2024-04-01 17:02:59 +01:00
Corwin 184b11ed81
use static rather than const 2024-03-29 14:41:08 +00:00
renovate[bot] 5093c94eac
Update Rust crate xmrs to 0.4 2024-03-09 15:27:29 +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
Gwilym Inzani 6a0f0a30c4 Should be 0.18.1 2024-02-20 22:27:29 +00:00
Gwilym Inzani ff9f336be3 Do pitch bend correctly 2024-02-20 22:27:29 +00:00
Gwilym Inzani a36b06b35c Correctly handle no sample set 2024-02-20 22:27:29 +00:00
Gwilym Inzani b583ba22a9 Use Default::default which is nicer 2024-02-20 22:27:29 +00:00
Gwilym Inzani 2e453e8e0f Envelopes for MIDI 2024-02-20 22:27:29 +00:00
Gwilym Inzani 0a13b54e12 Pitch bending 2024-02-20 22:27:29 +00:00
Gwilym Inzani bf79b09e6a Avoid double panning correction 2024-02-20 22:27:29 +00:00
Gwilym Inzani 817ba12ea7 Format the let-else 2024-02-20 22:27:29 +00:00
Gwilym Inzani 54ade5af2d Add a note about midi support being experimental 2024-02-20 22:27:29 +00:00
Gwilym Inzani cf50223dfc It seems to do better without the tune for some reason 2024-02-20 22:27:29 +00:00
Gwilym Inzani 0e685ce7e8 That's the longest out by one I've ever had to debug
Thanks Corwin for helping!
2024-02-20 22:27:29 +00:00
Gwilym Inzani 85e358874c HELP! 2024-02-20 22:27:29 +00:00
Gwilym Inzani 7f200a21ad This works better than before 2024-02-20 22:27:29 +00:00
Gwilym Inzani a55b106106 Better looping 2024-02-20 22:27:29 +00:00
Gwilym Inzani e103468b86 Vaguely get the correct beat and the patterns correct 2024-02-20 22:27:29 +00:00
Gwilym Inzani 64976deeb5 Export maybe something? 2024-02-20 22:27:29 +00:00
Gwilym Inzani 7868094f7e Maybe exporting something useful? 2024-02-20 22:27:29 +00:00
Gwilym Inzani 32aaaef4cd It actually builds now 2024-02-20 22:27:29 +00:00
Gwilym Inzani 5768b56028 Fix unused warning 2024-02-20 22:27:29 +00:00
Gwilym Inzani 797fc8394f Boilerplate for midi support 2024-02-20 22:27:29 +00:00
Gwilym Inzani 3f607b379a Release v0.18.1 2024-02-06 22:36:11 +00:00
Gwilym Inzani 7c6eaf324b Release v0.18.0 2023-10-31 20:35:14 +00:00
Gwilym Inzani 00631b2166 Delete all the gba.ld files 2023-10-18 12:08:25 +01:00