Some projects

Demodulating an analogue video signal

One day I got the itch to use a spare microcontroller to try and decode an analogue video signal. I hooked my scope up to my old DVD player, studied the PAL video timing spec and grokked that the 1 MHz sample rate of the on-board DAC should just be fast enough to get a low-res image. There were a few speedbumps along the way including:

But in the end these issues were solved and the result was better than expected.

PAL-scanline

For detailed information see my technical write-ups.


Partying like it's 1981: Building an IBM PC booter game

What can you do with a limit of 512 bytes on your binary, no operating system, a 4.77Mhz 8086 CPU and 64 KB of RAM? More than you might think. This project explores the almost-forgotten world of PC Booters - games that squeeze into the tiny boot sector of a floppy disk and run instead of the operating system. See the git repo for the detailed technical write up and further details.


CHIP-8 emulator

Implementation of a CHIP-8 emulator in Rust. Here's a screen capture of rock, paper, scissors ROM (made by SystemLogoff) running in the emulator.


Ray tracing in Rust

Ray tracer implemented in rust. Produces pretty pictures like this:

result-of-ray-tracer

Building a CPU

In progress...

Using a Xilinx Pynq Z2 FPGA to implement the RISC-V RV32I CPU. Involves VHDL and a deep dive into computer architecture and digital design.