FPRAST: Fixed Point Rasterizer

Okay, this is probably the most insane thing I've ever made, it's a 3D rasterizer that runs on bare-metal x86 with a custom bootloader hand-written in assembly. The actual 32 bit kernel is written in C, though. It uses NO floating point numbers, instead using 32 bit integers to represent fixed-point 24:12 precision numbers. It also contains a dev console where commands can be used. Transformations are achieved using fixed-point perspective and there's no near or far plane because there is no depth buffering (the cube it renders looks fine because backfaces are being culled).

In order to run this, you want to run it in Bochs, using it the image as a hard drive (disk) with 80 cylinders, 2 heads, and 18 Sectors per Track. It's a finnicky setup, because I wrote the bootloader using this as a testbed. It does not run on qemu for some reason, likely because the topology of the image is actually for a floppy disk, but the stage 4 bootloader uses ATA PIO mode to retrieve the kernel image, because that was the easiest disk I/O to get working when my kernel got too big to store in real-mode's address space.

The entire console log is also dumped out over the serial port, so you can configure your emulator to write that to a text file, this is so that it can be read, even in the event that the graphics crap out completely to the point where the graphical console is not readable.

The project's source code was partially derived from LIGMOS, my other OSDev project, which has since progressed a little bit, so there may be some vestigial files around in the codebase.

If for some reason you want to download this godforsaken project, you can find both the source and build (build.img) here.