Skip to content

Tutorial: The Graphical User Interface

Gabbi (Rickisthe1) edited this page Dec 27, 2024 · 11 revisions

Graphical User Interface

While CoilSnake's graphical user interface (GUI) is straightforward in design, it is highly effective at performing its intended functions. Though much of the interface is intuitive, providing additional context can enhance usability. Each tab serves a distinct purpose, which we will outline in detail below.

To launch CoilSnake's GUI, execute the provided EXE file on Windows. On Linux or macOS, run the following command from a terminal after installation:

coilsnake

Decompile

CoilSnake's "Decompile" tab

The Decompile tab allows you to extract data from an unmodified EarthBound ROM and save it to a specified directory on your system. You need to provide both the source ROM and the target directory for CoilSnake to place the extracted files.


Compile

CoilSnake's "Compile" tab

The Compile tab performs the reverse operation. It compiles a project directory into a new ROM file, which can then be tested in an emulator or on development hardware. A base ROM must be specified for this process. Once configured, click Compile, and CoilSnake will process the data swiftly.

Run Button

The Run button launches a SNES emulator with the selected ROM. To use this feature, configure your preferred SNES emulator through the Settings menu under Configure Emulator.

Edit Button

The Edit button opens the EB Project Editor for project modification, particularly for map-related data. Ensure Java is properly configured in the Settings menu under Configure Java for the EB Project Editor to launch successfully.

Note: Common Java installation paths will be added here.


Upgrade

CoilSnake's "Upgrade" tab

The Upgrade tab converts projects created with older CoilSnake versions into the latest format while preserving existing data. This process requires a clean, unmodified ROM as a reference. Always create a backup before proceeding.


Decompile Script

CoilSnake's "Decompile Script" tab

The Decompile Script tab extracts the game script into the ccscript directory of a project. This process also updates the project's YAML files to reference the decompiled scripts. Use this feature when you need to modify extensive portions of the EarthBound text, such as during translation efforts.


Apply Patch

CoilSnake's "Apply Patch" tab

The Apply Patch tab facilitates the application of patches to EarthBound ROMs. Patches describe changes to the original ROM, ensuring compliance with copyright laws by requiring users to have a legitimate copy of the base game.

CoilSnake supports two patch formats:

  1. International Patching Standard (IPS)
  2. EarthBound Patch (EBP)

The ROM Header (IPS only) checkbox ensures compatibility when applying IPS patches to ROMs with or without headers.


Create Patch

CoilSnake's "Create Patch" tab

The Create Patch tab generates a patch file detailing the differences between the original ROM and your modified ROM. This is the standard method for sharing hacks with others.

CoilSnake supports creating both IPS and EBP patches. It is recommended to use EBP, as it automatically identifies the ROM type and avoids compatibility issues during patch application.


Tools Menu

The Tools menu provides auxiliary functions:

  • EB Project Editor: Launches the EB Project Editor directly.
  • Expand ROM to 32/48 MBit: Increases the size of a ROM file, providing additional space for data storage during compilation.
  • Add/Remove Header: Adds or removes a 512-byte header to/from a ROM file for compatibility with specific tools.

Settings Menu

The Settings menu allows configuration of non-project-specific parameters:

  • Configure Emulator: Specifies the SNES emulator for the Run buttons.
  • Configure Java: Sets the Java installation path required for the EB Project Editor.
  • Configure CCScript: Defines the ROM location for compiled CCScript text.
  • Debug Mode: Enables verbose logging for debugging and troubleshooting.

Command Line Interface

Advanced users can access CoilSnake's command line interface via Linux or macOS by running:

coilsnake-cli

For detailed usage instructions, use:

coilsnake-cli --help
Clone this wiki locally