VICE Manual - 7 Machine-specific features

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

# 7 Machine-specific features

## 7.1 C64/128-specific commands and settings

This section lists the settings and commands that are C64/128 specific and thus are not present in the other emulators.

### 7.1.1 Using cartridges

The cartridge system is organized in "Slots" to allow more than one cartridge connected at a time, like it can be done using an expansion port expander on a real C64 (see below).

Generally a cartridge can be enabled by attaching its respective cartridge image, or using the respective menu option for cartridges that do not require an image.

x64, x64sc and x128 allow you to attach the following kinds of images:

- ``.crt'` images, as used by the CCS64 emulator by Per Håkan Sundell
- raw ``.bin'` images, with or without load address

Cartridge images are like disk images, but contain the contents of cartridge ROM and/or RAM images instead of disk images.

To attach cartridges, use the "Attach a cartridge image" submenu. When using ``.crt'` images, this will work for every cartridge which is supported. For raw ``.bin'` images you might have to use command line options.

When you have successfully attached a cartridge image, you should then reset the machine to make sure the cartridge initializes itself. (Or enable the "reset on cartridge change" option).

Of course, it is also possible to detach a currently attached cartridge image ("Detach cartridge image").

If you are using a freezer cart like an Action Replay cartridge, you can emulate the cartridge's freeze button with the "Cartridge freeze" command.

The imaginary expansion port expander is organized in 4 slots, the cartridges are associated with them like this:

#### 7.1.1.1 Slot 0

All carts that have a passthrough connector go here. Once a "Slot 0" cartridge is enabled all further cartridges are connected to its respective passthrough port.

Only one cartridge of this type can be active at a time.

"Slot 0" carts have individual "enable" switches, enabling means enabling permanently.

The following cartridges are emulated in this slot:

- IEEE-488 Interface (`http://www.funet.fi/pub/cbm/schematics/cartridges/c64/ieee-488/eprom.bin`)
- Magic Voice
- MMC64

#### 7.1.1.2 Slot 1

Mostly RAM based cartridges which for one reason or the other might make sense to be enabled together with one of the "Main Slot" cartridges go here.

Only one cartridge of this type can be active at a time.

"Slot 1" carts have individual "enable" switches, enabling means enabling permanently

The following cartridges are emulated in this slot:

- Double Quick Brown Box (DQBB)
- Expert Cartridge
- ISEPIC
- RamCart

#### 7.1.1.3 Main Slot

All other cartridges which are not pure i/o extensions go here.

Only one cartridge of this type can be active at a time.

Cartridges in the "Main Slot" must be explicitly set as default to enable them permanently.

The following cartridges are emulated in this slot:

- generic 4K, 8K and 16K game- and ultimax cartridges
- Action Replay V5
- Action Replay MK2
- Action Replay MK3
- Action Replay MK4
- Atomic Power
- C64 Games System
- Capture
- Comal 80
- Dela EP64
- Dela EP7x8
- Dela EP256
- Diashow-Maker
- Dinamic
- EasyFlash
- Epyx FastLoad
- EXOS
- The Final Cartridge
- The Final Cartridge III
- Final Cartridge Plus
- Freeze Frame
- Freeze Machine
- Fun Play
- Game Killer
- IDE64 (`http://www.ide64.org/`)
- KCS Power Cartridge
- MACH 5
- Magic Desk
- Magic Formel
- Mikro Assembler
- MMC Replay
- Ocean
- Prophet64
- REX 256k EPROM Cart
- REX Utility
- Retro Replay
- ROSS
- Simons' BASIC
- Snapshot 64
- Stardos
- Structured BASIC
- Super Explode V5.0
- Super Games
- Super Snapshot V4
- Super Snapshot V5
- Warp Speed
- Westermann Learning
- Zaxxon

#### 7.1.1.4 I/O Slot

All carts that are pure I/O extensions go here.

Any number of "I/O Slot" Carts may be active at a time.

"I/O Slot" carts have individual "enable" switches, enabling means enabling permanently.

The following cartridges are emulated in this slot:

- ACIA (Swiftlink, Turbo232)
- DigiMAX
- Ethernet (The Final Ethernet, RR-Net)
- GEO-RAM
- MIDI (Passport/Syntech, Datel/Siel/JMS/C-Lab, Maplin, Namesoft, Sequential)
- RAM Expansion Module (REU)
- SFX Sound Expander
- SFX Sound Sampler

#### 7.1.1.5 Expected behaviour

When the emulator is run without arguments, all settings from the config file should be applied and arguments override settings from the config file.

When saving the settings to the config file it is expected that on the next run of the emulator all settings will be in the same state as they were when saved.

There is an exception to this rule: the cartridge in the "Main Slot" must be explicitly set as default before it gets saved to the config file.

`+cart` should disable ALL cartridges, including eventually activated REU, Swithlink and all similar expansionport devices.

`-cartXYZ` options should generally attach AND activate a cart of type XYZ. As a consequence, attaching carts this way which are NOT in the "Main Slot" will also enable the cart permanently.

#### 7.1.1.6 Common problems

If attaching a cartridge does not work as expected, this may be because of various reasons:

- Not seldomly the CRT type is incorrectly set in `.crt` files found "in the wild". Make sure this is not the case (if in doubt use `cartconv` to verify and/or fix).
- You may have unintentionally enabled more than one cartridge at once, for example by saving the settings with REU enabled, and then later attaching a game cartridge from the command-line. The cartridge system will allow certain combinations, but (as on the real thing) not all do (can) actually work. To make sure this is not the case, either detach all cartridges from the menus, or use `+cart` on the command-line.
- The cartridge image might be broken. Try one from a different source. If you are sure the dump is ok (for example because you dumped it yourself) then make sure it is in proper linear order (on some cartridges, for example "capture", address and/or data lines at the eprom are shuffled around so a dump made with an eprom burner can not be used as is).
- Last not least you might have encountered a bug in the emulation. If you suspect this is the case, and you can still reproduce the bug after checking the things above, please file a bug report including the following information:
  - attach your vicerc and a reference to the cartridge binaries
  - if you can, comment in the respective DEBUGXYZ macros prominently defined at the top of these files: src/c64/cart/c64cart.c src/c64/cart/c64cartmem.c src/c64/c64io.c src/c64/c64export.c and then recompile. this will add debug output that might make it much easier to locate certain problems.

#### 7.1.1.7 IEEE-488 interface

To be able to use an IEEE drive, you need to enable IEEE emulation for the emulator. To do this, follow the following steps:

Download the IEEE 488 ROM image from the CBM archives (formerly known as FUNET) Attach that image with File/Attach cartridge image/IEEE488 interface image.

Make sure you have a one-drive system only (that is, go to Settings/Peripheral Setting, uncheck "use IEC device" for all devices, go to Settings/Drive Settings and select "Floppy type" as "none" for all drives other than drive 8.

After this, all drives can be selected in x64 and x128.

#### 7.1.1.8 The Final Cartridge 3

The Final Cartridge 3 detects whether a mouse is connected when it starts and disables mouse support if it doesnt detect one. So to make mouse emulation work you must either enable it on the command line, or reset the cartridge after enabling it from the user interface.

### 7.1.2 C64 cartridge settings

#### 7.1.2.1 C64 cartridge resources

`IOCollisionHandling`
  Integer specifying the way the I/O collisions should be handled, (0: error message and detach all involved carts, 1: error message and detach last attached involved carts, 2: warning in log and 'AND' the valid return values)
`CartridgeReset`
  Boolean specifying whether the machine should be resetted when a cartridge is changed.
`CartridgeType`
  Integer specifying the type of cartridge emulated in the "main" slot
`CartridgeFile`
  String specifying the filename of the image for the cartridge emulated in the "main" slot
`DQBB`
  Boolean specifying whether the Double Quick Brown Box should be emulated or not.
`DQBBfilename`
  String specifying the filename of the DQBB RAM image.
`DQBBImageWrite`
  Boolean, if true write back the DQBB image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`EasyFlashJumper`
  Boolean specifying whether the Easy Flash jumper is set.
`EasyFlashWriteCRT`
  Boolean, if true write back the Easy FLash image file automatically, incase the contents changed, when detaching or quitting the emulator.
`ExpertCartridgeEnabled`
  Boolean specifying whether the Expert Cartridge should be emulated or not.
`Expertfilename`
  String specifying the filename of the Expert Cartridge RAM image.
`ExpertImageWrite`
  Boolean, if true write back the Expert Cartridge image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`ExpertCartridgeMode`
  Enum specifying the state of the expert cartridge switch (0=off 1=prg 2=on)
`IDE64Config`
  String encoded content of IDE64 DS1302 RAM, used to store IDEDOS setup parameters. Not meant to be directly manipulated as content depends on the version of IDEDOS used.
`IDE64version4`
  Boolean specifying whether the emulated card version is V4.1 or V3.4. This is automatically detected most of the time for .crt cartridge images.
`IDE64RTCOffset`
  Integer in seconds which gives the difference between the local time and the time of the emulated DS1302 RTC.
`IDE64Image1`
`IDE64Image2`
`IDE64Image3`
`IDE64Image4`
  String specifying the full path to the four harddisk images. If a file is non-existing the drive is not emulated. Some older IDEDOS versions only support the first two harddisks.
`IDE64Cylinders1`
`IDE64Cylinders2`
`IDE64Cylinders3`
`IDE64Cylinders4`
  Number of cylinders for the four harddisk images. Valid range is 1--65535.
`IDE64Heads1`
`IDE64Heads2`
`IDE64Heads3`
`IDE64Heads4`
  Number of heads for the four harddisk images. Valid range is 1--16.
`IDE64Sectors1`
`IDE64Sectors2`
`IDE64Sectors3`
`IDE64Sectors4`
  Number of sectors for the four harddisk images. Valid range is 1--63.
`IDE64AutodetectSize1`
`IDE64AutodetectSize2`
`IDE64AutodetectSize3`
`IDE64AutodetectSize4`
  Boolean specifying whether the disk geometry should be auto detected based on the disk image for the respective harddisk, or the cylinder/head/sector resources above should be used.
`IEEE488`
  Boolean specifying whether the IEEE488 interface should be emulated or not.
`IEEE488Image`
  String specifying the filename of the IEEE488 ROM image
`IsepicCartridgeEnabled`
  Boolean specifying whether ISEPIC should be emulated or not.
`Isepicfilename`
  String specifying the filename of the ISEPIC RAM image.
`IsepicSwitch`
  Boolean specifying the status of the ISEPIC switch (0: off, 1: on)
`IsepicImageWrite`
  Boolean, if true write back the ISEPIC image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`MagicVoiceCartridgeEnabled`
  Boolean specifying whether the Magic Voice should be emulated or not.
`MagicVoiceImage`
  String specifying the filename of the Magic Voice ROM image
`MMC64`
  Boolean specifying whether the MMC64 should be emulated or not.
`MMC64BIOSfilename`
  String specifying the filename of the MMC64 Flash ROM image.
`MMC64_bios_write`
  Boolean, if true write back the MMC64 Flash ROM image file automatically, incase the contents changed, when detaching or quitting the emulator.
`MMC64_flashjumper`
  Boolean that specifies whether the MMC64 flash jumper is set.
`MMC64_revision`
  Integer that specifies the MMC64 hardware revision (0=Rev. A, 1=Rev. B)
`MMC64imagefilename`
  String specifying the filename of the SD-Card image used by the MMC64 emulation.
`MMC64_RO`
  Boolean, if true the SD-Card image is mounted read-only.
`MMC64_sd_type`
  Integer that specifies the reported type for the emulated SD-Card. (0=Auto, 1=MMC, 2=SD, 3=SDHC)
`MMCRCardImage`
  String that specifies the filename of the SD-Card image used by the MMCR emulation.
`MMCREEPROMImage`
  String that specifies the filename of the MMCR EEPROM image.
`MMCRRescueMode`
  Boolean that specifies if the rescue mode (both buttons pressed during powerup) of the MMCR is active.
`MMCRImageWrite`
  Boolean, if true write back the MMCR Flash ROM image file automatically, incase the contents changed, when detaching or quitting the emulator.
`MMCRCardRW`
  Boolean that specifies if the SD-Card image used by the MMCR emulation is writeable.
`MMCRSDType`
  Integer that specifies the reported type for the emulated SD-Card. (0=Auto, 1=MMC, 2=SD, 3=SDHC)
`MMCREEPROMRW`
  Boolean that specifies if the MMCR EEPROM image is writeable.
`RAMCART`
  Boolean specifying whether the RAMCart should be emulated or not.
`RAMCARTfilename`
  String specifying the filename of the RAMCart RAM image.
`RAMCARTImageWrite`
  Boolean, if true write back the RAMCart image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`RAMCART_RO`
  Boolean, if true the RAMCart contents are read only
`RAMCARTsize`
  Integer specifying the size of the RAMCart in KB (64, 128)
`RRrevision`
  Integer specifying the RR hardware revision (0=retro replay, 1=nordic replay)
`RRFlashJumper`
  Boolean specifying whether the RR flash jumper is set or not.
`RRBankJumper`
  Boolean specifying whether the RR bank jumper is set or not.
`RRBiosWrite`
  Boolean, if true write back the RR Flash ROM image file automatically, incase the contents changed, when detaching or quitting the emulator.

#### 7.1.2.2 C64 cartridge command-line options

`-iocollision <method>`
  Select the way the I/O collisions should be handled, (0: error message and detach all involved carts, 1: error message and detach last attached involved carts, 2: warning in log and 'AND' the valid return values
`+cart`
  Disable all cartridges (which would eventually be enabled in the config file).
`-cartreset`
`+cartreset`
  Reset/Do not reset machine if a cartridge is attached or detached
`-cart8 <name>`
  Attach generic 8KB cartridge image
`-cart16 <name>`
  Attach generic 16KB cartridge image
`-cartultimax <name>`
  Attach generic 16kB Ultimax cartridge image
`-cartcrt <name>`
  Attach CRT cartridge image
`-cartap <name>`
  Attach raw 32KB Atomic Power cartridge image
`-cartar2 <name>`
  Attach raw 16kB Action Replay MK2 cartridge image
`-cartar3 <name>`
  Attach raw 16KB Action Replay MK3 cartridge image
`-cartar4 <name>`
  Attach raw 32KB Action Replay MK4 cartridge image
`-cartar5 <name>`
  Attach raw 32KB Action Replay cartridge image
`-cartcap <name>`
  Attach raw 8kB Capture cartridge image
`-cartcomal <name>`
  Attach raw 64kB Comal 80 cartridge image
`-cartdep256 <name>`
  Attach raw Dela EP256 cartridge image
`-cartdep64 <name>`
  Attach raw Dela EP64 cartridge image
`-cartdep7x8 <name>`
  Attach raw Dela EP7x8 cartridge image
`-cartdin <name>`
  Attach raw 128kB Dinamic cartridge image
`-cartdsm <name>`
  Attach raw 8kB Diashow-Maker cartridge image
`-cartdqbb <name>`
  Attach raw 16kB Double Quick Brown Box cartridge image
`-dqbb`
`+dqbb`
  Enable/Disable Double Quick Brown Box
`-dqbbimage <name>`
  Specify Double Quick Brown Box filename
`-dqbbimagerw`
`+dqbbimagerw`
  Allow/Disallow writing to DQBB image
`-carteasy <name>`
  Attach raw EasyFlash cartridge image
`-easyflashjumper`
`+easyflashjumper`
  Enable/Disable EasyFlash jumper
`-easyflashcrtwrite`
`+easyflashcrtwrite`
  Allow/Disallow writing to EasyFlash .crt image
`-cartepyx <name>`
  Attach raw 8KB Epyx FastLoad cartridge image
`-cartexos <name>`
  Attach raw 8kB EXOS cartridge image
`-cartexpert <name>`
  Attach raw 8kB Expert Cartridge image
`-expert`
`+expert`
  Enable/Disable the Expert Cartridge
`-expertimagename <name>`
  Set Expert Cartridge image name
`-expertimagerw`
`+expertimagerw`
  Allow/Disallow writing to Expert Cartridge image
`-cartf64 <Name>`
  Attach raw 32kB Formel 64 image
`-cartfc1 <name>`
  Attach raw 16kB Final Cartridge image
`-cartfc3 <name>`
  Attach raw 64kB Final Cartridge III image
`-cartfcplus <name>`
  Attach raw 32kB Final Cartridge Plus image
`-cartff <name>`
  Attach raw 8kB Freeze Frame image
`-cartfm <name>`
  Attach raw 32kB Freeze Machine image
`-cartfp <name>`
  Attach raw 128kB Fun Play/Power Play cartridge image
`-cartgk <name>`
  Attach raw 8KB Game Killer cartridge image
`-cartgs <name>`
  Attach raw 512kB Game System cartridge image
`-cartide64 <name>`
  Attach raw 64KB or 128KB IDE64 cartridge image
`-IDE64image1 <name>`
`-IDE64image2 <name>`
`-IDE64image3 <name>`
`-IDE64image4 <name>`
  Specify path to the image files for IDE64 harddisks
`-IDE64cyl1 <value>`
`-IDE64cyl2 <value>`
`-IDE64cyl3 <value>`
`-IDE64cyl4 <value>`
  Set number of cylinders for the IDE64 harddisk emulation (1-65535)
`-IDE64hds1 <value>`
`-IDE64hds2 <value>`
`-IDE64hds3 <value>`
`-IDE64hds4 <value>`
  Set number of heads for the IDE64 harddisk emulation (1-16)
`-IDE64sec1 <value>`
`-IDE64sec2 <value>`
`-IDE64sec3 <value>`
`-IDE64sec4 <value>`
  Set number of sectors for the IDE64 harddisk emulation (1-63)
`-IDE64autosize1`
`+IDE64autosize1`
`-IDE64autosize2`
`+IDE64autosize2`
`-IDE64autosize3`
`+IDE64autosize3`
`-IDE64autosize4`
`+IDE64autosize4`
  Autodetect geometry of formatted images or do not autodetect and use specified geometry
`-IDE64version4`
`+IDE64version4`
  Emulate version 4 hardware/Emulate pre version 4 hardware
`-cartieee <name>`
  Attach CBM IEEE-488 cartridge image
`-ieee488`
`+ieee488`
  Enable (`IEEE488=1`) or disable (`IEEE488=0`) emulation of the IEEE488 interface.
`-ieee488image <name>`
  Set IEEE488 interface image name
`-isepic`
`+isepic`
  Enable/Disable the ISEPIC cart
`-cartisepic <name>`
  Attach raw 2kB ISEPIC cartridge image
`-isepicimagename <name>`
  Set ISEPIC image name
`-isepicimagerw`
`+isepicimagerw`
  Allow/Disallow writing to ISEPIC image
`-cartkcs <name>`
  Attach raw 16kB KCS Power cartridge image
`-cartks <name>`
  Attach raw 24kB Kingsoft cartridge image
`-cartmach5 <name>`
  Attach raw 8kB MACH 5 cartridge image
`-cartmd <name>`
  Attach raw 32/64/128kB Magic Desk cartridge image
`-cartmf <name>`
  Attach raw Magic Formel cartridge image
`-cartmikro <name>`
  Attach raw 8kB Mikro Assembler cartridge image
`-mmc64`
`+mmc64`
  Enable/Disable the MMC64 expansion
`-cartmmc64 <name>`
  Attach raw 8kB MMC64 cartridge image
`-mmc64bios <name>`
  Specify name of MMC64 BIOS image
`-mmc64image <name>`
  Specify name of MMC64 image
`-mmc64readonly`
  Set the MMC64 card to read-only
`-mmc64readwrite`
  Set the MMC64 card to read/write
`-mmc64bioswrite`
  Save the MMC64 bios when changed
`-cartmmcr <name>`
  Attach raw 512kB MMC Replay cartridge image
`-mmcrrescue`
`+mmcrrescue`
  Enable/Disable MMC Replay rescue mode
`-mmcrimagerw`
`+mmcrimagerw`
  Allow/Disallow writing to MMC Replay image
`-mmcrcardimage <filename>`
  Specify MMC Replay card image filename
`-mmcrcardrw`
`+mmcrcardrw`
  Allow/Disallow writes to MMC Replay card image
`-mmcreepromimage`
  Specify MMC Replay EEPROM image filename
`-mmcreepromrw`
`+mmcreepromrw`
  Allow/Disallow writes to MMC Replay EEPROM image
`-cartmv <name>`
  Attach raw 16kB Magic Voice cartridge image
`-cartocean <name>`
  Attach raw Ocean cartridge image
`-cartp64 <name>`
  Attach raw 256KB Prophet 64 cartridge image
`-cartpf <name>`
  Attach raw 64kb Pagefox cartridge image
`-cartramcart <name>`
  Attach raw RamCart cartridge image
`-ramcart`
`+ramcart`
  Enable/Disable the RAMCART expansion
`-ramcartsize <size in KB>`
  Size of the RAMCART expansion
`-ramcartimage <name>`
  Specify name of RAMCART image
`-ramcartimagerw`
`+ramcartimagerw`
  Allow/Disallow writing to RAMCart image
`-cartrep256 <name>`
  Attach raw REX EP256 cartridge image
`-cartross <name>`
  Attach raw 16/32kB ROSS cartridge image
`-cartrr <name>`
  Attach raw 64KB Retro Replay cartridge image
`-rrbioswrite`
`+rrbioswrite`
  Enable/Disable saving of the RR ROM at exit
`-rrbankjumper`
`+rrbankjumper`
  Set/Unset RR Bank Jumper
`-rrflashjumper`
`+rrflashjumper`
  Set/Unset RR Flash Jumper
`-cartru <name>`
  Attach raw 8kB REX Utility cartridge image
`-carts64 <name>`
  Attach raw 4kB Snapshot 64 cartridge image
`-cartsb <name>`
  Attach raw Structured Basic cartridge image
`-cartse5 <name>`
  Attach raw 16kB Super Explode V5 cartridge image
`-cartsg <name>`
  Attach raw 64kB Super Games cartridge image
`-cartsilver <Name>`
  Attach raw Silverrock 128 cartridge image
`-cartsimon <name>`
  Attach raw 16kB Simons Basic cartridge image
`-cartss4 <name>`
  Attach raw 32KB Super Snapshot V4 cartridge image
`-cartss5 <name>`
  Attach raw 64KB Super Snapshot V5 cartridge image
`-cartstar <name>`
  Attach raw 16KB Stardos cartridge image
`-cartwl <name>`
  Attach raw 16KB Westermann Learning cartridge image
`-cartws <name>`
  Attach raw 8kB Warp Speed cartridge image
`-cartzaxxon <name>`
  Attach raw 16kB Zaxxon cartridge image

### 7.1.3 CIA settings

#### 7.1.3.1 CIA resources

`CIA1Model`
`CIA2Model`
  Enum specifying CIA model (0 = old 6526, 1 = new 6526A)

#### 7.1.3.2 CIA command-line options

`-ciamodel <model>`
  Set both CIA models (0 = old 6526, 1 = new 6526A)
`-cia1model <model>`
  Set CIA 1 model (0 = old 6526, 1 = new 6526A)
`-cia2model <model>`
  Set CIA 2 model (0 = old 6526, 1 = new 6526A)

### 7.1.4 VIC-II settings

These settings control the emulation of the VIC-II (MOS6569) video chip used in both the C64 and the C128.

- "Sprite-sprite collisions" and "Sprite-background collisions", if enabled, cause the hardware detection of sprite-to-sprite and sprite-to-background collisions of the VIC-II to be emulated. This feature is used by many games, and disabling either of the two detection systems can sometimes make you invincible (although there is also a chance that also enemies become invincible then).
- "Color set" can be used to dynamically change the palette file being used by choosing one of the available predefined color sets:
  - ``default.vpl'` ("default"), the default VICE palette;
  - ``c64s.vpl'` ("C64S"), palette taken from the shareware C64S emulator by Miha Peternel.
  - ``ccs64.vpl'` ("CCS64"), palette taken from the shareware CCS64 emulator by Per Håkan Sundell.
  - ``frodo.vpl'` ("Frodo"), palette taken from the free Frodo emulator by Christian Bauer (http://www.uni-mainz.de/~bauec002/FRMain.html).
  - ``pc64.vpl'` ("PC64"), palette taken from the free PC64 emulator by Wolfgang Lorenz.
  - ``godot.vpl'` ("GoDot"), palette as suggested by the authors of the C64 graphics package GoDot (http://users.aol.com/howtogodot/welcome.htm).

#### 7.1.4.1 VIC-II resources

`VICIIModel`
  Integer that specifies VIC-II model (6569/6569r1/8565/6567/8562/6567r56a). only available in `x64sc`.
`VICIICheckSsColl`
  Boolean specifying whether the sprite-sprite hardware collision detection must be emulated.
`VICIICheckSbColl`
  Boolean specifying whether the sprite-background hardware collision detection must be emulated.
`VICIIVideoCache`
  Boolean specifying whether the video cache is turned on.
`VICIIDoubleSize`
  Boolean specifying whether double-size mode is turned on.
`VICIIDoubleScan`
  Boolean specifying whether double-scan mode is turned on.
`VICIINewLuminances`
  Boolean specifying whether to use new (9 steps) luminances
`VICIIPaletteFile`
  String specifying the name of the palette file being used. The ``.vpl'` extension is optional.
`VICIIHwScale`
  Boolean specifying whether to enable or disable hardware scaling
`VICIIFullscreenDevice`
  fullscreen device
`VICIIFullscreen`
  Boolean specifying whether to use fullscreen mode or not.
`VICIIFullscreenStatusbar`
  Boolean specifying whether to show the status bar in fullscreen mode or not.
`VICIIXRANDRFullscreenMode`
  integer specifying XRANDR fullscreen mode
`VICIIVidmodeFullscreenMode`
  integer specifying Vidmode fullscreen mode
`VICIIExternalPalette`
  Boolean specifying whether to use external palette file or not.
`VICIIColorSaturation`
  integer specifying saturation of internal calculated palette [1000] <0-2000>
`VICIIColorContrast`
  integer specifying contrast of internal calculated palette [1000] <0-2000>
`VICIIColorBrightness`
  integer specifying brightness of internal calculated palette [1000] <0-2000>
`VICIIColorGamma`
  integer specifying gamma of internal calculated palette [2200] <0-4000>
`VICIIColorTint`
  integer specifying tint of internal calculated palette [1000] <0-2000>
`VICIIPALScanLineShade`
  integer specifying amount of scan line shading for the CRT emulation [667] <0-1000>
`VICIIPALBlur`
  integer specifying amount of horizontal blur for the CRT emulation. [500] <0-1000>
`VICIIPALOddLinePhase`
  integer specifying phase offset for color carrier in odd lines [750] <0-2000>
`VICIIPALOddLineOffset`
  integer specifying phase for color carrier in odd lines [1250] <0-2000>
`VICIIAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`VICIIFilter`
  integer specifying rendering filter, 0:none, 1:CRT emulation, 2: scale2x
`VICIIBorderMode`
  integer specifying border display mode (0: normal, 1: full, 2: debug, 3:none)

#### 7.1.4.2 VIC-II command-line options

`-VICIIcheckss`
`+VICIIcheckss`
  Enable (`VICIICheckSsColl=1`) and disable (`VICIICheckSsColl=0`) emulation of hardware sprite-sprite collision detection, respectively.
`-VICIIchecksb`
`+VICIIchecksb`
  Enable (`VICIICheckSbColl=1`) and disable (`VICIICheckSbColl=0`) emulation of hardware sprite-background collision detection, respectively.
`-VICIIvcache`
`+VICIIvcache`
  Enable/disable the video cache (`VICIIVideoCache=1`, `VICIIVideoCache=0`).
`-VICIIdsize`
`+VICIIdsize`
  Enable/disable the double size mode (`VICIIDoubleSize=1`, `VICIIDoubleSize=0`).
`-VICIIdscan`
`+VICIIdscan`
  Enable/disable the double scan mode (`VICIIDoubleScan=1`, `VICIIDoubleScan=0`).
`-VICIIhwscale`
`+VICIIhwscale`
  Enable/Disable hardware scaling
`-VICIIfilter <Mode>`
  Select rendering filter, 0:none, 1:CRT emulation, 2: scale2x
`-VICIIintpal`
  Use an internal calculated palette
`-VICIIextpal`
  Use an external palette (file)
`-VICIIpalette NAME`
  Specify `NAME` as the palette file (`VICIIPaletteFile`).
`-VICIIfulldevice <device>`
  Select fullscreen device
`-VICIIXRANDRfullmode <mode>`
  Select fullscreen mode
`-VICIIVidmodefullmode <mode>`
  Select fullscreen mode
`-VICIIborders <mode>`
  Set VIC-II border display mode (0: normal, 1: full, 2: debug, 3:none)
`-VICIImodel <model>`
  Set VIC-II model (6569/6569r1/8565/6567/8562/6567r56a). This setting is only available in `x64sc`.
`-VICIInewluminance`
`+VICIInewluminance`
  Enable/Disable new luminances.
`-VICIIsaturation <0-2000>`
  Set saturation of internal calculated palette [1000]
`-VICIIcontrast <0-2000>`
  Set contrast of internal calculated palette [1000]
`-VICIIbrightness <0-2000>`
  Set brightness of internal calculated palette [1000]
`-VICIIgamma <0-4000>`
  Set gamma of internal calculated palette [2200]
`-VICIItint <0-2000>`
  Set tint of internal calculated palette [1000]
`-VICIIoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines [1250]
`-VICIIoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines [750]
`-VICIIcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation. [500]
`-VICIIcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation [667]
`-VICIIaudioleak`
`+VICIIaudioleak`
  Enable/Disable video to audio leak emulation.

### 7.1.5 SID settings

These settings control the emulation of the SID (MOS6581 or MOS8580) audio chip.

- "Second SID" maps a second SID chip into the address space for stereo sound. This emulates e.g. the "SID Symphony Stereo Cartridge" from Dr. Evil Laboratories. The second SID can be used with software such as "Stereo SID Player" by Mark Dickenson or "The Enhanced Sidplayer" by Craig Chamberlain.
- "Second SID base address" sets the start address for the second SID chip. Software normally uses $DE00 or $DF00, since $DE00-$DEFF and $DF00-$DFFF can be mapped through the cartridge port of the C64. The default start address is $DE00.
- "Emulate filters" causes the built-in programmable filters of the SID chip to be emulated. A lot of C64 music requires them to be emulated properly, but their emulation requires some additional processor power.
- "ChipModel" specifies the model of the SID chip being emulated: there are two slightly different generations of SID chips: MOS6581 ones and MOS8580 ones.
- "Use reSID emulation" specifies whether the more accurate (and resource hungry) reSID emulation is turned on or off.
- "reSID sampling method" selects the method for conversion of the SID output signal to a sampling rate appropriate for playback by standard digital sound equipment. Possible settings are:
  - "Fast" simply clocks the SID chip at the output sampling frequency, picking the nearest sample. This yields acceptable sound quality, but sampling noise is noticeable in some cases, especially with SID combined waveforms. The sound emulation is still cycle exact.
  - "Interpolating" clocks the SID chip each cycle, and calculates each sample with linear interpolation. The sampling noise is now strongly attenuated by the SID external filter (as long as "Emulate filters" is selected), and the linear interpolation further improves the sound quality.
  - "Resampling" clocks the SID chip each cycle, and uses the theoretically correct method for sample generation. This delivers CD quality sound, but is extremely CPU intensive, and is thus most useful for non-interactive sound generation. Unless you have a very fast machine, that is.
- "reSID resampling passband" specifies the percentage of the total bandwidth allocated to the resampling filter passband. The work rate of the resampling filter is inversely proportional to the remaining transition band percentage. This implies that e.g. with the transition band starting at ~ 20kHz, it is faster to generate 48kHz than 44.1kHz samples. For CD quality sound generation at 44.1kHz the passband percentage should be set to 90 (i.e. the transition band starting at almost 20kHz).

#### 7.1.5.1 SID resources

`SidStereo`
  Integer specifying the amount of emulated extra SIDs. (0=off, 1=1 extra sid, 2=2 extra sids.
`SidStereoAddressStart`
  Integer specifying the base address of the second SID.
`SidTripleAddressStart`
  Integer specifying the base address of the third SID.
`SidFilters`
  Boolean specifying whether the built-in SID filters must be emulated.
`SidModel`
  Integer specifying what model of the SID must be emulated (`0`: 6581 , `1`: 8580, `2`: 8580D, `3`: 6581R4, `4`: DTVSID, `8`: 6581R3_4885 , `9`: 6581R3_0486S, `10`: 6581R3_3984, `11`: 6581R4AR_3789, `12`: 6581R3_4485 , `13`: 6581R4_1986S, `16`: 8580R5_3691, `17`: 8580R5_3691D, `18`: 8580R5_1489 , `19`: 8580R5_1489D).
`SidEngine`
  Integer specifying what SID engine will be used (`0`: FASTSID, `1`: RESID , `2`: CATWEASELMKIII, `3`: HARDSID, `4`: PARSID_PORT1, `5`: PARSID_PORT2 , `6`: PARSID_PORT3, `7`: RESID_FP).
`SidResidSampling`
  Integer specifying the sampling method (`0`: Fast, `1`: Interpolation, `2`: Resampling)
`SidResidPassband`
  Integer specifying the resampling filter passband in percentage of the total bandwidth (`0 - 90`).
`SidResidGain`
  Integer that specifies reSID gain in percent [97] (90..100)
`SidResidFilterBias`
  Integer that specifies reSID filter bias, which can be used to adjust DAC bias in millivolts. [0] (-5000..5000)

#### 7.1.5.2 SID command-line options

`-sidstereo`
  Emulates a second SID chip for stereo sound (`SidStereo`).
`-sidstereoaddress `ADDRESS``
  Specifies the start address for the second SID chip (`SidStereoAddressStart`).
`-sidtripleaddress `ADDRESS``
  Specifies the start address for the third SID chip (`SidTripleAddressStart`).
`-sidenginemodel <engine and model>`
  Specify `SID engine` and `MODEL` for the emulated SID chip ( 0: FastSID 6581, 1: FastSID 8580, 256: ReSID 6581, 257: ReSID 8580, 258: ReSID 8580 + digiboost, 1024: ParSID in par port 1, 1280: ParSID in par port 2, 1536: ParSID in par port 3, 1800: ReSID-FP 6581R3 4885, 1801: ReSID-FP 6581R3 0486S, 1802: ReSID-FP 6581R3 3984, 1803: ReSID-FP 6581R4 AR 3789, 1804: ReSID-FP 6581R3 4485, 1805: ReSID-FP 6581R4 1986S, 1808: ReSID-FP 8580R5 3691, 1809: ReSID-FP 8580R5 3691 + digiboost, 1810: ReSID-FP 8580R5 1489, 1811: ReSID-FP 8580R5 1489D).
`-sidfilters`
`+sidfilters`
  Enable (`SidFilters=1`) or disable (`SidFilters=0`) emulation of the built-in SID filters.
`-residsamp `METHOD``
  Specifies the sampling method; fast (`SidResidSampling=0`), interpolating (`SidResidSampling=1`), resampling (`SidResidSampling=2`), fast resampling (`SidResidSampling=3`).
`-residpass `PERCENTAGE``
  Specifies the resampling filter passband in percentage of the total bandwidth (`SidResidPassband=0-90`).
`-residgain `PERCENTAGE``
  Specifies reSID gain in percent (90 - 100).
`-residfilterbias <number>`
  reSID filter bias setting, which can be used to adjust DAC bias in millivolts.

### 7.1.6 C64 I/O extension settings

I/O extensions are (usually) cartridges which do not map into ROM space, but use only the I/O space at address range $DE00 ... $DEFF and/or $DF00 ... $DFFF.

Please use these extensions only when needed, as they might cause compatibility problems.

The following I/O extensions are available:

- ACIA (Swiftlink, Turbo232)
- DigiMAX
- Ethernet (The Final Ethernet, RR-Net)
- GEO-RAM
- MIDI (Passport, Datel, Maplin, Namesoft, Sequential)
- REU - The "RAM Expansion Module" extension emulates a standard Commodore RAM Expansion Unit; this can be used with GEOS and other programs that are designed to take advantage of it. This currently works only in the C64 emulator.
- SFX Sound Expander
- SFX Sound Sampler

#### 7.1.6.1 C64 I/O extension resources

`Acia1Enable`
  Boolean specifying whether the ACIA (Swiftlink, Turbo232) cartridge should be emulated or not.
`Acia1Mode`
  Enum specifying the type of emulated RS232 interface (0: normal, 1: Swithlink, 2: Turbo232)
`Acia1Base`
  Integer specifying the base address for the emulated ACIA chip.
`DIGIMAX`
  Boolean specifying whether the DigiMAX cartridge should be emulated or not.
`DIGIMAXbase`
  Integer specifying the DigiMAX base address.
`ETHERNET_ACTIVE`
  Boolean that specifies whether the CS8900 ethernet interface emulation is active.
`ETHERNET_INTERFACE`
  String specifying the device name of the ethernet device to use for the emulation.
`ETHERNET_DISABLED`
  Boolean that specified whether ethernet emulation has been disabled because it is not available in the current configuration.
`ETHERNET_AS_RR`
  Boolean that specifies whether RR-Net compatible mapping is enabled.
`GEORAM`
  Boolean specifying whether the GEO-RAM cartridge should be emulated or not.
`GEORAMfilename`
  String specifying the filename of the GEORAM image.
`GEORAMImageWrite`
  Boolean, if true write back the GEO-RAM image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`GEORAMsize`
  Integer specifying the size of the emulated GEO-RAM in KB (64, 128, 256, 512, 1024, 2048, 4096)
`MIDIEnable`
  Boolean specifying whether the MIDI cartridge should be emulated or not.
`MIDIMode`
  Enum specifying the type of emulated MIDI interface (0: Sequential, 1: Passport/Syntech, 2: DATEL/Siel/JMS, 3: Namesoft, 4: Maplin)
`MIDIDriver`
  Enum specifying the MIDI driver (0: OSS; 1:ALSA)
`MIDIInDev`
  String specifying the MIDI input device.
`MIDIOutDev`
  String specifying the MIDI output device.
`REU`
  Boolean specifying whether the RAM Expansion Module should be emulated or not.
`REUfilename`
  String specifying the filename of the REU image.
`REUImageWrite`
  Boolean, if true write back the REU image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`REUsize`
  Integer specifying the size of the emulated REU in KB (128, 256, 512, 1024, 2048, 4096, 8192, 16384)
`SFXSoundExpander`
  Boolean specifying whether the SFX Sound Expander should be emulated or not.
`SFXSoundExpanderChip`
  Enum specifying which YM chip is emulated (0: 3526, 1: 3812)
`SFXSoundSampler`
  Boolean specifying whether the SFX Sound Sampler should be emulated or not.

#### 7.1.6.2 C64 I/O extension command-line options

`-acia1`
`+acia1`
  Enable/Disable the $DE** ACIA RS232 interface emulation
`-digimax`
`+digimax`
  Enable/Disable the DigiMAX cartridge
`-digimaxbase <base address>`
  Base address of the DigiMAX cartridge
`-miditype <0-4>`
  MIDI interface type (0: Sequential, 1: Passport, 2: DATEL, 3: Namesoft, 4: Maplin)
`-midi`
`+midi`
  Enable/Disable MIDI emulation
`-midiin <name>`
  Specify MIDI-In device
`-midiout <name>`
  Specify MIDI-Out device
`-mididrv <driver>`
  Specify MIDI driver (0 = OSS, 1 = ALSA)
`-georam`
`+georam`
  Enable/Disable the GEORAM expansion unit
`-cartgeoram <name>`
  Attach raw GEO-RAM cartridge image
`-georamimage <name>`
  Specify name of GEORAM image
`-georamimagerw`
`+georamimagerw`
  Allow/Disallow writing to GEORAM image
`-georamsize <size in KB>`
  Size of the GEORAM expansion unit
`-reu`
`+reu`
  Enable (`REU=1`) or disable (`REU=0`) emulation of the RAM Expansion Module.
`-cartreu <name>`
  Attach raw REU cartridge image
`-reuimage <name>`
  Specify name of REU image
`-reuimagerw`
`+reuimagerw`
  Allow/Disallow writing to REU image
`-reusize <size in KB>`
  Size of the RAM expansion unit
`-sfxse`
`+sfxse`
  Enable/Disable the SFX soundexpander cartridge
`-sfxsetype <type>`
  Set YM chip type (3526 / 3812)
`-sfxss`
`+sfxss`
  Enable/Disable the SFX Sound Sampler cartridge
`-tfe`
`+tfe`
  Enable/Disable the TFE ("The Final Ethernet") unit
`-tfeif <name>`
  Set the system ethernet interface for TFE emulation
`-tferrnet`
`+tferrnet`
  Enable/Disable RRNet mode of TFE emulation
`-burstmod <value>`
  Enable/Disable burst modification. If it's 1 the cable is connected to CIA1, if 2 then to CIA2 and 0 disables it. This is emulates the fast serial bus connection as described at http://www.cs.tut.fi/~albert/Dev/burst/, with the wire to the tape port cut.

### 7.1.7 C64/128 system ROM settings

These settings can be used to control what system ROMs are loaded in the C64/128 emulators at startup. They cannot be changed from the menus.

#### 7.1.7.1 C64/128 system ROM resources

`KernalName`
  String specifying the name of the Kernal ROM (default ``kernal'`).
`BasicName`
  String specifying the name of the Basic ROM (default ``basic'`). In the C128 emulator, the ROM image must actually include the editor ROM too.
`ChargenName`
  String specifying the name of the character generator ROM (default ``chargen'`).
`KernalRev`
  String specifying the Kernal revision. This resource can be used to control what revision of the C64 kernal is being used; it cannot be changed at runtime. VICE is able to automatically convert one ROM revision into another, by manually patching the loaded image. This way, it is possible to use any of the ROM revisions without changing the ROM set. Valid values are:
  `0`
    Kernal revision 0;
  `3`
    Kernal revision 3;
  `sx`
  `67`
    Commodore SX-64 ROM;
  `100`
  `4064`
    Commodore 4064 (also known as "PET64" or "Educator 64") ROM.

#### 7.1.7.2 C64/128 system ROM command-line options

`-kernal NAME`
  Specify ``NAME'` as the Kernal ROM file (`KernalName`).
`-basic NAME`
  Specify ``NAME'` as the Basic ROM file (`BasicName`).
`-chargen NAME`
  Specify ``NAME'` as the character generator ROM file (`ChargenName`).
`-kernalrev REVISION`
  Specify Kernal revision (`KernalRev`).

### 7.1.8 C64 settings

#### 7.1.8.1 C64 resources

`GlueLogic`
  Integer specifying the type of emulated glue-log. (0: discrete, 1: custom IC)
`BurstMod`
  Boolean, enable/disable the Burst-Mode modification.
`PLUS60K`
  Boolean, enable/disable the PLUS60K RAM expansion
`PLUS60Kfilename`
  String specifying the filename of the PLUS60K RAM image.
`PLUS60Kbase`
  Integer that specifies the base address of the PLUS60K RAM expansion.
`PLUS256K`
  Boolean, enable/disable the PLUS256K RAM expansion
`PLUS256Kfilename`
  String specifying the filename of the PLUS256K RAM image.
`C64_256K`
  Boolean, enable/disable the 256K RAM expansion
`C64_256Kfilename`
  String specifying the filename of the 256K RAM image.
`C64_256Kbase`
  Integer that specifies the base address of the 256K RAM expansion.

#### 7.1.8.2 C64 command-line options

`-gluelogictype <type>`
  Set glue logic type (0 = discrete, 1 = 252535-01)
`-plus60k`
`+plus60k`
  Enable/Disable the PLUS60K RAM expansion
`-plus60kimage <name>`
  Specify name of PLUS60K image
`-plus60kbase <base address>`
  Base address of the PLUS60K expansion
`-plus256k`
`+plus256k`
  Enable/Disable the PLUS256K RAM expansion
`-plus256kimage <name>`
  Specify name of PLUS256K image
`-256k`
`+256k`
  Enable/Disable the 256K RAM expansion
`-256kimage <name>`
  Specify name of 256K image
`-256kbase <base address>`
  Base address of the 256K expansion

## 7.2 C128-specific commands and settings

### 7.2.1 VDC settings

#### 7.2.1.1 VDC resources

`VDC64KB`
  Boolean, enabled full 64k video ram.
`VDCRevision`
  Integer specifying the VDC hardware revision. (0: Rev 0, 1: Rev 1, 2: Rev 2)
`VDCVideoCache`
  Boolean specifying whether the video cache is turned on.
`VDCDoubleSize`
  Boolean specifying whether double-size mode is turned on.
`VDCDoubleScan`
  Boolean specifying whether double-scan mode is turned on.
`VDCStretchVertical`
  Boolean specifying whether vertical stretching is turned on.
`VDCPaletteFile`
  String specifying the name of the palette file being used. The ``.vpl'` extension is optional.
`VDCHwScale`
  Boolean specifying whether to enable or disable hardware scaling
`VDCFullscreenDevice`
  fullscreen device
`VDCFullscreen`
  Boolean specifying whether to use fullscreen mode or not.
`VDCFullscreenStatusbar`
  Boolean specifying whether to show the status bar in fullscreen mode or not.
`VDCXRANDRFullscreenMode`
  integer specifying XRANDR fullscreen mode
`VDCVidmodeFullscreenMode`
  integer specifying Vidmode fullscreen mode
`VDCExternalPalette`
  Boolean specifying whether to use external palette file or not.
`VDCColorSaturation`
  integer specifying saturation of internal calculated palette [1000] <0-2000>
`VDCColorContrast`
  integer specifying contrast of internal calculated palette [1000] <0-2000>
`VDCColorBrightness`
  integer specifying brightness of internal calculated palette [1000] <0-2000>
`VDCColorGamma`
  integer specifying gamma of internal calculated palette [2200] <0-4000>
`VDCColorTint`
  integer specifying tint of internal calculated palette [1000] <0-2000>
`VDCPALScanLineShade`
  integer specifying amount of scan line shading for the CRT emulation [667] <0-1000>
`VDCPALBlur`
  integer specifying amount of horizontal blur for the CRT emulation. [500] <0-1000>
`VDCPALOddLinePhase`
  integer specifying phase offset for color carrier in odd lines [750] <0-2000>
`VDCPALOddLineOffset`
  integer specifying phase for color carrier in odd lines [1250] <0-2000>
`VDCAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`VDCFilter`
  integer specifying rendering filter, 0:none, 1:CRT emulation, 2: scale2x

#### 7.2.1.2 VDC command-line options

`-VDCvcache`
`+VDCvcache`
  Enable/Disable the video cache
`-VDCdsize`
`+VDCdsize`
  Enable/Disable double size
`-VDCstretchvertical`
`+VDCstretchvertical`
  Enable/Disable vertical stretching
`-VDCdscan`
`+VDCdscan`
  Enable/Disable double scan
`-VDChwscale`
`+VDChwscale`
  Enable/Disable hardware scaling
`-VDCintpal`
  Use an internal calculated palette
`-VDCextpal`
  Use an external palette (file)
`-VDCpalette <name>`
  Specify name of file of external palette
`-VDCfulldevice <device>`
  Select fullscreen device
`-VDCXRANDRfullmode <mode>`
  Select fullscreen mode
`-VDCVidmodefullmode <mode>`
  Select fullscreen mode
`-VDC16KB`
  Set the VDC memory size to 16KB
`-VDC64KB`
  Set the VDC memory size to 64KB
`-VDCRevision <number>`
  Set VDC revision (0..2)
`-VDCsaturation <0-2000>`
  Set saturation of internal calculated palette [1000]
`-VDCcontrast <0-2000>`
  Set contrast of internal calculated palette [1000]
`-VDCbrightness <0-2000>`
  Set brightness of internal calculated palette [1000]
`-VDCgamma <0-4000>`
  Set gamma of internal calculated palette [2200]
`-VDCtint <0-2000>`
  Set tint of internal calculated palette [1000]
`-VDCoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines [1250]
`-VDCoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines [750]
`-VDCcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation. [500]
`-VDCcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation [667]
`-VDCaudioleak`
`+VDCaudioleak`
  Enable/Disable video to audio leak emulation.

### 7.2.2 C128 system ROM settings

#### 7.2.2.1 C128 system ROM resources

`ChargenIntName`
`ChargenDEName`
`ChargenFRName`
`ChargenSEName`
  Strings specifying the filename of the Chargen ROM images.
`KernalIntName`
`KernalDEName`
`KernalFIName`
`KernalFRName`
`KernalITName`
`KernalNOName`
`KernalSEName`
  Strings specifying the filename of the Kernal ROM images.
`BasicLoName`
`BasicHiName`
  Strings specifying the filename of the Basic ROM images.
`Kernal64Name`
  String specifying the filename of the C64 kernal ROM image.
`Basic64Name`
  String specifying the filename of the C64 basic ROM image.
`InternalFunctionROM`
  Boolean, enables the internal function ROM.
`InternalFunctionName`
  Strings specifying the filename of the ROM image for the internal function ROM.
`ExternalFunctionROM`
  Boolean, enables the external function ROM.
`ExternalFunctionName`
  Strings specifying the filename of the ROM image for the external function ROM.

#### 7.2.2.2 C128 system ROM command-line options

`-basic64 <name>`
  Specify name of C64 mode BASIC ROM image
`-kernal64 <name>`
  Specify name of C64 mode Kernal ROM image
`-basiclo <name>`
  Specify name of BASIC ROM image (lower part)
`-basichi <name>`
  Specify name of BASIC ROM image (higher part)
`-kernal <name>`
  Specify name of international Kernal ROM image
`-kernalde <name>`
  Specify name of German Kernal ROM image
`-kernalfi <name>`
  Specify name of Finnish Kernal ROM image
`-kernalfr <name>`
  Specify name of French Kernal ROM image
`-kernalit <name>`
  Specify name of Italian Kernal ROM image
`-kernalno <name>`
  Specify name of Norwegian Kernal ROM image
`-kernalse <name>`
  Specify name of Swedish Kernal ROM image
`-chargen <name>`
  Specify name of international character generator ROM image
`-chargde <name>`
  Specify name of German character generator ROM image
`-chargfr <name>`
  Specify name of French character generator ROM image
`-chargse <name>`
  Specify name of Swedish character generator ROM image
`-intfunc`
`+intfunc`
  Enable/Disable the internal Function ROM
`-intfrom <name>`
  Specify name of internal Function ROM image
`-extfunc`
`+extfunc`
  Enable/Disable the external Function ROM
`-extfrom <name>`
  Specify name of external Function ROM image

### 7.2.3 C128 settings

#### 7.2.3.1 C128 resources

`40/80ColumnKey`
  Boolean, status of the 40/80 columns key
`Go64Mode`
  Boolean, if true enter C64 mode on reset
`C128FullBanks`
  Boolean, enables Banks 2 and 3.
`MachineType`
  Integer specifying the C128 machine type. (0: Internatinal, 1: Finnish, 2: French, 3: German, 4: Italian, 5: Norwegian, 6: Swedish)

#### 7.2.3.2 C128 command-line options

`-40col`
  Activate 40 column mode
`-80col`
  Activate 80 column mode
`-go64`
  Always switch to C64 mode on reset
`+go64`
  Always switch to C128 mode on reset

## 7.3 C64DTV-specific commands and settings

This section lists the settings and commands that are C64DTV specific and thus are not present in the other emulators.

### 7.3.1 C64DTV ROM image

The DTV has a 2MB Flash chip which contains the kernal, basic and character set ROMs along with other data, such as games in the case of the original C64DTV ROM.

The image file is a dump of the flash chip. It is exactly 2MB (2097152 bytes).

If you do not have a suitable image file, an image using the C64 kernal, basic and charset is automatically created.

If writing to the C64DTV ROM is enabled, the image file is rewritten with the current data when exiting x64dtv.

Note that x64dtv tries to load the image file from the C64DTV directory first, and if it isn't found there, x64dtv tries to load it from the current directory. If you do not have ``dtvrom.bin'` in your C64DTV directory and writing to DTV ROM is enabled, the ``dtvrom.bin'` file is created to the current directory.

NOTE: The original C64DTV ROM has somewhat distorted colors, normally you should use a patched rom.

`-c64dtvromimage NAME`
  Specify ``NAME'` as the C64DTV ROM image
`-c64dtvromrw`
`+c64dtvromrw`
  Enable or disable writing to C64DTV ROM image

The trueflashfs option is analogous to True drive emulation. If disabled, any file access to the flash filesystem (device 1) will go to the local file system instead.

`-trueflashfs`
`+trueflashfs`
  Enable or disable true hardware flash file system
`-fsflash NAME`
  Specify ``NAME'` as directory for flash file system device

### 7.3.2 DTV revision

The DTV revision 2 has a bug in the Blitter. Using revision 3 is recommended. Emulation of DTV revision 2 including Blitter bug is intended for testing DTV software.

`-dtvrev REVISION`
  Specify DTV ``REVISION'` (2 or 3)

### 7.3.3 LumaFix

The PAL C64DTVs have wrong resistors in the video output circuit, which causes incorrect luminances. Several hardware solutions ("LumaFixes") have been developed to fix this flaw.

The fixed video output is emulated by selecting "New Luminances". The unmodified C64DTV video output can be emulated with "Old Luminances".

The default setting is "New Luminances".

### 7.3.4 Userport

The C64DTV userport emulation currently supports three devices: Hummer ADC, userport joystick and PS/2 mouse.

The joystick that controls either the Hummer ADC or userport joystick can be selected using the same parameter or menu option.

While using the Hummer ADC, joystick UP and DOWN are mapped to the Hummer buttons A and B respectively. LEFT and RIGHT set the ADCs output to 0 and 255. Centering the joystick results in the ADC value of 128.

Currently the Hummer ADC and userport joystick are mutually exclusive. This means that enabling one disables the other. PS/2 mouse emulation can be used simultaneously with either Hummer ADC or userport joystick.

`-hummeradc`
`+hummeradc`
  Enable/Disable Hummer ADC
`-ps2mouse`
`+ps2mouse`
  Enable or disable PS/2 mouse on userport

### 7.3.5 Debug

Debugging information on Blitter, DMA and Flash can be enabled with command line parameters. This can be useful for DTV software development.

`-dtvblitterlog`
`+dtvblitterlog`
  Enable or disable DTV Blitter log
`-dtvdmalog`
`+dtvdmalog`
  Enable or disable DTV DMA log
`-dtvflashlog`
`+dtvflashlog`
  Enable or disable DTV Flash log

### 7.3.6 Monitor DTV features

Currently the registers A, Y and X are registers R0, R1 and R2 regardless of the mapping, which can be seen and modified via the registers ACM and XYM.

The monitor can access all 2MB of RAM and 2MB of Flash, but only 64 kB at a time. The 64kB bank can be selected with "bank ram00".."ram1f" for RAM and "bank rom00".."rom1f" for Flash.

The "load" command can load large files (>64kB) correctly if the bank is set to "ramXX", where XX is the starting bank (usually "bank00").

### 7.3.7 DTV resources

`DtvRevision`
  Integer specifying the emulated DTV revision (2: DTV2, 3: DTV3)
`c64dtvromfilename`
  String specifying the filename of the DTV Flash ROM image.
`c64dtvromrw`
  Boolean that specifies whether the emulated Flash ROM is writeable.
`FSFlashDir`
  String specifying the working directory for the flash file system.
`FlashTrueFS`
  Boolean, enables true hardware flash file system.
`HummerADC`
  Boolean, enables Hummer ADC emulation.
`ps2mouse`
  Boolean, enables PS/2 Mouse emulation.
`DtvBlitterLog`
  Boolean, enables Blitter logging.
`DtvDMALog`
  Boolean, enables DMA logging.
`DtvFlashLog`
  Boolean, enables Flash ROM logging.

## 7.4 VIC20-specific commands and settings

This section lists the settings and commands that are VIC20-specific and thus are not present in the other emulators.

### 7.4.1 Using cartridge images

As with the C64 (see section 7.1.1 Using cartridges), it is possible to attach several types of cartridge images:

- 4 or 8 Kbyte cartridges located at $2000;
- 4 or 8 Kbyte cartridges located at $4000;
- 4 or 8 Kbyte cartridges located at $6000;
- 4 or 8 Kbyte cartridges located at $A000;
- 4 Kbyte cartridges located at $B000.

This can all be done via the "Attach cartridge image..." command in the left-button menu. It is also possible to let xvic "guess" the type of cartridge using "Smart-attach cartridge image...".

Notice that several cartridges are actually made up of two pieces (and two files), that need to be loaded separately at different addresses. In that case, you have to know the addresses (which are usually specified in the file name) and use the "attach" command twice.

A special kind of cartridge file is where the two files mentioned above are concatenated (with removing the two byte load address of the second image) into one 16k image. There are only few of those images, though. Normally the second part is located at $A000. Vice can now attach such concatenated files at the start address $2000, $4000, and $6000. The second half of such an image is moved to $A000. If you encounter 16k images that have the second half not at $A000 you can split the image into two halfs (i.e. one 8194 byte and one 8192 byte, because the first has the load address) and attach both files separately.

One cartridge that is currently only partially supported here is the VIC1112 IEEE488 interface. You have to load the ROM as a cartridge, but you also have to enable the IEEE488 hardware by menu.

### 7.4.2 VIC20 cartridge settings

#### 7.4.2.1 VIC20 cartridge resources

`CartridgeReset`
  Boolean specifying whether the machine should be resetted when a cartridge is changed.
`CartridgeType`
  Integer specifying the type of cartridge emulated.
`CartridgeFile`
  String specifying the filename of the image for the current cartridge.
`IOCollisionHandling`
  Integer specifying the way the I/O collisions should be handled, (0: error message and detach all involved carts, 1: error message and detach last attached involved carts, 2: warning in log and 'AND' the valid return values)
`GenericCartridgeFile2000`
`GenericCartridgeFile4000`
`GenericCartridgeFile6000`
`GenericCartridgeFileA000`
`GenericCartridgeFileB000`
  String specifying the name of the respective cartridge ROM images.
`FinalExpansionWriteBack`
  Boolean, if true write back the Flash ROM image file automatically, incase the contents changed, when detaching or quitting the emulator.
`VicFlashPluginWriteBack`
  Boolean, if true write back the Flash ROM image file automatically, incase the contents changed, when detaching or quitting the emulator.
`MegaCartNvRAMfilename`
  String specifying the filename of the MegaCart NvRAM image.
`MegaCartNvRAMWriteBack`
  Boolean, if true write back the NvRAM image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`TFEIOSwap`
  Boolean, swap/don't swap io mapping (map cart I/O to VIC20 I/O-2)
`SFXSoundExpanderIOSwap`
  Boolean, swap/don't swap io mapping (map cart I/O to VIC20 I/O-2)
`SFXSoundSamplerIOSwap`
  Boolean, swap/don't swap io mapping (map cart I/O to VIC20 I/O-2)
`GEORAMIOSwap`
  Boolean, swap/don't swap io mapping (map cart I/O-1 to VIC20 I/O-3 and cart I/O-2 to VIC20 I/O-2)
`SidCart`
  Boolean, enables SID cart emulation.
`SidAddress`
  Integer that specifies the base address of the emulated SID chip.
`SidClock`
  Integer specifying the clock rate used for the emulated SID chip (0: C64, 1: VIC-20)

#### 7.4.2.2 VIC20 cartridge command-line options

`-iocollision <method>`
  Select the way the I/O collisions should be handled, (0: error message and detach all involved carts, 1: error message and detach last attached involved carts, 2: warning in log and 'AND' the valid return values
`-cart2 <name>`
  Specify 4/8/16K extension ROM name at $2000
`-cart4 <name>`
  Specify 4/8/16K extension ROM name at $4000
`-cart6 <name>`
  Specify 4/8/16K extension ROM name at $6000
`-cartA <name>`
  Specify 4/8K extension ROM name at $A000
`-cartB <name>`
  Specify 4K extension ROM name at $B000
`-cartgeneric <name>`
  Specify generic extension ROM name
`-cartmega <name>`
  Specify Mega-Cart extension ROM name
`-mcnvramfile <name>`
  Set Mega-Cart NvRAM filename
`-mcnvramwriteback`
`+mcnvramwriteback`
  Enable/Disable Mega-Cart NvRAM writeback
`-cartfe <name>`
  Specify Final Expansion extension ROM name
`-fewriteback`
`+fewriteback`
  Enable/Disable Final Expansion write back to ROM file
`-cartfp <name>`
  Specify Vic Flash Plugin extension ROM name
`-fpwriteback`
`+fpwriteback`
  Enable/Disable Vic Flash Plugin write back to ROM file
`-ieee488`
`+ieee488`
  Enable/Disable VIC-1112 IEEE488 interface
`-sidcart`
`+sidcart`
  Enable/Disable SID Cartridge
`-tfeioswap`
`+tfeioswap`
  Swap/don't swap io mapping (map cart I/O to VIC20 I/O-2)
`-tfe`
`+tfe`
  Enable/Disable the TFE ("The Final Ethernet") unit
`-tfeif <name>`
  Set the system ethernet interface for TFE emulation
`-tferrnet`
`+tferrnet`
  Enable/Disable RRNet mode of TFE emulation
`-digimax`
`+digimax`
  Enable/Disable the DigiMAX cartridge
`-digimaxbase <base address>`
  Base address of the DigiMAX cartridge
`-sfxseioswap`
`+sfxseioswap`
  Swap/don't swap io mapping (map cart I/O to VIC20 I/O-2)
`-sfxse`
`+sfxse`
  Enable/Disable the SFX soundexpander cartridge
`-sfxsetype <type>`
  Set YM chip type (3526 / 3812)
`-sfxssioswap`
`+sfxssioswap`
  Swap/don't swap io mapping (map cart I/O to VIC20 I/O-2)
`-sfxss`
`+sfxss`
  Enable/Disable the SFX Sound Sampler cartridge
`-georamioswap`
`+georamioswap`
  Swap/don't swap io mapping (map cart I/O-1 to VIC20 I/O-3 and cart I/O-2 to VIC20 I/O-2)
`-georam`
`+georam`
  Enable/Disable the GEORAM expansion unit
`-georamimage <name>`
  Specify name of GEORAM image
`-georamimagerw`
`+georamimagerw`
  Allow/Disallow writing to GEORAM image
`-georamsize <size in KB>`
  Size of the GEORAM expansion unit

### 7.4.3 VIC settings

#### 7.4.3.1 VIC resources

`VICVideoCache`
  Boolean specifying whether the video cache is turned on.
`VICDoubleSize`
  Boolean specifying whether double-size mode is turned on.
`VICDoubleScan`
  Boolean specifying whether double-scan mode is turned on.
`VICPaletteFile`
  String specifying the name of the palette file being used. The ``.vpl'` extension is optional.
`VICHwScale`
  Boolean specifying whether to enable or disable hardware scaling
`VICFullscreenDevice`
  fullscreen device
`VICFullscreen`
  Boolean specifying whether to use fullscreen mode or not.
`VICFullscreenStatusbar`
  Boolean specifying whether to show the status bar in fullscreen mode or not.
`VICXRANDRFullscreenMode`
  integer specifying XRANDR fullscreen mode
`VICVidmodeFullscreenMode`
  integer specifying Vidmode fullscreen mode
`VICExternalPalette`
  Boolean specifying whether to use external palette file or not.
`VICColorSaturation`
  integer specifying saturation of internal calculated palette [1000] <0-2000>
`VICColorContrast`
  integer specifying contrast of internal calculated palette [1000] <0-2000>
`VICColorBrightness`
  integer specifying brightness of internal calculated palette [1000] <0-2000>
`VICColorGamma`
  integer specifying gamma of internal calculated palette [2200] <0-4000>
`VICColorTint`
  integer specifying tint of internal calculated palette [1000] <0-2000>
`VICPALScanLineShade`
  integer specifying amount of scan line shading for the CRT emulation [667] <0-1000>
`VICPALBlur`
  integer specifying amount of horizontal blur for the CRT emulation. [500] <0-1000>
`VICPALOddLinePhase`
  integer specifying phase offset for color carrier in odd lines [750] <0-2000>
`VICPALOddLineOffset`
  integer specifying phase for color carrier in odd lines [1250] <0-2000>
`VICAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`VICFilter`
  integer specifying rendering filter, 0:none, 1:CRT emulation, 2: scale2x
`VICBorderMode`
  integer specifying border display mode (0: normal, 1: full, 2: debug, 3:none)

#### 7.4.3.2 VIC command-line options

`-VICvcache`
`+VICvcache`
  Enable/disable the video cache (`VICVideoCache=1`, `VICVideoCache=0`).
`-VICdsize`
`+VICdsize`
  Enable/disable the double size mode (`VICDoubleSize=1`, `VICDoubleSize=0`).
`-VICdscan`
`+VICdscan`
  Enable/disable the double scan mode (`VICDoubleScan=1`, `VICDoubleScan=0`).
`-VIChwscale`
`+VIChwscale`
  Enable/Disable hardware scaling
`-VICfilter <Mode>`
  Select rendering filter, 0:none, 1:CRT emulation, 2: scale2x
`-VICpalette NAME`
  Specify `NAME` as the palette file (`VICPaletteFile`).
`-VICintpal`
  Use an internal calculated palette
`-VICextpal`
  Use an external palette (file)
`-VICfulldevice <device>`
  Select fullscreen device
`-VICXRANDRfullmode <mode>`
  Select fullscreen mode
`-VICVidmodefullmode <mode>`
  Select fullscreen mode
`-VICborders <mode>`
  Set VIC border display mode (0: normal, 1: full, 2: debug, 3:none)
`-VICsaturation <0-2000>`
  Set saturation of internal calculated palette [1000]
`-VICcontrast <0-2000>`
  Set contrast of internal calculated palette [1000]
`-VICbrightness <0-2000>`
  Set brightness of internal calculated palette [1000]
`-VICgamma <0-4000>`
  Set gamma of internal calculated palette [2200]
`-VICtint <0-2000>`
  Set tint of internal calculated palette [1000]
`-VICoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines [1250]
`-VICoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines [750]
`-VICcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation. [500]
`-VICcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation [667]
`-VICaudioleak`
`+VICaudioleak`
  Enable/Disable video to audio leak emulation.

### 7.4.4 Changing memory configuration

It is possible to change the VIC20 memory configuration in two ways: by enabling and/or disabling certain individual memory blocks, or by choosing one among a few typical memory configurations. The former can be done by modifying resource values directly or from the right-button menu; the latter can only be done from the menu.

There are 5 RAM expansion blocks in the VIC20, numbered 0, 1, 2, 3 and 5:

- block 0 (3 Kbytes at $0400-$0FFF);
- block 1 (8 Kbytes at $2000-$3FFF);
- block 2 (8 Kbytes at $4000-$5FFF);
- block 3 (8 Kbytes at $6000-$7FFF);
- block 5 (8 Kbytes at $A000-$BFFF).

These blocks are called expansion blocks because they are not present a stock ("unexpanded") machine. Each of them is associated to a boolean `RamBlockX` resource (where `X` is the block number) that specifies whether the block is enabled or not.

There are also some common memory configurations you can pick from the right-button menu:

- no RAM expansion blocks at all;
- all RAM expansion blocks enabled;
- 3K expansion (only block 0 is enabled);
- 8K expansion (only block 1 is enabled);
- 16K expansion (only blocks 1 and 2 are enabled);
- 24K expansion (only blocks 1, 2 and 3 are enabled).

#### 7.4.4.1 VIC20 memory configuration resources

`RAMBlock0`
`RAMBlock1`
`RAMBlock2`
`RAMBlock3`
`RAMBlock5`
  Booleans specifying whether RAM blocks 0, 1, 2, 3 and 5 must be enabled.

#### 7.4.4.2 VIC20 memory configuration command-line options

`-memory CONFIG`
  Specify memory configuration. It must be a comma-separated list of options, each of which can be one the following:
  - `none` (no extension);
  - `all` (all blocks);
  - `3k` (3k space in block 0);
  - `8k` (first 8k extension block);
  - `16k` (first and second 8k extension blocks);
  - `24k` (first, second and 3rd extension blocks);
  - `0`, `1`, `2`, `3`, `5` (memory in respective blocks);
  - `04`, `20`, `40`, `60`, `A0` (memory at respective address.
  For example,

      xvic -memory none

  gives an unexpanded VIC20. While

      xvic -memory 60,a0

  or

      xvic -memory 3,5

  enables memory in blocks 3 and 5, which is the usual configuration for 16k ROM modules.

### 7.4.5 VIC20 system ROM settings

These settings can be used to control what system ROMs are loaded in the VIC20 emulator at startup. They cannot be changed from the menus.

#### 7.4.5.1 VIC20 system ROM resources

`KernalName`
  String specifying the name of the Kernal ROM (default ``kernal'`).
`BasicName`
  String specifying the name of the Basic ROM (default ``basic'`).
`ChargenName`
  String specifying the name of the character generator ROM (default ``chargen'`).

#### 7.4.5.2 VIC20 system ROM command-line options

`-kernal NAME`
  Specify ``NAME'` as the Kernal ROM file (`KernalName`).
`-basic NAME`
  Specify ``NAME'` as the Basic ROM file (`BasicName`).
`-chargen NAME`
  Specify ``NAME'` as the character generator ROM file (`ChargenName`).
`-cart2 NAME`
`-cart4 NAME`
`-cart6 NAME`
`-cartA NAME`
`-cartB NAME`
  Specify ``NAME'` as the cartridge image to attach. (`CartridgeFile2000`, ..., `CartridgeFileB000`).

### 7.4.6 VIC20 settings

#### 7.4.6.1 VIC20 command-line options

`-OEMjoy`
`+OEMjoy`
  Enable/Disable the OEM userport joystick adapter

## 7.5 PLUS4-specific commands and settings

### 7.5.1 TED settings

#### 7.5.1.1 TED resources

`TEDVideoCache`
  Boolean specifying whether the video cache is turned on.
`TEDDoubleSize`
  Boolean specifying whether double-size mode is turned on.
`TEDDoubleScan`
  Boolean specifying whether double-scan mode is turned on.
`TEDPaletteFile`
  String specifying the name of the palette file being used. The ``.vpl'` extension is optional.
`TEDHwScale`
  Boolean specifying whether to enable or disable hardware scaling
`TEDFullscreenDevice`
  fullscreen device
`TEDFullscreen`
  Boolean specifying whether to use fullscreen mode or not.
`TEDFullscreenStatusbar`
  Boolean specifying whether to show the status bar in fullscreen mode or not.
`TEDXRANDRFullscreenMode`
  integer specifying XRANDR fullscreen mode
`TEDVidmodeFullscreenMode`
  integer specifying Vidmode fullscreen mode
`TEDExternalPalette`
  Boolean specifying whether to use external palette file or not.
`TEDColorSaturation`
  integer specifying saturation of internal calculated palette [1000] <0-2000>
`TEDColorContrast`
  integer specifying contrast of internal calculated palette [1000] <0-2000>
`TEDColorBrightness`
  integer specifying brightness of internal calculated palette [1000] <0-2000>
`TEDColorGamma`
  integer specifying gamma of internal calculated palette [2200] <0-4000>
`TEDColorTint`
  integer specifying tint of internal calculated palette [1000] <0-2000>
`TEDPALScanLineShade`
  integer specifying amount of scan line shading for the CRT emulation [667] <0-1000>
`TEDPALBlur`
  integer specifying amount of horizontal blur for the CRT emulation. [500] <0-1000>
`TEDPALOddLinePhase`
  integer specifying phase offset for color carrier in odd lines [750] <0-2000>
`TEDPALOddLineOffset`
  integer specifying phase for color carrier in odd lines [1250] <0-2000>
`TEDAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`TEDFilter`
  integer specifying rendering filter, 0:none, 1:CRT emulation, 2: scale2x
`TEDBorderMode`
  integer specifying border display mode (0: normal, 1: full, 2: debug, 3:none)

#### 7.5.1.2 TED command-line options

`-TEDvcache`
`+TEDvcache`
  Enable/Disable the video cache
`-TEDdsize`
`+TEDdsize`
  Enable/Disable double size
`-TEDdscan`
`+TEDdscan`
  Enable/Disable double scan
`-TEDfilter <Mode>`
  Select rendering filter, 0:none, 1:CRT emulation, 2: scale2x
`-TEDhwscale`
`+TEDhwscale`
  Enable/Disable hardware scaling
`-TEDintpal`
  Use an internal calculated palette
`-TEDextpal`
  Use an external palette (file)
`-TEDpalette <name>`
  Specify name of file of external palette
`-TEDfulldevice <device>`
  Select fullscreen device
`-TEDXRANDRfullmode <mode>`
  Select fullscreen mode
`-TEDVidmodefullmode <mode>`
  Select fullscreen mode
`-TEDborders <mode>`
  Set TED border display mode (0: normal, 1: full, 2: debug, 3:none)
`-TEDsaturation <0-2000>`
  Set saturation of internal calculated palette [1000]
`-TEDcontrast <0-2000>`
  Set contrast of internal calculated palette [1000]
`-TEDbrightness <0-2000>`
  Set brightness of internal calculated palette [1000]
`-TEDgamma <0-4000>`
  Set gamma of internal calculated palette [2200]
`-TEDtint <0-2000>`
  Set tint of internal calculated palette [1000]
`-TEDoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines [1250]
`-TEDoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines [750]
`-TEDcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation. [500]
`-TEDcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation [667]
`-TEDaudioleak`
`+TEDaudioleak`
  Enable/Disable video to audio leak emulation.

### 7.5.2 PLUS4 I/O extension settings

#### 7.5.2.1 PLUS4 I/O extension resources

`CartridgeReset`
  Boolean specifying whether the machine should be resetted when a cartridge is changed.
`DIGIBLASTER`
  Boolean, enables Digiblaster emulation.
`SpeechEnabled`
  Boolean, enables emulation of the V364 speech chip.
`SpeechImage`
  String specifying the filename of the speech ROM image.
`SidCart`
  Boolean, enables emulation of the SID-Cart
`SidAddress`
  Integer that specifies the base address of the emulated SID chip.
`SidClock`
  Integer specifying the clock rate used for the emulated SID chip (0: C64, 1: Plus4)
`SIDCartJoy`
  Boolean, enables emulation of the SID-Cart joystick

#### 7.5.2.2 PLUS4 I/O extension command-line options

`-cartreset`
`+cartreset`
  Do/don't reset machine if a cartridge is attached or detached
`-cart <Name>`
  Smart-attach cartridge image
`+cart`
  Disable default cartridge
`-digiblaster`
`+digiblaster`
  Enable/Disable the digiblaster add-on
`-sidcart`
`+sidcart`
  Enable/Disable SID Cartridge
`-sidcartjoy`
`+sidcartjoy`
  Enable/Disable SID cartridge joystick
`-speech`
`+speech`
  Enable/Disable the v364 speech add-on
`-speechrom <name>`
  Attach Speech ROM image

### 7.5.3 PLUS4 system ROM settings

#### 7.5.3.1 PLUS4 system ROM resources

`FunctionLowName`
  String specifying the filenames of the Lo Function ROM.
`FunctionHighName`
  String specifying the filenames of the High Function ROM.
`c1loName`
  String specifying the filenames of cartridge 1 Lo ROM.
`c1hiName`
  String specifying the filenames of cartridge 1 High ROM.
`c2loName`
  String specifying the filenames of cartridge 2 Lo ROM.
`c2hiName`
  String specifying the filenames of cartridge 2 High ROM.

#### 7.5.3.2 PLUS4 system ROM command-line options

`-functionlo <name>`
  Specify name of Function low ROM image
`-functionhi <name>`
  Specify name of Function high ROM image
`-c1lo <name>`
  Specify name of Cartridge 1 low ROM image
`-c1hi <name>`
  Specify name of Cartridge 1 high ROM image
`-c2lo <name>`
  Specify name of Cartridge 2 low ROM image
`-c2hi <name>`
  Specify name of Cartridge 2 high ROM image

### 7.5.4 PLUS4 settings

#### 7.5.4.1 PLUS4 resources

`H256K`
  Integer, enables the HANNES 256K RAM expansion (0: disabled, 1: 256kB, 2: 1024kB, 3: 4096kB)
`CS256K`
  Boolean, enables the CSORY 256K RAM expansion
`Acia1Enable`
  Boolean specifying whether the ACIA should be emulated or not.

#### 7.5.4.2 PLUS4 command-line options

`-ramsize <ramsize>`
  Specify size of RAM installed in kb (16/32/64)
`-h256k`
  Enable the HANNES 256K RAM expansion
`-h1024k`
  Enable the HANNES 1024K RAM expansion
`-h4096k`
  Enable the HANNES 4096K RAM expansion
`-cs256k`
  Enable the CSORY 256K RAM expansion
`-acia`
`+acia`
  Enable/Disable the ACIA emulation

## 7.6 PET-specific commands and settings

This section lists the settings and commands that are PET-specific and thus are not present in the other emulators.

### 7.6.1 Changing PET model settings

With `xpet`, it is possible to change at runtime the characteristics of the emulated PET so that it matches (or not) the ones of a certain PET model, and it is also possible to select from a common set of PET models so that all the features are selected accordingly.

The former is done by changing the following resources (via resource file, command line options or right-menu items):

`RamSize`
  Size of memory in kByte. 96k denotes a 8096, 128k a 8296.
`IOSize`
  Size of I/O area in Byte. Either 2048 or 256 for 8296.
`VideoSize`
  The number of columns on the screen (40 or 80). A 0 auto-detects this from the ROM.
`Ram9`
  The 8296 can map RAM into the address range $9***
`RamA`
  The 8296 can map RAM into the address range $A***
`SuperPET`
  This resource enables the SuperPET (MicroMainFrame 9000) I/O and 6809 CPU, and disables the 8x96 mappings.
`Basic1`
  If (by checksum) a version 1 kernal is detected, then the kernal ROM is patched to make the IEEE488 interface work.
`Basic1Chars`
  Exchanges some character in the character ROM that have changed between the first PET 2001 and all newer versions.
`EoiBlank`
  This resource enables the "blank screen on EOI" feature of the oldest PET 2001.
`DiagPin`
  Set the diagnositc pin on the PET userport (see below).
`ChargenName`
  Specify ``NAME'` as the character generator ROM file
`KernalName`
  Specify ``NAME'` as the kernal ROM file. This file contains the complete BASIC, EDITOR and KERNAL ROMs and is either 16k (BASIC 1 and 2) or 20k (BASIC 4) in size.
`EditorName`
  Specify ``NAME'` as the editor ROM file. This file contains an overlay for the editor ROM at $E000-$E7FF if necessary.
`RomModule9Name`
  Specify ``NAME'` as the $9*** Expansion ROM file. This file contains an expansion ROM image of 4k.
`RomModuleAName`
  Specify ``NAME'` as the $A*** Expansion ROM file. This file contains an expansion ROM image of 4k.
`RomModuleBName`
  Specify ``NAME'` as the $B*** Expansion ROM file. This file contains an expansion ROM image of 4k. This file overlays the lowest 4k of a BASIC 4 ROM.

Choosing a common PET model is done from the right-button menu instead, by choosing an item from the "Model defaults" submenu. Available models are:

- PET 2001-8N
- PET 3008
- PET 3016
- PET 3032
- PET 3032B
- PET 4016
- PET 4032
- PET 4032B
- PET 8032
- PET 8096
- PET 8296
- SuperPET

Notice that this will reset the emulated machine.

It is also possible to select the PET model at startup, with the `-model` command-line option: for example, ``xpet -model 3032'` will emulate a PET 3032 while ``xpet -model 8296'` will emulate a PET 8296.

### 7.6.2 CRTC Settings

#### 7.6.2.1 CRTC resources

`Crtc`
  Enables CRTC 6545 emulation (all models from 40xx and above)
`CrtcVideoCache`
  Boolean specifying whether the video cache is turned on.
`CrtcDoubleSize`
  Boolean specifying whether double-size mode is turned on.
`CrtcDoubleScan`
  Boolean specifying whether double-scan mode is turned on.
`CrtcStretchVertical`
  Boolean specifying whether vertical stretching is turned on.
`CrtcPaletteFile`
  String specifying the name of the palette file being used. The ``.vpl'` extension is optional.
`CrtcHwScale`
  Boolean specifying whether to enable or disable hardware scaling
`CrtcFullscreenDevice`
  fullscreen device
`CrtcFullscreen`
  Boolean specifying whether to use fullscreen mode or not.
`CrtcFullscreenStatusbar`
  Boolean specifying whether to show the status bar in fullscreen mode or not.
`CrtcXRANDRFullscreenMode`
  integer specifying XRANDR fullscreen mode
`CrtcVidmodeFullscreenMode`
  integer specifying Vidmode fullscreen mode
`CrtcExternalPalette`
  Boolean specifying whether to use external palette file or not.
`CrtcColorSaturation`
  integer specifying saturation of internal calculated palette [1000] <0-2000>
`CrtcColorContrast`
  integer specifying contrast of internal calculated palette [1000] <0-2000>
`CrtcColorBrightness`
  integer specifying brightness of internal calculated palette [1000] <0-2000>
`CrtcColorGamma`
  integer specifying gamma of internal calculated palette [2200] <0-4000>
`CrtcColorTint`
  integer specifying tint of internal calculated palette [1000] <0-2000>
`CrtcPALScanLineShade`
  integer specifying amount of scan line shading for the CRT emulation [667] <0-1000>
`CrtcPALBlur`
  integer specifying amount of horizontal blur for the CRT emulation. [500] <0-1000>
`CrtcPALOddLinePhase`
  integer specifying phase offset for color carrier in odd lines [750] <0-2000>
`CrtcPALOddLineOffset`
  integer specifying phase for color carrier in odd lines [1250] <0-2000>
`CrtcAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`CrtcFilter`
  integer specifying rendering filter, 0:none, 1:CRT emulation, 2: scale2x

#### 7.6.2.2 CRTC command-line options

`-Crtcvcache`
`+Crtcvcache`
  Enable/Disable the video cache
`-Crtcdsize`
`+Crtcdsize`
  Enable/Disable double size
`-CRTCstretchvertical`
`+CRTCstretchvertical`
  Enable/Disable vertical stretching
`-Crtcdscan`
`+Crtcdscan`
  Enable/Disable double scan
`-Crtcfilter <Mode>`
  Select rendering filter, 0:none, 1:CRT emulation, 2: scale2x
`-Crtchwscale`
`+Crtchwscale`
  Enable/Disable hardware scaling
`-Crtcintpal`
  Use an internal calculated palette
`-Crtcextpal`
  Use an external palette (file)
`-Crtcpalette NAME`
  Specify `NAME` as the palette file (`CrtcPaletteFile`).
`-Crtcfulldevice <device>`
  Select fullscreen device
`-CrtcXRANDRfullmode <mode>`
  Select fullscreen mode
`-CrtcVidmodefullmode <mode>`
  Select fullscreen mode
`-Crtcsaturation <0-2000>`
  Set saturation of internal calculated palette [1000]
`-Crtccontrast <0-2000>`
  Set contrast of internal calculated palette [1000]
`-Crtcbrightness <0-2000>`
  Set brightness of internal calculated palette [1000]
`-Crtcgamma <0-4000>`
  Set gamma of internal calculated palette [2200]
`-Crtctint <0-2000>`
  Set tint of internal calculated palette [1000]
`-Crtcoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines [1250]
`-Crtcoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines [750]
`-Crtccrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation. [500]
`-Crtccrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation [667]
`-Crtcaudioleak`
`+Crtcaudioleak`
  Enable/Disable video to audio leak emulation.

### 7.6.3 PET I/O extension settings

#### 7.6.3.1 PET I/O extension resources

`PETREU`
  Boolean specifying whether PET REU emulation is enabled.
`PETREUfilename`
  String specifying the filename of the PET REU image.
`PETREUsize`
  Integer specifying the size of the emulated PET REU in KB (128, 512, 1024, 2048)
`PETDWW`
  Boolean specifying whether DWW emulation is enabled.
`PETDWWfilename`
  String specifying the filename of the DWW image RAM image.
`UserportDAC`
  Boolean specifying whether userport DAC emulation is enabled.
`SidCart`
  Boolean specifying whether SID Cart emulation is enabled.
`SidAddress`
  Integer that specifies the base address of the emulated SID chip.
`SidClock`
  Integer specifying the clock rate used for the emulated SID chip (0: C64, 1: PET)

#### 7.6.3.2 PET I/O extension command-line options

`-petreu`
`+petreu`
  Enable or disable the PET Memory Expansion Unit.
`-petreuimage <name>`
  Specify name of PET Ram and Expansion Unit image
`-petreuramsize <size in KB>`
  Size of the PET Ram and Expansion Unit
`-userportdac, +userportdac`
  Enable or disable the userport DAC.
`-petdww`
`+petdww`
  Enable/Disable the PET DWW hi-res board
`-petdwwimage <name>`
  Specify name of PET DWW image
`-sidcart`
`+sidcart`
  Enable/Disable SID Cartridge

### 7.6.4 PET system ROM settings

#### 7.6.4.1 PET system ROM resources

`H6809RomAName`
`H6809RomBName`
`H6809RomCName`
`H6809RomDName`
`H6809RomEName`
`H6809RomFName`
  Strings specifying the filenames of the respective H6809 ROM images, relevant for the SuperPET.

#### 7.6.4.2 PET system ROM command-line options

`-kernal NAME`
  Specify ``NAME'` as the Kernal/BASIC ROM file (`KernalName`).
`-editor NAME`
  Specify ``NAME'` as the editor ROM file (`EditorName`).
`-chargen NAME`
  Specify ``NAME'` as the character generator ROM file (`ChargenName`).
`-rom9 NAME, -romA NAME, -romB NAME`
  Specify ``NAME'` as the ROM image file for the respective cartridge areas (`RomModule9Name`, `RomModuleAName`, `RomModuleBName`).
`-6809romA <Name>`
  Specify 4K to 24K ROM file name at $A000 for 6809
`-6809romB <Name>`
  Specify 4K to 20K ROM file name at $B000 for 6809
`-6809romC <Name>`
  Specify 4K to 16K ROM file name at $C000 for 6809
`-6809romD <Name>`
  Specify 4K to 12K ROM file name at $D000 for 6809
`-6809romE <Name>`
  Specify 2K or 8K ROM file name at $E000 for 6809
`-6809romF <Name>`
  Specify 4K ROM file name at $F000 for 6809

### 7.6.5 The PET diagnostic pin

It is possible to enable or disable emulation of the PET diagnostic pin via the `DiagPin` resource, or the "PET userport diagnostic pin" item in the right-button menu.

When the diagnostic pin is set, the Kernal does not try to initialize the BASIC, but directly jumps into the builtin machine monitor.

### 7.6.6 PET settings

#### 7.6.6.1 PET resources

`CPUswitch`
  Integer specifying the status of the SuperPET CPU switch (0: 6502, 1: 6809, 2: PROG)

#### 7.6.6.2 PET command line options

These are the commandline options specific for the CBM-II models.

`-model MODEL`
  Specify the PET model you want to emulate.
`-petram9, +petram9`
  Switch on RAM mapping on addresses $9000-$9fff (`Ram9`).
`-petramA, +petramA`
  Switch on RAM mapping on addresses $a000-$afff (`RamA`).
`-superpet, +superpet`
  Enable/Disable SuperPET I/O and CPU emulation (`SuperPET`).
`-cpu6502`
  Set SuperPET CPU switch to '6502'
`-cpu6809`
  Set SuperPET CPU switch to '6809'
`-cpuprog`
  Set SuperPET CPU switch to 'Prog'
`-basic1, +basic1`
  Enable/Disable patching the IEEE488 section of the PET2001 ROM when detected (`Basic1`).
`-basic1char, +basic1char`
  Enable/Disable PET 2001 character generator (`Basic1Chars`).
`-eoiblank, +eoiblank`
  Enable/Disable EOI blanking the screen (`EoiBlank`).
`-diagpin`
`+diagpin`
  Enable (`DiagPin=1`) or disable (`DiagPin=0`) the diagnostic pin at the PET userport.

### 7.6.7 Changing screen colors

It is also possible to choose what color set is used for the emulation window. This is done by specifying a palette file name (see section 4.3 Palette files) in the `PaletteName` resource. The menu provides the following values:

- `green.vpl` (default, "green)"), the good old green-on-black feeling;
- `amber.vpl` ("amber"), an amber phosphor lookalike;
- `white.vpl` ("white"), simple white-on-black palette.

## 7.7 CBM-II-specific commands and settings

This section lists the settings and commands that are CBM-II-specific and thus are not present in the other emulators.

### 7.7.1 Changing CBM-II model

With `xcbm2` and `xcbm5x0`, it is possible to change at runtime the characteristics of the emulated CBM so that it matches (or not) the ones of a certain CBM model, and it is also possible to select from a common set of CBM models so that all the features are selected accordingly.

The former is done by changing the following resources (via resource file, command line options or right-menu items):

`RamSize`
  Size of memory in kByte. Possible values are 128, 256, 512 and 1024
`Ram08`
`Ram1`
`Ram2`
`Ram4`
`Ram6`
`RamC`
  Expanded CBM-II models could map RAM to the expansion ROM areas at $0800-$0fff, $1000-$1fff, $2000-$3FFF, $4000-$5FFF, $6000-$7FFF and $c000-$cfff respectively.
`Cart1Name`
`Cart2Name`
`Cart4Name`
`Cart6Name`
  Specify ``NAME'` as the $1000-$1FFF, $2000-$3FFF, $4000-$5FFF or $6000-$6FFF Expansion ROM file. This file contains an 8k ROM dump.
`ModelLine`
  The CBM-II business models have two hardcoded lines at one of the I/O ports. From those lines the kernal determines how it should init the CRTC video chip for either 50Hz (Europe) or 60Hz (North America), and either for 8 (C6x0) or 14 (C7x0) scanlines per character. 0 = CBM 7x0 (50Hz), 1 = 60Hz C6x0, 2 = 50Hz C6x0).

Choosing a common CBM-II model is done from the right-button menu instead, by choosing an item from the "Model defaults" submenu. Available models are:

- C510 PAL or NTSC (128k RAM)
- C610 PAL or NTSC (128k RAM)
- C620 (256k RAM)
- C620+ (1024k RAM, expanded) PAL or NTSC
- C710 (128k RAM) NTSC
- C720 (256k RAM) NTSC
- C720+ (1024k RAM, expanded) NTSC

Notice that this will reset the emulated machine.

Warning: At this time the 5x0 and other machines are implemented in different executables, so switching between those models is not possible.

It is also possible to select the CBM model at startup, with the `-model` command-line option: for example, ``xcbm2 -model 610'` will emulate a CBM 610 while ``xcbm2 -model 620'` will emulate a CBM 620.

### 7.7.2 CBM-II system ROM settings

#### 7.7.2.1 CBM-II system ROM resources

#### 7.7.2.2 CBM-II system ROM command line options

`-kernal NAME`
  Specify ``NAME'` as the Kernal ROM file (`KernalName`).
`-basic NAME`
  Specify ``NAME'` as the Basic ROM file (`BasicName`).
`-chargen NAME`
  Specify ``NAME'` as the character generator ROM file (`ChargenName`).
`-cart1 <name>`
  Specify ``NAME'` as the ROM image file for the cartridge area $1000-$1FFF (`Cart1Name`).
`-cart2 <name>`
  Specify ``NAME'` as the ROM image file for the cartridge area $2000-$3fff (`Cart2Name`).
`-cart4 <name>`
  Specify ``NAME'` as the ROM image file for the cartridge area $4000-$5fff (`Cart4Name`).
`-cart6 <name>`
  Specify ``NAME'` as the ROM image file for the cartridge area $6000-$7fff (`Cart6Name`).

### 7.7.3 CBM-II command line options

These are the commandline options specific for the CBM-II models.

`-ramsize <ramsize>`
  Specify size of RAM (64/128/256/512/1024 kByte)
`-ram08`
`+ram08`
  Enable/Disable RAM mapping in bank 15 on addresses $0800-$0FFF resp (`Ram08`).
`-ram1`
`+ram1`
  Enable/Disable RAM mapping in bank 15 on addresses $1000-$1FFF resp (`Ram1`).
`-ram2`
`+ram2`
  Enable/Disable RAM mapping in bank 15 on addresses $2000-$3FFF resp (`Ram2`).
`-ram4`
`+ram4`
  Enable/Disable RAM mapping in bank 15 on addresses $4000-$5FFF resp (`Ram4`).
`-ram6`
`+ram6`
  Enable/Disable RAM mapping in bank 15 on addresses $6000-$7FFF resp (`Ram6`).
`-ramC`
`+ramC`
  Enable/Disable RAM mapping in bank 15 on addresses $C000-$CFFF resp (`RamC`).
`-model <modelnumber>`
  Specify CBM-II model to emulate

### 7.7.4 Changing screen colors

It is also possible to choose what color set is used for the emulation window. This is done by specifying a palette file name (see section 4.3 Palette files) in the `PaletteName` resource. The menu provides the following values:

- `green.vpl` (default, "green"), the good old green-on-black feeling;
- `amber.vpl` ("amber"), an amber phosphor lookalike;
- `white.vpl` ("white"), simple white-on-black palette.

## 7.8 VSID-specific commands and settings

### 7.8.1 VSID settings

#### 7.8.1.1 VSID resources

`PSIDKeepEnv`
  Boolean that specifies whether to override PSID settings for Video standard and SID model.
`PSIDTune`
  Integer that specifies the currently played sub tune.

#### 7.8.1.2 VSID command-line options

`-keepenv`
  Override PSID settings for Video standard and SID model
`-tune <number>`
  Specify PSID tune <number>

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