mirror of
https://github.com/italicsjenga/gba.git
synced 2024-12-26 12:11:31 +11:00
79 lines
3.8 KiB
Markdown
79 lines
3.8 KiB
Markdown
# Help and Resources
|
|
|
|
## Help
|
|
|
|
So you're stuck on a problem and the book doesn't say what to do. Where can you
|
|
find out more?
|
|
|
|
The first place I would suggest is the [Rust Community
|
|
Discord](https://discordapp.com/invite/aVESxV8). If it's a general Rust question
|
|
then you can ask anyone in any channel you feel is appropriate. If it's GBA
|
|
specific then you can try asking me (`Lokathor`) or `Ketsuban` in the `#gamedev`
|
|
channel.
|
|
|
|
## Emulators
|
|
|
|
You certainly might want to eventually write a game that you can put on a flash
|
|
cart and play on real hardware, but for most of your development you'll probably
|
|
want to be using an emulator for testing, because you don't have to fiddle with
|
|
cables and all that.
|
|
|
|
In terms of emulators, you want to be using
|
|
[mGBA](https://github.com/mgba-emu/mgba), and you want to be using the [0.7 Beta
|
|
1](https://github.com/mgba-emu/mgba/releases/tag/0.7-b1) or later. This update
|
|
lets you run raw ELF files, which means that you can have full debug symbols
|
|
available while you're debugging problems.
|
|
|
|
## Information Resources
|
|
|
|
First, if I fail to describe something related to Rust, you can always try
|
|
checking in [The Rust
|
|
Reference](https://doc.rust-lang.org/nightly/reference/introduction.html) to see
|
|
if they cover it. You can mostly ignore that big scary red banner at the top,
|
|
things are a lot better documented than they make it sound.
|
|
|
|
If you need help trying to fiddle your math down as hard as you can, there are
|
|
resources such as the [Bit Twiddling
|
|
Hacks](https://graphics.stanford.edu/~seander/bithacks.html) page.
|
|
|
|
As to GBA related lore, Ketsuban and I didn't magically learn this all from
|
|
nowhere, we read various technical manuals and guides ourselves and then
|
|
distilled those works oriented around C and C++ into a book for Rust.
|
|
|
|
We have personally used some or all of the following:
|
|
|
|
* [GBATEK](http://problemkaputt.de/gbatek.htm): This is _the_ resource. It
|
|
covers not only the GBA, but also the DS and DSi, and also a run down of ARM
|
|
assembly (32-bit and 16-bit opcodes). The link there is to the 2.9b version on
|
|
`problemkaputt.de` (the official home of the document), but if you just google
|
|
for gbatek the top result is for the 2.5 version on `akkit.org`, so make sure
|
|
you're looking at the newest version. Sometimes `problemkaputt.de` is a little
|
|
sluggish so I've also [mirrored](https://lokathor.com/gbatek.html) the 2.9b
|
|
version on my own site as well. GBATEK is rather large, over 2mb of text, so
|
|
if you're on a phone or similar you might want to save an offline copy to go
|
|
easy on your data usage.
|
|
* [TONC](https://www.coranac.com/tonc/text/): While GBATEK is basically just a
|
|
huge tech specification, TONC is an actual _guide_ on how to make sense of the
|
|
GBA's abilities and organize it into a game. It's written for C of course, but
|
|
as a Rust programmer you should always be practicing your ability to read C
|
|
code anyway. It's the programming equivalent of learning Latin because all the
|
|
old academic books are written in Latin.
|
|
* [CowBite](https://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm): This is
|
|
more like GBATEK, and it's less complete, but it mixes in a little more
|
|
friendly explanation of things in between the hardware spec parts.
|
|
|
|
And I haven't had time to look at it myself, [The Audio
|
|
Advance](http://belogic.com/gba/) seems to be very good. It explains in depth
|
|
how you can get audio working on the GBA. Note that the table of contents for
|
|
each page goes along the top instead of down the side.
|
|
|
|
## Non-Rust GBA Community
|
|
|
|
There's also the [GBADev.org](http://www.gbadev.org/) site, which has a forum
|
|
and everything. They're coding in C and C++, but you can probably overcome that
|
|
difference with a little work on your part.
|
|
|
|
I also found a place called
|
|
[GBATemp](https://gbatemp.net/categories/nintendo-gba-discussions.32/), which
|
|
seems to have a more active forum but less of a focus on actual coding.
|