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, as well as the odd bit of assembler :) In addition to the basic walls, there's a sprite system for drawing in-game objects, and some floor and ceiling textures textures. I've also added shading to give the graphics a bit more depth. Improvements on the agenda include: - 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 once I'm happy with the basic renderer. 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