YACE64 Logo

The Commodore 64 Emulator with the extra dimension

Home Introduction Features Screenshots Download Links Help About
Commodore 64

YACE 64 Application

Start the emulator from your startmenu after installation.

Settings Settings


ROM Files

You will need ROM files for the C64 and for the 1541 Floppy Diskdrive.
These are the recommended versions:



The files will be checked after configuration. Other ROM versions may work, but are not tested - so please use the recommended versions for your first tests.
The ROM files can also be configured and downloaded automatically. When commiting, that you are a legal owner of ROMs, the files are searched in the internet, then downloaded and configured automatically.

Diskimages and Programs



Changes the emulated version for the US (NTSC) and European (PAL) C64 version. The internal timings are changed with this setting - you will not see the resolution changes, because the border is cropped.


At the top border the toolbars are displayed. The toolbars are grouped together and can be switched on and off with the "View" menu items.

The bottom border shows the state of the two disk drives, the speed indicator and the server state.

The "View" menu also provides items to hide and show the tracer, debugger and virtual keyboard.


The PC keyboard can be used directly for the input, when the monitor view has the focus (click within the monitor view).

The keys are mapped to their image and not to their position on the original C64 keyboard.

ESC = Stop
Ctrl = Ctrl
Right Alt = C=

The mapping can be changed by selecting a file within the setting window or the file can be edit manually.

Hotkeys for controlling the emulator can be found here.


It is possible to use real joystick devices (e.g. connected via USB) or the keyboards number block. The joystick must be direct-input compatible.


The 1351 mouse is emulated with the analog mode, if setting is selected moving the PC mouse over the monitor view will send the data to the C64.

REU (RAM Expansion Unit)

The Commodore 1750/1764 is emulated with the selected size. Use the REU for especially for GEOS.

Stereoscopic and 3D

Interlace Emulation


The SID can be configured and played with a MIDI device. Use the Settings dialog to configure the MIDI channels and select a MIDI port (device) in the toolbar.

 Function  MIDI Message
 OSC Select  Bank select (0,1 ,2)
 Per OSC (over Channel or Bank select)
 Attack  CC73
 Decay  CC75
 Sustain  CC11
 Release  CC72
 Pulsewidth  CC76
 Filter On/Off  CC80
 Sync On/Off  CC81
 Ring On/Off  CC82
 Waveform  ProgramChange
 Filter cutoff  CC74
 Filter Type  CC70
 Filter resonance  CC71
 OSC3 Off  CC83
 Volume  CC7
 Note On/Off  9/8


A MC6850 based MIDI Cartridge can be emulated for sending and receiving. You need windows drivers for your MIDI hardware interface or your Software MIDI devices. This way you can use C64 MIDI tracker/sequencer with your MIDI devices.

In the setting you can choose which kind of cartridge should be emulated (Sequential Circuits, Passport, Datel, C-Lab, Namesoft, ...).

There are serveral MIDI programs, you can find on C64MIDI.
A special sequencer from WERSI can be found at EMUecke.


The debugger is depending of the currently selected system (C64, 1541-8, 1541-9):

The debugger will automatically disassemble, when the emulator is pause. Manual disassemble is possible when entering the address into the address field.

Reaching a breakpointer the debugger may switch to the system that causes the breakpoint.

Within the debugger breakpoints can be set and cleared. The CPU registers and flags are updated on every pause, single step or reaching a breakpoint. Changed values are marked green.

VIC debugger

To start debugging check the "Trace VIC" control. This lets the CPU stop at the end of the last CPU cycle of a frame.
You can then step to the next frame with the "Continue" button or step one CPU command forward.

The VIC debugger lets you set breakpoints for individual rasterlines by checking the checkbox at the start of each line. Use left mouse button to select a rasterline and a cycle. Use the right mouse button to toggle a marker.

When the debugger reaches the end of the frame, the data and a screenshot will automtically saved into your "Documents/YACE" folder under the name VIC.bmp and VIC.csv.

You can open the VIC.csv file with a program like excel. The columns are separated with semicolons.

Each cells contain the following informations:

See the complete list here:

 M+  Videomode changed (0..7)
 MX  CPU Memory configuration changed
 X+/-  CPU Ready set/cleared
 B+/-  Badline condition set/cleared
 V+/-  Verticalborder Flipflop set/cleared
H+/-  Horizontalborder Flipflop set/cleared
 R>  Rasterline IRQ set/released
 R+  Rasterline IRQ position set
 D+/-  Display enable/disable (setting the register)
 S&  Baseaddress of screen-memory changed
 B&  Baseaddress of bitmap-memory changed
 C&  Baseaddress of char-memory changed
 G$  G-access (access to bitmaps graphics)
 C$  C-access (access to color memory)
 c$  C-idle-access
 RC0  Rowcounter reset
 S>  Sprite/Sprite collision IRQ set/released
 B>  Sprite/Background collision IRQ set/released
 @P  Sprite P-access (Access the sprite data pointer)
 @S  Sprite S-access
 @+/-  Sprite DMA on/off


The Trace show all traces depending on the configured trace levels for the systems.

The levels can be configured separat for each system (C64, 1541-8, 1541-9). Each system has their own categories (e.g. CPU, SID, VIC, DiskDriveMechanics, VIA, CIA, ...). Each category can be set to one of the following levels:

Changing the levels can have a dramatically performance impact!

The traces are also written to the disc into the configured directory.

The trace levels can be changed at anytime (e.g. in paused mode).

Virtual Keyboard


The TCP port for the server must be configured. The default is 8080. Please make sure. that your firewall doesn't block the port.

If you want to access YACE64 from the internet, you need to ad a port-forwarding to your router.

The server can be configured to automatically pause the emulator, if no one is connected. The emulator will then continue running at the first connected client and pause when the last client disconnected.

The viewing experience depends on the slowest client, so all users nearly have the same condition.

TCP Options

The "TCP no delay" turns of the Nagle algorithm. This forces every sending data emidiently and reduces delay on the client side, but increases bandwidth, because TCP packets will not be filled optimal. Only turn on this option, if you don't have to care about the data rate and have problems with the delay.

The "TCP send buffer size" option lets you choose the buffer for sending over TCP (set to 0 for default of normally 8192 bytes). Riase the value when the clients framerate isn't smooth enough, because of changing network conditions. Reduce the size for lower delay.


Here is an example on how to configure your windows firewall:

Open the Windows firewall with extened security and select "New Rule":

Select "Port" at the Rule Type:

Select TCP and add the port you configured in YACE64:

Grant access:

Select in which profiles the rule should be active:

Give the rule a name and a description, then you are ready:


The application can be startet with the following parameters:

YACE 64 can be started multiple times with different parameters, so you can have multiple servers. Each server must be startet with its own TCP port.

YACE64 Server

Start the server from the command prompt. Use the following settings for configuration or change the YACEServer.exe.ini file with the default settings.

You can start multiple server an different ports. Make sure to open the used TCP ports for incoming connection at your firewall (see above) and configuring your router (port forwarding), if you want to access your C64 from the internet.

The server application can also use the configuration file create by the YACE64 for Windows application. You can find the file normaly in c:\Users\<your account>\AppData\Roaming\YACE\Config.ini (the AppData directory is normally hidden). Just copy and rename this file (to YACEServer.exe.ini) into the same folder of the YACEServer.exe, then the default parameters are taken from there.


-h  Shows the commandline parameter
-8   Activate1541 drive 8 at startup
 -9  Activate1541 drive 9 at startup
 -ntsc  Use NTSC timing (PAL is default)
 -w  Open a preview window of the C64 screen
 -ap  Activate autopause, emulator will enter pause-mode, if no client is connected
 -rb <Path>  Basic-ROM path and filename
 -rk <Path>  Basic-ROM path and filename
 -rc <Path>  Character-ROM path and filename
 -r1541c <Path>  1541 $C000 ROM path and filename
 -r1541e <Path>  $E000-ROM path and filename
 -a <adapter>  Network adapter for incoming connections (IP address) or for any adapter
 -p <port>  TCP port (default is 8080)
 -c <code>  Password for client access