added readme and license
[gba_blender] / README.md
1 Blender for the Gameboy Advance (not really)
2 ============================================
3
4 I saw a funny video on youtube the other day, of a 3D artist who composited
5 blender onto the screen of a GBA, jokingly pretending that he ported blender to
6 the Gameboy Advance. Porting blender to the GBA is of course impossible, but
7 what he actually showed, a mockup of the blender UI with a 3D cube being
8 manipulated is in fact well within the capabilities of the GBA. So I thought it
9 would be fun to actually hack his "demo" for real.
10
11 Here is the video which kicked this hack off:
12   - https://www.youtube.com/watch?v=BSzM1BvSKUY
13
14 The only part which I was unable to reproduce was the cube popping out of the
15 screen. That's slightly beyond what the GBA can do, but it could be implemented
16 in a subsequent port to the Nintendo 3DS. Instead of that, I've added a second
17 3D model, the iconic blender monkey, suzanne. No blender port would be complete
18 without it.
19
20 Controls
21 --------
22 The controls mimic the control scheme of the fake GBA blender demo as shown in
23 the original video.
24
25   - D-pad: orbit or pan the viewport, depending on the current mode
26   - Start: switch viewport mode between orbit or panning
27   - Select: switch model (cube or suzanne)
28   - A: pop up "delete object" dialog, or bring back object if previously deleted
29   - B: confirm object deletion if the "delete dialog" is currently visible
30   - left/right trigger: pan view left/right even in orbit mode
31
32 License
33 -------
34 Copyright (C) 2021 John Tsiombikas <nuclear@member.fsf.org>  
35
36 Blender for the Gameboy Advance is free software. Feel free to use, modify
37 and/or redistribute it under the terms of the GNU General Public License version
38 3, or at your option any later version published by the Free Software
39 Foundation. See COPYING for details.
40
41 Download
42 --------
43 The current release (v1.0) includes full source code, and pre-compiled GBA ROM
44 image, and it's available either as a gzipped tarball or a zip archive. Their
45 contents are identical, choose whichever is more convenient for you.
46
47   - http://nuclear.mutantstargoat.com/sw/blender_gba-1.0.tar.gz
48   - http://nuclear.mutantstargoat.com/sw/blender_gba-1.0.zip
49
50 Build
51 -----
52 To build this program from source you will need the devkitarm GBA toolchain
53 from: https://devkitpro.org
54
55 No devkitpro libraries are used other than the GCC C runtime support libraries
56 and 1-2 functions from libc. So it should be possible to build with any
57 freestanding ARM toolchain (target `arm-none-eabi`) without much effort.
58
59 Additionally the `pngdump` tool, which is built as part of the build process,
60 depends on *libpng* and *zlib*.