Jump to content

VICE

From C64 Wiki


VICE (Versatile Commodore Emulator) is a Commodore 8-bit emulator collection that includes configurations for the Commodore 64 and Commodore 128.[1][2] In this article it is considered as an environment for using applications, configuring controlled tests, and developing software on a later host computer, rather than as a claim of perfect hardware equivalence.[2][3] When this candidate was sourced, the official site listed the stable release as VICE 3.10, released on 24 December 2025.[1] That dated stable release is distinct from later development snapshots: the official Git mirror identifies itself as a mirror of the project’s Subversion repository and separately links snapshot builds of the latest code.[4]

Project scope and configured execution

[edit | edit source]

VICE’s project documentation describes machine-specific emulators and their settings, and the project site identifies SourceForge as a public source-repository service.[2][1] Its GitHub presence is therefore best described as the official Git mirror, not as a second authoring project or a second independent technical root.[4][1] A result obtained in VICE should be bounded by the named release or build, selected emulator and machine model, relevant resource settings, host operating context, and the supplied system and media files.[1][3]

The dependency on system files is material to this boundary. The manual states that each emulator needs a system-ROM set; for C128 use it lists Kernal, BASIC-plus-Editor, and character-generator files, while hardware-level disk-drive emulation can require drive ROMs.[5] This describes a configuration prerequisite, not permission to distribute ROMs, firmware, applications, or media images.[5][1] VICE 3.10 release notes also record changes to device-related names, the monitor, and filesystem-device behavior, so a configuration report should not convert a version-specific observation into a timeless feature claim.[6]

C128 context

[edit | edit source]

The original C128 has C128, C64, and CP/M operating modes; the historical system guide associates CP/M mode with the onboard Z80 and with 40- or 80-column output.[7] VICE documents its C128 emulator, x128, as providing internal-MMU emulation, an 80-column VDC screen, fast IEC, a 2 MHz mode, Z80 emulation, and C64-emulation features.[2] Those documented facilities support a configured C128 application and test environment, but they do not establish that every result is identical to original hardware.[2][7]

A C64Sets guide provides an independently authored practical example with an important date limit. Version 2.0 of that guide, dated 31 March 2024, says it was written and checked with VICE 3.7 and describes an x128 CP/M procedure using a boot disk on device 8 and an 80-column display choice.[8] It is evidence of that VICE 3.7, 2024 workflow only; it does not demonstrate that every step, image, menu, or outcome remained unchanged in VICE 3.10.[8][1] A useful C128 test record consequently names the selected mode, display path, ROM set, release, media, and drive configuration instead of reporting only that it ran under VICE.[7][5][3]

Media, host filesystems, and sessions

[edit | edit source]

VICE distinguishes host files from emulated media. Its manual documents attachable D64, G64, and P64 disk images and T64 and TAP tape images; it describes T64 support as limited and recommends TAP for actual tape emulation.[9] Attachment state, image identity, write protection, and selected drive behavior are therefore part of a test condition rather than incidental details.[9][3]

The manual describes filesystem-device settings for Commodore device numbers 8 through 11, while an independent C64 OS guide shows a host directory configured as a VICE filesystem device for transfer into an emulated environment.[3][10] A host-directory mapping is useful for application work and development, but it changes the available inputs and should be recorded with the device number and any image attached to the same test.[3][10] The invocation documentation also specifies disk-image attachments and read-only or read-write choices for devices 8 through 11, allowing a test report to identify media state without embedding the media file.[11]

A snapshot saves complete emulator state and may restore saved memory configuration, which makes it useful for suspending or returning to a defined emulator session.[12] VICE warns that module-version compatibility proved difficult to maintain and explicitly says snapshots should not be used for permanent or long-term storage.[12] Event histories can retain interaction from an initial snapshot, yet the manual says playback can differ because of the snapshot or settings and that snapshots may not be fully accurate even with recommended settings.[13] Repeatable testing therefore requires a pinned build, configuration, lawful ROM and media identifiers or hashes, host mappings, and read/write state; a snapshot or event history alone is neither a preservation object nor a universal reproducibility guarantee.[5][12][13]

Drive behavior and development workflow

[edit | edit source]

VICE describes true-drive emulation as slower hardware-level drive emulation for maximum compatibility, and it warns that an incorrect synchronization value can break operation or corrupt disk images.[3] It also distinguishes true-drive settings from filesystem-device use, while the C64 OS guide separately demonstrates a virtual image drive and a host-filesystem device.[3][10] Autostart can temporarily alter true-drive behavior under a stated setting, and VICE warns that this path is not completely safe in every case.[9] A successful load is thus evidence about its declared configuration, not a universal statement about every disk, drive, host, or original peripheral.[9][3]

VICE includes a monitor that can examine, disassemble, and assemble machine-language programs and debug through breakpoints.[14] Its documented checkpoint types include tracepoints and watchpoints, and its state facilities include register inspection and instruction stepping.[14] Independent Codebase64 guidance corroborates the monitor’s use for breakpoints, stepping, and labels in an iterative development workflow.[15]

VICE also documents a binary remote monitor over a dedicated connection, and the 3.10 notes describe a new binary remote protocol and filesystem-device monitor actions.[16][6] An earlier Codebase64 article demonstrates the general idea of a persistent remote-monitor development session driven from a shell, Makefile, or IDE, but it explicitly concerns an earlier SVN-build context rather than VICE 3.10.[17] Monitor inspection and intervention should be distinguished in test notes, because loading data, changing a register, or changing a drive setting alters the session being examined.[14][3]

Limits and preservation boundary

[edit | edit source]

VICE describes an aim of cycle accuracy while cautioning that the C128 and several other emulators should not be expected to be as good as the C64 or VIC20.[2] This qualification, together with the drive, event-history, snapshot, and version limits above, makes VICE valuable for bounded application use, debugging, and comparative testing but not proof of perfect compatibility, physical authenticity, or universal hardware behavior.[2][3][12][13]

VICE is not a physical-media repair system or a preservation repository. The project directs original disk and tape transfer questions to separate tools such as OpenCBM and explains that a normal PC 5¼-inch drive cannot read C64 disks without suitable controller capability.[18] Disk, tape, cartridge, ROM, and snapshot files need separate provenance, rights, and preservation decisions, and this article makes no claim about their legal availability or archival status.[5][12][18]

See also

[edit | edit source]

References

[edit | edit source]
  1. ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 “VICE – the Versatile Commodore Emulator”. VICE Team. “What is VICE?”. Accessed 2026-09-22.
  2. ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 “VICE Manual: About VICE”. VICE Team. Introduction and §1.1.3, “C128 emulator features”. Accessed 2026-09-22.
  3. ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 “VICE Manual: Settings and resources”. VICE Team. §6.11, “Drive settings”, and §6.12, “File system devices”. Accessed 2026-09-22.
  4. ↑ 4.0 4.1 “VICE GitHub Mirror”. VICE-Team. README, “VICE GitHub Mirror” and “Download VICE”. Accessed 2026-09-22.
  5. ↑ 5.0 5.1 5.2 5.3 5.4 “VICE Manual: System files”. VICE Team. §3, “System files”, and §3.1, “ROM files”. Accessed 2026-09-22.
  6. ↑ 6.0 6.1 “VICE Release Notes”. VICE Team. “Changes in Vice 3.10” → “general”, “Monitor”, and “vdrive”. Accessed 2026-09-22.
  7. ↑ 7.0 7.1 7.2 “Commodore 128 System Guide: Section 2”. Commodore Business Machines; hosted by Commodore.ca. §§2.1.1–2.1.3, “C128 Mode”, “C64 Mode”, and “CP/M Mode”. Accessed 2026-09-22.
  8. ↑ 8.0 8.1 “How to Use CP/M on the Commodore 128 VICE Emulator”. C64Sets(2024-03-31). “Tools Used” and “Booting Up CP/M On The Commodore 128”. Accessed 2026-09-22.
  9. ↑ 9.0 9.1 9.2 9.3 “VICE Manual: Basic operation”. VICE Team. §4.5, “Using disk and tape images”. Accessed 2026-09-22.
  10. ↑ 10.0 10.1 10.2 “C64 OS User’s Guide: Advanced VICE Configuration for CMD HD”. C64 OS / OpCoders. “Setup Storage Devices” and “Set up drive 9 as a VICE FS device”. Accessed 2026-09-22.
  11. ↑ “VICE Manual: Invoking the emulators”. VICE Team. §2.1, device 8–11 attachment and read-only/read-write options. Accessed 2026-09-22.
  12. ↑ 12.0 12.1 12.2 12.3 12.4 “VICE Manual: Snapshots”. VICE Team. §9 and §9.1, “Snapshot usage”. Accessed 2026-09-22.
  13. ↑ 13.0 13.1 13.2 “VICE Manual: Event history”. VICE Team. §§11.1 and 11.7, “Recommended Settings” and “Limitations and Suggestions”. Accessed 2026-09-22.
  14. ↑ 14.0 14.1 14.2 “VICE Manual: Monitor”. VICE Team. §§12–12.4, “Monitor”, “Terminology”, and “Machine state commands”. Accessed 2026-09-22.
  15. ↑ “Using the VICE monitor”. Codebase64(2018-02-27). “Breakpoints and stepping” and “Import labels into the monitor”. Accessed 2026-09-22.
  16. ↑ “VICE Manual: Binary monitor”. VICE Team. §13, “Binary monitor”. Accessed 2026-09-22.
  17. ↑ “Using a running VICE session for development”. Codebase64(2016-07-01). Introduction, “Setting up VICE”, and “Setting up the client side”. Accessed 2026-09-22.
  18. ↑ 18.0 18.1 “VICE Manual: Contact information”. VICE Team. §20.2, “How to send feedback”. Accessed 2026-09-22.

Automation and sourcing note

[edit | edit source]

This private candidate is original, citation-led prose about a version-scoped application, testing, and development environment. It republishes no manual prose, quotation, command block, source code, binary, ROM, firmware, disk, tape, cartridge, snapshot, image, screenshot, scan, database export, or media file; cited material remains citation-only evidence. It was not published and earns zero benchmark coverage credit unless a separate gatekeeper later authorizes a create-only release and verifies live content.