Commit graph

3068 commits

Author SHA1 Message Date
Gwilym Inzani 36cdc9e28d Don't need this workspace any more 2024-04-09 21:06:08 +01:00
Gwilym Inzani 65388e01f5 Fix more clippy lints in the emulator 2024-04-09 20:56:19 +01:00
Gwilym Inzani 08ad8765de Fix clippy lint and fmt in the emulator 2024-04-09 20:55:21 +01:00
Gwilym Inzani 52ddd97a2e Switch to cargo workspaces for every crate we support 2024-04-09 20:54:12 +01:00
Corwin 0dab252379
RFC: Remove Cargo lockfiles (#621)
Maintaining the lockfiles has proven to be an annoyance with regular
"update lockfiles" commits. We don't actually care what's in the
lockfiles.

The problem is that they're not kept in sync with each other. We really
want a workspace to have one lockfile for the whole project, but
limitations is workspaces means this is not currently possible.
2024-04-09 20:51:28 +01:00
Corwin c8abf33c8f
remove update lockfiles workflow 2024-04-09 20:43:31 +01:00
Corwin b7ec8a77d5
ignore Cargo lockfiles 2024-04-09 20:42:11 +01:00
Corwin bf3e708f6f
remove all lockfiles 2024-04-09 20:42:09 +01:00
Corwin 6c60b770b5
Implement signed for our fix num (#578)
* Integrates num_traits more closely.
* Implements signed for our num, and the vector2d / rect abs now can use
our fixnum.
* This is potentially breaking.
2024-04-09 20:41:00 +01:00
Corwin 7d0e05c9b5
update changelog 2024-04-09 20:33:26 +01:00
Corwin 57681f1084
use num traits for and implement signed 2024-04-09 20:26:15 +01:00
Corwin cddb85df05
use num traits 2024-04-09 20:26:15 +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 646b7947e9
Enforce functions (#625) 2024-04-09 20:22:28 +01:00
Gwilym Inzani 5f8c1a4634
Update peaceiris/actions-mdbook action to v2 (#617)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[peaceiris/actions-mdbook](https://togithub.com/peaceiris/actions-mdbook)
| action | major | `v1` -> `v2` |

---

### Release Notes

<details>
<summary>peaceiris/actions-mdbook (peaceiris/actions-mdbook)</summary>

###
[`v2`](https://togithub.com/peaceiris/actions-mdbook/compare/v1...v2)

[Compare
Source](https://togithub.com/peaceiris/actions-mdbook/compare/v1...v2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log [here](https://developer.mend.io/github/agbrs/agb).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-04-09 20:18:02 +01:00
Gwilym Inzani c77ed7fa56 Update the justfile target 2024-04-09 20:15:33 +01:00
Gwilym Inzani 966fda443a Rename agb-addr2line to agb-debug 2024-04-09 20:13:20 +01:00
Gwilym Inzani eca511bc83 Add a changelog entry for the new backtraces 2024-04-09 20:09:52 +01:00
Corwin 754435ad1e
show mobile controls on a small screen (#624) 2024-04-09 12:48:21 +01:00
Corwin dcd632d3e6
Update dependency @types/node to v20.12.6 (#623)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.5` ->
`20.12.6`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.5/20.12.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.5/20.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.5/20.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log [here](https://developer.mend.io/github/agbrs/agb).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-04-09 12:47:01 +01:00
Corwin eb30a7a825
prefer regular functions over named arrow functions 2024-04-09 12:46:13 +01:00
Corwin 12316dbe6a
show mobile controls on a small screen 2024-04-09 12:15:11 +01:00
renovate[bot] 8b396fc576
Update dependency @types/node to v20.12.6 2024-04-09 07:21:24 +00:00
Corwin abd5e44ede
Press to start on mobile (#622) 2024-04-09 02:46:10 +01:00
Corwin bbdcdfeb95
readd hover border on help links 2024-04-09 02:38:22 +01:00
Corwin f6c703060f
Update dependency @types/react to v18.2.75 (#618) 2024-04-09 02:34:13 +01:00
Corwin 73d4346964
nicer height calculation 2024-04-09 02:32:36 +01:00
Corwin 9ad67ae494
on mobile devices require a touch to start the emulator loading 2024-04-09 02:31:17 +01:00
GBA bot ef694ad776 Update lockfiles 2024-04-09 00:04:04 +00:00
renovate[bot] 143afc961e
Update dependency @types/react to v18.2.75 2024-04-09 00:03:25 +00:00
Corwin 362e0d864f
make website with nextjs (#619) 2024-04-09 01:01:40 +01:00
Corwin 07e0608949
cache next build 2024-04-09 00:41:28 +01:00
Corwin a9c6723a3b
make website with nextjs 2024-04-09 00:33:32 +01:00
GBA bot ef378905fe Update lockfiles 2024-04-08 19:56:04 +00:00
renovate[bot] 0970bc1b92
Update peaceiris/actions-mdbook action to v2 2024-04-08 19:55:29 +00:00
Corwin 7206b8f925
Update dependency @testing-library/react to v14.3.0 (#616)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@testing-library/react](https://togithub.com/testing-library/react-testing-library)
| [`14.2.2` ->
`14.3.0`](https://renovatebot.com/diffs/npm/@testing-library%2freact/14.2.2/14.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/14.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2freact/14.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2freact/14.2.2/14.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/14.2.2/14.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>testing-library/react-testing-library
(@&#8203;testing-library/react)</summary>

###
[`v14.3.0`](https://togithub.com/testing-library/react-testing-library/compare/v14.2.2...9c4a46d5b9923c21c936d206614a8febcc939fc2)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v14.2.2...9c4a46d5b9923c21c936d206614a8febcc939fc2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log [here](https://developer.mend.io/github/agbrs/agb).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-04-08 17:05:16 +01:00
GBA bot 2cfb5b576c Update lockfiles 2024-04-08 14:53:37 +00:00
renovate[bot] b46a5ba43d
Update dependency @testing-library/react to v14.3.0 2024-04-08 14:53:01 +00:00
Corwin 8ddc55284c
Compress combo rom (#615)
GitHub pages, for whatever reason, doesn't compress the combo ROM and
instead serves it uncompressed. Therefore, we explicitly compress it
using the highest compression level at build time and explicitly
decompress it.

Previously we would download 14.69MB, now we download 7.84MB.
Approximately 50% savings.
2024-04-08 03:38:46 +01:00
Corwin b830410e39
remove log statement 2024-04-08 03:24:06 +01:00
Corwin f1ef67ad1e
use the gzip compressed combo rom 2024-04-08 03:23:55 +01:00
Corwin f0ee5a081c
make emulator wrapper be able to decompress gzip compressed roms 2024-04-08 03:23:47 +01:00
Corwin 582cce78c8
compress the combo rom 2024-04-08 03:23:19 +01:00
Corwin 9b36ae62e0
Manually handle frameskipping for better audio on non multiple of 60hz screens (#613)
* We want to always use animation frames as our time to call the main
loop because otherwise the timing is inconsistent leading to very bad
audio.
* We don't want to call the main loop every frame otherwise > 60hz
screens will play too fast.
* We can't emscripten's frameskipping becuase it only allows for
integers whereas screeens come in many other framerates such as 75hz,
90hz, 144hz, etc.
* Therefore we manually manage frameskipping by ~~ab~~using pause and
resume game which internally just enable and disable the emscripten's
calling of the main loop. (see
27dede256b/src/platform/wasm/main.c (L183)).
* We could modify the code to let us call the main loop ourselves and
take full control over this, but for now this is okay.
2024-04-06 20:24:44 +01:00
Corwin 290387af16
Update dependency @types/node to v20.12.5 (#612)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.4` ->
`20.12.5`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.4/20.12.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.4/20.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.4/20.12.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log [here](https://developer.mend.io/github/agbrs/agb).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-04-06 19:47:40 +01:00
Corwin 7f0de5f87b
manually handle frameskipping for better audio on non multiple of 60hz screens 2024-04-06 19:42:44 +01:00
Corwin b47dc28f6f
Fix controls (#610)
* Controls were broken on mobile because dpad movement was interpreted
as a/b button presses.
* Fixes it to:
  * Handle multiple fingers using the dpad / a / b buttons
* A dpad movement must start on the dpad, and a/b presses must start on
a/b.
2024-04-06 03:33:42 +01:00
Corwin 3b2ebe6001
dynamically choose frameskip or timeout 2024-04-06 03:26:06 +01:00
GBA bot ba85226cb3 Update lockfiles 2024-04-06 01:54:49 +00:00
renovate[bot] be25491f15
Update dependency @types/node to v20.12.5 2024-04-06 01:54:17 +00:00