So after a long time silently perusing this forum for the duration of my stay here, one thing has been made painfully apparent: most of you couldn't code your way out of a paper bag if your life depended on it. This *should* be an obvious conclusion for anyone who is paying attention, but apparently any sort of minor ASM modification (or even hex edit) means that one has the knowledge necessary to do anything more with their hacks than copy off people that know what they're talking about, and are treated as a person with such knowledge by the community. As a result, your hacks suck. No two ways about it. Of course, if your goal is simply to use the tools available and channel your efforts into another skill, such as art, music, or level design, and you do a good job in this regard, then I don't really have anything to say to you. To everyone else who wants to make the next big Sonic hack with all sorts of ASM work and crap, listen up. Here's the basic attitude of your average ASM hacker: "I want to make a Sonic hack with all sorts of cool stuff, but I'm unsure about how to do it. Let me look at some of the guides available... *looks up guides* ah, this music hacking guide is good, and this forum post on how to add spindash to Sonic 1 is understandable enough. I'll just follow the directions and copy the code given and put it in my hack. Actually, I kind of want to add Knuckles to the game as well. *looks at guides some more* Wow, I couldn't find a single complete guide on how to add Knuckles. Well, I guess that idea is out the window..." Repeat for each random idea the hacker has thought of. After a while you may have a hack with a bunch of different ASM ideas implemented, maybe some buggy because you didn't follow the directions fully. Alas, you may think you have learned ASM and are on your way to making a good, well-modified ASM hack! THIS. IS. NOT. PROGRAMMING. I'm going to be completely frank. There's a good reason why not every random person is a programmer, and why programming in general is generally a highly-paid position in the professional field. This reason is simple. Programming is hard work. Very hard work. Not on a physical level of course, but the skill set and attitude required to be a successful programmer is not something most people have naturally, and isn't developed easily. People go to college for 4 years for this crap in some cases. What does this mean for you? This means that if you had no prior programming experience or skill, going into a Sonic forum and learning how to modify disassemblies using preexisting guides isn't going to do much of anything to give you those skills. Here are some words that I would use to describe programming: boring, tedious, annoying, frustrating, time-consuming, confidence-draining. You get the idea. Programming is very much a field where the ends justify the means: the resulting program may end up being extremely useful and/or entertaining, but the process of creating it may make you want to kill yourself at times. Obviously, that's hyperbole, but it's not a job for the impatient, the easily distracted, or those who hate boredom. But here's the thing: I'm all three of the above. But alas, I'm a programmer anyway! What's the secret? Herein lies the point of the topic: Programming is not a talent that you are born with. Like most any other skill, it is developed by repetition and practice. Why do I bring this out? Because the first step in developing a skill is evaluating yourself and your abilities and understanding what inherent personality traits and how much lack of knowledge inhibits you. People who do not do this or refuse to do this fall into one of two categories. 1) People who understand the mindlessly simple things but upon trying to develop the skill to a greater degree, balk at the necessary requirements and simply declare in their mind that they're too stupid or lazy to possibly understand. 2) People who incorrectly assume that they already know what they need to know and don't bother improving further because they think it isn't necessary. Do you want to make an awesome ASM hack? The first step would be to open a 68000 ASM reference file and memorize the opcodes, while maybe reading a few other reference works to understand what each opcode is supposed to do, right? WRONG. Contrary to what you may think, programming isn't a skill tied to the language or platform. You don't "learn" C++, "learn" 68k ASM, "learn" Visual Basic. You "learn" programming, the concepts needed for it, and apply what you learn to the language necessary. From there, as I like to say, once you've learned one language, you've learned them all. What's left to learn is basically related to a language/platform's limitations and its syntax. If you *truly* want to do programming work on a Sonic hack or rom hack in general, you should take the time to actually learn the skill. If you don't care, then you're probably ignoring this anyway. (I'll probably know who fits into what category by whoever replies to this topic having only read the title and not much more). Obviously, this may require different methods and more effort depending on the person. I'm not going to teach you how to program, as I honestly would be pretty bad at that anyway. There are many online resources that teach the basics of programming using a specific language, although many of them do a pretty bad job of it. The language doesn't matter much, the point is to learn the concepts. Do your own research. Talk to programmers you may know in real life. Different programmers have different methodologies, so you'd do well to experiment using the language(s) of your choice and find out what you are most proficient at. Only after you do this will the real potential in rom hacking be open to you. Also, as a final note, realize that programming isn't supposed to be *fun*. If you find perverse pleasure in tedious work and endless repetition, then you may enjoy it, but in general it's not an easy skill to learn or perform, even if you're proficient at it. I don't consider myself particularly proficient, but I have enough experience and practice that I generally know what exactly what I want to do, and can do it with reasonable success. I imagine others like Upthorn and Stealth feel the same way, though I can't know for sure. Anyway, I didn't make this topic to rant, and I doubt it'll do anything to really improve the quality of work on this and other forums as a whole, but if even I can convince a few promising talents to take the time to truly *develop* this skill, I will be completely satisfied.