WPF/E Chess
WPF/E for the board graphics, and a fully javascript AI that is actually decently strong (against humans).
PocketSPC Player for the Nintendo DS
Started as a port of my SPC emulator for GBA, but soon blossomed into it's own beast. The DS has just enough horsepower to emulate the SPC chip with pretty close to perfect accuracy. Most of the code is some pretty highly optimized assembly code and it has now been included in the snesds project by loopy as the sound core for the snes emulator.
Project page.
Source is available on the project page.
Gameboy Advance emulator in C# 2.0
|
Started as a technical feasibility project, later blossomed into a life of it's own. It has close to 100% compatibility and is pretty quick for being built in C# as well. I started in on a dynamic recompiler which never got off the ground. One of the more interesting parts is the video renderer as well. I have support for rendering the screen entirely in pixel shaders which sort of works.
Project page. |
SPC Emulator for GBA
|
I decided to give myself a large (impossible :P) challenge, and this is the result. An emulator for the Super Nintendo sound chip on the Gameboy Advance. This requires emulating a 1.024Mhz CPU with an 8 channel DSP at 32Khz. The GBA is a ~17Mhz processor with no DSP, so this requires some interesting optimizations.
Project page. |
Othello
|
One of my favourite projects in that it consistently beats me down (well at least with the rather imperfect end-game search turned off). It is a Negascout based searcher using a gradient descent pattern based evaluator. It also has perfect end-game play that is currently somewhat buggy after the introduction of hashing to the end-game searcher.
Project page. |
GBA projects
|
An overview of the GBA projects I've worked on. There were two main projects that I can release, a mode7 based racer and a xm playback engine. |
Wavelets
|
A lossy image compressor using wavelets. Relatively basic, but a good learning experience with wavelets and quantizers. Eventually I'm planning to give video compression a shot as well.
Project page. |
Linzip
A BWT based compressor, sort of an experimentation platform for compression technologies. Does quite well on the standard compression tests, however currenntly needs some reworking of the I/O handling classes.
Project page.
Source available (255k).
Texture Generator
|
A texture generator for use in a 64k intro that I will eventually get off the ground. It has quite a few nice features and can produce some pretty decent looking textures that can be stored extremely efficiently (<100 bytes). |
Dreamforge
|
My first major 3d project, learned a lot about engine design and game coding on this one. Unfortunately a major chunk of the engine was lost so it's a pretty tame demo now, but still useful for an overview of Half-life bsp and model rendering.
Project page. |
Minesweeper AI
|
An AI to solve minesweeper, along with a C# gui that can interface with a minesweeper AI and test how well the AI works on a variety of board configurations. |
Asheron's Call Plugins
|
I spent a lot of time playing Asheron's Call a while back and worked on some plugins. The two I released were ACWinamp3 which gave an in game interface to winamp and DI predictor which predicted which items were going to drop when you died.
Project page. |
Nine Men's Morris
I developed a server and some example Nine Men's Morris AI's for a tournament that will be held at Queen's later. My AI is still in development, so it won't be up here for a while :).
Hexi
A fun little game discovered at the CS games at McGill of 2003. There is a server agent and gui with some example client programs to play the game. These are mainly built for AI competitions, but can be used for human play as well. This will be coming online at a later time.