Edit · Build · Run

Crusty Studio is a desktop IDE for crustyBASIC, the BASIC cross-compiler for vintage computers and consoles. Source editor, project files, compiler, assembler, emulator and a set of pixel-and-sound workshops in one window — so a change from code to running game takes a keystroke instead of a chain of terminal commands.

Version 0.4.0, packaged 2026-10-18 from 226e70c.

Download

This page always serves the newest release, currently 0.4.0. Earlier releases stay in the downloads archive.

PlatformFileSizeStatus
macOS · Apple Silicon CrustyStudio-macos-arm64.dmg 4.3 MB Available
macOS · Apple Silicon archive CrustyStudio-macos-arm64.zip 4.0 MB Available
macOS · Intel CrustyStudio-macos-x86_64.dmg 4.6 MB Available
macOS · Intel archive CrustyStudio-macos-x86_64.zip 4.3 MB Available
Windows · x64 CrustyStudio-windows-x64-setup.exe 3.1 MB Available
Linux · x86_64 CrustyStudio-linux-x86_64.AppImage 86.8 MB Available
Linux · Debian/Ubuntu CrustyStudio-linux-x86_64.deb 4.2 MB Available
Demo projects CrustyStudio-demos.zip 593 KB Available

Every release includes SHA256SUMS.txt. Check a download with shasum -a 256 -c SHA256SUMS.txt.

Both macOS downloads require macOS 12.3 or later. Take the Apple Silicon build on an M-series Mac and the Intel build on an Intel one. The Intel build also runs on an M-series Mac under Rosetta 2; the Apple Silicon build cannot run on an Intel Mac.

Installing

macOS

  1. Open the .dmg, or expand the .zip.
  2. Drag Crusty Studio onto the Applications shortcut.
  3. Eject the disk image.

These builds are signed but not notarised, so macOS warns the first time. Right-click the app and choose Open, or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/CrustyStudio.app

Windows

  1. Run the -setup.exe you downloaded.
  2. SmartScreen warns that the publisher is unknown: choose More info, then Run anyway.
  3. Launch Crusty Studio from the Start menu.

The installer fetches the WebView2 runtime if Windows does not already have it.

Linux

  1. Make the AppImage executable.
  2. Run it. There is nothing to install, and no system packages to add.
  3. On Debian or Ubuntu you can install the .deb instead.
chmod +x CrustyStudio-*.AppImage
./CrustyStudio-*.AppImage

Getting VASM

crustyBASIC compiles your program and hands the assembly to VASM, which turns it into the file the emulator runs. Crusty Studio drives both and bundles neither, so VASM has to be on your machine before the first build — download the build for your computer below. Tools → Settings → Toolchain tells you whether it has been found.

macOS

One file, for both Apple silicon and Intel Macs.

Download VASM

macOS quarantines what it downloads. If it refuses to run, clear the flag:

xattr -d com.apple.quarantine ~/Downloads/vasm6502_oldstyle_macos-universal

Windows

64-bit Windows. This is the archive the VASM author publishes, unchanged.

Download VASM

It keeps the name it arrives with, vasm6502_oldstyle_windows-x64.exe, and Crusty Studio finds it under that name or under vasm6502_oldstyle.exe.

Linux

x86-64, statically linked, so it runs on any distribution.

Download VASM

chmod +x vasm6502_oldstyle_linux-x86_64

Assembling for the Z80 machines

VASM is one executable per CPU. The downloads above are the 6502 build, which covers the Commodore, Atari, Apple II and NES families. The Spectrum, ZX81, Amstrad CPC, MSX, ColecoVision, Game Boy and the other Z80, 8080 and Game Boy targets need the Z80 build:

Download Z80 for macOS Windows Linux

Put it in the same folder as the 6502 build, under the name it arrives with (vasmz80_oldstyle_linux-x86_64, vasmz80_oldstyle_macos-universal or vasmz80_oldstyle_windows-x64.exe) or renamed to vasmz80_oldstyle (vasmz80_oldstyle.exe on Windows) — Crusty Studio resolves either. Point the VASM folder setting at that folder rather than at one of the files, and Crusty Studio picks the build each target names from what is in it.

Assembling for the Color Computer

The TRS-80 Color Computer is a 6809 machine, so it needs a third build. There is no Windows download for this one: the author publishes no Win64 archive for the 6809 build, and this site only redistributes the Windows archives he publishes.

Download 6809 for macOS Linux

It goes in the same folder as the other two, under the name it arrives with (vasm6809_oldstyle_linux-x86_64 or vasm6809_oldstyle_macos-universal) or renamed to vasm6809_oldstyle. On Windows, build it from the source archive with make CPU=6809 SYNTAX=oldstyle under MSYS2 or Cygwin. A Color Computer build that cannot find it stops and names the missing assembler, and the Color Computer is the only 6809 target, so nothing else needs it. A Color Computer build is a .ccc cartridge, which both MAME and XRoar start on their own.

Then, on any platform

  1. Put them together in one folder. A folder of your own is fine; so is tools/assemblers/vasm/<platform>/ inside the crustyBASIC folder, whose folder names are windows-x86_64, linux-x86_64, macos-aarch64 and macos-x86_64 — the macOS download serves both of those last two. Nothing has to be renamed: the suffixes the downloads carry are the platform each file was built for, and Crusty Studio reads them.
  2. In Crusty Studio, choose Tools → Settings → Toolchain, set VASM folder to the folder holding the CPU builds, then Check installation. The check lists the builds it found and names the ones the folder is missing, so a folder holding only the 6502 build says so before you try to build for the Spectrum.

To confirm the version yourself, run it with no arguments — the first line begins vasm 2., and the current release reads vasm 2.0f. An older assembler is refused, because crustyBASIC emits assembly that needs a recent one.

About these builds

VASM is copyright © 2002–2026 Volker Barthelmann. It is redistributed here with his permission: each binary is compiled from the unmodified official source, and the manual and the source archive are included alongside them. Nothing in the source is patched or configured; the macOS and Linux builds are simply make CPU=6502 SYNTAX=oldstyle and make CPU=z80 SYNTAX=oldstyle. The Windows binaries are the archives the author publishes, redistributed unmodified.

README.txt lists every file, the source archive's SHA-256, and the exact commands used. LICENSE is the author's own. The manual is also online as HTML, and the author's own pages carry the release binaries: sun.hasenbraten.de/vasm and compilers.de/vasm.html.

Getting NASM

VASM covers the 6502, 68k and Z80 families. crustyBASIC's x86 targets — dos16, h120, pcjr, tandy1000, linux64 and win64 — hand their assembly to NASM instead, so install it only if you build for one of those systems.

  1. Install NASM 2.x: brew install nasm on macOS, sudo apt install nasm on Debian and Ubuntu, or the installer from nasm.us on Windows.
  2. Put nasm (nasm.exe on Windows) in tools/assemblers/nasm/<platform>/ inside the crustyBASIC folder, or point the NASM assembler field in Tools → Settings → Toolchain straight at it.

nasm -v prints NASM version 2.16.01 compiled on …. The other targets build with VASM alone, so a missing NASM does not stop a C64, NES or Atari build.

Quick start

  1. Install the toolchain. Crusty Studio drives tools you install yourself: crustyBASIC, VASM vasm6502_oldstyle 2.x (download it above), NASM for the x86 targets, and an emulator for your machine — VICE for the Commodore machines, Mesen, FCEUX, ares or BizHawk for the NES.
  2. Point the studio at them. Open Tools → Settings → Toolchain, choose the compiler and assemblers, and add the folder holding your emulators. Check installation confirms what it can find.
  3. Open or create a project. Project → New creates a project folder with src/main.cbs, folders for each asset type, and a .crusty manifest. The demo projects from the download above are good starting points.
  4. Write, build, run. Press Build and run and the studio saves the source, calls crustyBASIC with VASM, reports what the compiler said, and launches the artifact in the emulator.
@OPTION TARGET c64

PROC MAIN
    CLS
    POSITION 0, 0
    PRINT "HELLO, C64!"
ENDPROC

What is in it

Editor

crustyBASIC syntax, completion for procedures, constants and directives, signature help, snippets, multi-line block comments, a live checker and compiler diagnostics, with go-to-definition and find-usages across the project's include graph.

Search

Find text across every file in the project. Results are listed one row per matching line, with a single click to jump to the file and line.

Tabs that keep up

Unsaved changes and files changed on disk outside the studio are marked separately, with a reload action ready when something else has been editing your files.

Build and run

Per-target build options, compiler output and problems panels, and target-aware emulator launching.

Workshops

C64, NES and Apple II sprites, C64 charsets, C64 and NES tile maps, sound effects for SID and the NES APU, a portable four-lane music tracker, and a SID music tracker.

Guides inside the app

A studio guide and one each for the tile workshop, charset editor, music workshop and SID music, all under Help.

Supported targets

Machines

  • Commodore 64, 128, Plus/4, VIC-20, MEGA65
  • Atari 8-bit, 5200, 2600, 7800
  • Apple II
  • TRS-80 Color Computer
  • Nintendo Entertainment System, Super Nintendo
  • MS-DOS 16-bit, Windows x64

Not included

Crusty Studio does not bundle crustyBASIC, VASM, NASM, emulators or any ROMs. VASM can be downloaded above and NASM installed for the x86 targets; the rest you install yourself and point the studio at. .prg, .crt and cartridge images come from your own build.

Guides

Installing

Installing on each platform, and the macOS first-launch warning.

Studio guide

The workspace, projects, building, running and every workshop, in one document.

Tile workshop

C64 and NES tile maps, metatiles, CHR ranges and the attribute grid.

Charset editor

Standard and multicolour character sets, and exporting an include.

Music workshop

The portable four-lane tracker, its imports, and what the exported player carries.

SID music

Composing for the SID, with the technical notes alongside.

Licence

Crusty Studio is not open source. The applications published here are provided for use with crustyBASIC; the source code is not published and no rights to it are granted. crustyBASIC itself is a separate project under its own terms.

Reporting a problem works best with the version you downloaded, your operating system, the target you were building for, and the contents of the Output panel if a build was involved.