Oracle of Ages & Seasons Link Cable Vulnerabilities (CVEs pending)

I have uncovered multiple vulnerabilities, including a severe Remote Code Execution (RCE) vulnerability, in the link cable communication module of “The Legend of Zelda: Oracle of Seasons” for the Game Boy Color. The vulnerability is caused by a failure to sanitize inputs received over the link cable.

Read More

The Strange Case of the Obfuscated(?) Zelda ROM

Yesterday, there was a huge leak of Nintendo assets. Particularly, source code and prototypes have been leaked for a huge number of games. These include source code for Star Fox, Star Fox 2, Yoshi’s Island, Mario Kart, and more recently some N64 games including Super Mario 64 and Ocarina of Time, and more…

Read More

The 5-Year Anniversary of Oracles-Disasm

On this day, 5 years ago, I made my first commit in the oracles-disasm project; a full disassembly for “The Legend of Zelda: Oracle of Ages and Seasons” for the Gameboy. I’ve never talked about it much publicly outside of a few tweets, so I thought this would be a good time to tell the world about it.

Read More

GSoC Week 10: Nuclear moon bases

Last week I worked on mission 6, “That Old Devil Moon”. It features some interesting lore of two ancient civilizations that annihilated each other through the use of nuclear weaponry. What a totally, uh, alien and unthinkable prospect, haha…

Read More

GSoC Week 8: Set phasers to stun. ...Then kill.

Last week was mostly focused on finishing up the second part of the “Feathered Serpent” mission, in which Quetzalcoatl is put on trial by the klingons for spreading messages of peace. Kirk agrees to go through a set of trials to prove his honor or something so that Quetzalcoatl can go free.

Read More

GSoC Week 3: R̶e̶b̶e̶l̶ Elasi Scum

The main task of this last week was to implement saving. This had a surprising amount of nuance to it, since I need to provide ScummVM with various metadata, including a thumbnail of the savefile, the savegame description, etc… fortunately it wasn’t too difficult to use other engines as templates on how to accomplish this. I’m quite glad I found out about ScummVM’s built-in serializer before starting on this, as it reduces the amount of redundant code by a lot (saving and loading is done with the same code).

Read More

GSoC Week 2: Everyone Gets Vaporized

My work this week has been the repetitive and somewhat tedious task of rewriting the code for Mission 1. It did take a while, but hardly the entire month my original schedule called for! My original schedule didn’t anticipate that I would finish the entire game within GSoC, but at this rate, it seems quite possible.

Read More

GSoC Week 1: Kirk is incompetent

It’s been a week and change since GSoC started. When we left off, I’d just finished implementing pathfinding. In the week since then, I’ve been busy implementing the action system, which is central to any adventure game.

Read More

GSoC Week 0: Implementing the basics in Star Trek

Google Summer of Code officially started yesterday; but, since I got started a bit early, I already have a week’s worth of things to talk about. If I want to support both Star Trek: 25th Anniversary and Star Trek: Judgment Rites, I need to get moving!

Read More