The Dungeon Editor provides a Workbench-first workspace for editing Zelda 3 dungeon rooms. The default flow keeps room navigation, the canvas, selection inspection, and local edit tools in one stable window so common edits do not require chasing separate floating panels.
Related Documentation:
The editor uses a three-layer architecture:
| Layer | Components | Responsibility |
|---|---|---|
| UI | DungeonEditorV2 | Panels, canvas, menus, toolbar |
| Backend | DungeonEditorSystem | State management, undo/redo, persistence |
| Data | Room Model | Buffers, objects, palettes, blocksets |
Changes to tiles, palettes, or objects invalidate only the affected room's cache.
./scripts/yaze zelda3.sfcThe right inspector has three primary modes:
| Mode | Purpose |
|---|---|
| Room | Current room summary, room actions, header fields, apply scope, layer/compositing controls |
| Selection | Focused object/entity properties, copy/delete/clear actions, and entity-specific tools |
| Tools | Workbench-local edit tools embedded as primary inspector content |
The Tools mode includes Object Selector, Door tools, Sprite tools, Item tools, Palette, Room Graphics, Room Tags, Custom Collision, Water Fill, and Minecart tools. Choose the active tool from one grouped menu; the tool fills the remaining inspector height. Use Room or Selection to return to metadata, or Pop out to move the active tool into its traditional floating window. Standalone tool entries remain available in the Window Browser/sidebar while Workbench mode is active. If a tool is already floating, opening it from the Workbench focuses that window instead of drawing the same tool twice.
The Object Selector renders room-context thumbnails by default when room graphics are available. The compact cards preserve each object's aspect ratio, show its hexadecimal ID in a stable footer, and put the full name and diagnostic detail in the hover tooltip. Search and the two primary filters stay visible; thumbnail, card-size, reset, and custom-object actions live under More. Entries that cannot render a tile layout fall back to a typed symbol.
| Panel | Purpose |
|---|---|
| Dungeon Workbench | Default single-window dungeon editing surface |
| Room List / Room Matrix | Navigation/review surfaces; also available inside the Workbench flow |
| Entrances List | Navigate between overworld entrances and rooms |
| Object Tile Editor | Standalone 8x8 tile composition editor for object asset authoring |
| Window Browser | Manage standalone windows when using Window workflow |
Workbench-local edit tools can run inside the Tools inspector or in standalone windows. Switch to Window workflow from the sidebar when you want the older navigation-first panel layout.
| Action | Control |
|---|---|
| Select object | Left-click |
| Add to selection | Shift + Left-click |
| Move object | Drag handles |
| Pan canvas | Hold Space + drag |
| Zoom | Mouse wheel or trackpad pinch |
| Context menu | Right-click |
| Cycle overlapping selections | Alt + click |
Enable Object Labels from the toolbar to display layer-colored labels.
To record a rendering problem, right-click the canvas and open the room or selection issue report. The report stays local until you choose Save to Issue Log. Its form scrolls independently on small windows, while save, copy, screenshot, and close actions remain available in the footer. File paths and raw renderer diagnostics are collapsed by default so they do not crowd the normal reporting flow. Screenshot capture keeps the action buttons in place. Long status messages stay on one line; hover over the status to read the full message, including any error details.
When a project assembles standard dungeon object patterns from a separate data file, the editor can preview those tile words while keeping the base ROM as the edit target. Add the source path to the project's existing [files] section:
Paths resolve relative to the project. Room Graphics shows the source, the number of tile words, and any load error. After changing the file, choose Reload Pattern Source to refresh room objects, layouts, and thumbnails. Each open project and background room scan retains its own source context. The preview works independently of the custom .bin object feature flag.
This reader accepts comments, labels, lorom, literal org $00xxxx addresses, and literal dw $xxxx, ... lists in the bank-00 object-data range. It rejects includes, expressions, conditionals, instructions, and overlapping declarations. It does not execute ASM or replace draw routines. Door routines and other special renderers that read literal ROM addresses directly are outside this preview path.
ROM Save and Save As retain the ROM's original pattern bytes. Object Tile Editor refuses ROM composition writes that overlap source-owned patterns; edit the source file instead. Ordinary room placement and graphics-sheet editing retain their existing save paths. To test the source changes in-game, build the game normally and use its assembled ROM in the emulator.
z3ed dungeon-render --project-context=/path/to/project.yaze uses the same preview. Without a configured source, rendering continues to use ROM patterns.
0xF0 0xFF marker), then palettes, torches, pits, blocks, chests, pot items, and dirty entrance/spawn-point metadata. No need to save from the Dungeon Editor separately for ROM file writes.Cmd/Ctrl+Z and Cmd/Ctrl+Shift+ZFile > Options > Experiment Flags| Issue | Solution |
|---|---|
| Objects on wrong layer | Check BG toggles in the Workbench toolbar and the layer field in Selection or Inspector → Tools |
| Palette not saving | Open Inspector → Tools → Palette and ensure the palette edit is applied before switching rooms |
| Door alignment issues | Use clickable door-pair badges or Inspector → Tools → Doors to verify linked room IDs |
| Sluggish performance | Prefer Workbench mode and close unused standalone room windows |