Projects

I've worked on a great many projects over the years, almost all of which can be found on my GitHub page. This page provides detailed descriptions of most of the larger ones.

Shallow Blue

Shallow Blue is a UCI chess engine written in C++11 named after the Deep Blue Chess Computer. It can be used with any UCI compatible chess GUI and plays chess at a high amateur level. It's also very heavily unit tested using Catch and completely documented with Doxygen.

Nescafe

NEScafé is a Nintendo Entertainment System (NES) emulator written in C#. It accurately emulates the NES's MOS 6502 CPU, PPU (Picture Processing Unit) and memory mapped IO. It supports many original NES games to a playable extent. Including:

  • Super Mario Bros. (1985)
  • The Legend of Zelda (1986)
  • Donkey Kong (1981)
  • Castlevania (1988)
  • Spy vs. Spy (1986)

lib8080

lib8080 is an Intel 8080 CPU emulation library written in C that allows for projects to emulate the Intel 8080 essentially perfectly. It is incredibly thoroughly tested, with around 400 unit tests containing more than 1000 assertions which run through all 256 possible 8080 opcodes. It additionally passes several CP/M 8080 test programs from the 1980s.

AttoUnit

AttoUnit is a small, header only unit testing framework for C projects. Originally created to test lib8080, it was designed to be easy to set up, work with minimal boilerplate, and output test failures verbosely to allow for easy debugging. It accomplishes these three goals through the use of GNU C extensions.

Open Flood

Open Flood is a free and open source flood-fill puzzle game for Android. The goal of the game is to fill the entire board with a single colour in less than the maximum number of allowed moves. The size of the board as well as number of colours can be customized to change the game's difficulty. Boards can also be generated from seeds, allowing players to share challenging or interesting boards with others.

SentiSocial

SentiSocial is a Twitter based trend analysis application. It collects data on topics that are trending on Twitter and exposes that data via a public API.

The web based SentiSocial frontend then queries the backend for the collected data and displays it in a readable and intuitive format.

Corridors.io

Corridors.io is a first-person 3D maze game created with the Three.js JavaScript WebGL library. A maze is generated using a randomized depth-first-search algorithm and the player is then given the chance to find their way out in first person.

ScalaQuote

A Quote of The Day server implemented in Scala. Serves quotes via TCP and UDP as specified in RFC865.

Sock Snake

A SOCKS4a proxy implementation in Python 3. Complies fully with SOCKS4a specification.

Server Essentials

A mod for the free and open source game Minetest that provides a collection of useful features and commands for server administrators