I only really knew a little bit of this stuff, like I understood 50-60% of the terminology when reading through the documents, but when attempting to get a rom hacked the way I wanted I really needed to understand the tools, and things like offsets and how to use debuggers.
The biggest challenge for me is you know I want it to work right away, even if I don't understand it at first. You know fix first understand later. But a lot of times just brute-forcing something, or using trial and error to overcome an obstacle just wastes time. Then you've wasted an entire afternoon when you could have spent it instead brainstorming on how to solve the problem, or reading an article online on how to do it. Many times we will have to learn assembly, hexadecimal, or whatever language a program is written in to get a rom to work in the emulator the way we want it to. You can sit down and be creative about how you want a game to work, but when you sit down and realize how restrictive the tools are you may cancel a lot of ideas.
It's a good challenge to get these things to work the way you want them to, but it might also be like an obsession. It's nice when a bunch of people get together and hype a project up, and there's a bunch of excited people who have the same goal, but also I think it's pretty neat when say maybe 2-3 people spend a few years working on what seems like a simple project on the outside, but extremely complicated otherwise. These files you know can range very small to extremely large and the way they got these tiny files to work in the 80's and 90's just surprises me. Like I'm working on this game that is smaller than your average photo, but over the last month or two I've just so much about how they packed so much data in there. An example of the difficulty: I followed a project for about 5-10 years. It was a translation from Japanese to English, a game that Hideo Kojima never intended for US shores (this happens a lot in Japan), despite making several Metal Gear Solid games. Well this team was all hobbyists and they specifically put on their website that the game would not be completed any sooner with donations so didn't encourage them. When they finally finished it, it seemed very authentic and it's nice to see people complete this difficult goal without abandoning everything and just giving up.
Well anyways, I like ASM better than hex of course, but I still feel like many times higher-level language can be a hassle to follow. I'm glad so many people have made these useful utilities, which is why I'm contributing by making small changes to program recently made open-source. This stuff is tedious though, and I feel like most of the easier and important projects are done. People who completely redesign a game typically take a year or so. Sometimes they go back and do an update and make changes, it could take up to 3-5 years. That's a long time to be spending on these projects. Thanks for reading. Sorry for the long post.