RetroC64 1.0.2
Prefix Reserveddotnet add package RetroC64 --version 1.0.2
NuGet\Install-Package RetroC64 -Version 1.0.2
<PackageReference Include="RetroC64" Version="1.0.2" />
<PackageVersion Include="RetroC64" Version="1.0.2" />
<PackageReference Include="RetroC64" />
paket add RetroC64 --version 1.0.2
#r "nuget: RetroC64, 1.0.2"
#:package RetroC64@1.0.2
#addin nuget:?package=RetroC64&version=1.0.2
#tool nuget:?package=RetroC64&version=1.0.2
RetroC64

<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.Coreassembly. - ๐จ 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
๐ฆ Install
Make sure you have the .NET SDK 9.0 or higher installed.
Then, you simply need to add the RetroC64 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:
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 | Versions 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. |
-
net9.0
- Lunet.Extensions.Logging.SpectreConsole (>= 1.2.0)
- Microsoft.Extensions.Caching.Memory (>= 9.0.10)
- Microsoft.Extensions.DependencyInjection (>= 9.0.10)
- Microsoft.VisualStudio.Shared.VSCodeDebugProtocol (>= 18.0.10427.1)
- RetroC64.Core (>= 1.0.2)
- RetroC64.Vice (>= 1.0.2)
- System.IO.Hashing (>= 9.0.10)
- XenoAtom.CommandLine (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.