One of my hobbies is creating emulators for older video game systems. To date I have created Chip-8 and Game Boy/Color emulators in Rust for desktop and browser, and ported the Chip-8 emulator to Pico-8 in Lua. I've also written a short book on Chip-8 emulation with Rust.
Pico-8 is a "fantasy console" designed to allow you to make games in a classic 8-bit style, but with some modern sensibilities, such as the Lua language, desktop and HTML export, online browsing, and more. I've created several games, in different genres and styles, that can be played from the browser.
In my spare time, I am active in several servers on the chat application Discord. To assist with managing some of these servers, I've made several bots to perform various utilities, such as moderation functions, XP and level tracking, assigning user roles, and more.
Video Game Modding and Hacking
Combining my interests in making games and emulators, I've made a few mods and romhacks for commercially existing games. These are both traditional patches to games, as well as some browser utilities to allow a greater degree of control to the modifications.
- Kirby's Adventure - Randomizer - A browser utility to generate randomized Kirby's Adventure ROMs for NES.
- Pokemon Picross - Reduce Time Penalty - A romhack for the unreleased Pokemon Picross for GB to reduce penalty time.
- Multiple Kirby games - Kirby Color Editor - A browser palette swap editor for several Kirby games
- Pokemon Emerald - Oops All Shinies - Reverses the calcuation for which Pokemon will appear shiny, allowing you to play the game with almost entirely their alternate forms.
- Kingdom Hearts III - Formchange Skin Pack - Change Sora's default appearance to any of the Formchanges in the game
Misc. Projects and Experiments
In addition to some of the more organized projects I've completed, I've also worked on an assortment of miscellaneous projects that don't fit into other categories. Here are a few of my favorite.
- Utility plug-in scripts for the Aseprite pixel art editor
- The Ecco the Dolphin text generator
- Basic Markdown to HTML parser written in Nim
- Userspace driver to add macro support for the Logitech G910 keyboard on Linux
- A recreation of the Living Worlds color cycling effect in Rust
- Hexdiff - A simple binary comparison tool written in Rust
- Incredibly tiny version of 2048