Geiger

August 8th, 2017
Lazy Bastard: Among quite a few other things, you compiled the latest versions of SNES9x with your own custom, user-friendly debugging capabilities. Pretty much every SNES hacker uses your versions of SNES9x. What inspired you to do this, and how did it all come together?

Geiger: There was a compile of Snes9x available that had command line options to do some limited debugging.  (Unfortunately, I forget the exact author.)
I had been using it to some degree to figure some things out in Chrono Trigger, but it just wasn't quite enough.  Plus things couldn't be done in realtime.
So to help me out with what would become Temporal Flux, I created my own variant of Snes9x.



Lazy Bastard: What's something you did in the scene which you think was pretty cool, but isn't very well-known?

Geiger: Well, the most interesting thing I put together was an NPC party through event programming in Chrono Trigger.  (The patch is available on my website.)
Lost to time, I also came up with a cheat code that always displayed enemy parties in Ogre Battle.
I was also briefly the official Windows port developer for Snes9x for about six months.  For various reasons, it didn't work out.  (And none of my code was ever committed.)



Lazy Bastard: You've also reverse engineered several classic RPGs in various ways. What was your favorite discovery when reversing a game?

Geiger: Well, the one that brought me the most delight is also kind of boring.  While my Chrono Trigger compression code worked fine, it didn't match up to existing compressed packets in the game one-to-one.  Several years later, I finally figured out it was due to the direction of data travel.  Being able to perfectly recreate the output of the official tool was pretty cool, to me.
But honestly, any given piece of data that I need to spend more than a few minutes on makes me happy when I finally decipher its meaning.



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

Geiger: You know, funnily enough I don't actually spend a lot of time making hacks myself.  Most of my time is spent deciphering data and making tools to accomplish that.  So when someone makes something neat with one of my utilities, I tend to just be blown away.
Someone hacked Chrono Trigger to propose to his wife, using Temporal Flux.  (There's a video on YouTube.)  Knowing I played some small part in that is a great feeling.
I played an earlier version of The Prophet's Guile and was blown away by what they managed to accomplish.
I don't actually pay much attention to most hacks, but the technical work that goes into is always enthralling.
(Don't pay much attention to most completed hack patches, to be clear.)
Someone is currently making a massive retooling of Secret of Mana that's employing a ton of ASM work.
I remember a number of years back, one of the better hackers was porting all the new features in Super Mario World into Super Mario Bros 3, like grabbing and throwing shells, etc.
Yeah, so all that deciphering of data and code and making it do new and exciting things always tickles my brain.



Lazy Bastard: What was the first thing you hacked for any game?

Geiger: Aside from using the original game genie on the original NES? :)

Lazy Bastard: Yeah, guessing doesn't count :P

Geiger: I don't remember the exact circumstances, but somehow I ran into FF3Ed on Zophar's Domain.
And the source was available.
So I immediately downloaded it, studied it, and then started making it do new things.
like outputting all the Location Maps to bitmaps.
I posted my results to ZD and another hack forum (don't remember the exact name, but don't think it exists anymore).
Someone noticed and approached me to create a Chrono Trigger editor.

Lazy Bastard: Very cool. I remember FF3Ed (and a similar tool for FFII/IV); I loved playing with those.



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

Geiger: While I started with Final Fantasy VI, the answer is clearly Chrono Trigger.
As for why?  Obviously my fondness for the title.
Also, given what I know of some other titles, it is very technically advanced.
Which is not entirely surprising, given when it came out in the SNES' lifespan.



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)

Geiger: Well, this is going to make me sound like a jerk, but no one.

Lazy Bastard: Hahah.

Geiger: I didn't know anybody in the scene, and I was well under way when I finally started frequenting boards.
This isn't to say that I don't respect anyone.  There are a number of hackers that I feel have an incredible talent for this sort of thing.
(I have already alluded to a few.)
And there are definitely people that I do not think I am the equal to in their respective areas.
I won't start naming them though, because I'd forget someone important.



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

Geiger: Making ASM do something really new, while retaining its old capability.
This is something I have seen only occasionally, but is substantially transformative.



Lazy Bastard: Do you mean adding your own code, such as via a code cave, then jumping/branching to it, then returning to the former EIP, or something more specific?

Geiger: It can be that, although it more frequently takes on the form of total rewrites.
While not the best example of this in particular, but no less technically impressive, I seem to recall someone freed up a ton of memory for other use in Final Fantasy VI by having the battle data not store itself three times.
There's been some lesser (and smaller) examples used directly in Temporal Flux.
Unfortunately, I just can't recall many specific examples.



Lazy Bastard: On that note, what was the most difficult, 'hair-pulling' hack you've ever accomplished?

Geiger: That doesn't really happen for me in hacking or deciphering.  All of my hair-pulling moments have been while coding utilities.
There was a bug in Temporal Flux where the Overworld Exits were suppose to synchronize with Overworld Event code.
Sometimes it worked, sometimes it didn't.
It took me years to beat that bug.
Might be the worst one I've ever had to track down, and I've traced into the Windows system kernel to find out why a driver was crashing (back before there was code for that).



Lazy Bastard: That said, was there ever a code, hack, application, or functionality you made that you just couldn't get to work quite correctly?

Geiger: With enough time and effort, I have managed to knock out everything so far, eventually.
Someday, I may release another version of GSD if I can ever figure out how to put APU debugging back in.



Lazy Bastard: Did you ever hack, discover, or create something awesome, but then lose it somehow?

Geiger: Nothing serious.
I lament that I can no longer find that Ogre Battle code I made.
And I'm sorry that I didn't keep a copy of Temporal Flux's v1.0 code around.



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

Geiger: Television.  Internet.  Board Games.  Nerd Stuff.



Lazy Bastard: What is your favorite video game ever?

Geiger: hm..
I am very fond of Chrono Trigger, but it has stiff competition from Final Fantasy IV, VI, and Actraiser.
For a singular game, and definitely in the J-RPG category, it is probably Chrono Trigger by a smidge.
But if we extend the question to game series, it is the Mass Effect Trilogy, hands down.

Lazy Bastard: Cool; I love Actraiser...such a novel combination of two genres, like the Langrisser series.



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

Geiger: This probably won't earn me any points.
Long-term, I don't think it can thrive.
I don't think it will ever disappear completely.
But there are kids today who grew up on Minecraft, who are barely familiar with any Mario game.
Ultimately, I think the "hack" scene will transmute to a "mod" scene (and is already doing so).
While that frequently requires no less work, it isn't quite the same thing.

Lazy Bastard: Interesting take.



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

Geiger: Do what you like, not what will earn you praise.  The mob is fickle, but passion will drive you.