Project Directories - pk-hack/CoilSnake GitHub Wiki
The Project Directory
When you decompile an EarthBound ROM using CoilSnake, the result is a CoilSnake Project—a directory on your computer that contains numerous folders and files, typically in the YML or PNG format.

While the wide range of customization options may seem daunting at first, each file is logically named and organized to simplify navigation and management.
This section provides an overview of the project directory and its structure. Detailed explanations of individual files and their functions will follow in subsequent chapters.
Key Components of the Project Directory
-
Project.snakeFile
This file is the cornerstone of the project, providing CoilSnake with metadata about the project. It includes information about resource file locations, the ROM type (e.g., EarthBound), and the CoilSnake version compatibility. Direct modification of this file is not required or recommended. -
YML Files
These files are among the most prevalent in the project directory and define various game settings. For example, thedont_care_names.ymlfile contains the default name options for characters. Written in YAML format, these files feature a straightforward syntax. However, should you encounter any confusion, extensive documentation is available online.Within these files, you’ll often see references to data pointers, such as
0x82abor$ef8543. These pointers direct EarthBound to the corresponding resources in the ROM.
Key Directories and Their Functions
-
BattleBGsDirectory
Contains the visual assets for battle backgrounds, which are dynamically transformed during battles. -
BattleSpritesDirectory
Houses enemy sprites used in battle scenes. -
ccscriptDirectory
Serves as the location for all CCScript dialogue files, which will be compiled into the ROM. -
FontsDirectory
Contains the fonts used in EarthBound, including unique styles like the Saturnian font. -
LogosDirectory
Stores logos displayed during the game's opening sequences. -
SpriteGroupsDirectory
Includes character and NPC sprites used for animations on the world map. -
TilesetsDirectory andmap_tiles.map
TheTilesetsdirectory contains the map tiles, whilemap_tiles.maporganizes those tiles into game locations. These files should not be manually modified. -
TownMapsDirectory
Contains the small town maps displayed when the player uses the Town Map item. -
WindowGraphicsDirectory
Stores GUI elements such as HUD components and the various window color schemes available to players.
Modifying the Game
To modify the game, simply adjust the contents of the existing files to suit your needs. Note that it is currently not possible to add new files to the project, except for CCScript files. Any new CCScript files must be placed within the ccscript directory, where they will be automatically recognized by CoilSnake.