Uttori AssemblyThe asset editing guide covers saved Aseprite/PNG export, review, application and interrupted-edit recovery. Multiple target assembly, disassembly, ROM analysis, and debugging in VS Code. Currently supports SNES and 65xx (NES, 6502-likes). For native object/library/link commands and opt-in Build/Run/Debug manifests, see the linked build guide. Existing absolute Asar projects keep their current workflow. Requirements & InstallationUse the latest stable VS Code release. The current extension API floor is 1.145.0; acceptance targets latest stable as it advances. The extension uses VS Code's bundled runtime. No separate Node.js installation is required. Live debugging needs a separately installed, manifest-matched emulator. Install Uttori Assembly ( Quick Start
This example demonstrates assembly. It is not a bootable game. For NES / 6502 projects, configure the 65xx plugin and target in Features
Run Assembly Source: Create Git Source Project (or Create Git Source Project from Diz Research). Home shows a Next action and an ordered Update Source from Evidence flow:
If imported evidence identities are missing from the tracked catalog, Next first offers Refresh Capture Catalog. This records their identities without reimporting captures or regenerating source. Build Current Source is separate: save your edits and build whenever you want to run or debug. It requires no Git commit and does not incorporate new evidence. If an input changes during a build, the error names the affected files, offers Save All and Rebuild, and links to Uttori Analysis output for details. Unchanged save notifications and unrelated evidence/output files do not reject a build. Home → Health shows the original ROM bytes still consumed from raw blocks and their percentage, using a compact summary from the last successful build, alongside index readiness and error counts. It counts only included slices, including repeated or relocated slices once; retaining a whole raw block file does not make the whole block unconverted. Instructions, typed data, headers and converted assets account for the remaining bytes. Added ROM capacity does not change the original-ROM denominator. Build Current Source updates the summary. Home checks saved input hashes in the background and marks source or asset drafts as stale; unavailable verification is labeled explicitly. Older builds need one rebuild to record totals. Runtime annotations, Sources, and the command-palette Explain Analysis Evidence action remain independent of build conversion progress. Assembly and assets are ordinary editable files. F2 updates supported symbol uses and their tracked research identity. Edit Symbol Research and Edit Analysis Research open normal JSON documents with native undo, save and Git diffs. Hover a PNG For F5, set Home → Capture exposes Start Capture, Stop Capture, and Stop Capture and Import Evidence while a debug session exists or a recording is active. Launch either an ares golden-ROM or Git source debug session, choose the recording file, then Continue (F5) to record execution. Stop finalizes the archive and offers import; Stop and Import also imports it into the selected source project. Recording and finalization state stays visible, including recordings started from the command palette. The Home title also has Record/Stop buttons during an ares debug session. Import Captures accepts multiple ACT2 or JSON archives. Files import sequentially, with the filename and queue position in the notification and Uttori Analysis Output log. Merge updates include provisional record counts, percentage, rate and estimated remaining time. Quiet source operations show the worker PID, elapsed time and age of the last progress update every ten seconds; this indicates a pending worker, while record counts show measurable progress. Output also records completion, failure, archive hashes and import totals. Failure or cancellation stops the queue and preserves completed imports; retrying the queue is safe. Instruction imports decode, validate and index each new archive once. A completed index survives
an interrupted database merge in The default import budget is 32 GiB per archive. Git source imports apply
ACT2 archives and their complete context directories are temporary inputs, with deletion under your control. After successful import, project operations use persisted facts, bounded graphics reports and provenance hashes, so you can remove the originals. The catalog does not promise that an archive still exists. Capture replay and state restore operate only on temporary files you explicitly select while they are available; they are independent of the imported project evidence. Indexed PNG and palette custom editors share VS Code's save/undo/recovery lifecycle. Preview can include unsaved supported text and binary edits. Apply requires a clean checkout; the existing commit suffices, and generated changes are reviewed and staged before Finish commits them. Apply appears after preview when the checkout is clean, and is retired when the merge starts. Finish becomes available once conflicts are resolved and changes staged. Finish clears the completed candidate, including stale selections restored from editor state. After reloading with a pending candidate, preview again before applying; a missing private preview produces a recovery instruction instead of a filesystem error. Editor InformationSource overlays and hover show compact information from a matching build map. Instruction documentation is unchanged. The default compact preset shows file/CPU locations and available execution observations. Authoring adds emitted bytes and resolved operands without requiring a disassembly project; disassembly adds the available resolved operand to the compact hover. Run Assembly: Choose Editor Information Preset, Configure Inline Fields, or Inspect Line Information. The eye button beside Build Binary toggles inline information independently of hover and removes a replaced legacy visibility setting at the same scope. The Inline status bar item reports whether information is off, loading, displayed, or unavailable. Click it or run Assembly: Show Inline Source Information Status for exact source/dependency hash or size mismatches, missing maps, unsaved files, and provider errors. Detailed state, memory, evidence, and CFG records are available in the inspector, with bounded previews and pages. Configure the project in
Available fields are Missing fields remove the whole part/row and its separator. An empty parts/rows array displays nothing. Overlays use Rebuild once to add resolved operand metadata to an older debug map. Values come from the encoder's numeric evaluations; ambiguous/multiple operands use Source BreakpointsClick beside a line number or press F9 in Uttori SNES or Uttori 65xx source. Launch with the matching binary and debug map to verify the marker. Comments and labels move to the next mapped executable line. Unmapped locations remain unverified. For supported SNES cartridge mappings, a source breakpoint covers every confirmed ROM alias, so code mapped at Configuration & LimitsUse Built-in assembly works in Restricted Mode. Workspace plugins execute code and require Workspace Trust. Analysis edits and live emulator launch require a trusted local filesystem workspace. Virtual workspaces are unsupported. Remote native-emulator workflows have not been validated. Replay is a snapshot viewer, not an emulator. Ares capabilities depend on its separately verified runtime. For Git source builds, regeneration, imports and analysis queries, check Output → Uttori Analysis. It is available as soon as the extension activates and opens automatically when a source command fails. Standalone assembly builds and language-server diagnostics use Uttori Assembly Language Server; emulator operations use Uttori Emulator. Rebuild stale debug maps or regenerate stale source before retrying navigation/debugging. Document formatting is unsupported in v1.0.0. Documentation & SupportReport an issue. Licensed under MIT. Prepare Migration to Linked Sources prepares an explicitly linked disassembly candidate without changing the working source. Preview and adopt it through Source Project, then ordinary regeneration retains linked mode. See Disassembly Migration. |