First of all, I will assume you know how to modify Cave Story without assembly. This means being able to edit TSC, use a map editor, set flags, make NPCs talk, etc. Got no idea what TSC is? I suggest that you read through Noxid's Modding Beginner's Guide. He tells you exactly what TSC is and how to edit it.
Sprite editing will be quite useful. You don't need to know how to replace the game icon or add custom music. It's good if you do, but it's not required for assembly exe hacking. It's helpful if you have some sort of programming experience beforehand, but you are not required to have such experience (because this guide is for beginners). As for scripting experience, all you really need to understand is TSC. Programs and Software that will help you:
Next, having Cave Story is really important, for obvious reasons. Editors are very handy. They will allow you to easily test your assembly hacks. Also, part of the reason you're studying assembly is probably because you want to make a mod with assembly hacks, right? OllyDbg is your main assembly editing program. A save editor is very useful for quickly adding weapons/items to your character, but not necessary. For example, giving yourself the Nemesis with CE or SW will achieve the same thing as hacking the Nemesis into your save file. 32-bit Windows and 64-bit Windows If you're using a 32-bit version of Windows, you're good to go. You can run pretty much any version of OllyDbg, including the older versions. If you're using a 64-bit version of Windows, then you're also fine. The only difference is that you cannot run old versions of OllyDbg. Just download the newest version OllyDbg 2.01 Alpha 3. If something newer than 2.01 Alpha 3 comes along, you can probably run that too. (I am running Windows 7 on a 64-bit computer. I assure that you 64-bit folks are at no real disadvantage.) If you have absolutely no idea if you're running 64-bit or 32-bit, go here: http://support.microsoft.com/kb/827218 Download Links
By the way, the type of assembly we're going to learn is the x86 Assembly Language, in case you were wondering. Previous Lesson: Introduction Next Lesson: Defining A Program Table of Contents |