RetroC64 1.0.2

Prefix Reserved
dotnet add package RetroC64 --version 1.0.2
                    
NuGet\Install-Package RetroC64 -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RetroC64" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RetroC64" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="RetroC64" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RetroC64 --version 1.0.2
                    
#r "nuget: RetroC64, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RetroC64@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RetroC64&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=RetroC64&version=1.0.2
                    
Install as a Cake Tool

RetroC64 ci NuGet

<img align="right" width="160px" height="160px" src="https://raw.githubusercontent.com/RetroC64/RetroC64/main/img/RetroC64.png">

The RetroC64 SDK brings genuine Commodore 64 development directly into your C# and .NET workflow. Build, assemble, and run real 6510 programs without leaving your IDE - no external toolchain required!

โœจ Features

  • ๐Ÿš€ Zero-friction dev loop - Emit PRG/D64 and auto-launch live coding into VICE straight from .NET.
  • ๐Ÿงฑ Fluent 6510 assembler with Asm6502 - Labels, sections, data blocks, helpers, and source mapping back to C#.
  • ๐Ÿงช BASIC integration - Ideal for quick demos and prototyping.
  • โš™๏ธ Core helpers - C64Assembler with Zero-Page allocator, raster IRQ setup, memory, and CPU/NMI utilities from RetroC64.Core assembly.
  • ๐ŸŽจ Sprite pipeline with SkiaSharp - Draw in Skia and convert to C64 sprite bytes automatically.
  • ๐ŸŽต SID tooling - Loader, relocator, and player (target address and ZP ranges).
  • ๐Ÿ’พ Disk and program formats - D64 and PRG support.
  • ๐Ÿ”Œ Cross-platform - Targets net9.0+.
  • ๐Ÿž First-class VS Code debugging
    • Attach to debugger: Connect to RetroC64 debugger running on port 6503 (default)
    • Register access: Full read-write access to CPU registers, CPU flags, stack, and zero page addresses
    • Hardware registers: Access to VIC and SID registers
    • Breakpoints: Set code breakpoints and data breakpoints (watchpoints)
    • Execution control: Step-in, step-over, step-out, pause, and continue
    • Memory inspection: View RAM contents
    • Code analysis: View disassembly Debugger Example

๐Ÿ“ฆ Install

Make sure you have the .NET SDK 9.0 or higher installed.

Then, you simply need to add the RetroC64 NuGet to your .NET project:

dotnet add package RetroC64

๐Ÿš€ Quick Start

Create this simple Program.cs:

using Asm6502;
using RetroC64;
using RetroC64.App;
using static RetroC64.C64Registers;

// A program is a command line app that builds and runs a 6510 assembly program.
return await C64AppBuilder.Run<HelloAsm>(args);

/// <summary>
/// A simple assembler program that changes the background and border colors.
/// </summary>
public class HelloAsm : C64AppAsmProgram
{
    protected override Mos6502Label Build(C64AppBuildContext context, C64Assembler asm)
    {
        asm.Label(out var start)
            .BeginCodeSection("Main")
            .LDA_Imm(COLOR_RED)
            .STA(VIC2_BG_COLOR0)
            .LDA_Imm(COLOR_GREEN)
            .STA(VIC2_BORDER_COLOR)
            .InfiniteLoop()
            .EndCodeSection();
        return start;
    }
}

Run: dotnet watch -- run with launch VICE and allow live coding. It will display the following screen:

HelloAsm Example

See the emulator setup section in the user guide.

๐Ÿงช Examples

Go to the Examples repository for more examples.

๐Ÿ“– User Guide

For more details on how to use RetroC64, please visit the user guide.

๐Ÿชช License

This software is released under the BSD-2-Clause license.

๐Ÿค— Author

Alexandre Mutel aka xoofx.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 274 11/13/2025
1.0.1 260 11/13/2025
1.0.0 259 11/12/2025