DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
VGSources
6502

How to Create Your C64 Assembly Environment on Windows with VS Code

Build a repeatable C64 assembly workflow on Windows using VS Code, the VS64 extension, ACME and VICE, with tested verification steps and troubleshooting paths.

By VGSources Team 7 min read
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The most practical Windows setup for new Commodore 64 assembly projects is VS Code + VS64 + ACME + VICE. VS Code edits files and runs tasks, VS64 adds C64 project and debugging integration, ACME turns assembly source into a C64 program, and VICE runs that program in an emulated C64.

This walkthrough targets current 64-bit Windows 10 and 11. Installer screens, extension commands and generated files can change, so use the linked project documentation when a label differs.

Understand what each component does

VS Code is the editor and orchestration layer, not an assembler. Microsoft describes it as a lightweight editor that gains specialized capabilities through extensions and external tools.

Component Role
VS Code Editor, terminal, workspace, tasks and launch controls
VS64 C64 project, build, task and debug integration for VS Code
ACME Assembler used for the main beginner walkthrough
VICE C64 emulator and, through VS64 integration, a debugging target
Git Optional version control
Java Required only if you choose KickAssembler

The pipeline is:

main.asm → assembler → C64 program file → VICE

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
The C64 Mini USA Version
  • High definition output at 720p via HDMI
  • Pixel Perfect display, with US/Europe display modes and crt filter options
  • Save game function. Supports software updates via USB flash drive
  • 2 USB ports: plug in a USB keyboard and use as a fully functional home computer, or add a second joystick for 2-player games
  • Included: The C64 Mini computer, Classic USB joystick, HDMI cable, USB cable for power, 64 preinstalled games, instruction manual. *AC USB adaptor not included

Choose a toolchain before you start

ACME: the default for this tutorial

ACME is a focused assembler supported by VS64 and does not require Java. It keeps the first build-and-run loop small.

KickAssembler: a capable alternative

KickAssembler offers extensive macros and directives, but it is distributed as a Java-based JAR. Its documented invocation is:

java -jar kickass.jar --showmem myCode.asm

Use KickAssembler when you already want its syntax and feature set; do not paste ACME directives into a KickAssembler source file.

CC65: for C and assembly projects

CC65 includes a C compiler, macro assembler, linker, libraries and other 6502 tools, with the C64 selected using -t c64. A basic C example is:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
cc65 -O -t c64 hello.c

CC65 introduces object files, startup code, target libraries and linker configuration. For debugging, its documentation covers assembler debug information and linker labels:

ld65 -o hello -t c64 -Ln hello.lbl -m hello.map hello.o c64.lib

That command illustrates the options, not a complete standalone assembly recipe. Keep ACME, KickAssembler and CC65 source and linker models separate.

Rank #2
THEC64 Mini - Black Edition
  • A glorious half-size recreation of the iconic C64 in a striking black finish
  • 25 of the highest rated new games, including; Sam’s Journey, A Pig Quest, Steel Ranger and Knight ‘n’ Grail
  • High Definition output at 720p 50 or 60Hz
  • Play in original 4:3 or pixel perfect aspect ratios, with or without CRT filters
  • Save your progress in one of four save-game slots per game, and return at any time

Install VS Code on Windows

Download the current Windows build from Visual Studio Code. The download page lists Windows 10 and 11 64-bit for the current build.

Which installer should you use?

  • User Setup: the normal choice for one Windows account. It usually needs no administrator approval, installs in your user profile and normally adds the code command to PATH.
  • System Setup: appropriate when an administrator manages a shared machine or multiple users need one installation under Program Files.
  • ZIP: useful for a portable or permission-restricted setup. It does not auto-update; portable mode requires a data folder inside the extracted VS Code directory.

Follow Microsoft’s Windows setup guide, accepting the option to add VS Code to PATH if the installer presents it. Open a new PowerShell window and verify:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
code --version

Any printed version is sufficient; VS Code releases update frequently.

Open the project from a terminal

mkdir C:c64
cd C:c64
mkdir c64-hello
cd c64-hello
code .

The code . command is documented in the VS Code command-line guide. If it is not recognized, close and reopen the terminal, verify the installation, or use File → Open Folder.

Install and configure VS64

  1. Open the Extensions view in VS Code.
  2. Search for VS64.
  3. Check the publisher and repository, then select Install.
  4. Reload VS Code if requested.
  5. Open the VS64 welcome or project-setup interface and select the ACME toolkit.

VS64 supports ACME, KickAssembler, LLVM-MOS, CC65, Oscar64 and BASIC-related workflows. Its per-workspace configuration is primarily held in project-config.json. Consult the VS64 repository for the current settings names and project wizard labels.

Install ACME

  1. Download ACME from its official project distribution.
  2. Extract it to a stable directory such as C:Toolsc64acme.
  3. In VS Code settings, find the VS64 ACME installation-directory setting.
  4. Point that setting to the directory that actually contains the ACME executable, not to the ZIP file or an extra nested folder.
  5. Run a VS64 build and inspect the terminal output.

The exact executable name and archive layout depend on the ACME package. A “file not found,” “cannot start process” or “toolkit not configured” message is a tool-path problem, not an assembly-language diagnosis.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Commodore - C64 - Capital Letter Blue/Red & Commodore T-Shirt
  • Vintage Computer design. Commodore - C64 - Uppercase Letter & Commodore - Lettering Blue/Red
  • Commodore C64 Uppercase Letter & Commodore Blue / Red
  • Lightweight, Classic fit, Double-needle sleeve and bottom hem

Install VICE

  1. Download VICE from its official project site: vice-emu.sourceforge.io.
  2. Install or extract it to a stable location such as C:Toolsc64vice.
  3. Locate the C64 emulator executable, commonly x64sc.exe.
  4. Set VS64’s VICE executable setting to that actual file.
  5. Launch the executable directly once. It should open without a missing-DLL or blocked-application error.

VS64 recommends VICE 3.7 or later for its stable binary monitor interface; this is a VS64 recommendation, not a universal VICE requirement. Test a normal run before attempting debugger integration.

Create a project that stays understandable

A simple layout keeps generated files away from hand-written source:

c64-hello/
├─ src/
│  └─ main.asm
├─ build/
├─ assets/
├─ README.md
└─ project-config.json
  • src contains assembly source.
  • build contains generated programs, symbols and maps; do not hand-edit generated build files.
  • assets is for graphics, music and binary data.
  • project-config.json describes the selected toolkit, target, sources and optional flags.

VS64’s build system is based on Ninja. Treat generated Ninja files as implementation details rather than project files to maintain manually.

Write and assemble a first visible test

Create srcmain.asm. The following sample is explicitly ACME syntax and writes a value to the C64 border-color register:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
!to "build/main.prg", cbm

* = $0801
!byte $0b, $08, $0a, $00, $9e, $32, $30, $36, $31, $00, $00, $00

* = $0810
        lda #$02
        sta $d020
        rts

The first bytes provide a tiny BASIC launcher for the machine-code routine at $0810. The visible test is deliberately modest: it proves that source syntax, assembly, PRG generation and emulator execution are connected. A KickAssembler or CC65 file would require different directives and build settings.

Build and run in VICE

  1. Use the current VS64 build command or build control supplied by the extension.
  2. Confirm the terminal reports a successful assembler invocation and that a program appears in the configured build directory.
  3. Use VS64’s launch integration, or open the generated .prg directly in VICE.
  4. Verify that the C64 border changes color.

Always trust the output path printed in the terminal rather than guessing where the PRG was written. If VICE opens but the border is unchanged, check that it loaded this output file, that the load address and target are correct, and that the program did not immediately return to BASIC or have its effect overwritten.

Add debugging only after run mode works

VS64 can connect its launch and debug integration to VICE. Its documented default binary-monitor port is 6502 and its documented timeout is 10 seconds; those are VS64 settings, not general VICE requirements.

  1. Start with the VS64 VICE debugger configuration.
  2. Set a breakpoint on an instruction such as sta $d020.
  3. Start debugging, then step through instructions.
  4. Inspect registers and memory in the debug views.
  5. For CC65 projects, generate the debug information and label/map files your build requires. The CC65 debugging documentation describes the assembler -g option and linker -Ln labels.

A debugger connection can fail even when assembly succeeds: VICE may be the wrong executable or version, the monitor port may be occupied, a firewall may block local communication, or the build may contain no usable symbols.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When another environment is a better fit

Choose CC65 for mixed-language development

Use CC65 when C code, runtime libraries and a linker-managed project are central to your plan. Accept the additional configuration before adding graphics or game logic.

Choose KickAssembler for its assembly language

Choose KickAssembler when Java is already available and its macros and directives outweigh the extra installation step. Keep its JAR path and Java executable configured separately in VS64.

Choose C64 Studio for an all-in-one Windows IDE

C64 Studio is a Windows-focused alternative with ACME-syntax assembly, BASIC support, VICE debugging and graphical/media editors. It suits readers who prefer a specialized C64 interface over VS Code’s extensible editor and terminal.

Troubleshoot by symptom

code is not recognized

Reopen the terminal, then check:

where.exe code
$env:Path

An older terminal session, ZIP installation, different Windows account or missing PATH entry is usually responsible. Opening the folder through VS Code’s menu is a valid fallback.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sale
8Bitdo Retro Mechanical Keyboard for Windows & Android, C64 Edition
  • Inspired by the classics. Compatible with Windows 10(1903) or above, and Android 9.0 or above.
  • Programmable keys, Dual Super Buttons, and Super Stick, with independent control panel.
  • 87 keys. Top mount style with Kailh Box White Switches.
  • Double-Shot ABS keycaps with SA profile. (C64 Edition only)
  • Hot-swappable PCB. Support n-key rollover.

VS64 cannot find ACME

  • Confirm the archive was extracted.
  • Confirm the configured directory contains the executable.
  • Remove an accidental extra directory level in the path.
  • Confirm ACME is the selected toolkit.
  • Use a simple path such as C:Toolsc64acme while diagnosing permissions or unusual characters.

VS64 cannot find VICE

Launch the configured executable directly, verify that it is the C64 emulator (often x64sc.exe), and check whether Windows Security or antivirus quarantined a file.

The build succeeds but no program runs

Inspect the terminal’s actual output path. Then check for an old output file, a wrong target or load address, VICE starting without autoloading, an immediate return to BASIC, or a visual effect that is quickly overwritten.

VICE starts but the debugger cannot connect

Confirm the VICE executable and version, ensure VS64—not a separate manual launch—is supplying the monitor settings, check whether port 6502 is already in use, and test firewall rules. CC65 builds also need the appropriate symbols or label files.

A copied example reports syntax errors

Identify the assembler named above the code block. ACME, KickAssembler and CC65 assembler directives are not interchangeable; changing the selected toolkit or rewriting the source is required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Expand the environment deliberately

Once the border-color test builds, runs and debugs, add one capability at a time: graphics and music assets, custom VS Code tasks, C integration, real-hardware transfer or deeper VICE monitor work. Keeping one known-good ACME project gives you a controlled test whenever a new tool or configuration is introduced.

Quick Recap

Bestseller No. 1
The C64 Mini USA Version
The C64 Mini USA Version
High definition output at 720p via HDMI; Pixel Perfect display, with US/Europe display modes and crt filter options
$75.97
Bestseller No. 2
THEC64 Mini - Black Edition
THEC64 Mini - Black Edition
A glorious half-size recreation of the iconic C64 in a striking black finish; High Definition output at 720p 50 or 60Hz
$65.98
SaleBestseller No. 3
Commodore - C64 - Capital Letter Blue/Red & Commodore T-Shirt
Commodore - C64 - Capital Letter Blue/Red & Commodore T-Shirt
Commodore C64 Uppercase Letter & Commodore Blue / Red; Lightweight, Classic fit, Double-needle sleeve and bottom hem
$16.99
SaleBestseller No. 5
8Bitdo Retro Mechanical Keyboard for Windows & Android, C64 Edition
8Bitdo Retro Mechanical Keyboard for Windows & Android, C64 Edition
Programmable keys, Dual Super Buttons, and Super Stick, with independent control panel.; 87 keys. Top mount style with Kailh Box White Switches.
$101.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from Patch Notes

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.