Go to the first, previous, next, last section, table of contents.

# 8 Platform-specific features

This section lists the settings and commands that are platform specificm, ie which control the behaviour and appearance of the host user interface.

## 8.1 Common features

### 8.1.1 Common command line options

`-windowxpos <xpos>`
  Set initial horizontal window position. (`Window0Xpos`).
`-windowypos <ypos>`
  Set initial vertical window position. (`Window0Ypos`).
`-windowxpos1 <xpos>`
  Set initial horizontal window position for the second window (C128). (`Window1Xpos`).
`-windowypos1 <ypos>`
  Set initial vertical window position for the second window (C128). (`Window1Ypos`).
`-windowwidth <width>`
  Set initial window width. (`Window0Width`).
`-windowheight <height>`
  Set initial window height. (`Window0Height`).
`-windowwidth1 <width>`
  Set initial window width for the second window (C128), (`Window1Width`).
`-windowheight1 <height>`
  Set initial window height for the second window (C128), (`Window1Height`).
`-saveres`
`+saveres`
  Enable/disable automatic saving of settings on exit (`SaveResourcesOnExit=1`, `SaveResourcesOnExit=0`).
`-confirmonexit`
  Confirm quitting VICE (`ConfirmOnExit=1`).
`+confirmonexit`
  Never confirm quitting VICE (`ConfirmOnExit=0`).
`-kbdstatusbar`
`+kbdstatusbar`
  Enable/Disable keyboard-status bar (when status bar is enabled) (`KbdStatusbar=1`, `KbdStatusbar=0`).
`-minimized`
`+minimized`
  Start/Do not start with minimized window (`StartMinimized=1`, `StartMinimized=0`).
`-jamaction <Type>`
  Specify the action to take when the CPU encounters a 'JAM' opcode (`JAMAction`) (0: Show dialog, 1: Continue emulation, 2: Start monitor, 3: Reset, 4: Power cycle, 5: Quit emulator).
`-directory <Path>`
  Specify the system file search path (`Directory`).

### 8.1.2 Common resources

`Window0Xpos`
`Window0Ypos`
  Integers specifying the position of the (first) emulator window (all emulators except vsid).
`Window1Xpos`
`Window1Ypos`
  Integers specifying the position of the (second) emulator window (all emulators except vsid).
`Window0Width`
`Window0Height`
  Integers specifying the size of the (first) emulator window (all emulators except vsid).
`Window1Width`
`Window1Height`
  Integers specifying the size of the (second) emulator window (all emulators except vsid).
`DoCoreDump`
  Boolean specifying whether the emulator should dump core when it gets a signal (all emulators except vsid).
`LogFileName`
  String specifying the filename of the current log file.
`LogLimit`
  Integer specifying the "verbosity" of the log output. Higher numbers mean more verbosity (0: no log, 255: all messages)
`LogToFile`
  Boolean that specifies whether the log should go to the log file.
`LogToStdout`
  Boolean that specifies whether the log should go stdout (usually the launching terminal).
`LogToMonitor`
  Boolean that specifies whether the log should go to the monitor console.
`LogColorize`
  Boolean that specifies whether the log in the terminal should be colorized.
`ExitScreenshotName`
  String specifying the filename of a screenshot file that will be written when the emulator exits.
`ExitScreenshotName1`
  String specifying the filename of a screenshot file that will be written when the emulator exits. (x128)
`SaveResourcesOnExit`
  Boolean specifying whether the emulator should save changed settings before exiting. If this is enabled, the user will be always prompted first, in case the settings have changed.
`ConfirmOnExit`
  Boolean specifying whether to show a confirmation dialog on exit.
`KbdStatusbar`
  Boolean specifying whether the keyboard-status bar is enabled.
`StartMinimized`
  Boolean specifying whether the emulator should start minimized
`JAMAction`
  Integer specifying the action to take when the CPU encounters a 'JAM' opcode. (0: Show dialog, 1: Continue emulation, 2: Start monitor, 3: Reset, 4: Power cycle, 5: Quit emulator)
`Directory`
  String specifying the search path for system files. It is defined as a sequence of directory names, separated by colons (``:'`), just like the `PATH` variable in the shell. The special string ``$$'` stands for the default search path.

## 8.2 SDL-specific features

This section lists the settings and commands that are common and specific to SDL, and are thus not present in other platforms.

### 8.2.1 SDL specific resources

`HotkeyFile`
  String specifying the name of the hotkey file (all emulators except vsid).
`MenuKey`
  Integer specifying the keycode for activating the SDL menu.
`MenuKeyUp`
  Integer specifying the keycode for 'up' in the SDL menu.
`MenuKeyDown`
  Integer specifying the keycode for 'down' in the SDL menu.
`MenuKeyLeft`
  Integer specifying the keycode for 'left' in the SDL menu.
`MenuKeyRight`
  Integer specifying the keycode for 'right' in the SDL menu.
`MenuKeyPageUp`
  Integer specifying the keycode for 'page up' in the SDL menu.
`MenuKeyPageDown`
  Integer specifying the keycode for 'page down' in the SDL menu.
`MenuKeyHome`
  Integer specifying the keycode for 'home' in the SDL menu.
`MenuKeyEnd`
  Integer specifying the keycode for 'end' in the SDL menu.
`MenuKeySelect`
  Integer specifying the keycode for 'select' in the SDL menu.
`MenuKeyCancel`
  Integer specifying the keycode for 'cancel' in the SDL menu.
`MenuKeyExit`
  Integer specifying the keycode for 'exit' in the SDL menu.
`MenuKeyMap`
  Integer specifying the keycode for 'map' in the SDL menu.
`SDLBitdepth`
  Integer specifying the bitdepth used. (0: current, 8, 15, 16, 24, 32)
`SDLLimitMode`
  Integer specifying the resolution limit mode. (0: off, 1: max, 2: fixed)
`SDL2Backend`
  String specifying the preferred SDL2 backend. (See startup log for available backends, valid ones might be eg: software, opengl, direct3d, direct3d11, opengles2)
`CrtcFullscreenMode`
  Integer specifying the fullscreen mode (xcbm2 and xpet only). (0: use desktop resolution, 1: switch to `CrtcFullscreenCustomWidth`, `CrtcFullscreenCustomHeight`)
`CrtcFullscreenCustomWidth`
  Integer specifying the custom fullscreen resolution width.
`CrtcFullscreenCustomHeight`
  Integer specifying the custom fullscreen resolution height.
`TEDFullscreenMode`
  Integer specifying the fullscreen mode (xplus4 only). (0: use desktop resolution, 1: switch to `TEDFullscreenCustomWidth`, `TEDFullscreenCustomHeight`)
`TEDFullscreenCustomWidth`
  Integer specifying the custom fullscreen resolution width.
`TEDFullscreenCustomHeight`
  Integer specifying the custom fullscreen resolution height.
`VDCFullscreenMode`
  Integer specifying the fullscreen mode (x128 only). (0: use desktop resolution, 1: switch to `VDCFullscreenCustomWidth`, `VDCFullscreenCustomHeight`)
`VDCFullscreenCustomWidth`
  Integer specifying the custom fullscreen resolution width.
`VDCFullscreenCustomHeight`
  Integer specifying the custom fullscreen resolution height.
`VICFullscreenMode`
  Integer specifying the fullscreen mode (xvic only). (0: use desktop resolution, 1: switch to `VICFullscreenCustomWidth`, `VICFullscreenCustomWidth`)
`VICFullscreenCustomWidth`
  Integer specifying the custom fullscreen resolution width.
`VICFullscreenCustomHeight`
  Integer specifying the custom fullscreen resolution height.
`VICIIFullscreenMode`
  Integer specifying the fullscreen mode (all emulators except xcbm2, xpet, xplus4, xvic and vsid). (0: use desktop resolution, 1: switch to `VICIIFullscreenCustomWidth`, `VICIIFullscreenCustomHeight`)
`VICIIFullscreenCustomWidth`
  Integer specifying the custom fullscreen resolution width.
`VICIIFullscreenCustomHeight`
  Integer specifying the custom fullscreen resolution height.
`JoyDevice1`
  Integer specifying which joystick device the emulator should use for the emulation of joystick 1 (all emulators except xcbm2, xpet and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))
`JoyDevice2`
  Integer specifying which joystick device the emulator should use for the emulation of joystick 2 (all emulators except xcbm2, xpet, xvic and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))
`JoyDevice3`
  Integer specifying which joystick device the emulator should use for the emulation of extra joystick 1 (all emulators except xcbm5x0 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))
`JoyDevice4`
  Integer specifying which joystick device the emulator should use for the emulation of extra joystick 2 (all emulators except xcbm5x0, xplus4 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))

The following resources are only present if the SDL library has joystick support at compile time and applies to all emulators except vsid.

`JoyMapFile`
  String specifying the name of the joystick map file.
`JoyThreshold`
  Integer specifying the joystick threshold. (0..32767)
`JoyFuzz`
  Integer specifying the joystick fuzz. (0..32767)
`JoyMenuControl`
  Boolean to enable/disable controlling the SDL menu using a joystick.

### 8.2.2 SDL specific command-line options

`-hotkeyfile <name>`
  Set the hotkey file name (`HotkeyFile`) (all emulators except vsid).
`-menukey <key>`
  Set the keycode of the SDL menu activation key (`MenuKey`).
`-menukeyup <key>`
  Set the keycode of the 'up' key in the SDL menu (`MenuKeyUp`).
`-menukeydown <key>`
  Set the keycode of the 'down' key in the SDL menu (`MenuKeyDown`).
`-menukeyleft <key>`
  Set the keycode of the 'left' key in the SDL menu (`MenuKeyLeft`).
`-menukeyright <key>`
  Set the keycode of the 'right' key in the SDL menu (`MenuKeyRight`).
`-menukeypageup <key>`
  Set the keycode of the 'page up' key in the SDL menu (`MenuKeyPageUp`).
`-menukeypagedown <key>`
  Set the keycode of the 'page down' key in the SDL menu (`MenuKeyPageDown`).
`-menukeyhome <key>`
  Set the keycode of the 'home' key in the SDL menu (`MenuKeyHome`).
`-menukeyend <key>`
  Set the keycode of the 'end' key in the SDL menu (`MenuKeyEnd`).
`-menukeyselect <key>`
  Set the keycode of the 'select' key in the SDL menu (`MenuKeySelect`).
`-menukeycancel <key>`
  Set the keycode of the 'cancel' key in the SDL menu (`MenuKeyCancel`).
`-menukeyexit <key>`
  Set the keycode of the 'exit' key in the SDL menu (`MenuKeyExit`).
`-menukeymap <key>`
  Set the keycode of the 'map' key in the SDL menu (`MenuKeyMap`).
`-sdlbitdepth <bpp>`
  Set the display bitdepth (`SDLBitdepth`). (0: current, 8, 15, 16, 24, 32)
`-sdllimitmode <mode>`
  Set the resolution limit mode (`SDLLimitMode`). (0: off, 1: max, 2: fixed)
`-sdl2backend <renderer name>`
  Set the preferred SDL2 backend (`SDL2Backend`). See startup log for available backends, valid ones might be eg: software, opengl, direct3d, direct3d11, opengles2)
`-CRTCfullmode <Mode>`
  Set the fullscreen mode (`CrtcFullscreenMode`) (xcbm2 and xpet only). (0: use desktop resolution, 1: switch to `CrtcFullscreenCustomWidth`, `CrtcFullscreenCustomHeight`)
`-Crtcfullwidth <width>`
  Set the custom fullscreen resolution width (`CrtcFullscreenCustomWidth`).
`-Crtcfullheight <height>`
  Set the custom fullscreen resolution height (`CrtcFullscreenCustomHeight`).
`-TEDfullmode <Mode>`
  Set the fullscreen mode (`TEDFullscreenMode`) (xplus4 only). (0: use desktop resolution, 1: switch to `TEDFullscreenCustomWidth`, `TEDFullscreenCustomHeight`)
`-TEDfullwidth <width>`
  Set the custom fullscreen resolution width (`TEDFullscreenCustomWidth`).
`-TEDfullheight <height>`
  Set the custom fullscreen resolution height (`TEDFullscreenCustomHeight`).
`-VDCfullmode <Mode>`
  Set the fullscreen mode (`VDCFullscreenMode`) (x128 only). (0: use desktop resolution, 1: switch to `VDCFullscreenCustomWidth`, `VDCFullscreenCustomHeight`)
`-VDCfullwidth <width>`
  Set the custom fullscreen resolution width (`VDCFullscreenCustomWidth`).
`-VDCfullheight <height>`
  Set the custom fullscreen resolution height (`VDCFullscreenCustomHeight`).
`-VICfullmode <Mode>`
  Set the fullscreen mode (`VICFullscreenMode`) (xvic only). (0: use desktop resolution, 1: switch to `VICFullscreenCustomWidth`, `VICFullscreenCustomHeight`)
`-VICfullwidth <width>`
  Set the custom fullscreen resolution width (`VICFullscreenCustomWidth`).
`-VICfullheight <height>`
  Set the custom fullscreen resolution height (`VICFullscreenCustomHeight`).
`-VICIIfullmode <Mode>`
  Set the fullscreen mode (`VICIIFullscreenMode`) (all emulators except xcbm2, xpet, xplus4, xvic and vsid). (0: use desktop resolution, 1: switch to `VICIIFullscreenCustomWidth`, `VICIIFullscreenCustomHeight`)
`-VICIIfullwidth <width>`
  Set the custom fullscreen resolution width (`VICIIFullscreenCustomWidth`).
`-VICIIfullheight <height>`
  Set the custom fullscreen resolution height (`VICIIFullscreenCustomHeight`).
`-joydev1 <0-3> / <0-4>`
  Set the device for joystick emulation of port 1 (`JoyDevice1`) (all emulators except xcbm2, xpet and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))
`-joydev2 <0-3> / <0-4>`
  Set the device for joystick emulation of port 2 (`JoyDevice2`) (all emulators except xcbm2, xpet, xvic and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))
`-extrajoydev1 <0-3> / <0-4>`
  Set device for extra joystick port 1 (`JoyDevice3`) (all emulators except xcbm5x0 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))
`-extrajoydev2 <0-3> / <0-4>`
  Set device for extra joystick port 2 (`JoyDevice4`) (all emulators except xcbm5x0, xplus4 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was present in the compile time SDL library))

The following command-line options are only present if the SDL library has joystick support at compile time and applies to all emulators except vsid.

`-joymap <name>`
  Set the joystick map file name (`JoyMapFile`).
`-joythreshold <0-32767>`
  Set the joystick threshold (`JoyThreshold`).
`-joyfuzz <0-32767>`
  Set the joystick fuzz (`JoyFuzz`).
`-joymenucontrol`
`+joymenucontrol`
  Enable/disable controlling the SDL menu with a joystick (`JoyMenuControl=1`, `JoyMenuControl=0`).

## 8.3 GTK3 specific features

This section lists the settings and commands that are common and specific to Unix, and are thus not present in other platforms.

### 8.3.1 GTK3 specific resources

`FullscreenDecorations`
  Boolean specifying whether the menu and statusbar are shown in full screen mode.
`PauseOnSettings`
  Boolean specifying wheter to pause the emulation when triggering the settings dialog. If set, the emulation will pause when triggering the settings dialog. When closing the settings dialog the pause state will revert to its state before triggering the settings UI.
`JoyDevice1`
  Integer specifying which joystick device the emulator should use for the emulation of joystick 1 (all emulators except xcbm2, xpet and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)
`JoyDevice2`
  Integer specifying which joystick device the emulator should use for the emulation of joystick 2 (all emulators except xcbm2, xpet, xvic and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)
`JoyDevice3`
  Integer specifying which joystick device the emulator should use for the emulation of extra joystick 1 (all emulators except xcbm5x0 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)
`JoyDevice4`
  Integer specifying which joystick device the emulator should use for the emulation of extra joystick 2 (all emulators except xcbm5x0, xplus4 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)

The available joysticks might differ depending on operating system and joystick support in the OS.

`Devices 4..9`
  Only available if joystick support is available at compile time.
`Devices 10 and 11`
  Only available if digital joystick support is available at compile time.
`Devices 12 and 13`
  Only available if USB joystick support is available at compile time.

The following resources are only available if MIDI support is available at compile time.

`MIDIName`
  String specifying the name of the MIDI client (default:"VICE") (ALSA and macOS only, x64, x64sc, xscpu64, x128 and xvic only).
`MIDIInDev`
  String specifying the OSS MIDI input device (Windows and OSS, x64, x64sc, xscpu64, x128 and xvic only).
`MIDIOutDev`
  String specifying the OSS MIDI output device (Windows and OSS, x64, x64sc, xscpu64, x128 and xvic only).
`MIDIInName`
  String specifying the name of the MIDI input port (default:"VICEInput") (macOS only, x64, x64sc, xscpu64, x128 and xvic only).
`MIDIOutName`
  String specifying the name of the MIDI output port (default:"VICEOutput") (macOS only, x64, x64sc, xscpu64, x128 and xvic only).

The following resource is only available if MIDI support and ALSA support is available at compile time.

`MIDIDriver`
  Enum specifying the MIDI driver (Unix - x64, x64sc, xscpu64, x128 and xvic only). (0: OSS, 1: ALSA)

### 8.3.2 GTK3 specific command-line options

`-fullscreen-decorations`
`+fullscreen-decorations`
  Enable/disable fullscreen decorations
`-pauseonsettings`
  Pause emulation when enabling the settings dialog. (`PauseOnSettings=1`).
`+pauseonsettings`
  Do not pause emulation when enabling the settings dialog. (`PauseOnSettings=0`).
`-joydev1 <0-3> / <0-9> / <0-11> / <0-13>`
  Set the device for joystick emulation of port 1 (`JoyDevice1`) (all emulators except xcbm2, xpet and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)
`-joydev2 <0-3> / <0-9> / <0-11> / <0-13>`
  Set the device for joystick emulation of port 2 (`JoyDevice2`) (all emulators except xcbm2, xpet, xvic and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)
`-extrajoydev1 <0-3> / <0-9> / <0-11> / <0-13>`
  Set device for extra joystick port 1 (`JoyDevice3`) (all emulators except xcbm5x0 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)
`-extrajoydev2 <0-3> / <0-9> / <0-11> / <0-13>`
  Set device for extra joystick port 2 (`JoyDevice4`) (all emulators except xcbm5x0, xplus4 and vsid). (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13: USB joystick 2)

The available joysticks might differ depending on operating system and joystick support in the OS.

`Devices 4..9`
  Only available if joystick support is available at compile time.
`Devices 10 and 11`
  Only available if digital joystick support is available at compile time.
`Devices 12 and 13`
  Only available if USB joystick support is available at compile time.

The following command-line options are only available if MIDI support is available at compile time.

`-midiname <name>`
  Specify the name of the MIDI client (default:"VICE") (`MIDIName`) (ALSA and macOS only, x64, x64sc, xscpu64, x128 and xvic only).
`-midiin <name>`
  Specify OSS MIDI-In device (`MIDIInDev`) (Windows and OSS, x64, x64sc, xscpu64, x128 and xvic only).
`-midiout <name>`
  Specify OSS MIDI-Out device (`MIDIOutDev`) (Windows and OSS, x64, x64sc, xscpu64, x128 and xvic only).
`-midiinname <name>`
  Specify the name of the MIDI input port (default:"VICEInput") (`MIDIInName`) (macos, x64, x64sc, xscpu64, x128 and xvic only).
`-midioutname <name>`
  Specify the name of the MIDI output port (default:"VICEOutput") (`MIDIOutName`) (macos, x64, x64sc, xscpu64, x128 and xvic only).

The following command-line option is only available if MIDI support and ALSA support is available at compile time.

`-mididrv <driver>`
  Specify MIDI driver (`MIDIDriver`) (Unix - x64, x64sc, xscpu64, x128 and xvic only). (0: OSS, 1: ALSA)

Go to the first, previous, next, last section, table of contents.