-
Notifications
You must be signed in to change notification settings - Fork 37
Introduction
Welcome, and congratulations on discovering this document! By doing so, you are not only contributing to a renewed sense of hope for humanity but also sparing countless puppies from an unfortunate fate. More importantly, you are taking your first step toward mastering the art of hacking EarthBound using CoilSnake.
This guide aims to provide you with all the foundational knowledge needed to begin hacking one of the greatest games in modern history. The only prerequisites are basic computer skills and a willingness to learn. Let’s dive in!
Like other console games, EarthBound can be modified by extracting its data and editing it on a computer. Specialized tools allow users to retrieve the game’s ROM (Read-Only Memory) from its cartridge, containing all programming and graphical assets. Once extracted, the ROM can be run on an emulator, which replicates the Super Nintendo Entertainment System (SNES) environment, enabling you to play EarthBound on a personal computer.
To begin, you’ll need two essential items:
- The ROM file: Obtain this from the game cartridge.
-
An emulator: Recommended options include:
- [Mesen](https://mesen.ca/): Ideal for Windows and Linux, featuring robust functionality tailored for game hackers.
- [Snes9X](https://github.com/snes9xgit/snes9x/releases): A reliable choice for macOS users.
- Additional options are available on the [wiki homepage](Home#recommended-emulators).
Once you have the ROM and emulator, you can start experimenting. You can either:
- Edit the ROM’s hexadecimal values manually (ideal for research and customizations not supported by other tools), or
- Use specialized tools, like CoilSnake, which automate and simplify many processes. This guide focuses on CoilSnake and other tools widely used by the community.
While EarthBound Beginnings (Mother) and Mother 3 have also been hacked to some extent, they are less explored compared to EarthBound. Reasons include:
- Mother: Its NES-based engine is less appealing for modders.
- Mother 3: Its ROM structure is challenging to modify.
For resources and tools related to these titles, visit the [PK Hack board’s tool index](https://forum.starmen.net/forum/Community/PKHack/The-Catchall-Resources-Hacks-Index-Thread/first). These tools are not covered in this guide.
-
Operating System:
- CoilSnake and EarthBound Patcher are cross-platform and compatible with Windows, macOS, and Linux.
- EbProjEdit (map editor) requires Java and works across platforms.
- EBMusEd, PSI Animation Editor, and EarthBound Save State Editor are Windows-only but may run on Linux and macOS with Mono or Wine.
- See the [DEVELOPMENT.md guide](https://github.com/mrtenda/CoilSnake/blob/master/DEVELOPMENT.md) for Mac/Linux instructions.
-
Text Editor:
Use a modern editor like:- [Notepad++](https://notepad-plus-plus.org/)
- [VS Code](https://code.visualstudio.com/)
- [Atom](https://atom.io/) (Linux users might prefer Gedit).
Note: Word processors like Microsoft Word are unsuitable.
-
Image Editor:
Recommended options include:- Photoshop (industry standard, but costly).
- GraphicsGale (free, ideal for pixel art).
- Aseprite (popular but paid).
- GIMP (free alternative to Photoshop).
Tip: Ensure you use the latest version of GIMP to avoid compatibility issues with CoilSnake.
-
Dependencies:
Some tools have third-party dependencies or require interdependencies. Consult each tool’s documentation for details. -
Your Brain: Preferably not in a jar.
This tutorial draws heavily from [Lyrositor](https://github.com/lyrositor)'s [EB Hacking 101](https://www.lyros.net/files/EBHack101Latest.pdf) guide, used with permission. While the original guide is outdated, it served as a valuable foundation for this resource.
- [EarthBound Savestates for Testing](https://legendsoflocalization.com/research-mother2-earthbound/)
- [Custom Overworld Sprite Palettes](https://www.compnode.net/coilsnake/spritegroup-palettes.html)
- [CCScript Command Reference](https://starmen.net/pkhack/ccscript/Reference.html)
- [CCScript Language Reference](https://starmen.net/pkhack/ccscript/CCScript.html)
- [ebasm](https://github.com/Tripped/ebasm)
- [DataCrystal’s EarthBound Page](https://datacrystal.tcrf.net/wiki/EarthBound)
- 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