Earlier this week, I read about that awesome dad who edited Donkey Kong to let his daughter play as the Princess. I wished I had someone who could have done that for me. Then I remembered. I'm an adult now. If he could work it out, I could too.
I'm hobbyist animator and my boyfriend is a professional video game programmer. I sent him the article and I asked, "How do I do this?"
"I think he's just using an existing rom editor, so he just went in and changed the sprites."
"I want to switch around Link and Zelda."
That got his attention. We'd been talking about a Zelda-centric game ever since the first Tropes vs Women in Games video was released. He's a huge fan of the series and really wants to see a game completely based around Zelda. The series could use a shake-up like that.
For me, I played my first Zelda game when I was pretty young, and at the time, I thought the game did star Princess Zelda. I figured I'd get to play as a magical battle princess that saved her kingdom. The game was fun, but I was bummed out that I never got to play as Zelda. But like I said, I'm an adult now. There's no one to stop me from eating candy before bed and there's nothing standing in the way of me creating the games I want to play.
We started to dig around the internet for the tools to edit the files. Let me tell you, there are dozens of tools out there to help you, no matter what game you're trying to mess around with. The nice thing about the programs is that you don't have to be a programmer to use them. (Yay!) Some of the tools were even specific to "The Legend of Zelda", but almost all of the Zelda-specific tools were just level editors, so I didn't end up using any of those. The sprite editor was easiest to find. I talked a little about "Tile Layer Pro" already, but it's worth mentioning again, because it's really the coolest little program.
Tiles are the blocks of pixels that make up each sprite. Animation happens when the tiles are swapped for other tiles. So, to create new animation, you just have to edit the appropriate tile.
Some tips! Make sure that tile goes back in the same place where you found it, or you might end up with random legs and arms sticking out of scenery. When you open up your ROM in Tile Layer Pro, you'll see a grid with all of the ROM information displayed as pixels. It shows *all* of the rom information, so you're going to see a flaming hot mess -- at first. Keep scrolling down until you find something vaguely sprite-shaped and use the "+" and "-" keys on the keyboard to align them. But beware -- the tiles will go back to their starting alignment when you scroll and not all parts of the code use the same alignment. We spent hours hunting down the princess tiles because we didn't realize that the alignment changed from section to section.
Everything else, I learned in this fabulous (and delightfully short!) tutorial
Take care to REALLY make sure you've really hunted down every instance of the tiles you want to edit. Link's "Large-Shield walk cycle" appears in two completely different parts of the code and Zelda's "Standing" and "arms raised" animations are on two different lines.
The best part? When you're done editing your sprites, just click save! That's it. You've edited your file.
Unfortunately, that program can't edit colors so Zelda was still in a green dress. But I was happy with my Zelda and I was busily hacking away at monsters when suddenly Simon sends me a file.
It was the code for the opening and closing scrolls, as well as the code for the colors of the "Tunic", nestled in a bit of Python script that would do a search and replace on my newly edited rom. I could rewrite the scrolls and change her dress to anything I liked. Best. Boyfriend. Ever. :D
While I had been animating, Simon had done some code googling and found a Legend of Zelda ROM Map, which was the hard work of some brilliant Zelda enthusiasts. Line by line, the map explains what each piece of code does. Without that wiki or the Computer Archeology website, we would still be hunting down code and play testing until our brains had melted. Play testing is exciting at first, but as soon as you stop seeing results, it becomes the worst thing in the world.
(Side note: I did ask Simon if I could publish the code here
Now I had complete control of all of the elements of the game that I needed to make this Zelda's story. I just needed to come up with new opening text. But after playing as Zelda: Warrior Princess, I honestly couldn't figure out how to put Link back into the story. In cannon, Link is the one with the sword. When you take away the sword, who is he? Just some guy that can't get out of a room? Do I make him Prince Link? Is he a knight to Zelda? (Simon's idea :)) In the end, I decided he's still Link. Even though he's seemingly powerless to leave a simple room.
When I got to the end of the game, I took a screen capture and sent it to Simon. He was strangely quiet. "My first thought" he told me later, "was 'Link, why are you standing there? Just jump over the flames.' But I guess that's the point isn't it? The gender in games thing."
My friends have all had very strong emotions to the switch of Zelda and Link -- all positive so far. A male friend of mine said he teared up when he saw Zelda holding the sword over her head. (he's a sweetie) A friend posted a link to my blog with a "Because if Miyamoto won't, we will." Another friend told me she couldn't wait for her baby daughter to be old enough to play as Zelda. Many friends told me that it made them excited and happy. Not in the cute-ironic way, but really happy.
It makes me happy too. It feels really good to play as Zelda. I feel like I connect with her character better and it makes me feel like a big damn hero. It's so nice to be swinging around a sword as Zelda. I can't describe it. You really should try it for yourself. :D
I'm sure people will think I'm trying to make some kind of anti-Link statement, but I like this franchise a lot. And if it really bothers you, just think of it as overly complicated fan fiction. :P
All said and done, the project took only about 3 days to complete, including the play-through. Not too shabby. Basic sprite editing is very simple and requires no programming skill, but if you do happen to have a programmer handy you'll be able to gain almost complete control over these old classics.
I've put together a video of some of my play testing, including video from a complete play-through with all of the cheats on (which are REALLY hard to turn off, btw) and I added some of the Orchestrated Zelda theme music because I really love that theme. Zelda defeats Gannon at 2:02
Yes, just a patch. Unfortunately, I can't just hand you my edited ROM. It's a copyright thing. So instead you'll need to:
1) Find your own unedited Legend of Zelda NES ROM
2) Download my patch
3) Download an NES emulator (I like Nestopia)
4) Place the patch and the ROM in the same folder
5) "Open" the PATCH in Nestopia
6) Follow the Nestopia prompts and select the unedited ROM
Nestopia is pretty bare bones for Mac, so the Mac version can't patch for you. You'll have to use a patching program instead. MultiPatch seems to work pretty well.
Important note: Some ROMs have a hard time with the patch. If you're experiencing any glitches, try a different ROM. Happy gaming! :)