Releases: Supremekirb/EBME
EBME 1.4.1
This bugfix update fixes a critical issue on Windows where the map editor will begin to behave strangely when a project is loaded or saved several times. A small issue with swapping Sector mode mouse buttons on some systems was also addressed.
All changes: 1.4.0...1.4.1
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
EBME 1.3.37
This version of EBME adds a lot of bugs.
New
- Bugs
- Interactive bug-squasher
Fixed
- Lack of bugs
All changes: 1.0.0...1.3.37
EBME 1.0.0
This major release of EBME adds the Tile Editor and Palette Editor, collision mode, foreground graphics, and more. The major version bump to 1.X.X indicates that EBME can now replace EBProjEd in regular hacking entirely!
New
Tile Editor
The Tile Editor allows you to edit the graphics that make up the map. Mostly similar to the old interface, but with some changes:
- All subpalettes are displayed at once
- Collision is now based off a user-specified preset system, instead of typing 16 bytes of raw hex for each tile
- Minitiles can be dragged and dropped to rearrange their order in the tileset
- Tools for managing foreground graphics and rendering images of the tileset and minitiles
Palette Editor
While you can edit palettes in the Tile Editor, the Palette Editor exists for more advanced changes. It can do things like this:
- Compare and copy between two subpalettes
- Add, remove, and edit event palettes
- Add and remove palettes
- Import and export palettes as ".ebpal" files (same format as palettes in .fts files)
- Tools for seeing what any tileset looks like with any palette and rendering images of the palette
Other Fresh Goodies
- EBME is now "licensed" under the Unlicense.
- You can view png2fts's license when using that tool too
- Foreground graphics that display in front of NPCs same as it works in the real game (can be disabled)
- Collision Mode, with the ability to edit collision for tiles by painting it directly on the map
- The preview character in game mode can get stuck on solid collision when "Obey collision" is checked
- NPCs and the preview character will obey foreground collision flags
- Triggers that aren't placed over collision that supports them will have a warning in the sidebar and a button to fix it
- Tile scratch space, a window where you can place tiles for future reference, and shift+click to select them in the map or tile editors.
- Please let me know what you think of it and how you use it! It was a requested feature so I want to make sure I got the implementation right.
- Significant performance improvements. Expect at least halved loading times and much faster scrolling around the map!
- Binaries for Linux are now available both on release and for every commit
- The preview NPC in Game Mode animates as the mouse moves
- Improved error messages for failed project loads
- You can right-click a colour button/display to copy its hexadecimal colour code
- Undo/redo for the entire program is global (meaning the map music editor's changes can be undone even after closing it)
- There is also a bar along the bottom of the program which displays the undo stack's current contents (can be disabled)
- NPCs stack based on their Y value, same as in-game
- Added a Help menu item to begin writing a new issue on GitHub
- Increased the default size of the window
- Wayland users get a desktop entry created automatically (otherwise the program's icon will not display)
- Added some icons
- Bumped to Python 3.12.7
- Made png2fts a submodule in the repository
Fixed
- After a failed project load, a "program is saving" warning is displayed when trying to close EBME (untracked)
- Double-right-click does not select contiguous sectors in Tile Mode (untracked)
- Can't Ctrl-right-click to select multiple sectors in Tile Mode (untracked)
- Files containing characters from other languages may not open due to encoding errors (untracked)
- Some possible settings bugs on Linux (untracked)
- A failed tile render on the map editor's rendering pass causes the entire pass to stop (untracked)
- Now, tiles that failed to be rendered will show a warning symbol in their place. If this happens, check the debug output
- Projects with an unknown CoilSnake version ID don't load (even though they should, just with a message) (untracked)
- Hotspots resize strangely when resizing from the left or top (untracked)
- Possible memory leak when loading lots and lots of projects (untracked)
- Enemy tile colours on the map potentially don't change when a new project is loaded (untracked)
All changes: 0.2.1...1.0.0
EBME 0.2.1
This version of EBME adds a new menu to edit map music, makes a bunch of tweaks to the interface and controls, and fixes a few bugs.
New
- Map music editor
- Paste NPCs and triggers at the mouse
- There is an option to disable this behaviour
- Deselect with ESC or Ctrl+D
- This also cancels operations such as setting a door's destination
- Flag input fields use a checkbox for inversion
- Scroll horizontally by holding Alt
- Option to zoom with the mouse wheel without holding Ctrl
- With this enabled, Ctrl+scroll will scroll the map instead
- Selected sectors have an animated yellow tint that fades in and out
- The selected tile in the sidebar will have a yellow tint
- Click and drag to select multiple sectors
- Find and goto dialogues remember the last type used
- Using "Edit CCS" on an address displays a hint about decompiling the script
Fixed
- Possible to select less than 1 sector (untracked)
- Comments on warps do not save (untracked)
- Sector attribute changes cannot be undone after importing a png2fts map (untracked)
- Trigger destination icon uses a wrong shade of white (untracked)
- Goto for enemy tiles does not work (untracked)
All changes: 0.2.0...0.2.1
EBME 0.2.0
This version of EBME adds a new mode to edit warps and PSI teleports, a few miscellaneous features, and several bug fixes.
Some compatibility issues with EBProjEd are also addressed.
New
- "Warp & TP" mode
- Unique grids per mode (eg. Trigger mode has an 8x8 grid)
- Tools for clearing the map (including tiles, sectors, NPCs, triggers, and enemy tiles)
- Hotspots can be summoned to the mouse with right click -> "Move hotspot here..."
- This functionality also exists for warps and teleports
- Enemy tiles can have custom colours
- Holding Ctrl and scrolling zooms in anchored at the mouse cursor
Fixed
- Projects that have not been opened in EBProjEd at least once cannot be loaded. (#1)
- Hotspot colour values saved as tuples cause incompatibility with EBProjEd (untracked). They are now saved as hex colour codes.
- Projects with colours saved as tuples will be automatically upgraded. Please save the project again in the new version.
map_tiles.mapexpects a newline at the end of the file (untracked)- NPC table cannot be loaded if the project was created in CoilSnake development versions >4.2 (untracked)
- Context menus don't open on some systems (untracked)
- Grid cannot be disabled once enabled on some systems (untracked)
- No sector is loaded at initialisation, but the data fields can still be edited (untracked)
All changes: 0.1.0...0.2.0
EBME 0.1.0
The initial public release of EBME. Thank you for waiting all this time!