Skip to content

Overview of host apps

The emulator runs in several host apps. Some run natively on the desktop; some run entirely in the browser via WebAssembly (no install, just open the URL). Avalonia does both — the Avalonia Browser and Desktop apps share almost all code, including the UI, so they are documented together as one app with two runtimes.

App Runtime UI / rendering Audio Use case
Avalonia Browser + Desktop Avalonia UI (Skia-based) NAudio (OpenAL on desktop, WebAudio interop in the browser). C64 sample-based (default) and command-stream providers. Default app; most features (scripting, debugger, remote control on desktop; URL automation in the browser).
Blazor WebAssembly Browser Blazor WebAssembly + Highbyte.DotNet6502.Impl.Skia (SkiaSharp on canvas) Highbyte.DotNet6502.Impl.AspNet (WebAudio JS interop). C64 command-stream provider only. SkiaSharp-rendered browser alternative.
SadConsole Desktop SadConsole (terminal/ASCII engine) NAudio + OpenAL. Console-style retro UI.
SilkNetNative Desktop Silk.NET + ImGui + OpenGL/SkiaSharp NAudio + OpenAL. OpenGL/shader rendering paths, incl. a custom GPU-packet C64 renderer.
Terminal (TUI) Desktop / CLI Terminal.Gui v2 — renders the emulated text-mode screen as colored Unicode cells in a real terminal (works over SSH, in tmux). none Interactive emulator inside a real terminal. C64, VIC-20, Apple II Plus, and Oric Atmos (text mode); no audio.
Console Monitor Desktop Plain .NET console none Stand-alone 6502 machine code monitor; no system emulation UI.
Headless Desktop / CLI none none Automation, scripting, CI workflows. Driven entirely by CLI args and Lua.

Avalonia: one app, two runtimes

The Avalonia Browser and Desktop apps share the same emulator core and almost all UI code, so the same UI is validated on both targets. Their feature documentation is shared on the per-system pages for C64, VIC-20, Apple II Plus, Oric Atmos, and Generic, with the few Browser-vs-Desktop differences called out inline. The Blazor app predates the Avalonia browser target and remains as the SkiaSharp-rendered alternative.

Installation

Pre-built binaries for the desktop apps are available via Homebrew, Scoop, or manual download. See Installation (covers Avalonia Desktop, Terminal (TUI), and Headless). The browser apps need no install — just open the live version.

For automation and scripting features available across these apps, see Tools.

Platform support

See per-app troubleshooting pages for platform-specific notes:

Limitations specific to browser runtimes

  • Lua TCP client (tcp global) is unavailable — System.Net.Sockets.TcpClient is not supported in WebAssembly.
  • Lua filesystem access (file / emu.load) is sandboxed; the key/value store falls back to localStorage.
  • No CLI arguments, no VS Code debug adapter, no remote control endpoint — those are desktop-only features. The Avalonia Browser app does support URL query parameters for automated startup and script injection; see Avalonia Browser app.

For general project limitations, see Limitations.