Matt's Website

Welcome to my home on the World Wide Web! Feel free to take a look around. This site should work with pretty much any web browser ever created. If you find any bugs, please email me!

Arcade UFO

I have been a visitor to Arcade UFO since 2013 and became one of the owners in 2017. Our team is dedicated to bringing the authentic Japanese game center experience to Austin! We primarily feature rhythm games (BEMANI, etc.) and fighting games (everything from Super Turbo to PS5 titles). We also have some shmups from CAVE, a wide selection of SEGA NAOMI titles, and a few classics!

We recently moved to an amazing new location at 9029 Research Blvd. Come check us out if you're in the area!

Tech notes

I do a fair amount of electronics repair and also spend quite a bit of time making obscure software/hardware combinations work out. Here are some notes I've taken in these situations, so they might help someone else trying to do the same thing. (these are all TODO for now, will be adding more ideas as I think of other procedures I've done)

Recent projects

Here are some of the programming projects I've been working on. Most of these are focused on retrocomputing, but not for nostalgic reasons - programming for old systems is just fun because it's actually possible for one person to mostly understand everything that's going on, from the CPU up.

This is in contrast to how I develop professionally, where I use the modern tools and processes necessary to produce a high-quality, maintainable product, no matter how many layers of abstraction are involved. :-)

You can click any of the screenshots in this section to open a full-size view!

Erik Satie's Vexations (MS-DOS version)

An art project for the IBM PC and Yamaha YM3812 (AdLib). Vexations is a piano piece that the composer ostensibly wished to be played 840 times in a row. My version flips a random bit in the synthesizer patch each iteration to gradually distort the sound.

gb6

This is a Game Boy emulator for System 6. I originally targeted an 8 MHz 68000 with the intention of running on a Macintosh Plus, but eventually realized I'd only have about six 68000 cycles per Game Boy cycle. This isn't really enough to interpret the CPU instruction, let alone emulate the LCD, sound, and all that other stuff.

Rather than write a 68k to LR35902 JIT (which I seriously considered), I decided to stick with my interpreter and increase my minimum target machine to the Macintosh IIci, which came out the same year as the Game Boy and features the ~amazing~ 25 MHz 68030. It's better, but still unplayably slow. I've put this on hold for now, but there are definitely more optimizations I could make, especially in the drawing code.

Somebody managed to write a Game Boy emulator for the Palm III, which features a 16 MHz 68k, so I think this is definitely possible.

IIDX Tier List

This application allows you to track your scores on level 11 and 12 notecharts in beatmania IIDX. Screenshots are from the Mini vMac emulator, but this has also been successfully tested on a real Macintosh Plus!

the finished product ResEditing
designing main dialog Think Pascal debugger

QuickTube

(click for 996k animated GIF) (250k full-size PNG)

Professional career

I've worked on the Quest and Quest 2 at Oculus, the FullStory mobile SDK, the Shop app at Sysco Foods, HipChat/Stride (RIP) at Atlassian, and Evernote's Android app.

I attended the University of Texas at Austin from 2013 to 2016 and graduated with a bachelor's degree in computer science.

Here is my résumé (100k PDF, updated 3/2024), and here's my GitHub.

/etc

Check out my first-ever website, created with the help of my uncle when I was very little.

Sites I like

Last updated 22 Mar 2024