Drawing GBA Tiles on an HTML5 Canvas

I've recently been working on an electron application that disassembles and displays various components of Gameboy Advanced (GBA) games, like graphics, sounds, and text strings. The graphics rendering has easily been the most obnoxious part, in no small part due to my terrible design decisions. I hope to prevent pain for anyone who attempts this in the future.A section »

Writing a Terminal Text Editor

I wrote Clunk because I was tired of exiting the terminal to take notes. A majority of the work involved was creating the text buffer. I feel there is too much extra overhead code in Clunk's source to properly illustrate some of the base concepts involved. Because of this, I wanted to write a post that would have helped me »

Arch Linux on ASUS X205T/X205TA

I recently found an old ASUS X205T laptop squirreled away in my closet. When I tried to boot it, it constantly rebooted back to the BIOS. Since it was 100% unsalvagable, I decided to try putting Linux on it. To save others my pain, I have decided to chronical my steps from nothing to boot. There are several other tutorials »

Being a Dick with Pointers in C

I like to argue that C can be a boring language. Boring here is a good thing. This is boring code: void some_function(int param1, void *param2) { if( param1 == 0 || param2 == NULL ) { return; } char *casted_value = (char*)param2; if( casted_value[param1] == 'A' ) { //do something } } It's boring because it's obvious what each piece does, even with nonsensical variable names. »

C fgetln and strcpy

This is a continuation of the exploring C articles I started here. This will focus on a quirk that caused me some debugging pain. In fairness, this is documented on the man-page of fgetln: This line is not a C string as it does not end with a terminating NULL character. A simple implementation of fgetln to iterate through every »