TPF (Two Point Five) is a work-in-progress Wolfenstein 3D style graphics engine.


Current features:

* Support for any sized 8bit screen mode
* Levels up to at least 128x128 blocks in size
* Multi-sided objects
* Ability to draw as multiple levels and objects at the same time
* 26/32bit neutral code


And at some point in the future it will hopefully feature:

* Fixed rotation objects (e.g. for doors)
* Variable size textures, and compressed formats for large transparent areas
* Support for other screen/texture colour depths
* Coloured floor and ceiling tiles, possibly leading on to textured ones
* Various speed and accuracy improvements
* More documentation
* Some kind of framework to allow a game to be built - either integrated support in the TPF objects, or a seperate library


Running the demo:

1. Run the Obeyfile to set the current directory
2. Run tpftest, and enter 'wall4' for the sprite file
3. Move the mouse around to turn/move in the world
4. Press all three mouse buttons to exit - pressing escape doesn't always seem to work.

You might need a 32bit version of the Shared C Library to get it working


Using the engine:

At the moment the only real documentation is the API definiton in the source header files. The general code layout to render a scene is:

1. Call TpfScreen_SetScreen to set up the screen
2. Call TpfScreen_SetViewPos and TpfScreen_SetFov to set up the viewing position
3. Call TpfDraw_Draw for each level map you want displaying
4. Call TpfDraw_DrawObj for each object you want displaying
5. Call TpfDraw_DoDrawList to transfer the data to the screen

Feel free to poke around and expand the engine in your own way, just don't try claiming that you wrote it all yourself ;)
The supplied makefiles should work fine with 26/32bit versions of GCC. All the source should be valid C/assembler, so with a couple of makefile tweaks it should also compile under LCC.
Don't expect all the routines in tpf.s.fp_math or some of c.osspr / c.screen to work properly, as they haven't been fully tested.


 Jeffrey Lee 2003
me@phlamethrower.co.uk