Parasyte

April 17th, 2009
Parasyte: Hi Jason [Lazy Bastard],

First, thanks for even taking the time to do something like this. I figure, at the very least, it will be entertaining to read what some of the more well-known hackers think of their own contributions and those of their peers.

Video game hacking is not very "big" or mainstream, but I believe there is a lot of collective knowledge out there on the subject. If up-and-coming hackers gain anything from these interviews, I would call it an instant success. If we interviewees gain anything from it, then it all comes full-circle. Brilliance.

My answers follow below. (Note that I've swapped questions 11 and 12, which I think makes more sense in context.)

Jay [Parasyte]




Lazy Bastard: Among many other things, you created GCNrd and built KodeWerx. What inspired you to do each of these things, and how did you go about them?

Parasyte: GCNrd (Nintendo GameCube Remote Debugger) was a project that has its roots firmly planted in the GameShark Pro 3.0. That was the first product I've seen with the capability of taking full control over a game console and the software running on it.

Within the first few days after I released GCNcrypt 1.0 (a program capable of encrypting and decrypting GameCube Action Replay codes), I made a forum post about wanting to create a "proper" hacking tool for GameCube, and explained how it could be done with the BroadBand Adapter (which at the time was used exclusively for uploading small homebrew programs to the GameCube through the Phantasy Star Online game).

Those statements were little more than just a boast; I didn't have any TCP/IP stack-level programming experience, debugger development experience, or anything even resembling a program that I was trying to explain. But nine months later, GCNrd "v1.00b" (meaning version 1.00 beta) was publicly released! It was probably the first GameCube homebrew code to use the BBA directly, and definitely the first [non-commercial and widely available] program to boot GCN game discs and do general debugging work on the hardware.

Of course, it had bugs. Many were fixed by the next (and currently final, as of April 2009) release, v1.10b. There were bugs that couldn't be fixed at all due to the architectural design of the debugger. I did start on a complete rewrite, aimed for a "v2.00" release, but I had to stop working on it, and now my GameCube is locked in my closet!

There is still some hope, though; GCNrd was my inspiration for a new debugging paradigm, if you can believe that! Maybe some day (when my current debugger project is stable) I'll continue working on the "GCNrd v2.00" code base and fully port it to the modern debugger protocol (which is currently unnamed).


Kodewerx is best known for its forums. We have many active members, most of whom focus on Nintendo DS hacking. The website also hosts my personal strangeness and some of the programming projects I've developed or helped to develop over the years.

One such project, "EnHacklopedia," is an unfinished, but thoroughly detailed document covering many aspects of video game hacking. It was released under a Creative Commons Share Alike license, which we've seen put to good use [for example] when it was transferred to a wiki hosted on GSHI. There are at least two other mirrors of the complete document, as well.

The Kodewerx website also hosts a wiki, Mercurial revision control system, a Bugzilla bug tracker, and even a blog. These things have not yet been used to their full potential, unfortunately. So far they have been my own personal playground to experiment with. I'm hopeful that as some of these projects come to fruition, these services will become more and more useful to the people who use those projects.

Kodewerx was initially formed circa 2002, as a revolt against the "original" GSCentral. At the time, I called it "Codewerx," it was very small and unhealthy. In October 2006, the second great revolt against GSC took place, and the site was reborn. This time with a real domain and a slightly new name (due to domain availability, honestly).

The forum gathered attention quickly. I think mostly it was the attitude of the time. In the first year, we had to break a lot of rules. We caused a lot of trouble, made some waves. But it got Kodewerx recognition. And here we are; still growing. If that first year was any indication, you might even call Kodewerx a "sleeping giant." Make no mistake, here be dragons.



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

Parasyte: "Jesus Mode" for Super Mario 64 is probably my personal favorite of all the codes I've hacked. It wasn't well tested though, and neither was the same code for The Legend of Zelda: Ocarina of Time v1.0 (which is badly broke outside of Kokiri Forest). I'd like to fix it, and I'd also like to port it to other versions of the game.



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

Parasyte: That would probably the so-called "Super Code" for Resident Evil 2 (PSX) which I believe was originally written by Wayne Beckett for the Xploder cheat device. The "Super Code" title doesn't really explain what it does, in an unfortunate case of marketing gimmicks.

The code allows a player to enter their in-game inventory and give themselves any item and any quantity of that item in any inventory slot, using the L1, L2, R1, and R2 buttons on the controller.

It was a fairly small program, but turned into a monstrosity of a code. Even with Xploder's (at the time) advanced code type allowing a large string of data to be written into memory at a specific starting address (which eliminated about 2/3 of the code's final size). When converted to GameShark/Action Replay, the code was a huge nightmare just to enter into the device.

But the program itself was very impressive to me in the late 90's. I studied it for a month (this was before I understood any assembly) and still couldn't wrap my head around it. Over the next few months, I learned the C programming language, and then went back to study the code. By that time, it all made sense. That gave me a deeper respect for what it really was.

A few years later, the original Resident Evil was redesigned and re-released for GameCube. I felt obliged to recreate that code as an homage (and because it's just a cool code to have!) This time, I called it an "Inventory Modifier." I used the C-Stick to change the item/quantity in the highlighted inventory slot, but it was basically the same.



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)

Parasyte: Barubary, a veteran from the old school ROM hacking/translation scene. The same guy that taught or inspired Code Master (CMX). I've never personally talked to Barubary. His PSX hacks were inspiration enough.



Lazy Bastard: What was your first code/hack?

Parasyte: The first one I remember "creating" was for Super Mario 64. By changing the address on the Level Select code, I found one which made colorful horizontal bars appear along the bottom of the screen. I later found out that it was a basic sound level meter. The exact same meter was available in Mario Kart 64, and could be enabled through a debug menu on the title screen.



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

Parasyte: The most difficult type of code to hack is the kind that no one has created before. There are no tutorials to guide you through it, no pre-existing knowledge of the basic process... Basically, you end up inventing a methodology to get from point A ("how the heck do I do this?") to point B (success!) When it involves writing and hacking assembly, the complexity usually rises exponentially.



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

Parasyte: Anything that is fun to play with, or that's interesting from a technical standpoint. Codes that cover both of these aspects are rare, but definitely have the best payoff.



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

Parasyte: So far, Metal Gear Solid: The Twin Snakes on GameCube. I managed to create a lot of interesting things for that game.



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

Parasyte: Dreaming up big ideas, yelling at dumb people and making them feel bad... You know, the usual.



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

Parasyte: The same thing that happened to software development: an open source revolution. Video game hacking has always been too commercial and too proprietary to be of any use to anyone outside of single, short-lived console life spans.

Digital signatures and encryption are becoming more prevalent in video game consoles these days. Independent (unlicensed) cheat device manufacturers are becoming extinct. This will continue until console modification becomes the only [necessary] way to cheat and hack your favorite games. This area of video game hacking has always existed, but has also been just as commercial (though very much black-market).

It's like Lieutenant Gordon said in Batman Begins: "Escalation; you buy armor, they buy armor piercing rounds." Eventually, a breaking point will be reached and things will change.



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

Parasyte: Yes. Several. Off the top of my head:

* Walk Through Walls, Super Mario 64 (N64)
* Walk Through Walls, Metroid Prime (GCN)
* Jesus Mode, Metroid Prime (GCN)
* Moon Jump, GoldenEye 007 (N64)
* General Purpose GameBoy Emulator, Pokemon Stadium 1 & 2 (N64)

The existing "Moon Jump" code for GoldenEye works, with one caveat: You must first fall from a ledge to get airborne. I wasn't able to get that working while just standing still, the last time I tried. Of course, I have some new tricks up my sleeve since then. Maybe I will revisit all of these one day, if someone else doesn't get there first.

The GameBoy emulator in the Pokemon Stadium games only allows Pokemon Red & Blue to be played, but it is capable of running many GB games. I just haven't found a way to get the emulator to load any other games from the GB Transfer Pak.

See also, "Unhacked/Impossible N64/PSX Codes" sticky threads on the Kodewerx Forums for an extensive (but not exhaustive) list of codes that hackers have been unable to complete or even start on. The reason for lack of any other console is mostly due to the difficulty of determining the "possibility" of hacking some codes. They just have to be requested and attempted enough times to be considered extremely unlikely by people who know what they are doing.



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

Parasyte: Never be afraid of failure. You will fail; you will fail more often than you succeed. If you fear that, you will never do anything worthwhile, and you will never innovate.

Be prepared to fail, but don't get discouraged by it. Just change your plan a bit, and try again.



Lazy Bastard: Thanks again for participating; I think this will be quite a good new section to GSHI, and will be of some 'historical' significance as well.

Parasyte: And thank you. It's been nice to reminisce on some of the things I've done. Yes, it will be of historical significance. Don't worry about that in the least. I just hope I've been verbose enough to keep the interview interesting, without getting to the point of rambling or making a dull read for the audience.