periscope: full input display solution for nintendo switch
Languages: C, C++, Rust
=> Code
Periscope allows you to capture your Nintendo Switch controller inputs on the Switch itself and send them over the network to your PC, where a viewing program lets you visualize them in real-time or with a delay. A background process running on the Switch reads controller inputs each frame and the viewer on the PC asks for the current controller state over a simple TCP connection. This is much simpler (and cheaper) than existing hardware-based solutions such as RetroSpy, and is fully integrated, as periscope comprises every part of the process, rather than depending on separate projects on PC and switch like OpenJoystickDisplay.
peridot: an ergonomic monoblock split keyboard
Software Used: KiCad, Fusion 360
=> PCB files and case CAD, Documentation
I daily-drive a Sofle split keyboard at my desktop PC, but I wanted to be able to take a similar board on the go in a smaller form factor. Nothing I could find online quite met that criteria, so I designed my own PCB from scratch and had it fabbed. I also designed and 3D printed the case and top plates for the keyboard. The board is specifically designed to fit over the keyboard on my laptop, and the 3D-printed case allows peridot to sit on top of the laptop keyboard without pressing any keys.
ngx: a custom corexy 3d printer
Software used: Fusion 360
I got into 3d printing by buying an original ender 3 right before covid, but over the next few years it started to show its limitations despite a lot of mods. I also wanted to try my hand at designing and building a custom machine, so in spring/summer 2024, I did just that. The design was heavily inspired by voron v0 and by a printer called rudy made by someone I know on discord, but it's a bit bigger build volume, and almost all-metal construction. Most of the goal of this machine was to be faster than the ender 3, and it definitely delivers. It's also my first machine that can run flexible filaments, as even with a DD-mod on the ender 3, it was pretty bad at that.
hail: a better, modern speedrun timer
Language: Rust
=> Code, Documentation
hail is the next generation of speedrun timer. It has several advantages over existing options, most notably full Linux support, but also including built-in convenience features that other timers do not offer such as backing up the state of the run while in progress. It provides a strong plugin system allowing every part of the timer to be replaced and new extensions to be created. hail is highly configurable to suit the individual user, providing close-to-LiveSplit levels of customization with none of the baggage of LiveSplit and adding Linux support.
texture65: a simple n64 texture viewer
Language: C
=> Code
texture65 interprets binary data from a Nintendo64 game and displays it as images in a variety of encodings that are used on that console. It allows you to quickly scan assets extracted from a game to determine where a texture image is located and what format it is in. It is cross-platform and doesn't lag even when loading larger files.