Zeld

April 21st, 2009
Lazy Bastard: Aside from hacking quite a few great codes, you hacked the 'Aim Bot' code for Metroid Prime Hunters. What inspired you to do so?

Zeld: I was inspired because it was the definitive NDS FPS, and I wanted to show off my skill with ARM assembly, put my name out there (which it did...not as much as I would have liked, but it did). Probably also my favorite RAM hack too. It's not perfect, but it's aesthetically pleasing in several ways, from the source to the effect.


Lazy Bastard: What is your favorite code/hack that you hacked?

Zeld: That would be my Aim Bot code for Metroid Prime Hunters.


Lazy Bastard: What is your favorite code/hack of all time?

Zeld: My favorite code is probably frauber/messiaen's Fire Mario hack for SM64 that enables Mario to throw exploding fireballs that can erase objects that they detonate. My favorite hack however is probably my custom battle animation hack for Fire Emblem 7 starring an original character of mine, but that's a ROM hack.


Lazy Bastard: Who would you say influenced you the most in the video game hacking scene? Who did you 'look up to' when you first entered the scene? (doesn't have to be the same person for both)

Zeld: The person who influenced me most is probably Parasyte. That bastard seems to be good at everything, and I considered myself a good candidate to try and match that. I thought "if one Para is awesome, maybe more will be better". As for the person that got me into hacking, well that would be a Fire Emblem hacker named Pukachi/SpyroDi, who specialized in ROM hacking, which is where my roots are.


Lazy Bastard: What was your first code/hack?

Zeld: I can't even remember. I want to guess that it was a code for Fire Emblem 7, though it may have been for Zelda: The Minish Cap or even Megaman Zero 3. The first hack I ever did that required assembly knowledge was for The Minish Cap. Within 2 months of starting to hack things (ROMs, at first), I learned a bit of Thumb assembly from a tutorial in debugging by Labmaster and used the information to locate the bytes for the amount of damage various weapons did in the Minish Cap ROM.


Lazy Bastard: What do you think is the most difficult type of code/hack to hack, and why?

Zeld: I've never been able to hack a walk on water code except in SM64DS, where I took advantage of Luigi's ability to walk on water already and simply modified the time limit he could do so to be infinite. Finding the right point in a subroutine to replace an instruction with a "nop" to allow walking on water in other games was something I never really tried to do for fear of being terrible at it.


Lazy Bastard: What is your favorite type of code/hack?

Zeld: Physics modifications. Gravity changes, collision changes (including walk-through-walls), auto-targeting (here I like to make the distinction between using the game's code and writing your own, which I differentiate by calling the resulting codes "auto aim" and "aim bot" respectively), walking on water...all the sorts of things you can't do in an RPG. Replacing objects with more explosive ones. Gaining the ability to move an object that isn't your character with directional controls. Codes that let you use your controller as an interface for spawning and modifying objects. All those appeal to me similarly.


Lazy Bastard: What is your least favorite aspect of hacking?

Zeld: Dealing with dynamic memory allocation. Especially when the developers have a stick up their ass and reallocate objects constantly when they were fine where they were.


Lazy Bastard: Which game did you find the most fun to hack, and why?

Zeld: Jet Force Gemini. The game is plenty fun on its own. Throw in some working "infinite this and that" codes and it's even better! Incidentally, no such codes that existed before I re-hacked them worked well at all :/


Lazy Bastard: Did you ever hack an awesome code, or find an address in memory that would've yielded an awesome code, but then lost it somehow?

Zeld: I may have found an address or two that I wanted to "get a hold of" and lost to the evils of dynamic memory allocation, but so far I can't remember any that permanently got away. As for the codes I've made, my scary, obsessive documentation habits have prevented any from sneaking into my recycle bin to be deleted. From what I can remember, all the furtive addresses I've encountered that really mattered were tracked down by some means or another (assembly or pointers...sometimes a combination of using assembly to dump pointers!).


Lazy Bastard: What was the most difficult, 'hair-pulling' hack you've ever accomplished?

Zeld: That would be the Metroid Prime: Hunters (U) v 1.0 aim bot. That specific version of the game is still the only one that any incarnations of the aim bot work for. The code took 3 months of planning and 2 months of coding to complete, and the reason it took so long to code was because I was using the wrong kind of mathematics to pound out the targeting calculations, which resulted in 2 failed attempts before a working third was released. Shortly after which Rune copied the code and pasted it all over, claiming that it was hacked by a female. Rune is a dog.


Lazy Bastard: Was there ever a code you just couldn't get to work quite correctly (something you hacked/attempted to hack)?

Zeld: SubDrag asked me to use my adoration for physics mods to compel myself into making an auto-targeting hack for Goldeneye64. Because of the game's heavy reliance on the translation look-aside buffer of the hardware and my laziness to make enough sense of the documentation Parasyte provided to get around the issue, the only information I have even resembling progress toward the final code is the location of the aiming coordinates for the first level, some virtual addresses of assembly that reads those values and an assembly code for testing my ability to modify TLB data, which was shot down by Parasyte as "untestable in the emulator because the emulator may not be emulating it correctly", to paraphrase. Sorry 'Draggers, I don't think I'll ever get this code done. Now probably isn't the best time to mention that I'm a fan of SubDrag as well. To think I failed him D:  Actually, I did try Walk through Walls for SM64 as well. I was only able to get it to let me walk through certain objects, but leaving level boundaries killed me like with other WTW codes for that game.


Lazy Bastard: Aside from hacking and gaming, how do you like to spend your time?

Zeld: I do a good bit of creative writing. Aside from that, being a general lazy ass that gets nothing done.


Lazy Bastard: What do you think must happen for the video game hacking scene to continue to thrive?

Zeld: I'm afraid my answer here will be boring, as it's been said, but I entirely agree with Parasyte. All of this commercial nonsense is hurting the scene. We should be helping each other, not charging each other. You're a good programmer. You know things about hardware. Use that to get a real job instead of ripping off your friends! And if someone asks for documentation...and you have it? SHARE IT, YOU STINGY BASTARD.


Lazy Bastard: One last question: if you had one thing to say to current, aspiring, and future hackers, what would it be?

Zeld: Dream big. This is what I do. I think of an extraordinary hack that is likely well out of my ability to hack. The learning and other codes hacked along the way to trying to accomplish that hack are like landing on the moon when shooting for the stars. Except in many cases you may surprise yourself, blast through the moon and hit those stars after all. And then you owe us a new moon, you jerk.