-
Notifications
You must be signed in to change notification settings - Fork 37
CCScript
CCScript is an amazing programming language made specifically for EarthBound hacking.
You can find a list of all of the commands here: CCScript Command Reference
Various helpful .ccs
files have been curated on this wiki via Gist - the CCScript Library!
CCScript files must all be placed in the ccscript
directory of your CoilSnake project. You can create a .ccs file and then edit it with your favorite text editor. Add labels (so you can point NPCs and etc. to the text), and add text. Now, take a look how to add EarthBound's original text and modify it, and learn more about the labels and etc. in here. Even more information in CCScript Command Reference.
If you will want to modify original EB's text, you will need to do this.
- Backup the project you just made somewhere - This helps if something goes wrong or you want to look at original files at some point
- Click on the Decompile Script tab in CoilSnake
- Click on the "Browse..." button next to the ROM: field
- Select your EarthBound ROM
- Now click on the "Browse..." button next to the Project: field and go to the directory of the CoilSnake project we created above
- Make sure that the path in the Project: field is to the actual folder where all your project files are stored
- Now click on the big "Decompile Script" button
Watch a video of these steps: https://youtu.be/C6bkgrGB-n8
Another thing you will want to do now is go into your project directory and copy the CCScript folder and back it up somewhere. It contains all of the game text for EarthBound, and having an original copy somewhere will be an invaluable reference in the future.
Congratulations, now you can modify the whole EarthBound text data!
All of the main game text is now located in the ccscript folder in your project files. If you haven't backed up a copy of this folder I would recommend doing that before you edit it. Having the original somewhere for reference is a good idea. Just put a copy of it somewhere outside of your project folder.
The ccscript folder now contains .CCS files, most of which are data_xx.ccs. Please don't worry about main.ccs, this is a file that allows the game to know where all your modified text is, which means you don't have to worry how long or short your project's text is compared to the original, it's all handled for you. This may sound standard, but back in the day this wasn't the case, and modifying EarthBound's text back then was a PAIN!
In all the data files, you'll notice that it's not just plain text you're looking at. Here are some descriptions of what you're seeing:
- Normal Text: You can tell if something is normal text if it is surrounded by quotation marks AND doesn't appear between square [ ] or curly { } braces.
- Labels: labels are what CCScript uses to organize blocks of text. They are a name, followed by a colon, such as l_0xc52d54.
- Control codes: These are hexadecimal values surrounded by square brackets, such as [1C 02 00]. They tell the game all kinds of vital instructions.
- CCScript Commands: These are normal commands that ccscript uses to tell the game what to do. They are usually outside of quotation marks or between curly braces. The most common are linebreak, which tells the game to jump to the next line when printing out text, next, which waits for the player to press a button before going to the next line while printing out text (this shows the little downward arrow prompt), eob, which means the end of a text block, etc. I would recommend reading about the basic commands here.
- Comments: These occur after forward slashes // or between a /* and a */. They are meant to tell you what is going on in the script and can be left exactly as they are.
- @: The @ character simply represents the little circle dot that starts at the beginning of most sentences in EarthBound.
To edit text, a good text editor is needed. For Windows, Notepad++ is recommended instead of the default Notepad program. For Linux, gedit is recommended, but also any other good text editor can be used.
- Overworld Sprites
- Battle Backgrounds
- Battle Sprites
- Title Screen
- Window Graphics
- Logos
- Fonts
- Animations
- Swirls
- EB Project Editor
- Tile Data
- Tile Editor
- Collision Data
- Adding Map Palettes
- Map Editor
- Doors
- Warp Styles
- Enemy Placement
- Hotspots