
This is just a simple raycaster that I slapped together for fun, based on the
excellent tutorial at http://www.permadi.com/tutorial/raycast/index.html. I
originally wrote the raycaster as a Linux/SDL app in pure C until I got things
working nicely, and then transferred things over to the GBA. The initial
version managed about 1 frame per second - with a few optimisations, including
a little asm, it's now up to about 15-20fps in VisualBoyAdvance. It runs fine
on real hardware too, but a little more slowly.

When I say simple, I mean simple - think Wolf3D. Hopefully the code will make
some sense - if not, then reading the tutorial will probably make it a bit more
clear. It's a fairly straightforward implementation of the basic techniques
presented in the tutorial, with fixed-point math and table-based trig functions
giving it speed. The only assembler is in the rasteriser, but even the C
version (once re-implemented to remove a division from the inner loop) was
pretty quick. The GBA never ceases to amaze me :)

Improvements on the agenda include:
- Added prettyness (shading? floor/ceiling textures?)
- More speed :)

I might also look at improving the engine's capabilities ie: adding
variable-height walls, jumping, etc., but these things are more long-term. My
aim for the moment is to get some characters into the engine and get some kind
of game happening.

This code is licensed under the GNU Lesser General Public License, or LGPL,
which in essence means that you can do whatever you like with the code,
including using it in commercial software, as long as you release the source 
code for any modifications you make to my code.

If you'd like to contribute, please by all means do so. I'm fairly new to the
GBA, so I've probably got a lot to learn. I'm also not too crash-hot with
graphics, so any help with textures/sprites would be greatly appreciated

- Leigh
lsd@linuxgamers.net
