It appears that I've become rather busy at work, so I might not get so much time to write articles for the next short while. I'll still hope to put stuff up every couple of months, so keep an eye out.

Printable Opcodes in x86 Real Mode
18th Jun 2011
Procedures for transmission of files over ASCII-text networks generally involve some form of encoding such as uuencode. When program executable files are being encoded for transmission, extra steps are required at the receiver before the program can be run. This article explores the concept of a program which has been encoded for an ASCII-text network, but can also be run directly without decoding; in this case, the article is limited to MS-DOS programs.
Augmented Reality with the Android NDK: Part 2
21st May 2011
Concluding an introduction to the development of augmented reality software, this part looks at implementing an edge detection algorithm overlaid on an Android smartphone's camera preview, and how the process can be optimised through use of the Android Native Development Kit.
Augmented Reality with the Android NDK: Part 1
21st Apr 2011
One of the major current trends in smartphone applications is augmented reality: a view of reality with information laid on top. This can be as simple as a view of what the camera is currently seeing, with calculations based on position and direction. In the first of a two-part article series on Android development, this article looks at how to set up a camera view and access a canvas for the rendering of overlay information.
GameBoy Emulation in JavaScript: Timers
25th Feb 2011
Like most computer and console systems, the GameBoy offers a hardware timer for use by games, if they wish to keep time more accurately than at the rate of vertical blanking refresh. In addition to a controllable timer, the GameBoy provides a facility for directly examining a fixed divisor of the system clock; in this article, both aspects of the timer are investigated, and the use of the timer for generating random numbers is also looked at, using the example of Tetris.
The Harness
2nd Feb 2011
The tide of an interplanetary war is turned when a rogue black hole enters the solar system, and is captured by Earth forces. First published in IFWG Story Quest magazine, hard sci-fi.
GameBoy Emulation in JavaScript: Memory Banking
3rd Dec 2010
Continuing a series on the implementation of a GameBoy emulator, this part looks at how the basic memory map of the GameBoy can be expanded, to accommodate games that are larger than 32kB. The GameBoy uses a system of virtual memory banking to perform this expansion; the concepts of the banking controller are looked at, and an implementation offered.
Power
9th Nov 2010
A spaceship crewman is faced with a Catch-22 while maintaining the engines. Flash sci-fi.
GameBoy Emulation in JavaScript: Interrupts
5th Nov 2010
Game consoles, like all computers, offer the facility to break off execution of a program and handle events or triggers. The GameBoy is no exception, and most games utilise the vertical blanking interrupt as one of their primary tools for keeping time and refreshing the screen. In part 8 of the series on emulator development, I look at the concepts behind, and the implementation of interrupts.
GameBoy Emulation in JavaScript: Sprites
10th Oct 2010
The basis of most games is the movement of objects over a background landscape. In this part of the series on emulation development, I take a look at how the GameBoy produces movable objects, and how the process can be emulated in JavaScript.
GameBoy Emulation in JavaScript: Input
19th Sep 2010
Part six of the series examines the issue of how a player interacts with the GameBoy, taking a look at the hardware layout of the keypad, and how the layout can be implemented as part of an emulator. The particular issues thrown up by a JavaScript emulation are looked at, including basic event handling and how events can be passed to the keypad handler.
Get the RSS feed