Gary Linscott's Projects

Javascript Chess

A reasonably strong chess AI in Javascript. Uses WebWorkers to allow long think times without blocking the UI.

Project page.

Chess

Silverlight chess, with both a C# and Javascript AI included. Also GarboChess 2.20, a Win32 UCI chess AI.

Project page.
Source is available on the project page.

PocketSPC Player for the Nintendo DS

Started as a port of my SPC emulator for GBA, but soon took on it's own life. 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 was used in all 3 Snes emulator for the DS.

Project page.
Source is available on the project page.

Gameboy Advance emulator in C# 2.0

  
Started as a technical feasibility project, and to learn about C#. 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.
Source is available on the project page.

SPC Emulator for GBA

   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. The core is a dynamic recompiler, but very limited.

Project page.
Source is available on the project page.

Othello

   A semi-decent Othello AI (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.
Source available (803k).

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.

Project page.

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.
Source available (676k).

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).

Project page.

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.
Source available (625k).

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.
Source available.

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 :).

Project page.

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.