Are there any tips for identifying a relevant breakpoint? Maybe specific example might be something that can help me sort this out. I'm trying to brute force my way to finding the relevant ROM location for just changing player speed, but I feel like I'm circling what I should be finding instead of spiralling inward and ultimately homing in on it.
So in the memory viewer, I moved the character around looking for something that looks like speed, i.e. it ramps up and then levels off and coincides both left and right. In this case, I found multiple parts in ram that use the exact same values (my guess is that the main player is made up of multiple sprites which *seems* like it would be why, but I don't actually know!)
Those memory addresses in CPU RAM were
$004C, $0406, $0C06, $1406, $184C and the last one I felt like writing down was $1C06 before I realized I probably only need one of these for any use.
Next, I noticed a pattern that $..4C and $..06 repeated in all of these.
At this point, I decided to go hunt through the debugger for just 4C and 06, which put up a bunch of stuff, none of it jumped out at me even after trying to edit those locations in the ROM just to see what happens, so I went back and searched out #06 and #0C. I found stuff for #06, but again, I crashed the game doing any memory changes on the '=' side of the line more often than not.
And finally, at wit's end, I looked at the number of reads from ROM, paying attention to something that was constantly being read or corresponded to me pressing left or right on the controller. After some blind looking around, I centered on ROM address $1EB18.
However, I'm not even sure I found anything actually useful as when I change values, it seems to, and I'm guessing, not change speed, but change JMP and JSR for various player interactions. I found one value that seems to skip checking for maximum movement speed but only for one direction, another one seemed to alter normal platforms to slippery ones, etc.
So I've stumbled onto *something*. How might I use this information to more smartly pin down the values I'm actually looking for which is character accelleration and character maximum speed? Surely there's a methodology to do this. Keep in mind I know how programming works and can look at it in an abstract way to understand flow control, setting values, etc. but I'm not exactly super familiar with assembly, nevermind specific assembly for specific CPUs.
At any rate, thanks for any help. I'm trying to learn the process itself rather than ask for specific help with the game I'm hacking with so that I actually come away with a moderately useful skillset in any future hacks I might fancy doing. (and yes, I've looked up the specific game for documentation etc. but nothing I was hunting for seems to be documented, at least on this site).