Hello everyone!
After posting some of this stuff to the A83 mailing list I received an e-mail from one of your members asking me to get involved in this forum.
I have been working on a realtime 3D engine for Z80-based systems, mainly targeted at the Z80-based TI calculators, but designed to be easily adapted to almost any system.
I started this project originally in 2001, but then had a few years off from the Z80, only to resurrect it whilst browsing through my old files a few months ago (I caught the bug again!).
The aim of the project is twofold. First, I wanted a "real" 3D engine with support for all the basic tools required to make a useful game. Second, it needed to be very fast, with a goal of rendering a useful amount of objects at 15-20 fps. As a result, the engine always trades off size and accuracy for speed.
As it stands right now, the engine currently supports:
* arbitrary rendering windows of any size and position on screen.
* 7-bit 3x3 matrix transformations, with optional 16-bit translations to allow objects to exist in a 16-bit worldspace.
* some basic quaternion routines, which really need some work.
* 3D clipping support for line / wireframe objects. It can be used for polygons but the results aren't correct in some situations.
* Patterned polygon rendering, which is actually not as slow as I thought it would be.
* A whole slew of mathematical support routines, mainly covering a variety of fast (130 T-States) 8-bit multiplication routines and some reasonably fast 8 & 16 bit division.
At the moment it can render a solid 3D cube at ~25 fps and a medium-level wireframe (~20 points and lines) at ~28 fps.
I have a recent-ish demo (source only) available at
http://home.iprimus.com.au/qarnos/aldemo.zip, but it was written for the TI-83+ with ION/MirageOS
ONLY. I have since modified it to natively support the TI-86.
Anyway, like I keep telling everyone, I'm not going to garuntee I will every actually finish it (I started it in 2001!) but I would appreciate comments/feedback.
I finish work for the year in just over 2 weeks, so hopefully I can dedicate some time to it over the Christmas break.