A pluggable assembler, ROM-analysis toolkit, and VS Code extension for SNES and 6502-family CPUs. Build binaries, inspect evidence, regenerate source, and verify byte-identical ROM rebuilds.
- Node.js 26 or newer for npm packages, standalone tools, and development.
- VS Code 1.145.0 or newer for the extension. It uses the editor's embedded runtime.
- Live debugging requires a separately installed, manifest-matched ares runtime.
Support starts at the versions currently declared in the package manifests and moves forward. Earlier Node/editor releases and earlier development project formats are outside the support baseline. See the release gates and the ares sidecar runtime setup for validation requirements and platform limits.
npm install --save-dev @uttori/asm-cliCreate main.asm:
lorom
org $008000
seiThen build it:
npx uttori-asm main.asm main.sfc --debugThis writes a one-byte assembly example and its debug map. It is not a bootable game. The CLI defaults to SNES. Use project configuration for other targets. Packages expose compiled ESM and TypeScript declarations. No TypeScript loader is required.
For editor setup, see the VS Code extension.
| Package | Purpose |
|---|---|
| asm-cli | Assembly, evidence, Git source and saved asset workflows |
| asm-workflows | Shared source and asset operations for Node hosts |
| asm-capture | ACT2 archive contracts, readers, recovery and target payloads |
| asm-assets | Standalone PNG, WAVE, data, and native conversion |
| asm-core | Assembly engine, analysis, and plugin contracts |
| asm-disassembler | SQLite projects, evidence, transactions, and declarations |
| asm-plugin-loader-node | Project configuration and trusted plugin loading |
| asm-plugin-snes | SNES, 65816, SPC700, and Super FX |
| asm-plugin-65xx | 6502-family, raw, ca65-style, and NES targets |
| asm-debug-adapter | Debugger contracts, DAP, replay, and sidecar protocol |
| asm-debug-sidecar-ares | ares process host and debugger translator |
The language server, VS Code extension, and plugin example, and Secret of Mana integration are private npm workspaces. The extension is distributed separately as a VSIX/Marketplace extension.
CLI guide · SNES · 6502 / 65xx family · Plugin authoring · Project configuration · Analysis projects.
Analysis projects store metadata in SQLite and keep the source ROM external. Analysis is conservative. Unknown bytes remain raw assets. Asar/ca65 compatibility is partial. Emulator binaries and ROMs are not included. See the relevant package guide for exact limits.
npm ci
npm run verifySee CONTRIBUTING.md for source development and checks.
Follow SECURITY.md for vulnerability reports.
Licensed under MIT, with 65xx third-party notices.