I made a thread like this on Zelda Universe, and I figured it'd get more responses here. No one even answered it on ZU.
So here's the text of the original thread.
So here's the text of the original thread.
Neo said:For years now, I have envied game hackers. I said that I wanted to learn to hack games, too. I wanted to understand code and programming.
Well, I got my chance recently when an emulator offered a hexadecimal editor function for the games. I became curious of this while playing Zelda II, and decided to open it up and take a look.
I was staring into the brain of the game.
Thousands upon thousands of lines of code and programming stood before me.
I was intimidated, of course, but I persisted in fooling around with it.
You have no idea how amazing it was to watch the addresses which controlled the music change to the beat of the tune.
I have made quite a few discoveries.
For example: (all addresses are in hexadecimal form)
0013 is the address which controls whether you are a fairy or not. If you manually change the value to anything higher than 00, you become a fairy. You can change it back to become human again. However, if you use fairy magic, you cannot manually transform back, as it locks in the value. To transform back, you have to pause the game, change the value, and freeze the address. I could provide you with a game genie code to permanently make you a fairy, but that would render the game unbeatable, and you'd have to kill yourself, save, and turn off the code. So I don't see the point.
03e6 is the address which controls part of your jump. If you mess around with the value, you can stop yourself from jumping, make yourself fly forever, or create a moon jump where you continue to rise until you release A. To do the moon jump, change the value to Cx. It doesn't matter what the second value is, provided that the first value is C. If it is D or higher, you won't be able to jump. If it is B or lower, you'll float at the top of the screen when you try to jump. I can provide a game genie code for this: EKVATUAG
0494 is the address which monitors your death. If you enter 01, you die! Even if your health is full! Therefore, it's possible to turn dying off by freezing this address at 00. You can actually use this to get into the great temple before you're supposed to. Just transform into a fairy and go through the barrier (normally, you'd die instantly.) Game genie code=AEOAGGAA
Address 0516 controls the timer which determines when monsters next appear on the map, even if you aren't moving. If you freeze this address at anything greater than 00, you'll encounter less monsters, as only the monster generator that is controlled by movement will still work. I cannot seem to find the address for that one. Sorry!
But I do have a game genie code to disable the aforementioned counter: NYOATIAE
Adress 0518 controls Link's clipping with monsters. I noticed that when I was hit, it would change from 00 to 04 and then count down slowly back down to 00, at which point Link stopped flashing and became vulnerable again. If you freeze this at 04, 03, 02, or 01, Link will be invulnerable to enemies. Notice: If you touch a wisp (I think that's what they're called), you still lose magic, although you take no damage. This is the only case, though. Game genie: GAOEAIAA
Oh, and if you want to know what addresses have the music, they are: 18e6, 18e7, and 18e8. Those are the 3 main music parts, anyway.
05ca is a miscellaneous thing I found. It's the address that controls when your sword beams dissipate. By locking it in at F4, I made it so that my sword beams just continue to go on and on until they leave the screen, much like in later Zelda games. You can lock it at any value you want, actually, and it'll do the same thing. The game genie code is: KNKEZIUY
There. That's all I've found in a short time. However, I did this by experimenting with the game while the hexeditor was open in another window. I watched what values changed and when they changed, and used this to find cool things. I want to learn how to REALLY hack and play with the big boys (so to speak.)
Can anyone offer advice on hacking? How do you take apart the game and find things without my trial-and-error methods? Please provide tips and descriptions!
And, more specifically, share your hacking expertise with the Adventure of Link. What things have you found with it? Do you know the address of that damned monster generator that is linked to your movement? Share these things with us all here.