summaryrefslogtreecommitdiff
path: root/README.html
blob: 9a2e4057e7f3726ac8291591bb6dd44812e03c3d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html>
	<h1>AGBx</h1>
	<p>Framework for development on the Game Boy Advance.</p>
	<br />
	<p>Controls for the demo:</p>
	<ul>
		<li>
			<p>A: Colour the current pixel;</p>
		</li>
		<li>
			<p>+CONTROL PAD (UP): Move one pixel up on the canvas;</p>
		</li>
		<li>
			<p>+CONTROL PAD (RIGHT): Move one pixel to the right on the canvas;</p>
		</li>
		<li>
			<p>+CONTROL PAD (DOWN): Move one pixel down on the canvas;</p>
		</li>
		<li>
			<p>+CONTROL PAD (LEFT): Move one pixel to the left on the canvas;</p>
		</li>
		<li>
			<p>R: Rotate the palette counterclockwise;</p>
		</li>
		<li>
			<p>L: Rotate the palette clockwise;</p>
		</li>
		<li>
			<p>START: Exit the demo;</p>
		</li>
		<li>
			<p>SELECT: Exit the demo (whilst indicating error);</p>
		</li>
	</ul>
	<h2>Building</h2>
	<p>As the Game Boy Advance uses an ARM (ARM7TDMI) processor, AGBx requires an ARM cross-compiler.</p>
	<p>For GCC, the appropriate package is <i>arm-none-eabi-gcc</i> on Arch Linux and <i>gcc-arm-none-eabi</i> on Debian. Clang supports supports cross-compilation by default, and this platform can be set via the <i>--target=arm-none-eabi</i> option.</p>
	<p>The used cross-compiler can be configured in the makefiles, however, it must be GCC-compatible..</p>
	<br />
	<p>The provided makefiles are for GNU Make (hence the filename of <i>GNUmakefile</i>) and depend on it's extensions.</p>
	<h3>Demo</h3>
	<p>The demo uses <a href="https://mandelbrot.dk/agbsum">agbsum</a> (<a href="https://mandelbrot.dk/pkgbuild_agbsum">pkgbuild</a>) for patching the demo image header checksum so that it isn't rejected by the bootloader. This patch isn't always required, however, and the makefile (at <i>demo/GNUmakefile</i>) can be modified to skip it.</p>
</html>