Repository navigation
EBME 1.4.0
Caution
This version contains a bug on Windows versions only that causes issues when the project is loaded or saved more than once. Please use v1.4.1.
This release of EBME adds Changes mode, sector user data, performance improvements, QoL features, and many tweaks.
New
Changes mode
This mode allows you to edit map change events, which will swap some tile IDs with others when a given event flag is set (the data in map_changes.yml).
Changes can be individually previewed on the map.
The behaviour when many tiles are swapped a chain is correctly simulated too.
Sector user data
At the bottom of the Sector-mode sidebar is a collapsible section for the new sector user data system. This system allows you to attach custom properties to sectors, which can be stored in a CCScript file and read with your own assembly code.
Fields can take any valid CCScript define name and available datatypes include integers (signed and unsigned of 8, 16, 24, and 32 bits), 8-bit bitfields, and any valid CCScript identifiers (stored in 8, 16, 24, or 32 bits). The latter datatype is to allow interpolation with CCScript labels and constants, so only characters valid in those will be valid here.
As an example of its potential, you could use it to associate areas with a name which can then be displayed on the file select screen, so players will know where they were up to when they left off. The use and implementation of the data is up to you!
Improvements to Enemy mode
The behind-the-scenes handling of enemy tiles has been overhauled, which results in a dramatic performance boost in this mode and fixes the bug where some regions will not allow enemy tiles to be placed. Additionally, in the View menu you can now set the program to display battle sprites for enemies instead of overworld sprites. Battle sprites will ignore the zoom level when zooming in so you can sort them apart. To use the limited space better, duplicates of enemies across groups will not be shown when battle sprites are enabled.
For speedrunners, the ability to display the "spawn lines" has been added to the View menu. For a given enemy tile, these lines display the threshold the player must cross for the game to attempt to spawn enemies from this tile. Due to bugs in the game's code, this does not form a perfect rectangle. It is possible to right click to lock a set of spawn lines in place, and ctrl + right click will clear all locked line sets. Also in the View menu is the option to disable specific directions of the lines; useful for planning routes.
Overhauled settings interface
The settings dialog was getting a bit crowded, so it's been split up into several tabs. You'll also now get a warning if you change something that requires a restart of EBME or a reload of the project.
Advanced palette preview for the Map Editor
There's a new tool in the Map Editor, similar to the Palette Editor's "Advanced palette preview" tool, but instead of showing you a tileset, it'll show the effect across the entire map. This can be achieved in-game using certain control codes.
png2fts improvements
Replacing a tileset with png2fts can now be undone. Additionally, it's now possible to specify a different Python interpreter to run it through, and to add extra command-line arguments when it's run. This allows future work on png2fts to be tested within EBME. The output is now more detailed to help with debugging issues.
"Features" infrastructure
To support upcoming versions of CoilSnake, EBME will now use a project's version metadata to enable or disable certain features. So far, the only feature implemented is the ability to add new NPC entries, which will become available in an upcoming release of CoilSnake. For debugging purposes, it's also possible to force-enable features even when the project would not support them, but it's not recommended to do this.
Undocumented from the April Fool's Day update
As v1.3.37 was a jokey release, the changelog didn't actually cover the legitimate features that had been added in the time since v1.0.0. Here they are now:
- A button to check for updates was added to the Project screen.
- In v1.4.0, the update check will no longer block the UI until it is finished, and error messages are more descriptive.
- A setting to specify line endings was added. If you're experiencing trouble with other tools, this may be the culprit.
- A tool in the Tile Editor was added to find unused minitiles in a given tileset.
Also, something has changed if you play all 16 games of Gnat Attack in a row..!
Other fresh goodies
- A door's destination will now be shown on the map when it is selected.
- There is now a small viewport in the Trigger-mode sidebar when a door is selected that shows its destination on the map.
- The player character preview in Game mode will now use sprites from
playable_char_gfx_table.ymland will respond to the environment and triggers. - The player character preview's collision in Game mode is now more accurate to the actual game.
- NPCs and the player character preview will sink into water and show a ripple sprite as they do in the actual game.
- Alt+right click on the map to copy coordinates. By default, the coordinates' scale will adapt to the current mode and the format will be (x, y). Both of these properties may be customised in the settings.
- Error reporting for missing sprites has been improved.
- Added a context menu when right-clicking entries in the "Recent projects" list to open in your file browser, copy the path, or remove from the list.
- The Tile Editor's tileset display is now 6 tiles tall, just as Tile mode's tileset display in the Map Editor is 6 tiles wide.
- Buttons have been added to flip a tile's arrangement and collision along both the horizontal and vertical axis.
- The Debug Output and png2fts dialogs' outputs now use a monospace font and their scrollbars will stick to the end as new data is received.
- A button to render an image the size of the screen has been added to Game mode's sidebar.
- Buttons have been added to the Tile Editor to open the currently-selected subpalette in the Palette Editor, on either the primary or comparison side.
- It's now possible to undo edits to the project metadata.
- A tool has been added to the Tile Editor that allows all instances of a given minitile in a tileset to be replaced or swapped with another.
- Tiles in the Tile Editor's tileset display can now be dragged and dropped to swap their positions in the order, just like minitiles.
- The icon for Gnat Attack has been changed to match the other icons throughout the program, and to fix an issue on some devices where it would not appear.
- There's now a setting to swap the behaviour of left and right clicks in Sector mode.
Fixed
- The internal order of palettes may be made invalid after adding a new palette, causing various issues (untracked)
- Enemy tiles may suddenly be unable to be placed on some areas of the map (untracked)
- Additional line breaks would appear in the Debug Output dialog (untracked)
- The PSI Teleport destination name input does not respect the 25-character limit imposed by CoilSnake and the game itself (untracked)
- Setting a door's destination interactively would clear the current selection when confirming the location (untracked)
- A couple of tooltips had inaccurate information (untracked)
- The sprite palette input in the palette settings editing area only accepted numbers up to 5, not 8 (untracked)
All changes: 1.3.37...1.4.0