News:

1.0 General Rules and Concepts

Rule #1:



Keep multiple backups of the original ROM, as well as the ROM you are working on. I’d go so far as to recommend you keep a history of ROM backups, so it’s easier to pinpoint what went wrong (and when) when your ROM gets glitched out. JHack is notorious for destroying ROMs and ruining hours, days, months, and even years of effort. Don’t let it happen to you. Be smart, keep copies and backups. I have copies of my copies on multiple PC’s. Don’t say I didn’t warn you.


Rule #2:



The original ROM is only 3MB’s, and tightly packed, you can’t really ADD things without expanding. Any change you make that is larger than what was there in the first place will most likely overwrite the section after it, and this can either cause minor fixable problems, or completely break a ROM. As a general rule, if you plan on ADDING anything, you MUST expand your ROM, and put the new stuff in the expanded area. Doing this is explained later, just keep the rule in mind.


Rule #3:



Know what you are doing BEFORE you start hacking. I don’t mean fully understand every little detail beforehand, I mean have a VERY clear idea of what you want. Before you even open JHack, sit down with a pencil and paper, or use Paint and Notepad, and map out what you are trying to do. Given the 80 million variables JHack can throw at you, if you don’t know exactly what you want to do, it’s easy to get swamped. Also when hacking it helps alot to know what is a core component of your hack, and what is just something you thought would be nice to do, and which can be cut if need be. So map it out. What changes do you plan on making? Are you changing existing areas, deleting some and making a few new areas? Are you changing enemies? Items? Getting it all out on paper will help you remember everything you wanted to do, instead of trying to keep everything in your head. Starting a hack with just a general idea of what you are going to dois a good recipe for disaster. This goes double when dealing with the Map, as you will find out later.


Rule #4:



EarthBound was made by people who must have been on drugs. The ROM is one of the most disorganized and messy pieces of code in existance. The above picture is of the code used by the game for the Stores. It’s a giant “If X is Y, do A, else do B” tree that uses the flags in the EarthBound system to determine which store you are at. Rather than just have a seperate block of code for each store like would be logical, instead every single time you talk to one of the NPC’s with a store in game, the game calls this piece of code and runs down the tree until it finds the store you are at based on which flags are set and which ones are not. This means editing any store in the game is a MASSIVE hassle. Not a whole lot you can do about this, unless you put alot of work into it. This is just a small sample of how messed up the ROM is. This isn’t simple. We don’t know how to edit everything, what everything is or does, or why some completely unrelated things have a tendacy to effect one another. That’s just the way the ROM is.


Rule #5:



Understand the components. The ROM has sections of itself that are Audio data, Graphical data, Assembly, plain text, Compressed text, Compressed Graphical data, an internal control code system, and some stuff we haven’t ID’d yet. These parts aren’t always contigious either. The Audio data alone is scattered all over the ROM in 15 different areas. Different parts of the game are stored in various ways across the ROM. Knowing where the data you want to edit is, and how to access it and alter it are key to hacking. This ties in with Rule #8.


Rule #6:



Know the terms and concepts. Do you understand the concept of Hexadecimal? Do you know what a pointer is in the context of programs and memory? Are you familiar with the concept of binary flags? Do you understand the flow- chart of a program? Do you know what an argument is in context to programming? Do you know how the EarthBound ROM stores pointers, and how to convert them to a hex pointer you can follow? Do you understand the programming concept of a IF/ELSE statement? Do you know what a color palette is? If you answer no to any of these questions, don’t worry, I will explain these things in section 1.4.0 Technical Details.


Rule #7:

Many things you may want to do are possible with the simple editing of a value in one of JHack’s editors, or the built-in Hex editor, but some things require ASM to alter. Granted, Graphical and Audio data require their own editors, but most other editable things fall into this catagory. Editing a spell to cost more PP is simple, since that value is stored in plain text in a table somewhere. Editing a spell to do different damage is very complicated, since that data is in Assembly, and requires knowledge of 65816 Assembly code to change, and Assembly requires knowledge of the hardware of the SNES, and nifty things like memory registers.(I do not know Assembly, this is not a 65816 Assembly tutorial, google if you want one) So you can do many things quite easily, but some things are very difficult to do, and require learning far more than this tutoral is for. This ties in with Rule #8.


Rule #8:



Know the tools needed for the job. As a simple rule, if it involves editing Audio or sound effects, EBMused, PKMidi, and a different tutorial is what you need. If it involves editing graphical data of any kind, you will be using one of the built-in editors in JHack, or using the Reset Button in JHack to decompress the data(if needed), and editing with Tile Layer Pro, Tile Molester, or your other favorite SNES graphical editing program. If it involves text, most work should be done with CCScript, and put into the expanded area. If it involves editing a function of how the game operates, odds are you will need to do the work in Assembly, and as I’ve said before, I can’t help you there.


Rule #9:



You can do everything right and still be not able to finish. JHack eats ROMs, and sometimes things break and we don’t know why, or how to fix them. Like I’ve said, many parts of the EarthBound ROM are unknown, and we don’t fully understand the ROM. Messianic created EB:DX, a super hard edition hack of Earthbound. He put tons of effort, time, and work into his hack, and it now sits near completion due to a number of bugs we just can’t seem to get rid of. Hacks do get done, but there is always that chance. Better you know now before you get started.


Rule #10:



Hacking takes time and effort, completing a hack takes time, effort, persiverance, and a bit of luck. There is no way you will accomplish anything in editing the EarthBound ROM if you are not willing to put effort into it. Trial and error, breaking the ROM with editing, examining how the game does things and trying to emulate that, this all requires a desire to learn and to put in the time needed to hack. It’s not easy, and results don’t come quickly. The ROM itself is also a mess making things even harder to work with. If you tend to start projects and not finish them, this may not be for you. No one is really looking for an idea guy for a project, or a project leader. There may be people willing to help with a part of a hack, but we don’t want to do your hacking for you. As such, we expect you to put in effort, like reading the Forum Rules before posting.


← Preamble | 1.0 General Rules and Concepts | 1.1 Programs →

Junk:

Activities:

EarthBound Fanfest 2010
MOTHER 2 Novel Translation Project!
EarthBound Central -- Good News for the Modern Fan
Fangamer Banner
MOTHER 3 Fan Translation
Starmen.Net EarthBound Walkthrough
Starmen.Net Mother 3 Walkthrough
Donate to Starmen.Net!

Site Info:

Wanna know more about the staffers? The Site History? The Forum Badge Guide? All the info is here!

Polls:

How do you use Starmen.net?
Last Week's Poll
Which of the Super Smash Bros. Newcomers is your favourite?
Image of Last Week's Poll

Radio PSI:

Bringing the EarthBound community together through the magic of music.