Projects

I hacked 3D Pinball to always win.

I always enjoyed finding glitches in games, using Cheat Engine to take things a step further, and eventually: learning to decompile executables and statically analyze assembly code.

If you’ve ever played Microsoft’s 3D Pinball Space Cadet, you might be familiar with the “Redeploy Ball” mechanic: if you score an embarrassingly low number of points on a particular deployment, then rather than losing the life on dropping the ball, you get to redeploy that same ball instead, keeping your points as well as your lives.

Using a combination of static analysis through Ghidra and IDA, and dynamic analysis through Cheat Engine, I tracked down the exact byte for the jump command that determines whether you get to replay the ball, or whether you lose a life. I patched that one byte in order to make a version of the game that you could never lose.

The Benefits:

  • I learned a lot about static analysis
  • I can get a really high score in pinball

The Not-So-Benefits:

  • Games that you can’t lose cease to be games
  • You can’t save your score without losing

I made a personal voice-based GPT Chat bot.

ChatGPT is extremely cool and incredibly useful. You know what makes it a bit less cool in my opinion? Having to open the app on my phone, or navigate to the website in order to make use of its functionality. So, I made it easier.

Using the help of ChatGPT and the OpenAI documentation, I created a Python script that allows me to:

  • Convert spoken words into a request to the ChatGPT API
  • Convert the API’s response into a spoken voice
  • Play back that response via my default audio output device

Now, instead of having to visit the site, I can just hit a hotkey on my keyboard at any time and directly interface with ChatGPT just using my voice!