···11// Games made using `agb` are no_std which means you don't have access to the standard
22// rust library. This is because the game boy advance doesn't really have an operating
33// system, so most of the content of the standard library doesn't apply.
44-//
55-// Provided you haven't disabled it, agb does provide an allocator, so it is possible
66-// to use both the `core` and the `alloc` built in crates.
74#![no_std]
85// `agb` defines its own `main` function, so you must declare your game's main function
96// using the #[agb::entry] proc macro. Failing to do so will cause failure in linking
···1411#![cfg_attr(test, reexport_test_harness_main = "test_main")]
1512#![cfg_attr(test, test_runner(agb::test_runner::test_runner))]
16131717-// The main function must take 1 arguments and never return. The agb::entry decorator
1818-// ensures that everything is in order. `agb` will call this after setting up the stack
1919-// and interrupt handlers correctly. It will also handle creating the `Gba` struct for you.
1414+// By default no_std crates don't get alloc, so you won't be able to use things like Vec
1515+// until you declare the extern crate. `agb` provides an allocator so it will all work
1616+extern crate alloc;
1717+1818+// The main function must take 1 arguments and never returns, and must be marked with
1919+// the #[agb::entry] macro.
2020#[agb::entry]
2121-fn main(mut gba: agb::Gba) -> ! {
2121+fn main(gba: agb::Gba) -> ! {
2222 agb::no_game(gba);
2323}