For this project, you will debug several different projects. All of these are real bugs except the sort project. You should use whatever tools and methods you think are best.



The projects:

OBJ loader

This project parses 3D models from OBJ and MTL files. The spec for these formats is here:
OBJ spec
MTL spec
The details of the loader extensions are here

This project uses the CMake build system. Most Linux distros should have cmake in their package repositories. Windows and Mac users will probably need to manually install it.

You can create the build files by running cmake . in the project directory. You might check which generators are supported by CMake on your system to create project files for your favorite IDE.

Some example files I use in Advanced Graphics are here. Here's another example.

PNG writer

This project writes PNG files to disk. It uses PPMs as input test cases, since they are very simple.

PPM examples:


This does a simple sort of an array.

VMS reader

This parses the save game file system from Dreamcast memory cards and prints the results to disk. The spec for the filesystem is here(check the VMS pages). The Wikipedia page for the ANSI escaoe codes might be helpful. The code attempts to find a match between the icon's RGB pixel value and the closest 4bit ANSI color code.

Example broken icon:
broken icon

Example correct icon:
correct icon


OBJ loader log 0 : Poor or missing 2 : Progressive steps to find bug
OBJ loader bugs 0 : Not solved 1 : Solved
PNG writer log 0 : Poor or missing 2 : Progressive steps to find bug
PNG writer bugs 0 : Not solved 1 : Solved
Sort log 0 : Poor or missing 1 : Progressive steps to find bug
VMS reader log 0 : Poor or missing 2 : Progressive steps to find bug
VMS reader bugs 0 : Not solved 1 : Solved