Jump to content

Why Documenting ASM Hacking is Difficult (Pokemon Gold Example)


Airikita
 Share

Recommended Posts

This is when I'm trying to find something:

 

And an hour later (when I find it):

I get lost in part of that video where my mouse.... sits there...

 

It's not like I'm trying to keep things to myself when I do code, but this stuff is tricky... sometimes we get lost ourselves, but it is called "hacking" for a reason. Picture you're taking an axe and HACKING away at a log... sums it up. We do something until we hack-out a result. The result may lead to weird things...

 

Some code is used in multiple places, stored in random places, changes into another value, transforms, goes to another function, turns around, and.... eventually you crap your pants if you find anything.

 

Fail one day, try again the next.

 

When I try to explain it I can't... and I think I speak for all ASM hackers here when it's like "we did...... stuff......."

 

Yeah.... stuff......

 

It's not to be cruel/mean/rude/snobby, it's the way we do things, in the end we can't always write it all down either. I make notes, and sometimes those notes are in spots that are irrelevant to what the code is actually doing to what I'm looking for.

 

You/we can get stuck in LOOPS, and those nasty shits are what confuses us more... it's like sailing in a boat, and you hit a whirlpool.

 

In all honesty, this video is probably a good beginner's tutorial, so it will help you if you want to learn ASM hacking tips.

  • Like 1
Link to comment
Share on other sites

A few weeks ago I actually streamed my ASM hacking sessions when I were writing my Majora's Mask hacks and documented stuff. That was when I wrote my Iron Boots & Zora Swimming as Link hack among other things.

Sure, I only had like 2-3 viewers but it was interesting. The viewers got a completelly different picture of the process I went through when writing my ASM hacks.

I really enjoyed the moments when I were just as confused as the viewers.

 

Hacking, especially when being done to things which aren't documented is a lot of trial and error, not to mention dumb luck. When you finally find that small detail related to what you want to achieve, it is just the matter of connecting all the dots with debugging and eventually you'll get there. This is something that a lot of people isn't aware of. Many believe that there is some simple process behind it once you know how to hack, but it involves a lot of patience and dumb luck even for experienced hackers.

 

The secret to my Pause Menu documentation for example is quite simple. I just clear out the entire damn RAM section of the inventory data one address at a time and see what changes, when something interesting happens, I reload a state, look further into the address that caused the change, write it down, and hopefully it'll get me somewhere. That's the general process I've gone through for almost every single feature of my editor. Dumb luck.

Sometimes there's more to it though. Like when I found out how to change the tintcolor of the title panel at the bottom of the pause menu. To find that I actually calculated the tint color itself by comparing the original greyscale picture and a screenshot ingame, and searched for the calculated values. I'd assume that this isn't something a new hacker wouldn't think of, but things like this becomes second nature overtime.

 

I'd still say that the majority of things I do is trial and error combined with dumb luck though. A lot of times I do not even understand what I'm doing. I just get the result I want, and completelly forgot how I did it a moment later. I wouldn't be able to explain the majority of things that I've done, and I absolutely wouldn't be able to properly teach anyone how to ASM hack.

 

So yeah, long story short, I salute you for trying to help others in learning ASM hacking, it isn't as easy as it sounds, I'd even argue that it is harder to teach it than it is to learn it, mainly because the process is something that usually is unique to the person in question. Everyone has to find their own way of doing things, or you'll just get held back by trying to emulate another persons thinking process.

  • Like 1
Link to comment
Share on other sites

Exactly, and my way of hacking is just... the way I think, I dunno, I forget at the end my thought process. Short memory span likely.

 

I find videos are going to give people a perspective into the difficulties and problems ASM hackers face, because I do hear a lot of complaints to ASM hackers, so I just want to raise some awareness to what we are dealing with at times.

 

I like to pick at small value changes, and the Majora's Clock picked at one value. I like to simplify things, and that simplification is what throws people off...

 

I mean, look at this explanation some ASM hackers are giving to beginners (ignoring my post at the end):

http://hax.iimarck.us/post/31226/#p31226

 

Like... holy geeze, you're going to show a WACK of ASM code to beginners? Just doesn't work... me, personally, I got headaches trying to read their explanations, and I am experienced. I do believe these guys know what they're doing, but throwing chunks of code/algorithms at beginners is like throwing potatoes covered in grease fire, and expecting them not to panic!

 

So, to give some front-views, I'm going to record my findings (especially when I know I can find something)

 

I basically simplified their explanation:

Like... it was useful documentation, but it was like "tl;dr", I just couldn't stand reading it. I do best when I breakpoint, and find my way around RAM. I guess the visuals help out better. I mean, most people are visual, so videos give a better perspective.

 

EDIT: and yes, I understood what they were talking about, I just.... couldn't read all that at once.

Link to comment
Share on other sites

I've never used ASM to document anything before. I've always taken a RAM Dump, and then changed the attribute that I'm trying to find, and then take another RAM Dump and compare those two in a Hex Editor until I can find enough information to make a gameshark code--Not the best solution but it works sometimes.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.