Projects

Smash Minecraft Skins

Github

A mod for downloading and using your own Minecraft skin to use in-game. Just enter in your username! Includes a custom menu to select a skin, the ability to download a skin from a minecraft username, and on-the-fly file conversion and UI portrait rendering. All written in Rust and running on the Switch itself. This mod released within 24 hours of the release of Steve due to weeks of constant prep work, resulting in over 1.5 Million views on twitter alone.


RustConf 2020 Talk: Macros for a More Productive Rust

Youtube

The macro system in Rust is still arguably in its infancy. While a lot of the implementation has already been done, plenty of projects don't properly take advantage of macros due to the limited resources on what macro programming should look like. This talk is aimed at introducing those interested in using macros in existing or future projects to macro idioms often needed in order to take projects to the next level.


skyline-rs

Github

A Rust library for modding Nintendo Switch games using Skyline

cargo-skyline

Github

A cargo subcommand for creating, building, and installing (over the network) Skyline plugins, enabling users to mod Switch games in high-level Rust.

rust-std-skyline

Github

A fork of the Rust programming language adding full support for writing Rust code for the Nintendo Switch.


Samsung WB35F Research

Github

Research into the Samsung WB35F Emulator with the end goal of developing an exploit for it. Includes firmware downloader/extractor, research notes, and a rudimentary emulator written in python with unicorn for dynamic analysis of the Zoran COACH firmware kernel.

WB35F/COACH Emulator in action.


Rust Contributions

  • Added the migration lint for Rust 2021's prelude changes (#85707)
  • Follow-up PR to fix the above lint (#86657)
  • Fix a bug preventing cross compilation while bootstrapping Rust (#85590)

The lint I wrote for the Rust 2021 Edition Migration


binread

Github

A Rust crate for helping parse structs from binary data using ✨macro magic✨

binwrite

Github

A Rust crate for helping write structs as binary data using ✨macro magic✨


smash-arc

Github

A Rust library for working with Smash Ultimate's archive format, supporting both its in-game memory representation and its on-disk representation, as well as even supporting parsing it over a network connection. This is one of the core components of many Smash Ultimate tools including, but not limited to: Arcropolis and ArcExplorer.

ArcExplorer

Github

A cross-platform file browser and extractor for Smash Ultimate's data.arc file, even allowing asynchronous loading of the rougly 16 GB file over the network from your Switch in a manner that feels like it's stored locally.

arc-network

Github

A Skyline plugin for providing access to Smash Ultimate's data.arc file over the network

arc-fuse

Github

A FUSE filesystem for mounting Smash Ultimate's data.arc file


ROBChain

Github

Very Stable Proof of Concept Exploit for the MotionScript Virtual Machine in Smash for Wii U allowing for the loading of arbitrary ROP payloads of any size in a consistent and convenient manner.

Proof of Concept being used to display an arbitrary message.


owo-colors

Github

A zero-allocation no_std-compatible zero-cost way to add color to your Rust terminal, currently garnering roughly a half a million downloads

aarch64-decode

Github

A pure-Rust AArch64 decoder generated from the ARM specification


gc-adapter

Github

A Rust library for working with the Nintendo Gamecube Controller Adapter

gc-gcm

Github

A Rust library and CLI for working with GCM/ISO files (raw bit-for-bit disk images) for the Nintendo GameCube


Smash Disc4d

Github

A client for interfacing with a Wii U gecko server written in C# in order to add Discord Rich Presence to Smash 4, allowing you to show off what mode, stage, and characters you are playing with.

smush-discord

Github

A client for the smush_info Skyline plugin to provide real-time Discord Rich Presence for Smash Ultimate


DefCon CTF 2020 Finals Participation

Played for the RPISEC team on the `pinboooll` challenge (among others), helping to score points


smash-sli

Github

A Rust library for working with soundlabelinfo.sli files from Smash Ultimate.

smash-fnv

Github

A library/CLI for working with sound_volume_fighter_num_table.fnv files in Smash Ultimate

smash-csb

Github

A library/tool for working with Smash Ultimate's commonsoundtable.csb files

smash-svt

Github

Rust library and CLI for working with Smash Ultimate's sound volume table


nutexb

Github

A Rust library for working with Namco's NU engine textures

img2nutexb

Github

A command line tool for converting to Namco/Smash Ultimate texture files

bntx

Github

A Rust library for working with Nintendo textures

img2bntx

Github

A command line tool for converting to Nintendo texture files


discord-forge

Github

A Discord bot for converting Smash Ultimate's, Smash for Wii U's, and various Switch Games' filetypes.


mscdec

Github

MotionScript to C decompiler written in python, with 100% accuracy on all files in Smash for Wii U.

msclang

Github

C compiler for MotionScript written in python capable of recompiling mscdec output with (functionally) 100% accuracy.

pymsc

Github

Assembler, Disassembler, Emulator and Library for working with MotionScript, the bytecode of movesets in Smash for Wii U.

Example output from mscdec (Captain Falcon)


some-error

Github

A library for creating and using anonymous sum types as errors in Rust

cpp-inherit

Github

A macro for inheriting Rust structures from C++ classes. Featured in my RustConf 2020 talk.

rust-dyn-call

Github

Do not use. Do not use. Do not use. (Calls a function dynamically)

include-self

Github

A bad crate for including the file being called.


nso-param-search

Github

A tool for searching for param hashes in Smash Ultimate NSO binaries

stage-table-refs

Github

Find references to Smash Ultimate's stage table in order to perform a relocated and expand patch


Nail Hex Editor

Github

A vim-inspired hex editor for the terminal written in Rust.


Smash Forge

Github

Smash 4 File Editor, with minor support for other games including Melee, Pokken and many other Bandai Namco and Nintendo games. Supports over 20 filetypes to varying degrees allowing the modding of models, animations, bones, materials, collisions and parameter files.


DK Konga Keyboard

Github

Application-as-Driver written in C# for the Donkey Kong Bongo Gamecube Controller to allow for it to be used as a keyboard.


bgm-property-generator

Github

A tool for auto-regenerating a bgm_property.bin file on the fly by parsing Smash's archive format, Music format, and Music metadata formats, then generating the file as the base game's was.

libnus3audio

Github

A Rust library for working with Namco NU Sound's audio archive files

nus3audio-rs

Github

A Rust program for working with Namco NU Sound's audio archive files

replace_music

Github

A Skyline plugin for replacing stream files (music, videos) with files of arbitrary size


battery-notification

Github

A hard-to-ignore low battery notification daemon written in Rust

lzarc

Github

A Rust library and CLI for working with Paper Mario Color Splash archives

sarc

Github

A simple to use library and CLI for reading/writing SARC and SZS (yaz0 compressed SARCs) in Rust

nxo-parser

Github

Rust parsers for Nintendo Switch executable formats


Chrome Bangs

Github

Google Chrome Extension for adding DuckDuckGo Bangs to Google/Bing. https://chrome.google.com/webstore/detail/google-bangs/akdgagbbklfcfikcnjhkokgmghnmaikl?hl=en-US


Website

Github

My website/blog utilizes a Rust backend, a Handlebars templating system and uses Markdown for the posts themselves. Styling/Templates are handmade and the site is entirely javascript-less.