One of the things I don't like about romhacking, as someone who is still kind of new to assembly / hex / binary operations and who probably isnt aware of the best tools out there and all.. is how much I have to repeat the same operations over and over again.. For example, sure I can find the binary value of "A5" and the the result of AND'ing it with "43" all in my head.. but honestly, I think it is quicker for me to use the calculator instead and more importantly, I really don't trust myself enough at doing it and prefer to use the calculator to be sure I don't end up pulling my hair off later if something don't make sense and waste time searching at the wrong places for what went wrong just to find out I made a simple calculation error when I could have just take 10 seconds to make the calculation using the calculator.
There is also the need to use multiple tools which are not "compatible" directly with one-another like for example I could be using geiger's debugger, have it break when some address is read, then when it breaks, since it only shows the current line of code and lets say I need to know what comes before that like of code, I'll have to go look in the disassembly, which means switching to notepad++, open the right bank file, copy the address from geiger's debug console (by double clicking the address from the output box and pressing CTRL+C) then press CTRL+F in notepad to search, paste the address from the debugger, change it a bit so it has the right address format for the disassembly (which could be say, from "$01/C01A" to "01C01A:"). Then let's say the code makes me think the address read could be some graphics, I could switch to tile layer pro, copy the address I had set as a breakpoint from the debugger's breakpoint window, then use "goto address" (or whatever its called) in tlp, paste it, modify it from D31234 to 131234, find out I was wrong and it seems to be some data that is not graphics after all, switch to an hex editor to use a table to see if it might be text which again requires modifying a bit of the address..
Sure, none of this is "hard" and this thread's title is "Making hacking easier" but I think zonk47 was thinking of stuff like that when he asked "What can we do to make the process of hacking easier and faster?" and since I was actually in the process of making exactly that, things to automatize repetitive tasks, and thought I am surely not the first to have thought of that, I was eager to see what some you guys came up with.. but sadly zonk47's bad attitude towards beign wrong / corrected really seems to have wasted a big part of what could have been a really interesting read and a source of useful infos about tools and tricks to make the whole process less tedious which less experienced romhackers (or anyone into really) could have benefited from.
So, hoping the discussion can continue on the right track, here is what I have to propose as a way to save time, avoid errors and cope with multiple programs with picky address formats and the like:
I came across that beautiful thing called "Auto Hot Key", it has been around for like.. a decade maybe ? But I just never heard about it anywhere and since nobody talked about it here I just had to spread the word in case some of you guys didnt know about it.
Its an app that runs ".ahk" scripts which can do many useful things but what I use it for mostly is to make repetitive tasks automatic. With it you can assign "hotkeys" that will basically change the behavior of some keyboard/mouse/joystick inputs to something else.
For example, the first script I made was for visual studio (you can make hotkeys work only with some programs) I didnt like to have to right click on function calls and select "go to declaration" to navigate to the function's declaration, because even tho it takes only 2-3 seconds, Its 2-3 seconds wasted every time and I use this all the time.. Sure I could just go into visual studio's settings and set some key shortcut to make it faster like CTRL+ALT+Q or whatever, which is what I did at first, but since I was used to do it with the mouse, it felt wrong to use the keyboard shortcut and I had to left-click on the function first to put the carret on it for it to work anyway so I still used the right-click menu, and there is no way to set hotkeys to the mouse in visual studio..
Then I found out about autoHotKey, and right away, made a small script that basically just makes it so when I press the middle mouse button, instead it does as if I pressed the left mouse button followed by CTRL+ALT+Q. so now its done in a single click and im a happy bunny.
I got so used to it that I caught myself middle-mouse-clicking on addresses following jumps/branches when looking at disassembled snes asm.. so I thought.. why not make it actually work ? Easy, make the middle mouse button act as "LEFTCLICK / LEFTCLICK / CTRL+F / END / : / ENTER / ESCAPE" which selects the word under the mouse with the 2mouse clicks, search for it, add ":" to the end of the search string (because each disassembled line starts with the address as such C0/0000: ) then start the search with ENTER and close the search box with ESC. and voila, all it takes is a single click now.
That alone isnt very impressive (or so much useful for romhacking) but what makes me talk about this program is the way it makes it very easy to control the behaviour of applications and the way it is possible to enhance any debugger/tool with it. You can easily retreive the text from a chosen control from most applications as well as set it so for example I made a script that gets whats in geiger's debugger's console, takes the address of the last line, open the coresponding bank file in notepad++, then jump to it and highlight it, which makes it so I can follow the code execution using step into/over directly from the disassembly.
The best thing about it all is that it wouldn't be hard to adapt the script to make it work with bsnes+ as well and make the disassembly open into another text editor than notepad++ or make a middle-clicked address open in tile layer pro at the right offset.
it shouldnt be too hard to make a script that would detect whats under the cursor and if it is an hex value, show a tooltip with the decimal and/or binary value of it..
So even if a debugger is not open-source and its development stopped, there is still some things that can be done to make it work like you would like it to and then you can even reuse that feature you added to another debugger later so in a way its even better than having access to the source code !
oh and the scripts can be compiled to .exe so you can share it with the world afterwards... ok.. enough.. Sorry for the huge post I could talk about this all day XD