Smorgasbord
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.
Repos
1819c-490-smorg-mckownqa-mongovsp-xiey2
1819c-490-smorg-liur5-wangc6-schluncg
1819c-490-smorg-hilliara-proctem-petrisjj
1819c-490-smorg-zhengj2-sheffeit-johnsor2
1819c-490-smorg-chanck-clonintl-paytonzk
1819c-490-smorg-chenj10-wangy18-neessc
1819c-490-smorg-calarejf-huangf1-graziodj
1819c-490-smorg-shaferw-shenx-fengy3
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:
256COLOR.ppm
triangle.ppm
Sort
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:
Example correct icon:
Rubric
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 |