Limitations¶
Important
This is mainly a programming exercise that may or may not turn into something more.
General¶
- Correct emulation of all aspects of computers such as the Commodore 64 is not likely.
- Not the fastest emulator.
- The SonarCloud coverage metric currently measures only the core
Highbyte.DotNet6502library; other libraries have tests but are not included in that metric.
6502 accuracy limits¶
- Official 6502 opcodes and all undocumented NMOS opcode bytes are implemented. Compatibility profiles control which undocumented opcodes are enabled; the C64's default profile excludes
LASandJAM. Some chip-dependent behaviours remain approximate, includingANE/LXAresults and the bus activity of a jammed CPU. See C64 accuracy and limitations.
Missing or incomplete C64 features¶
- Fully chip-accurate VIC-II rendering: the C64 emulation is cycle-exact and the default renderer draws graphics pixel by pixel, but sprite collision interrupt timing and some sprite gap cases still differ. The optional legacy pixel generator has additional mid-line limitations. See C64 accuracy and limitations.
- Full 1541 disk drive support — only basic directory listing and file
LOADare supported (see C64 disk drive support). - Tape drive support.
- Fully chip-accurate SID audio. The default sample-based provider reproduces most tunes well (all four waveforms incl. combined, ADSR, hard sync, ring mod, TEST hold, OSC3/ENV3 readback, and a generic resonant low-pass/band-pass/high-pass filter). The legacy command-stream provider is still available as a low-CPU fallback but will sound noticeably wrong on most music. See C64 audio.
- Advanced apps, games, and demos may still show VIC-II differences. Render providers also support different feature sets: the rasterizer handles character modes, bitmap modes, and sprites, while simpler providers may not. See Compatible programs for the renderers used by tested titles.
Per-app limitations¶
- Avalonia Desktop — platform compatibility varies; see Avalonia Desktop app troubleshooting.
- Avalonia Browser — Lua TCP client and filesystem APIs are not available (browser sandbox). The Lua key/value store falls back to
localStorage. - SilkNetNative — requires a GPU with OpenGL drivers. ARM64 (Linux / Windows) is not currently supported. See SilkNetNative troubleshooting.
- SadConsole — ARM64 (Linux / Windows) is not currently supported. See SadConsole troubleshooting.
- Headless — no interactive display or audio (by design). The
screenshotremote-control command works when the current system provides frame layers; otherwise it returns "Screenshot not available".