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

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.

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

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

Use cartconv to convert .bin images to .crt format.

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 will have to select the correct type of cartridge first, or 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 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).

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:

- CMD RAMlink
- IEEE-488 Interface (http://www.funet.fi/pub/cbm/schematics/cartridges/c64/ieee-488/eprom.bin)
- IEEE Flash 64! interface
- 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 4KiB, 8KiB and 16KiB game- and ultimax cartridges
- Action Replay V5
- Action Replay MK2
- Action Replay MK3
- Action Replay MK4
- Atomic Power
- BIS-Plus
- Blackbox V3
- Blackbox V4
- Blackbox V8
- Blackbox V9
- BMP Data Turbo 2000
- C64 Games System
- Capture
- Comal 80
- Dela EP64
- Dela EP7x8
- Dela EP256
- Diashow-Maker
- Dinamic
- Drean
- Easy Calc
- EasyFlash
- Epyx FastLoad
- EXOS
- The Final Cartridge
- The Final Cartridge III
- Final Cartridge Plus
- Formel 64
- Freeze Frame
- Freeze Frame MK2
- Freeze Machine
- Fun Play / Powerplay
- Game Killer
- GMod2
- GMod3
- Hyper-BASIC
- IDE64 (http://www.ide64.org)
- KCS Power Cartridge
- Kingsoft
- Lt. Kernal Host Adaptor
- MACH 5
- Magic Desk
- Magic Formel
- MAX Basic
- Mikro Assembler
- MMC Replay
- Ocean
- Pagefox
- Prophet64
- REX 256KiB EPROM Cart
- REX RAM-Floppy
- REX Utility
- Retro Replay
- RGCD
- RR-Net MK3
- ROSS
- SD-BOX
- Silverrock 128
- Simons' BASIC
- Snapshot 64
- Stardos
- Structured BASIC
- Super Explode V5.0
- Super Games
- Super Snapshot V4
- Super Snapshot V5
- Turtle Graphics II
- Universal Cartridge
- Warp Speed
- Westermann Learning
- Zaxxon
- ZIPP-CODE 48

#### 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
- DS12C887 RTC
- 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, Swiftlink 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 an IEEE interface for the emulator. You can use the Commodore IEEE-488 interface, or the Skyles Electric Works IEEE Flash! 64 interface.

To use the Commodore interface, follow these 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.

To use the IEEE Flash! 64 interface, follow these steps:

Download the IEEE Flash! 64 ROM image (uploaded to the CBM archives but not yet in place). Set the path to the ROM image using the UI under Cartridges/IEEE Flash! 64 settings, the commandline argument -ieeeflash64image, or the IEEEFlash64Image resource setting. Then you can Enable the interface and choose which devices to route to the IEEE bus using the other IEEE Flash! 64 settings. With this interface, you can mix and match IEC and IEEE drives.

#### 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.1.9 CMD RAMLink

The CMD RAMLink can operate standalone using its own RAMCard or with an REU, GEORAM, or RAMDrive (only one) which is inserted into the RAM port. The RAMLink is essentially a builtin high capacity RAMDOS with battery backup support. This "backup" support can be emulated through the use of images. Initially it will "format" the memory so each has their own native parition on drive 16. Paritions and the device number can be changed with the CMD "RAM-tools". The latest RAMLink firmware (2.01) can not handle REU sizes greater than 8 MiB, or GEORAM sizes beyond 2 MiB, as the firmware will hang on size detection.

The RAMLink also features a parallel port (similar to IEEE-488 interface) which allows faster transfers to the CMD HD series drives. The "cabling" is automatically performed by VICE and the RAMLink firmware will detect the cable presence and use it automatically. However, some programs may have compatibility issues (notably the CMD HD-tools with older HD boot roms). When connecting an empty image, or an image without a HD-DOS signature, the cable will be automatically disconnected. Although documented in the RAMLink manual, the JiffyDOS command "@P0" to disable, or "@P1" to enable parallel transfers will hang as they try to communicate the HD boot rom and fail. To resolve this, use the "Drive#ParallelCable" or command line switch "-parallel#" and set it to 0, to disable transfers; any other value will enable them.

The RAMLink features an "Enable/Disable" switch that can be changed at anytime using the GUI options. Prior to disabling, the JiffyDOS "@Q" command should be issued to remove the JiffyDOS system vectors. See the manual for how to reactivate JiffyDOS. It is not recommended to change the REU, GEORAM, or RAMCard size as the CMD RAMDOS was not designed to detect this. Any changes should be followed by a machine reset.

The RAMLink also has a "Normal/Direct" switch which can also be changed at anytime. Normal, the default, only allows RAMLink access to the RAM port (REU, GEORAM, and RAMDrive); their registers are hidden otherwise. Direct exposes their registers all the time. This can lead to potential data corruption of the data on the RAM expansion devices as RAMLink can not guarantee its access is exclusive.

RAMLink is also compatible with the CMD SuperCPU 64, however it requires the official SuperCPU ROM (2.04) along with the RAMLink ROM to properly detect and utilize all the RAMLink features.

### 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 reset when a cartridge is changed.
`CartridgeType`
  Integer specifying the type of the default cartridge. The following cartridge types are valid:
  - - 6: Ultimax
  - - 3: Generic 8KiB
  - - 2: Generic 16KiB
  - - 1: None
  - 0: CRT
  - 1: Action Replay V5
  - 2: KCS Power Cartridge
  - 3: The Final Cartridge III
  - 4: Simons' BASIC
  - 5: Ocean
  - 6: Expert Cartridge
  - 7: Fun Play
  - 8: Super Games
  - 9: Atomic Power / Nordic Power
  - 10: Epyx FastLoad
  - 11: Westermann Learning
  - 12: REX Utility
  - 13: The Final Cartridge
  - 14: Magic Formel
  - 15: C64 Games System
  - 16: Warp Speed
  - 17: Dinamic
  - 18: Zaxxon
  - 19: Magic Desk
  - 20: Super Snapshot V5
  - 21: Comal 80
  - 22: Structured BASIC
  - 23: ROSS
  - 24: Dela EP64
  - 25: Dela EP7x8
  - 26: Dela EP256
  - 27: REX 256KiB EPROM Cart
  - 28: Mikro Assembler
  - 29: Final Cartridge Plus
  - 30: Action Replay MK4
  - 31: Stardos
  - 32: EasyFlash
  - 33: EasyFlash Xbank
  - 34: Capture
  - 35: Action Replay MK3
  - 36: Retro Replay
  - 37: MMC64
  - 38: MMC Replay
  - 39: IDE64
  - 40: Super Snapshot V4
  - 41: IEEE-488 Interface
  - 42: Game Killer
  - 43: Prophet64
  - 44: EXOS
  - 45: Freeze Frame
  - 46: Freeze Machine
  - 47: Snapshot 64
  - 48: Super Explode V5.0
  - 49: Magic Voice
  - 50: Action Replay MK2
  - 51: MACH 5
  - 52: Diashow-Maker
  - 53: Pagefox
  - 54: Kingsoft
  - 55: Silverrock 128KiB Cartridge
  - 56: Formel 64
  - 57: RGCD
  - 58: RR-Net MK3
  - 59: EasyCalc
  - 60: GMod2
  - 61: MAX Basic
  - 62: GMod3
  - 63: ZIPP-CODE 48
  - 64: Blackbox V8
  - 65: Blackbox V3
  - 66: Blackbox V4
  - 67: REX RAM-Floppy
  - 68: BIS-Plus
  - 69: SD-BOX
  - 70: MultiMAX
  - 71: Blackbox V9
  - 72: Lt. Kernal Host Adaptor
  - 73: RAMLink
  - 74: Drean
  - 75: IEEE Flash! 64
  - 76: Turtle Graphics II
  - 77: Freeze Frame MK2
  - 78: Partner 64
  - 79: Hyper-BASIC
  - 80: Universal Cartridge 1
  - 81: Universal Cartridge 1.5
  - 82: Universal Cartridge 2
`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.
`DQBBSize`
  Integer specifying the RAM size (16, 32, 64, 128, 256kiB).
`DQBBMode`
  Boolean specifying the position of the slide/mode switch (0: C128, 1: C64).
`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.
`EasyFlashOptimizeCRT`
  Boolean, if true omit empty (filled with $ff) banks from the .crt image when writing.
`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`
  Integer specifying the state of the expert cartridge switch. (0: off, 1: prg, 2: on)
`GMod2EEPROMImage`
  String that specifies the name of the raw GMod2 EEPROM image.
`GMod2FlashWrite`
  Boolean that specifies wether writes to GMod2 EEPROM image are enabled.
`GMod2EEPROMRW`
  Boolean that specifies wether the GMod2 ROM is saved at exit
`GMod3FlashWrite`
  Boolean that specifies wether changes to GMod3 EEPROM image are written back to the cartridge image.
`IDE64version`
  Integer specifying whether the emulated card version is V3.4, V4.1 or V4.2. This is automatically detected most of the time for .crt cartridge images.
`IDE64Image1`
`IDE64Image2`
`IDE64Image3`
`IDE64Image4`
  Strings 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`
  Integers specifying the number of cylinders for the four harddisk images. (1..65535)
`IDE64Heads1`
`IDE64Heads2`
`IDE64Heads3`
`IDE64Heads4`
  Integers specifying the number of heads for the four harddisk images. (1..16)
`IDE64Sectors1`
`IDE64Sectors2`
`IDE64Sectors3`
`IDE64Sectors4`
  Integers specifying the number of sectors for the four harddisk images. (1..63)
`IDE64AutodetectSize1`
`IDE64AutodetectSize2`
`IDE64AutodetectSize3`
`IDE64AutodetectSize4`
  Booleans 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.
`IDE64USBServerAddress`
  String specifying the address the IDE64 USB server listens to (ip4://127.0.0.1:64245)
`IDE64USBServer`
  Boolean specifying whether the IDE64 USB server is enabled.
`IDE64RTCSave`
  Boolean specifying whether the IDE64 RTC data should be saved when changed or not.
`IDE64ClockPort`
  Integer that specifies the enabled IDE64 Clockport device. (0: None, 2: RRNet, 4: MP3@64)
`SBDIGIMAX`
  Boolean that specifies whether the Short Bus DigiMAX expansion is enabled.
`SBDIGIMAXbase`
  Integer specifying the Base address of the Short Bus DigiMAX expansion. (0xDE40/0xDE48)
`SBETFE`
  Boolean specifying whether the Short Bus ETFE expansion is enabled
`SBETFEbase`
  Integer specifying the Base address of the Short Bus ETFE expansion. ($de00, $de10, $df00)
`IEEE488`
  Boolean specifying whether the IEEE488 interface should be emulated or not.
`IEEE488Image`
  String specifying the filename of the IEEE488 ROM image.
`IEEEFlash64`
  Boolean specifying whether the IEEE Flash! 64 interface should be emulated or not.
`IEEEFlash64Image`
  String specifying the filename of the IEEE Flash! 64 KERNAL ROM image.
`IEEEFlash64Dev8`
`IEEEFlash64Dev910`
`IEEEFlash64Dev4`
  Booleans indicating whether to route devices 8, 9 and 10, and 4 respectively to the IEEE bus (1) or IEC bus (0).
`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.
`LTKimage0`
`LTKimage1`
`LTKimage2`
`LTKimage3`
`LTKimage4`
`LTKimage5`
`LTKimage6`
  Strings specifying the full path to up to seven harddisk images. If a file is non-existing the drive is not emulated. The first drive is necessary.
`LTKio`
  Integer specifying the Base address of the I/O interface. (1: $de00, 2: $df00) Default is $df00.
`LTKport`
  Integer specifying the port number in multiplexed multi-computer/single-disk configurations. (0 to 15) Default is 0, the master.
`LTKserial`
  String specifying the serial number. It must be in the form "00000000" with all numeric digits. Default is 87000000. LTK DOS install disks are locked to their respective LTK host adapor boot ROM. This setting will override the boot ROM value. The floppy disk serial number can be changed with a sector editor on track 18, sector 18.
`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 specifying the MMC64 hardware revision. (0: Revision A, 1: Revision 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)
`MMC64ClockPort`
  Integer that specifies the clockport device used. (0: None, 1: ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII SID)
`MMCRCardImage`
  String specifying the filename of the SD-Card image used by the MMCR emulation.
`MMCREEPROMImage`
  String specifying the filename of the MMCR EEPROM image.
`MMCRRescueMode`
  Boolean specifying 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 specifying 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 specifying if the MMCR EEPROM image is writeable.
`MMCRClockPort`
  Integer that specifies the clockport device. (0: None, 1: ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII SID)
`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 KiB. (64, 128)
`RAMLINK`
  Boolean specifying whether the RAMLink module should be emulated or not. This option emulates the behavior of the enable/disable switch on the unit.
`RAMLINKBIOSfilename`
  String specifying the filename of the RAMLINK ROM image.
`RAMLINKfilename`
  String specifying the filename of the RAMCard image.
`RAMLINKImageWrite`
  Boolean, if true write back the RAMCard image file automatically, in case the RAM contents changed, when detaching or quitting the emulator.
`RAMLINKsize`
  Integer specifying the size of the RAMCard in MiB. (0..16; default is 0)
`RAMLINKmode`
  Integer specifying the mode of the RAMLink. "1", the default, (Normal) only allows RAMLink access to the RAM port (REU, GEORAM, and RAMDrive); their registers are hidden otherwise. "0" (Direct) exposes their registers all the time. This option emulates the behavior of the Normal/Direct switch on the unit.
`RAMLINKRTCSave`
  Boolean specifying whether the RTC data should be saved when changed or not.
`RRFfilename`
  String that specifies the filename for the REX RAM-Floppy RAM image
`RRFImageWrite`
  Boolean, if true write back the REX RAM-Floppy RAM image file automatically, incase the contents changed, when detaching or quitting the emulator.
`RGCDrevision`
  Integer specifying the RGCD-cartridge hardware variant. (0: RGCD 64k, 1: Hucky's EPROM Cartridge)
`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.
`RRClockPort`
  Integer that specifies the clockport device. (0: None, 1: ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII SID)
`RRNETMK3_flashjumper`
  Boolean specifying whether the RRNETMK3 Flash Jumper is set.
`RRNETMK3_bios_write`
  Boolean specifying whether to save the RRNETMK3 bios when changed.
`SSRamExpansion`
  Boolean, if true enable the 32KiB addon RAM of the Supersnapshot V5

#### 7.1.2.2 C64 cartridge command-line options

`-iocollision <method>`
  Select the way the I/O collisions should be handled (`IOCollisionHandling`). (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 (`CartridgeReset=1`, `CartridgeReset=0`).
`-cart8 <name>`
  Attach generic 8KiB cartridge image.
`-cart16 <name>`
  Attach generic 16KiB cartridge image.
`-cartultimax <name>`
  Attach generic 16KiB Ultimax cartridge image.
`-cartcrt <name>`
  Attach CRT cartridge image.
`-cartap <name>`
  Attach raw 32KiB Atomic Power cartridge image.
`-cartar2 <name>`
  Attach raw 16KiB Action Replay MK2 cartridge image.
`-cartar3 <name>`
  Attach raw 16KiB Action Replay MK3 cartridge image.
`-cartar4 <name>`
  Attach raw 32KiB Action Replay MK4 cartridge image.
`-cartar5 <name>`
  Attach raw 32KiB Action Replay cartridge image.
`-cartbis <name>`
  Attach raw 8KiB BIS-Plus cartridge image.
`-cartbb3 <name>`
  Attach raw 8KiB Blackbox V3 cartridge image.
`-cartbb4 <name>`
  Attach raw 16KiB Blackbox V4 cartridge image.
`-cartbb8 <name>`
  Attach raw 32/64KiB Blackbox V8 cartridge image.
`-cartbb9 <name>`
  Attach raw 32KiB Blackbox V9 cartridge image.
`-cartbdt <name>`
  Attach raw 16KiB BMP Data Turbo 2000 cartridge image.
`-cartcap <name>`
  Attach raw 8KiB Capture cartridge image.
`-cartcomal <name>`
  Attach raw 64KiB 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 128KiB Dinamic cartridge image.
`-cartdsm <name>`
  Attach raw 8KiB Diashow-Maker cartridge image.
`-cartdqbb <name>`
  Attach raw 16KiB Double Quick Brown Box cartridge image.
`-dqbb`
`+dqbb`
  Enable/disable Double Quick Brown Box (`DQBB=1`, `DQBB=0`).
`-dqbbsize <size>`
  Specify the RAM size (16, 32, 64, 128, 256kiB) (`DQBBsize`).
`-dqbbmode <mode>`
  Specify the position of the slide/mode switch (`DQBBmode=0`: C128, `DQBBmode=1`: C64).
`-dqbbimage <name>`
  Specify Double Quick Brown Box filename (`DQBBfilename`).
`-dqbbimagerw`
`+dqbbimagerw`
  Allow/disallow writing to DQBB image (`DQBBImageWrite=1`, `DQBBImageWrite=0`).
`-carteasy <name>`
  Attach raw EasyFlash cartridge image.
`-carteasycalc <name>`
  Attach raw 24KiB Easy Calc Result cartridge image
`-easyflashjumper`
`+easyflashjumper`
  Enable/disable EasyFlash jumper (`EasyFlashJumper=1`, `EasyFlashJumper=0`).
`-easyflashcrtwrite`
`+easyflashcrtwrite`
  Allow/Disallow writing to EasyFlash .crt image (`EasyFlashWriteCRT=1`, `EasyFlashWriteCRT=0`).
`-easyflashcrtoptimize`
`+easyflashcrtoptimize`
  Allow/Disallow EasyFlash .crt image optimizing (omitting of empty banks) on write (`EasyFlashOptimizeCRT=1`, `EasyFlashOptimizeCRT=0`).
`-cartepyx <name>`
  Attach raw 8KiB Epyx FastLoad cartridge image.
`-cartexos <name>`
  Attach raw 8KiB EXOS cartridge image.
`-cartexpert <name>`
  Attach raw 8KiB Expert Cartridge image.
`-expert`
`+expert`
  Enable/Disable the Expert Cartridge (`ExpertCartridgeEnabled=1`, `ExpertCartridgeEnabled=0`).
`-expertimagename <name>`
  Set Expert Cartridge image name (`Expertfilename`).
`-expertimagerw`
`+expertimagerw`
  Allow/Disallow writing to Expert Cartridge image (`ExpertImageWrite=1`, `ExpertImageWrite=0`).
`-expertmode <mode>`
  Set Expert Cartridge mode (`ExpertCartridgeMode`). (0: off, 1: prg, 2: on)
`-cartf64 <Name>`
  Attach raw 32KiB Formel 64 image.
`-cartfc1 <name>`
  Attach raw 16KiB Final Cartridge image.
`-cartfc3 <name>`
  Attach raw 64KiB Final Cartridge III image.
`-cartfcplus <name>`
  Attach raw 32KiB Final Cartridge Plus image.
`-cartff <name>`
  Attach raw 8KiB Freeze Frame image.
`-cartff2 <name>`
  Attach raw 16KiB Freeze Frame MK2 image.
`-cartfm <name>`
  Attach raw 32KiB Freeze Machine image.
`-cartfp <name>`
  Attach raw 128KiB Fun Play/Power Play cartridge image.
`-cartgmod2 <name>`
  Attach raw GMod2 cartridge image.
`-gmod2eepromimage <name>`
  Attach raw GMod2 EEPROM image (`GMod2EEPROMImage`).
`-gmod2eepromrw`
`+gmod2eepromrw`
  Enable/Disable writes to GMod2 EEPROM image (`GMod2EEPROMRW=1`, `GMod2EEPROMRW=0`).
`-gmod2flashwrite`
`+gmod2flashwrite`
  Enable/Disable saving of the GMod2 ROM at exit (`GMod2FlashWrite=1`, `GMod2FlashWrite=0`).
`-cartgmod3 <name>`
  Attach raw GMod3 cartridge image.
`-gmod3flashwrite`
`+gmod3flashwrite`
  Enable/Disable saving of the GMod3 ROM at exit (`GMod3FlashWrite=1`, `GMod3FlashWrite=0`).
`-cartgk <name>`
  Attach raw 8KiB Game Killer cartridge image.
`-cartgs <name>`
  Attach raw 512KiB Game System cartridge image.
`-carthyper <name>`
  Attach raw 64KiB Hyper-BASIC cartridge image.
`-cartdrean <name>`
  Attach raw 32KiB Drean (eg H.E.R.O. bootleg) cartridge image
`-cartide64 <name>`
  Attach raw 64KiB or 128KiB IDE64 cartridge image.
`-IDE64image1 <name>`
`-IDE64image2 <name>`
`-IDE64image3 <name>`
`-IDE64image4 <name>`
  Specify path to the image files for IDE64 harddisks (`IDE64Image1`, `IDE64Image2`, `IDE64Image3`, `IDE64Image4`).
`-IDE64cyl1 <value>`
`-IDE64cyl2 <value>`
`-IDE64cyl3 <value>`
`-IDE64cyl4 <value>`
  Set number of cylinders for the IDE64 harddisk emulation (`IDE64Cylinders1`, `IDE64Cylinders2`, `IDE64Cylinders3`, `IDE64Cylinders1`). (1..65535)
`-IDE64hds1 <value>`
`-IDE64hds2 <value>`
`-IDE64hds3 <value>`
`-IDE64hds4 <value>`
  Set number of heads for the IDE64 harddisk emulation (`IDE64Heads1`, `IDE64Heads2`, `IDE64Heads3`, `IDE64Heads4`). (1..16)
`-IDE64sec1 <value>`
`-IDE64sec2 <value>`
`-IDE64sec3 <value>`
`-IDE64sec4 <value>`
  Set number of sectors for the IDE64 harddisk emulation (`IDE64Sectors1`, `IDE64Sectors2`, `IDE64Sectors3`, `IDE64Sectors4`). (1..63)
`-IDE64autosize1`
`+IDE64autosize1`
  Autodetect geometry of formatted image or do not autodetect and use specified geometry (`IDE64AutodetectSize1=1`, `IDE64AutodetectSize1=0`).
`-IDE64autosize2`
`+IDE64autosize2`
  Autodetect geometry of formatted image or do not autodetect and use specified geometry (`IDE64AutodetectSize2=1`, `IDE64AutodetectSize2=0`).
`-IDE64autosize3`
`+IDE64autosize3`
  Autodetect geometry of formatted image or do not autodetect and use specified geometry (`IDE64AutodetectSize3=1`, `IDE64AutodetectSize3=0`).
`-IDE64autosize4`
`+IDE64autosize4`
  Autodetect geometry of formatted image or do not autodetect and use specified geometry (`IDE64AutodetectSize4=1`, `IDE64AutodetectSize4=0`).
`-IDE64version <value>`
  Select IDE64 version V3 (0), V4.1 (1) or V4.2 (2). (`IDE64version`). (0..2)
`-IDE64USB`
`+IDE64USB`
  Enable/Disable IDE64 USB server
`-IDE64USBAddress <name>`
  The local address the IDE64 USB server should bind to
`-IDE64rtcsave`
`+IDE64rtcsave`
  Enable/disable saving of IDE64 RTC data when changed (`IDE64RTCSave=1`, `IDE64RTCSave=0`).
`-ide64clockportdevice`
  Enable IDE64 Clockport device (0: None, 2: RRNet, 4: MP3@64) (`IDE64ClockPort`).
`-sbdigimax`
`+sbdigimax`
  Enable/Disable the Short Bus DigiMAX expansion (`SBDIGIMAX`).
`-sbdigimaxbase`
  Set Base address of the Short Bus DigiMAX expansion (0xDE40/0xDE48) (`SBDIGIMAXbase`).
`-sbetfe`
`+sbetfe`
  Enable/Disable the Short Bus ETFE expansion (`SBETFE`).
`-sbetfebase`
  Set Base address of the Short Bus ETFE expansion (56832: $de00, 56848: $de10, 57088: $df00) (`SBETFEbase`).
`-cartieee <name>`
  Attach CBM IEEE-488 cartridge image.
`-ieee488`
`+ieee488`
  Enable/disable emulation of the IEEE488 interface. Remember to attach a suitable ROM image before enabling the module. (`IEEE488=1`, `IEEE488=0`).
`-ieee488image <name>`
  Set IEEE488 interface ROM image name (`IEEE488Image`).
`-ieeeflash64`
`+ieeeflash64`
  Enable/disable IEEE Flash! 64 interface. Remember to attach a suitable ROM image before enabling the module. (`IEEEFlash64`).
`-ieeeflash64image`
  Set IEEE Flash! 64 ROM image name. (`IEEEFlash64Image`).
`-ieeeflash64dev8`
`+ieeeflash64dev8`
  Route/do not route device 8 to IEEE bus of IEEE Flash! 64 interface (`IEEEFlash64Dev8`).
`-ieeeflash64dev910`
`+ieeeflash64dev910`
  Route/do not route devices 9 and 10 to IEEE bus of IEEE Flash! 64 interface (`IEEEFlash64Dev910`).
`-ieeeflash64dev4`
`+ieeeflash64dev4`
  Route/do not route device 4 to IEEE bus of IEEE Flash! 64 interface (`IEEEFlash64Dev4`).
`-cartieeeflash64 <Name>`
  Attach raw 8KiB IEEE Flash! 64 cartridge image
`-isepic`
`+isepic`
  Enable/disable the ISEPIC cart (`IsepicCartridgeEnabled=1`, `IsepicCartridgeEnabled=0`).
`-isepicswitch`
`+isepicswitch`
  Enable/disable the ISEPIC switch (`IsepicSwitch=1`, `IsepicSwitch=0`).
`-cartisepic <name>`
  Attach raw 2KiB ISEPIC cartridge image.
`-isepicimagename <name>`
  Set ISEPIC image name (`Isepicfilename`).
`-isepicimagerw`
`+isepicimagerw`
  Allow/disallow writing to ISEPIC image (`IsepicImageWrite=1`, `IsepicImageWrite=0`).
`-cartkcs <name>`
  Attach raw 16KiB KCS Power cartridge image.
`-cartks <name>`
  Attach raw 24KiB Kingsoft cartridge image.
`-cartltk <name>`
  Attach raw Lt. Kernal Host Adaptor cartridge image.
`-ltkimage0 <name>`
`-ltkimage1 <name>`
`-ltkimage2 <name>`
`-ltkimage3 <name>`
`-ltkimage4 <name>`
`-ltkimage5 <name>`
`-ltkimage6 <name>`
  Strings specifying the full path to up to seven harddisk images. If a file is non-existing the drive is not emulated. The first drive is necessary. (`ltkimage0`, `ltkimage1`, `ltkimage2`, `ltkimage3`, `ltkimage4`, `ltkimage5`, `ltkimage6`).
`-ltkio <value>`
  Integer specifying the Base address of the I/O interface. (1: $de00, 2: $df00) Default is $df00.
`-ltkport <value>`
  Integer specifying the port number in multiplexed multi-computer/single-disk configurations. (0..15) Default is 0, the master.
`-ltkserial <name>`
  String specifying the serial number. It must be in the form "00000000" with all numeric digits. Default is 87000000. LTK DOS install disks are locked to their respective LTK host adapor boot ROM. This setting will override the boot ROM value. The floppy disk serial number can be changed with a sector editor on track 18, sector 18.
`-cartmach5 <name>`
  Attach raw 8KiB MACH 5 cartridge image.
`-cartmd <name>`
  Attach raw 32/64/128KiB Magic Desk cartridge image.
`-cartmf <name>`
  Attach raw Magic Formel cartridge image.
`-cartmax <name>`
  Attach raw MAX Basic cartridge image.
`-cartmm <name>`
  Attach raw MultiMAX cartridge image.
`-cartmikro <name>`
  Attach raw 8KiB Mikro Assembler cartridge image.
`-mmc64`
`+mmc64`
  Enable/disable the MMC64 expansion (`MMC64=1`, `MMC64=0`).
`-cartmmc64 <name>`
  Attach raw 8KiB MMC64 cartridge image.
`-mmc64bios <name>`
  Specify name of MMC64 BIOS image (`MMC64BIOSfilename`).
`-mmc64image <name>`
  Specify name of MMC64 image (`MMC64imagefilename`).
`-mmc64readonly`
  Set the MMC64 card to read-only (`MMC64_RO=1`).
`-mmc64readwrite`
  Set the MMC64 card to read/write (`MMC64_RO=0`).
`-mmc64flash`
`+mmc64flash`
  Enable/Disable the MMC64 flash jumper (`MMC64_flashjumper=1`, `MMC64_flashjumper=0`).
`-mmc64bioswrite`
  Save the MMC64 bios when changed (`MMC64_bios_write`=1).
`-mmc64biosreadonly`
  Do not save the MMC64 bios when changed (`MMC64_bios_write`=0).
`-mmc64rev <revision>`
  Specify MMC64 revision (`MMC64_revision`). (0: Revision A, 1: Revision B)
`-mmc64sdtype <type>`
  Specify MMC64 SD type (`MMC64_sd_type`). (0: Auto, 1: MMC, 2: SD, 3: SDHC)
`-mmc64clockportdevice <device>`
  Set MMC64 clockport device (`MMC64ClockPort`) (0: None, 1: ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII SID)
`-cartmmcr <name>`
  Attach raw 512KiB MMC Replay cartridge image.
`-mmcrrescue`
`+mmcrrescue`
  Enable/disable MMC Replay rescue mode (`MMCRRescueMode=1`, `MMCRRescueMode=0`).
`-mmcrimagerw`
`+mmcrimagerw`
  Allow/disallow writing to MMC Replay image (`MMCRImageWrite=1`, `MMCRImageWrite=0`).
`-mmcrsdtype <type>`
  Specify MMC Replay SD type (`MMCRSDType`). (0: Auto, 1: MMC, 2: SD, 3: SDHC)
`-mmcrcardimage <filename>`
  Specify MMC Replay card image filename (`MMCRCardImage`).
`-mmcrcardrw`
`+mmcrcardrw`
  Allow/disallow writes to MMC Replay card image (`MMCRCardRW=1`, `MMCRCardRW=0`).
`-mmcreepromimage <filename>`
  Specify MMC Replay EEPROM image filename (`MMCREEPROMImage`).
`-mmcreepromrw`
`+mmcreepromrw`
  Allow/disallow writes to MMC Replay EEPROM image (`MMCREEPROMRW=1`, `MMCREEPROMRW=0`).
`-mmcrclockportdevice <id>`
  Set MMC Replay clockport device (`MMCRClockPort`). (0: None, 1: ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII SID)
`-cartmv <name>`
  Attach raw 16KiB Magic Voice cartridge image.
`-magicvoiceimage <name>`
  Specify Magic Voice cartridge ROM image filename (`MagicVoiceImage`).
`-magicvoice`
`+magicvoice`
  Enable/disable Magic Voice cartridge. Remember to attach a suitable Magic Voice ROM image before enabling the module. (`MagicVoiceCartridgeEnabled=1`, `MagicVoiceCartridgeEnabled=0`).
`-cartocean <name>`
  Attach raw Ocean cartridge image.
`-cartp64 <name>`
  Attach raw 256KiB Prophet 64 cartridge image.
`-cartpf <name>`
  Attach raw 64KiB Pagefox cartridge image.
`-cartpartner64 <name>`
  Attach raw 16KiB Partner 64 cartridge image.
`-cartramcart <name>`
  Attach raw RamCart cartridge image.
`-ramcart`
`+ramcart`
  Enable/disable the RAMCART expansion (`RAMCART=1`, `RAMCART=0`).
`-ramcartsize <size in KiB>`
  Size of the RAMCART expansion (`RAMCARTsize`). (64, 128)
`-ramcartimage <name>`
  Specify name of RAMCART image (`RAMCARTfilename`).
`-ramcartimagerw`
`+ramcartimagerw`
  Allow/disallow writing to RAMCart image (`RAMCARTImageWrite=1`, `RAMCARTImageWrite=0`).
`-ramcartro`
  Set the RamCart switch to read-only (`RAMCART_RO=1`).
`-ramcartrw`
  Set the RamCart switch to read-only (`RAMCART_RO=0`).
`-ramlink`
`+ramlink`
  Enable/disable emulation of the RAMLink module. This option emulates the behavior of the enable/disable switch on the unit. Remember to attach a suitable BIOS image before enabling the module. (`RAMLINK=1`, `RAMLINK=0`).
`-cartramlink <name>`
  Attach the raw 64 KiB ROM image.
`-ramlinkbios <name>`
  Specify name of RAMLink BIOS image (`RAMLINKBIOSfilename`).
`-ramlinkimage <name>`
  Specify name of RAMLink RAM image (`RAMLINKfilename`).
`-ramlinkimagerw`
`+ramlinkimagerw`
  Allow/disallow writing to RAMLink RAM image on detach (`RAMLINKImageWrite=1`, `RAMLINKImageWrite=0`).
`-ramlinksize <size in MiB>`
  Size of the RAMLink RAM (`RAMLINKsize`). (0..16; default is 0)
`-ramlinkmode <value>`
  Sets the RAM port mode of the unit. "1", the default, (Normal) only allows RAMLink access to the RAM port (REU, GEORAM, and RAMDrive); their registers are hidden otherwise. "0" (Direct) exposes their registers all the time. This option emulates the behavior of the Normal/Direct switch on the unit. (`RAMLINKmode`). (1:normal (default), 0:direct)
`-ramlinkrtcsave`
`+ramlinkrtcsave`
  Enable/disable saving of the RTC data when changed (`RAMLINKRTCSave=1`, `RAMLINKRTCSave=0`).
`-cartrep256 <name>`
  Attach raw REX EP256 cartridge image.
`-cartrgcd <Name>`
  Attach raw 64KiB RGCD cartridge image.
`-rgcdrev <Revision>`
  Set the RGCD-cartridge hardware variant. (`RGCDrevision`). (0: RGCD 64k, 1: Hucky's EPROM Cartridge)
`-cartross <name>`
  Attach raw 16/32KiB ROSS cartridge image.
`-cartrrnet <name>`
  Attach raw 8KiB RR-Net MK3 cartridge image.
`-cartrr <name>`
  Attach raw 64KiB Retro Replay cartridge image.
`-rrbioswrite`
`+rrbioswrite`
  Enable/disable saving of the RR ROM at exit (`RRBiosWrite=1`, `RRBiosWrite=0`).
`-rrbankjumper`
`+rrbankjumper`
  Set/unset RR Bank Jumper (`RRBankJumper=1`, `RRBankJumper=0`).
`-rrflashjumper`
`+rrflashjumper`
  Set/unset RR Flash Jumper (`RRFlashJumper=1`, `RRFlashJumper=0`).
`-rrrev <Revision>`
  Set the RR revision (`RRrevision`). (0: Retro Replay, 1: Nordic Replay)
`-rrclockportdevice <device>`
  Set the RR clockport device (`RRClockPort`) (0: None, 1: ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII SID)
`-rrnetmk3flash`
`+rrnetmk3flash`
  SetRemove the RRNETMK3 Flash Jumper (`RRNETMK3_flashjumper=1`, `RRNETMK3_flashjumper=0`).
`-rrnetmk3bioswrite`
`+rrnetmk3bioswrite`
  Save/Do not save the RRNETMK3 bios when changed (`RRNETMK3_bios_write=1`, `RRNETMK3_bios_write=0`).
`-cartrrf <name>`
  Attach raw 8KiB REX RAM-Floppy cartridge image.
`-rexramfloppyimage <name>`
  Set filename for the REX RAM-Floppy RAM image (`RRFfilename`).
`-rexramfloppyimagerw`
`+rexramfloppyimagerw`
  Save/Do not save the REX RAM-Floppy RAM when changed (`RRFImageWrite=1`, `RRFImageWrite=0`).
`-cartru <name>`
  Attach raw 8KiB REX Utility cartridge image.
`-cartsdbox <name>`
  Attach raw 128KiB SD-BOX cartridge image.
`-carts64 <name>`
  Attach raw 4KiB Snapshot 64 cartridge image.
`-cartsb <name>`
  Attach raw Structured Basic cartridge image.
`-cartse5 <name>`
  Attach raw 16KiB Super Explode V5 cartridge image.
`-cartsg <name>`
  Attach raw 64KiB Super Games cartridge image.
`-cartsilver <Name>`
  Attach raw Silverrock 128 cartridge image.
`-cartsimon <name>`
  Attach raw 16KiB Simons' Basic cartridge image.
`-cartss4 <name>`
  Attach raw 32KiB Super Snapshot V4 cartridge image.
`-cartss5 <name>`
  Attach raw 64KiB or 128KiB Super Snapshot V5 cartridge image.
`-ssramexpansion`
`+ssramexpansion`
  Enable/disable 32KiB addon RAM. (`SSRamExpansion=1`, `SSRamExpansion=0`).
`-cartstar <name>`
  Attach raw 16KiB Stardos cartridge image.
`-cartturtle <name>`
  Attach raw 16KiB Turtle Graphics II cartridge image.
`-cartuc1 <name>`
  Attach raw 128KiB Universal Cartridge 1 image.
`-cartuc15 <name>`
  Attach raw 512KiB Universal Cartridge 1.5 image.
`-cartuc2 <name>`
  Attach raw 512KiB Universal Cartridge 2 image.
`-cartwl <name>`
  Attach raw 16KiB Westermann Learning cartridge image.
`-cartws <name>`
  Attach raw 8KiB Warp Speed cartridge image.
`-cartzaxxon <name>`
  Attach raw 16KiB Zaxxon cartridge image.
`-cartzipp <name>`
  Attach raw 8KiB ZIPP-CODE 48 cartridge image.

### 7.1.3 CIA settings

#### 7.1.3.1 CIA resources

`CIA1Model`
  Integer specifying CIA1 model (all emulators except x64dtv, xpet, xplus4, xvic). (0: old 6526, 1: new 6526A)
`CIA2Model`
  Integer specifying CIA2 model (all emulators except x64dtv, xcbm2, xcbm5x0, xpet, xplus4, xvic). (0: old 6526, 1: new 6526A)

#### 7.1.3.2 CIA command-line options

`-ciamodel <model>`
  Set both CIA models (`CIA1Model`, `CIA2Model`) (all emulators except x64dtv, xcbm2, xcbm5x0, xpet, xplus4, xvic). (0: old 6526, 1: new 6526A)
`-cia1model <model>`
  Set CIA1 model (`CIA1Model`) (all emulators except x64dtv, xpet, xplus4, xvic). (0: old 6526, 1: new 6526A)
`-cia2model <model>`
  Set CIA2 model (`CIA2Model`) (all emulators except x64dtv, xcbm2, xcbm5x0, xpet, xplus4, xvic). (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, for example:
  - ``pepto-pal.vpl'` ("Pepto PAL"), a Palette calculated by Philip "Pepto" Timmermann (http://www.pepto.de/projects/colorvic/). (This is the default)
  - ``vice.vpl'` ("VICE"), the old 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 (https://frodo.cebix.net/).
  - ``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 (https://www.godot64.de).

#### 7.1.4.1 VIC-II resources

`VICIIModel`
  Integer that specifies VIC-II model (x64sc, xscpu64 only). (6569, 6569r1, 8565, 6567, 8562, 6567r56a, 6572)
`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.
`VICIIVSPBug`
  Boolean specifying whether the "VSP Bug" must be emulated (x64sc, xscpu64 only).
`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.
`VICIIExternalPalette`
  Boolean specifying whether to use external palette file or not.
`VICIIColorSaturation`
  Integer specifying saturation of internal calculated palette. (0..2000)
`VICIIColorContrast`
  Integer specifying contrast of internal calculated palette. (0..2000)
`VICIIColorBrightness`
  Integer specifying brightness of internal calculated palette. (0..2000)
`VICIIColorGamma`
  Integer specifying gamma of internal calculated palette. (0..4000)
`VICIIColorTint`
  Integer specifying tint of internal calculated palette. (0..2000)
`VICIIPALScanLineShade`
  Integer specifying amount of scan line shading for the CRT emulation. (0..1000)
`VICIIPALBlur`
  Integer specifying amount of horizontal blur for the CRT emulation. (0..1000)
`VICIIPALOddLinePhase`
  Integer specifying phase for color carrier in odd lines. (0..2000)
`VICIIPALOddLineOffset`
  Integer specifying phase offset for color carrier in odd lines. (0..2000)
`VICIIPALDelaylineType`
  Integer specifying the type of delay line used in the CRT (0: normal, 1: U only (1084 style))
`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)
`VICIIVSync`
  Boolean specifying whether to enable vsync to prevent screen tearing. (0: vsync off, 1: vsync on)
`VICIIShowStatusbar`
  Boolean specifying whether to show the status bar or not (x64, x64sc, x64dtv, xscpu64, x128 and xcbm5x0).
`VICIIFullscreen`
  Boolean specifying whether to use fullscreen mode or not (all emulators except xcbm2, xpet, xplus4, xvic and vsid).

The following resources are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`VICIIAspectRatio`
  String/float specifying the aspect ratio. (0.5-2.0)
`VICIIAspectMode`
  Integer specifying the OpenGL aspect mode. (0: off, 1: custom, 2: true)
`VICIIGLFilter`
  Integer specifying the OpenGL filtering mode. (0: nearest neighbour, 1: bilinear, 2: bicubic)
`VICIIFlipX`
  Boolean to enable/disable OpenGL horizontal screen flip.
`VICIIFlipY`
  Boolean to enable/disable OpenGL vertical screen flip.
`VICIIRotate`
  Boolean to enable/disable OpenGL 90 degree clockwise rotation.

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

`-VICIIcheckss`
`+VICIIcheckss`
  Enable/disable emulation of hardware sprite-sprite collision detection (`VICIICheckSsColl=1`, `VICIICheckSsColl=0`).
`-VICIIchecksb`
`+VICIIchecksb`
  Enable/disable emulation of hardware sprite-background collision detection (`VICIICheckSbColl=1`, `VICIICheckSbColl=0`).
`-VICIIvspbug`
`+VICIIvspbug`
  Enable/disable emulation of the "VSP bug" (`VICIIVSPBug=1`, `VICIIVSPBug=0`) (x64sc, xscpu64 only).
`-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`).
`-VICIIfilter <Mode>`
  Select rendering filter (`VICIIFilter`). (0: None, 1: CRT emulation, 2: Scale2x)
`-VICIIintpal`
  Use an internal calculated palette (`VICIIExternalPalette=0`).
`-VICIIextpal`
  Use an external palette (file) (`VICIIExternalPalette=1`).
`-VICIIpalette <Name>`
  Specify the name of the palette file (`VICIIPaletteFile`).
`-VICIIborders <mode>`
  Set VIC-II border display mode (`VICIIBorderMode`). (0: normal, 1: full, 2: debug, 3: none)
`-VICIImodel <model>`
  Set VIC-II model (`VICIIModel`) (x64sc and xscpu64 only). (6569, 6569r1, 8565, 6567, 8562, 6567r56a, 6572)
`-VICIInewluminance`
`+VICIInewluminance`
  Enable/disable new luminances (`VICIINewLuminances=1`, `VICIINewLuminances=0`).
`-VICIIsaturation <0-2000>`
  Set saturation of internal calculated palette (`VICIIColorSaturation`).
`-VICIIcontrast <0-2000>`
  Set contrast of internal calculated palette (`VICIIColorContrast`).
`-VICIIbrightness <0-2000>`
  Set brightness of internal calculated palette (`VICIIColorBrightness`).
`-VICIIgamma <0-4000>`
  Set gamma of internal calculated palette (`VICIIColorGamma`).
`-VICIItint <0-2000>`
  Set tint of internal calculated palette (`VICIIColorTint`).
`-VICIIoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines (`VICIIPALOddLinePhase`).
`-VICIIoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines (`VICIIPALOddLineOffset`).
`-VICIIcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation (`VICIIPALBlur`).
`-VICIIcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation (`VICIIPALScanLineShade`).
`-VICIIcrtscanlineshade <type>`
  Type of delay line used in the CRT (0: normal, 1: U only (1084 style)) (`VICIIPALDelaylineType`).
`-VICIIaudioleak`
`+VICIIaudioleak`
  Enable/disable video to audio leak emulation (`VICIIAudioLeak=1`, `VICIIAudioLeak=0`).
`-VICIIshowstatusbar`
`+VICIIshowstatusbar`
  Show/hide status bar (`VICIIShowStatusbar=1`, `VICIIShowStatusbar=0`).
`-VICIIvsync`
  Enable vsync to prevent screen tearing (`VICIIVSync=1`).
`+VICIIvsync`
  Disable vsync to allow screen tearing (`VICIIVSync=0`).
`-VICIIfull`
`+VICIIfull`
  Enable/Disable fullscreen (`VICIIFullscreen=1`, `VICIIFullscreen=0`) (all emulators except xcbm2, xpet, xplus4, xvic and vsid).

The following command-line options are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`-VICIIaspectmode <mode>`
  Set the aspect mode (`VICIIAspectMode`). (0: off, 1: custom, 2: true)
`-VICIIaspect <aspect ratio>`
  Set the aspect ratio (`VICIIAspectRatio`). (0.5-2.0)
`-VICIIglfilter <mode>`
  Set OpenGL (or Direct-X) filtering mode (0 = nearest, 1 = linear, 2 = bicubic) (`VICIIglfilter`).
`-VICIIflipx`
`+VICIIflipx`
  Enable/disable OpenGL horizontal screen flip (`VICIIFlipX=1`, `VICIIFlipX=0`).
`-VICIIflipy`
`+VICIIflipy`
  Enable/disable OpenGL vertical screen flip (`VICIIFlipY=1`, `VICIIFlipY=0`).
`-VICIIrotate`
`+VICIIrotate`
  Enable/disable OpenGL 90 degree rotation (`VICIIRotate=1`, `VICIIRotate=0`).

### 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. Additionally there is "8580D", which refers to MOS8580 with added "Digifix" modification, which adds a DC offset to audio-in, which makes classic samples audible also on the 8580.
- "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, 3: three extra sids, 4: four extra sids, 5: five extra sids, 6: six extra sids, 7: seven extra sids)
`Sid2AddressStart`
  Integer specifying the base address of the second SID (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`Sid3AddressStart`
  Integer specifying the base address of the third SID (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`Sid4AddressStart`
  Integer specifying the base address of the fourth SID (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`Sid5AddressStart`
  Integer specifying the base address of the fifth SID (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`Sid6AddressStart`
  Integer specifying the base address of the sixth SID (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`Sid7AddressStart`
  Integer specifying the base address of the seventh SID (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`Sid8AddressStart`
  Integer specifying the base address of the eigth SID (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`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: DTVSID)
`SidEngine`
  Integer specifying what SID engine will be used. (0: FastSID, 1: ReSID, 2: Catweasel MKIII, 3: HardSID, 4: ParSID Port 1, 5: ParSID Port 2, 6: ParSID Port 3)
`SidResidSampling`
  Integer specifying the sampling method (`0`: Fast, `1`: Interpolation, `2`: Resampling, `3`: Fast Resampling)
`SidResidPassband`
  Integer specifying the resampling filter passband in percentage of the total bandwidth (`0 - 90`) for 6581.
`SidResidGain`
  Integer that specifies reSID gain in percent [97] (90..100) for 6581.
`SidResidFilterBias`
  Integer that specifies reSID filter bias for 6581, which can be used to adjust DAC bias in millivolts. [0] (-5000..5000, 1000 equals 1mV)
`SidResid8580Passband`
  Integer specifying the resampling filter passband in percentage of the total bandwidth (`0 - 90`) for 8580.
`SidResid8580Gain`
  Integer that specifies reSID gain in percent [97] (90..100) for 8580.
`SidResid8580FilterBias`
  Integer that specifies reSID filter bias for 8580, which can be used to adjust DAC bias in millivolts. [0] (-5000..5000, 1000 equals 1mV)
`SidResidEnableRawOutput`
  Boolean specifying whether raw debug output is enabled. When enabled, the raw - not downsampled - audio data is written to a file called resid.raw in the current working directory.

#### 7.1.5.2 SID command-line options

`-sidextra`
  Specify the amount of extra SID chips to emulate (`SidStereo`). (0: off, 1: 1 extra sid, 2: 2 extra sids, 3: 3 extra sids, 4: 4 extra sids, 5: 5 extra sids, 6: 6 extra sids, 7: 7 extra sids)
`-sid2address <Base address>`
  Specifies the start address for the second SID chip (`Sid2AddressStart`) (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-sid3address `ADDRESS``
  Specifies the start address for the third SID chip (`Sid3AddressStart`) (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-sid4address `ADDRESS``
  Specifies the start address for the fourth SID chip (`Sid4AddressStart`) (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-sid5address `ADDRESS``
  Specifies the start address for the fifth SID chip (`Sid5AddressStart`) (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-sid6address `ADDRESS``
  Specifies the start address for the sixth SID chip (`Sid6AddressStart`) (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-sid7address `ADDRESS``
  Specifies the start address for the seventh SID chip (`Sid7AddressStart`) (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-sid8address `ADDRESS``
  Specifies the start address for the eight SID chip (`Sid8AddressStart`) (x64, x64sc, xscpu64, x128 and vsid only). (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-sidenginemodel <engine and model>`
  Specify engine and model for the emulated SID chip (`SidEngine`, `SidModel`). (FastSID 6581: 0/fast/fastold/fast6581, FastSID 8580: 1/fastnew/fast8580, ReSID 6581: 256/resid/residold/resid6581, ReSID 8580: 257/residnew/resid8580, ReSID 8580 + digiboost: 258/residdigital/residd/residnewd/resid8580d, DTVSID: 260/dtv/c64dtv/dtvsid, Catweasel MKIII: 512/catweaselmkiii/catweasel3/catweasel/cwmkiii/cw3/cw, HardSID: 768/hardsid/hard/hs, ParSID Port 1: 1024/parsid/parsid1/par1/lpt1, ParSID Port 2: 1280/parsid2/par2/lpt2 ParSID Port 3: 1536/parsid3/par3/lpt3)
`-sidengine <engine>`
  Specify engine for the emulated SID chip (`SidEngine`). (FastSID: 0, ReSID: 1, DTVSID: 2, HardSID: 3, ParSID Port 1: 4, ParSID Port 2: 5, ParSID Port 3: 6)
`-sidmodel <model>`
  Specify model for the emulated SID chip (`SidModel`). (6581: 0, 8580: 1, ReSID 8580 + digiboost: 2, DTVSID: 3)
`-sidfilters`
`+sidfilters`
  Enable/disable emulation of the built-in SID filters (`SidFilters=1`, `SidFilters=0`).
`-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`) for 6581.
`-residgain `PERCENTAGE``
  Specifies reSID gain in percent (90 - 100) for 6581.
`-residfilterbias <number>`
  reSID filter bias setting for 6581, which can be used to adjust DAC bias in millivolts.
`-residpass `PERCENTAGE``
  Specifies the resampling filter passband in percentage of the total bandwidth (`SidResid8580Passband=0-90`) for 8580.
`-residgain `PERCENTAGE``
  Specifies reSID gain in percent (90 - 100) for 8580.
`-residfilterbias <number>`
  reSID filter bias setting for 8580, which can be used to adjust DAC bias in millivolts.
`-residrawoutput`
`+residrawoutput`
  Boolean specifying whether raw debug output is enabled. When enabled, the raw - not downsampled - audio data is written to a file called resid.raw in the current working directory.

### 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
- DS12C887 RTC
- 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

`DIGIMAX`
  Boolean specifying whether the DigiMAX cartridge should be emulated or not.
`DIGIMAXbase`
  Integer specifying the DigiMAX base address. (0xDD00: useport, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`DS12C887RTC`
  Boolean specifying whether the DS12C887 RTC cartridge should be emulated or not.
`DS12C887RTCbase`
  Integer specifying the DS12C887 RTC base address. x128: (0xD700, 0xDE00, 0xDF00) x64, x64sc, xscpu64: (0xD500, 0xD600, 0xD700, 0xDE00, 0xDF00)
`DS12C887RTCRunMode`
  Boolean specifying whether the DS12C887 RTC cartridge starts out running or halted. (0: halted, 1: running)
`DS12C887RTCSave`
  Boolean specifying whether the DS12C887 RTC data should be saved when changed or not.
`ETHERNETCART_ACTIVE`
  Boolean that specifies whether the CS8900 ethernet interface emulation is active.
`ETHERNETCARTMode`
  Boolean that specifies whether RR-Net compatible mapping is enabled.
`ETHERNETCARTBase`
  Integer specifying the I/O base address of the emulated ethernet cartridge,
`GEORAM`
  Boolean specifying whether the GEO-RAM cartridge should be emulated or not. (x64, x64sc, x128).
`GEORAMfilename`
  String specifying the filename of the GEORAM image. (x64, x64sc, x128).
`GEORAMImageWrite`
  Boolean, if true write back the GEO-RAM image file automatically, incase the RAM contents changed, when detaching or quitting the emulator. (x64, x64sc, x128).
`GEORAMsize`
  Integer specifying the size of the emulated GEO-RAM in KiB. (512, 1024, 2048, 4096). (x64, x64sc, x128).
`MIDIEnable`
  Boolean specifying whether the MIDI cartridge should be emulated or not (x64, x64sc, xscpu64, x128 only, and only if MIDI support is enabled and available at compile time).
`MIDIMode`
  Integer specifying the type of emulated MIDI interface (x64, x64sc, xscpu64 and x128 only, and only if MIDI support is enabled and available at compile time). (0: Sequential, 1: Passport/Syntech, 2: DATEL/Siel/JMS, 3: Namesoft, 4: Maplin)
`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, in case the RAM contents changed, when detaching or quitting the emulator.
`REUsize`
  Integer specifying the size of the emulated REU in KiB. (128, 256, 512, 1024, 2048, 4096, 8192, 16384)
`SFXSoundExpander`
  Boolean specifying whether the SFX Sound Expander should be emulated or not.
`SFXSoundExpanderChip`
  Integer specifying which YM chip is emulated. (3526, 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

`-digimax`
`+digimax`
  Enable/disable the DigiMAX cartridge (`DIGIMAX=1`, `DIGIMAX=0`).
`-digimaxbase <base address>`
  Base address of the DigiMAX cartridge (`DIGIMAXbase`). (0xDD00: userport, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
`-ds12c887rtc`
`+ds12c887rtc`
  Enable/disable the DS12C887 RTC cartridge (`DS12C887RTC=1`, `DS12C887RTC=0`).
`-ds12c887rtcbase <base address>`
  Base address of the DS12C887 RTC cartridge (`DS12C887RTCbase`). x128: (0xD700, 0xDE00, 0xDF00) x64, x64sc, xscpu64: (0xD500, 0xD600, 0xD700, 0xDE00, 0xDF00)
`-ds12c887rtchalted`
  Set the DS12C887 RTC oscillator to 'halted' (`DS12C887RTCRunMode=0`).
`-ds12c887rtcrunning`
  Set the DS12C887 RTC oscillator to 'running' (`DS12C887RTCRunMode=1`).
`-ds12c887rtcsave`
`+ds12c887rtcsave`
  Enable/disable saving of the DS12C887 RTC data when changed (`DS12C887RTCSave=1`, `DS12C887RTCSave=0`).
`-miditype <0-4>`
  Set MIDI interface type (`MIDIMode`) (x64, x64sc, xscpu64 and x128 only, and only if MIDI support is enabled and available at compile time). (0: Sequential, 1: Passport/Syntech, 2: DATEL/Siel/JMS, 3: Namesoft, 4: Maplin)
`-midi`
`+midi`
  Enable/disable MIDI emulation (`MIDIEnable=1`, `MIDIEnable=0`) (x64, x64sc, xscpu64 and x128 only, and only if MIDI support is enabled and available at compile time). (0: Sequential, 1: Passport/Syntech, 2: DATEL/Siel/JMS, 3: Namesoft, 4: Maplin)
`-georam`
`+georam`
  Enable/disable the GEORAM expansion unit (`GEORAM=1`, `GEORAM=0`).
`-cartgeoram <name>`
  Attach raw GEO-RAM cartridge image.
`-georamimage <name>`
  Specify name of GEORAM image (`GEORAMfilename`).
`-georamimagerw`
`+georamimagerw`
  Allow/disallow writing to GEORAM image (`GEORAMImageWrite=1`, `GEORAMImageWrite=0`).
`-georamsize <size in KiB>`
  Size of the GEORAM expansion unit (`GEORAMsize`). (512, 1024, 2048, 4096)
`-reu`
`+reu`
  Enable/disable emulation of the RAM Expansion Module (`REU=1`, `REU=0`).
`-cartreu <name>`
  Attach raw REU cartridge image.
`-reuimage <name>`
  Specify name of REU image (`REUfilename`).
`-reuimagerw`
`+reuimagerw`
  Allow/disallow writing to REU image (`REUImageWrite=1`, `REUImageWrite=0`).
`-reusize <size in KiB>`
  Size of the RAM expansion unit (`REUsize`). (128, 256, 512, 1024, 2048, 4096, 8192, 16384)
`-sfxse`
`+sfxse`
  Enable/disable the SFX soundexpander cartridge (`SFXSoundExpander=1`, `SFXSoundExpander=0`).
`-sfxsetype <type>`
  Set YM chip type (`SFXSoundExpanderChip`). (3526, 3812)
`-sfxss`
`+sfxss`
  Enable/disable the SFX Sound Sampler cartridge (`SFXSoundSampler=1`, `SFXSoundSampler=0`).
`-ethernetcart`
`+ethernetcart`
  Disable/Enable the Ethernet Cartridge (`ETHERNETCART_ACTIVE`). (TFE/RR-Net/64NIC/FB-NET)
`-ethernetcartmode <Mode>`
  Mode of Ethernet Cartridge (`ETHERNETCARTMode`). (0: TFE, 1: RR-Net)
`-ethernetcartbase <Base address>`
  Base address of the Ethernet Cartridge. (`ETHERNETCARTBase`) (0xDE00, 0xDE10, 0xDE20, 0xDE30, 0xDE40, 0xDE50, 0xDE60, 0xDE70, 0xDE80, 0xDE90, 0xDEA0, 0xDEB0, 0xDEC0, 0xDED0, 0xDEE0, 0xDEF0, 0xDF00, 0xDF10, 0xDF20, 0xDF30, 0xDF40, 0xDF50, 0xDF60, 0xDF70, 0xDF80, 0xDF90, 0xDFA0, 0xDFB0, 0xDFC0, 0xDFD0, 0xDFE0, 0xDFF0)
`-tfe`
  Enable the Ethernet Cartridge in TFE ("The Final Ethernet") compatible mode and set default I/O address
`-rrnet`
  Enable the Ethernet Cartridge in RR-Net compatible mode and set default I/O address
`-burstmod <value>`
  Set the kind of burst modification. This emulates the fast serial bus connection as described at https://a1bert.kapsi.fi/Dev/burst/, with the wire to the tape port cut (`BurstMod`). (0: None, 1: CIA-1, 2: CIA-2)

### 7.1.7 C64 system ROM settings

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

#### 7.1.7.1 C64 system ROM resources

`BasicName`
  String specifying the name of the Basic ROM (default ``basic'`).
`ChargenName`
  String specifying the name of the character generator ROM (default ``chargen'`).
`KernalName`
  String specifying the name of the Kernal ROM (default ``kernal-901227-03.bin'`).
`KernalRev`
  String specifying the Kernal revision. This resource can be used to control what revision of the C64 kernal is being used; Changing this resource equals loading one of the provided kernal ROM files. It will be adjusted when changing `KernalName`. Valid values are:
  `-1`
    Unknown kernal. This value can not be set by the user, it will be set when loading a custom kernal via changing `KernalName`.
  `-2`
    No kernal. This is used by the MAX Machine.
  `0`
    Kernal revision 0 (Japanese, 906145-02)
  `1`
    Kernal revision 1 (901227-01)
  `2`
    Kernal revision 2 (901227-02)
  `3`
    Kernal revision 3 (901227-03)
  `39`
    C64 GS (390852-01)
  `67`
    SX-64 (251104-04)
  `100`
    Commodore 4064 (also known as "PET64" or "Educator 64") (901246-01)

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

`-basic <name>`
  Specify filename of the Basic ROM file (`BasicName`).
`-chargen <name>`
  Specify filename of the character generator ROM file (`ChargenName`).
`-kernal <name>`
  Specify filename of the Kernal ROM file (`KernalName`).
`-kernalrev <revision>`
  Specify Kernal revision (`KernalRev`). (0/jap: japanese 1: rev. 1, 2: rev. 2, 3: rev. 3, 39/gs: C64 GS, 67/sx: sx64, 100/4064: 4064)

### 7.1.8 C64 settings

#### 7.1.8.1 C64 resources

`GlueLogic`
  Integer specifying the type of emulated glue-logic. (0: discrete, 1: custom IC)
`BurstMod`
  Integer specifying the kind of Burst-Mode modification. (0: None, 1: CIA-1, 2: CIA-2)
`BoardType`
  Integer specifying the type of emulated board (not available in xscpu64). (0: C64, 1: MAX)
`IECReset`
  Integer specifying if the IEC bus resets when the CPU resets. (0: No, 1: Yes)
`MemoryHack`
  Integer specifying what memory expansion hack is active. (0: None, 1: C64 256K, 2: PLUS60K, 3: PLUS256K)
`PLUS60Kfilename`
  String specifying the filename of the PLUS60K RAM image.
`PLUS60Kbase`
  Integer that specifies the base address of the PLUS60K RAM expansion. (0xD040, 0xD100)
`PLUS256Kfilename`
  String specifying the filename of the PLUS256K RAM image.
`C64_256Kfilename`
  String specifying the filename of the 256KiB RAM image.
`C64_256Kbase`
  Integer that specifies the base address of the 256KiB RAM expansion. (0xDE00/0xDE80/0xDF00/0xDF80)
`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (1: PAL, 2: NTSC, 3: Old NTSC, 4: PAL-N).
`MachinePowerFrequency`
  Integer that specifies the frequency of the power grid in Hz (50, 60). This is used to determine the tick frequency for the TOD clocks.
`CPMCart`
  Boolean that specifies if a CP/M cartridge is attached.

#### 7.1.8.2 C64 command-line options

`-gluelogictype <type>`
  Set glue logic type (`GlueLogic`). (0: discrete, 1: 252535-01)
`-iecreset <value>`
  Set IEC reset bahaviour (`IECReset`). (0: Do not reset with CPU reset, 1: Reset with CPU reset)
`-memoryexphack <device>`
  Set active memory expansion hack (`MemoryHack`). (0: None, 1: C64 256K, 2: PLUS60K, 3: PLUS256K)
`-plus60kimage <name>`
  Specify name of PLUS60K image (`PLUS60Kfilename`).
`-plus60kbase <base address>`
  Base address of the PLUS60K expansion (`PLUS60Kbase`). (0xD040/0xD100)
`-plus256kimage <name>`
  Specify name of PLUS256K image (`PLUS256Kfilename`).
`-256kimage <name>`
  Specify name of 256K image (`C64_256Kfilename`).
`-256kbase <base address>`
  Base address of the 256KiB expansion (`C64_256Kbase`). (0xDE00, 0xDE80, 0xDF00, 0xDF80)
`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-ntscold`
  Use old NTSC sync factor (`MachineVideoStandard=3`).
`-paln`
  Use PAL-N sync factor (`MachineVideoStandard=4`).
`-power50`
  Use 50Hz power grid frequency. (`MachinePowerFrequency=50`).
`-power60`
  Use 60Hz power grid frequency. (`MachinePowerFrequency=60`).
`-model <Model>`
  Set the C64 model (`MachineVideoStandard`, `MachinePowerFrequency`, `VICIIModel`, `CIA1Model`, `CIA2Model`, `GlueLogic`, `BoardType`, `IECReset`, `KernalRev`, `ChargenName`, `SidEngine`, `SidModel`) (x64 and x64sc only). (c64/c64c/c64old, ntsc/newntsc/oldntsc, drean, jap, c64gs, pet64, ultimax)
`-cpmcart`
`+cpmcart`
  Enable/disable the CP/M cartridge (`CPMCart=1`, `CPMCart=0`)

## 7.2 C128-specific commands and settings

### 7.2.1 C128 cartridge settings

x128 reuses the cartridge system from the C64 emulation, so all options listed there apply as well. The following only lists what is different and/or additional.

#### 7.2.1.1 C128 cartridge resources

`CartridgeType`
  Integer specifying the type of the default cartridge. Additional to the C64 types, the following types are valid C128 CRT ID:
  - 1: Warpspeed 128
  - 2: Partner 128
  - 3: Comal 80
  - 4: Magic Desk 128
  - 5: Gmod2-C128
  Note: The actual value will be this ID added to the highest C64 CRT ID, so both can coexist.
`GMod128EEPROMImage`
  String that specifies the name of the raw GMod2-C128 EEPROM image.
`GMod128FlashWrite`
  Boolean that specifies wether writes to GMod2-C128 EEPROM image are enabled.
`GMod128EEPROMRW`
  Boolean that specifies wether the GMod2-C128 ROM is saved at exit

#### 7.2.1.2 C128 cartridge command-line options

`-cartfrom <name>`
  Attach generic external function ROM cartridge image.
`-cartcomal128 <name>`
  Attach 96k Comal 80 cartridge image.
`-cartgmod128 <name>`
  Attach 512k Gmod2-C128 cartridge image.
`-cartmd128 <name>`
  Attach 16/32/64/128/256/512k/1M Magic Desk 128 cartridge image.
`-cartpartner128 <name>`
  Attach 16KiB Partner 128 cartridge image.
`-cartws128 <name>`
  Attach 16KiB Warpspeed 128 cartridge image.
`-gmod128eepromimage <filename>`
  Specify Gmod2-C128 EEPROM image filename (`GMod128EEPROMImage`).
`-gmod128eepromrw`
`+gmod128eepromrw`
  Enable/Disable writes to Gmod2-C128 EEPROM image (`GMod128EEPROMRW=1`, `GMod128EEPROMRW=0`).
`-gmod128flashwrite`
`+gmod128flashwrite`
  Enable/Disable saving of the Gmod2-C128 ROM at exit (`GMod128FlashWrite=1`, `GMod128FlashWrite=0`).

### 7.2.2 VDC settings

#### 7.2.2.1 VDC resources

`VDC64KB`
  Boolean to enabled/disable full 64KiB 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.
`VDCExternalPalette`
  Boolean specifying whether to use external palette file or not.
`VDCColorSaturation`
  Integer specifying saturation of internal calculated palette. (0..2000)
`VDCColorContrast`
  Integer specifying contrast of internal calculated palette. (0..2000)
`VDCColorBrightness`
  Integer specifying brightness of internal calculated palette. (0..2000)
`VDCColorGamma`
  Integer specifying gamma of internal calculated palette. (0..4000)
`VDCColorTint`
  Integer specifying tint of internal calculated palette. (0..2000)
`VDCPALScanLineShade`
  Integer specifying amount of scan line shading for the CRT emulation. (0..1000)
`VDCPALBlur`
  Integer specifying amount of horizontal blur for the CRT emulation. (0..1000)
`VDCAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`VDCFilter`
  Integer specifying rendering filter (0: None, 1: CRT emulation, 2: Scale2x)
`VDCVSync`
  Boolean specifying whether to enable vsync to prevent screen tearing. (0: vsync off, 1: vsync on)
`TEDShowStatusbar`
  Boolean specifying whether to show the status bar or not (x128 only).
`VDCFullscreen`
  Boolean specifying whether to use fullscreen mode or not (x128 only).

The following resources are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`VDCAspectRatio`
  String/float specifying the aspect ratio. (0.5-2.0)
`VDCAspectMode`
  Integer specifying the OpenGL aspect mode. (0: off, 1: custom, 2: true)
`VDCGLFilter`
  Integer specifying the OpenGL filtering mode. (0: nearest neighbour, 1: bilinear, 2: bicubic)
`VDCFlipX`
  Boolean to enable/disable OpenGL horizontal screen flip.
`VDCFlipY`
  Boolean to enable/disable OpenGL vertical screen flip.
`VDCRotate`
  Boolean to enable/disable OpenGL 90 degree clockwise rotation.

#### 7.2.2.2 VDC command-line options

`-VDCvcache`
`+VDCvcache`
  Enable/disable the video cache (`VDCVideoCache=1`, `VDCVideoCache=0`).
`-VDCdsize`
`+VDCdsize`
  Enable/disable double size (`VDCDoubleSize=1`, `VDCDoubleSize=0`).
`-VDCstretchvertical`
`+VDCstretchvertical`
  Enable/Disable vertical stretching (`VDCStretchVertical=1`, `VDCStretchVertical=0`).
`-VDCdscan`
`+VDCdscan`
  Enable/disable double scan (`VDCDoubleScan=1`, `VDCDoubleScan=0`).
`-VDCintpal`
  Use an internal calculated palette (`VDCExternalPalette=0`).
`-VDCextpal`
  Use an external palette (file) (`VDCExternalPalette=1`).
`-VDCpalette <name>`
  Specify name of file of external palette (`VDCPaletteFile`).
`-VDC16KB`
  Set the VDC memory size to 16KiB (`VDC64KB=0`).
`-VDC64KB`
  Set the VDC memory size to 64KiB (`VDC64KB=1`).
`-VDCRevision <number>`
  Set VDC revision (`VDCRevision`). (0..2)
`-VDCsaturation <0-2000>`
  Set saturation of internal calculated palette (`VDCColorSaturation`).
`-VDCcontrast <0-2000>`
  Set contrast of internal calculated palette (`VDCColorContrast`).
`-VDCbrightness <0-2000>`
  Set brightness of internal calculated palette (`VDCColorBrightness`).
`-VDCgamma <0-4000>`
  Set gamma of internal calculated palette (`VDCColorGamma`).
`-VDCtint <0-2000>`
  Set tint of internal calculated palette (`VDCColorTint`).
`-VDCcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation (`VDCPALBlur`).
`-VDCcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation (`VDCPALScanLineShade`).
`-VDCaudioleak`
`+VDCaudioleak`
  Enable/disable video to audio leak emulation (`VDCAudioLeak=1`, `VDCAudioLeak=0`).
`-VDCfilter <Mode>`
  Select rendering filter (`VDCFilter`). (0: None, 1: CRT emulation, 2: Scale2x)
`-VDCshowstatusbar`
`+VDCshowstatusbar`
  Show/hide status bar (`VDCShowStatusbar=1`, `VDCShowStatusbar=0`).
`-VDCvsync`
  Enable vsync to prevent screen tearing (`VDCVSync=1`).
`+VDCvsync`
  Disable vsync to allow screen tearing (`VDCVSync=0`).
`-VDCfull`
`+VDCfull`
  Enable/Disable fullscreen (`VDCFullscreen=1`, `VDCFullscreen=0`) (x128 only).

The following command-line options are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`-VDCaspectmode <mode>`
  Set the aspect mode (`VDCAspectMode`). (0: off, 1: custom, 2: true)
`-VDCaspect <aspect ratio>`
  Set the aspect ratio (`VDCAspectRatio`). (0.5-2.0)
`-VDCglfilter <mode>`
  Set OpenGL (or Direct-X) filtering mode (0 = nearest, 1 = linear, 2 = bicubic) (`VDCglfilter`).
`-VDCflipx`
`+VDCflipx`
  Enable/disable OpenGL horizontal screen flip (`VDCFlipX=1`, `VDCFlipX=0`).
`-VDCflipy`
`+VDCflipy`
  Enable/disable OpenGL vertical screen flip (`VDCFlipY=1`, `VDCFlipY=0`).
`-VDCrotate`
`+VDCrotate`
  Enable/disable OpenGL 90 degree rotation (`VDCRotate=1`, `VDCRotate=0`).

### 7.2.3 C128 system ROM settings

#### 7.2.3.1 C128 system ROM resources

`ChargenIntName`
  String specifying the filename of the international character generator ROM image.
`ChargenDEName`
  String specifying the filename of the German character generator ROM image.
`ChargenFIName`
  String specifying the filename of the Finnish character generator ROM image.
`ChargenFRName`
  String specifying the filename of the French character generator ROM image.
`ChargenITName`
  String specifying the filename of the Italian character generator ROM image.
`ChargenNOName`
  String specifying the filename of the Norwegian character generator ROM image.
`ChargenSEName`
  String specifying the filename of the Swedish character generator ROM image.
`ChargenCHName`
  String specifying the filename of the Swiss character generator ROM image.
`KernalIntName`
  String specifying the filename of the international Kernal ROM image.
`KernalDEName`
  String specifying the filename of the German Kernal ROM image.
`KernalFIName`
  String specifying the filename of the Finnish Kernal ROM image.
`KernalFRName`
  String specifying the filename of the French Kernal ROM image.
`KernalITName`
  String specifying the filename of the Italian Kernal ROM image.
`KernalNOName`
  String specifying the filename of the Norwegian Kernal ROM image.
`KernalSEName`
  String specifying the filename of the Swedish Kernal ROM image.
`KernalCHName`
  String specifying the filename of the Swiss Kernal ROM image.
`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`
  Integer specifying the internal function ROM type (0: None, 1: ROM, 2: RAM, 3: RTC).
`InternalFunctionName`
  String specifying the filename of the ROM image for the internal function ROM.
`InternalFunctionROMRTCSave`
  Boolean to enable/disable the saving of the Internal Function RTC data when changed.

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

`-basic64 <name>`
  Specify name of C64 mode BASIC ROM image (`Basic64Name`).
`-kernal64 <name>`
  Specify name of C64 mode Kernal ROM image (`Kernal64Name`).
`-basiclo <name>`
  Specify name of BASIC ROM image (lower part) (`BasicLoName`).
`-basichi <name>`
  Specify name of BASIC ROM image (higher part) (`BasicHiName`).
`-kernal <name>`
  Specify name of international Kernal ROM image (`KernalIntName`).
`-kernalde <name>`
  Specify name of German Kernal ROM image (`KernalDEName`).
`-kernalfi <name>`
  Specify name of Finnish Kernal ROM image (`KernalFIName`).
`-kernalfr <name>`
  Specify name of French Kernal ROM image (`KernalFRName`).
`-kernalit <name>`
  Specify name of Italian Kernal ROM image (`KernalITName`).
`-kernalno <name>`
  Specify name of Norwegian Kernal ROM image (`KernalNOName`).
`-kernalse <name>`
  Specify name of Swedish Kernal ROM image (`KernalSEName`).
`-kernalch <name>`
  Specify name of Swiss Kernal ROM image (`KernalCHName`).
`-chargen <name>`
  Specify name of international character generator ROM image (`ChargenIntName`).
`-chargde <name>`
  Specify name of German character generator ROM image (`ChargenDEName`).
`-chargfi <name>`
  Specify name of Finnish character generator ROM image (`ChargenFRName`).
`-chargfr <name>`
  Specify name of French character generator ROM image (`ChargenFRName`).
`-chargit <name>`
  Specify name of Italian character generator ROM image (`ChargenFRName`).
`-chargno <name>`
  Specify name of Norwegian character generator ROM image (`ChargenNOName`).
`-chargse <name>`
  Specify name of Swedish character generator ROM image (`ChargenSEName`).
`-chargch <name>`
  Specify name of Swiss character generator ROM image (`ChargenCHName`).
`-intfunc <type>`
  Set the internal Function ROM type (`InternalFunctionROM`). (0: None, 1: ROM, 2: RAM, 3: RTC)
`-intfrom <name>`
  Specify name of internal Function ROM image (`InternalFunctionName`).
`-intfuncrtcsave`
`+intfuncrtcsave`
  Enable/disable the saving of the Internal Function RTC data when changed (`InternalFunctionROMRTCSave=1`, `InternalFunctionROMRTCSave=0`).

### 7.2.4 C128 settings

#### 7.2.4.1 C128 resources

`C128ColumnKey`
  Boolean specifying the status of the 40/80 columns key. (0: Not pressed, 1: Pressed)
`Go64Mode`
  Boolean, if true enter C64 mode on reset.
`C128FullBanks`
  Boolean to enable/disable RAM banks 2 and 3.
`MachineType`
  Integer specifying the C128 machine type. (0: International, 1: Finnish, 2: French, 3: German, 4: Italian, 5: Norwegian, 6: Swedish)
`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (1: PAL, 2: NTSC).
`MachinePowerFrequency`
  Integer that specifies the frequency of the power grid in Hz (50, 60). This is used to determine the tick frequency for the TOD clocks.
`C128HideVDC`
  Boolean to enable/disable the VDC display window.
`DualWindow`
  Boolean to turn on dual-window rendering, opening two windows, one for each display.

#### 7.2.4.2 C128 command-line options

`-40col`
  Activate 40 column mode (`C128ColumnKey=1`).
`-80col`
  Activate 80 column mode (`C128ColumnKey=0`).
`-go64`
  Always switch to C64 mode on reset (`Go64Mode=1`.
`+go64`
  Always switch to C128 mode on reset (`Go64Mode=0`.
`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-power50`
  Use 50Hz power grid frequency. (`MachinePowerFrequency=50`).
`-power60`
  Use 60Hz power grid frequency. (`MachinePowerFrequency=60`).
`-model <Model>`
  Set the C128 model (`MachineVideoStandard`, `MachinePowerFrequency`, `CIA1Model`, `CIA2Model`, `VICIINewLuminances`, `VDCRevision`, `VDC64KB`, `SidEngine`, `SidModel`). (c128/c128dcr, pal/ntsc)
`-c128fullbanks`
`+c128fullbanks`
  Enable/disable RAM banks 2 and 3 (`C128FullBanks=1`, `C128FullBanks=0`).
`-machinetype <Type>`
  Set the C128 machine type (`MachineType`). (0: International, 1: Finnish, 2: French, 3: German, 4: Italian, 5: Norwegian, 6: Swedish)
`-hidevdcwindow`
`+hidevdcwindow`
  Hide/show the VDC display window (`C128HideVDC=1`, `C128HideVDC=0`).
`-dualwindow`
  Turn on dual-window rendering, opening two windows, one for each display. (`DualWindow`).

## 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 2MiB 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 2MiB (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.

`-ntscv2romimage <name>`
  Specify filename of the C64DTV NTSC v2 ROM image (`DTVNTSCV2FlashName`).
`-palv2romimage <name>`
  Specify filename of the C64DTV PAL v2 ROM image (`DTVPALV2FlashName`).
`-ntscv3romimage <name>`
  Specify filename of the C64DTV NTSC v3 ROM image (`DTVNTSCV3FlashName`).
`-palv3romimage <name>`
  Specify filename of the C64DTV PAL v3 ROM image (`DTVPALV3FlashName`).
`-hummerromimage <name>`
  Specify filename of the C64DTV Hummer ROM image (`DTVHummerFlashName`).
`-c64dtvromrw`
`+c64dtvromrw`
  Enable/disable writing to C64DTV ROM image (`c64dtvromrw=1`, `c64dtvromrw=0`).

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/disable true hardware flash file system (`FlashTrueFS=1`, `FlashTrueFS=0`).
`-fsflash <name>`
  Specify the directory for the flash file system device (`FSFlashDir`).

### 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 (`DtvRevision`). (2: DTV2, 3: DTV3)

### 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 (`HummerADC=1`, `HummerADC=0`).
`-ps2mouse`
`+ps2mouse`
  Enable/disable PS/2 mouse on userport (`ps2mouse=1`, `ps2mouse=0`).

### 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 2MiB of RAM and 2MiB of Flash, but only 64 KiB at a time. The 64KiB bank can be selected with "bank ram00".."ram1f" for RAM and "bank rom00".."rom1f" for Flash.

The "load" command can load large files (>64KiB) 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)
`ChargenName`
  String specifying the name of the character generator ROM (default ``chargen'`).
`KernalName`
  String specifying the name of the Kernal ROM (default ``kernal'`).
`BasicName`
  String specifying the name of the Basic ROM (default ``basic'`).
`DTVNTSCV2FlashName`
  String specifying the filename of the DTV NTSC v2 Flash ROM image.
`DTVPALV2FlashName`
  String specifying the filename of the DTV PAL v2 Flash ROM image.
`DTVNTSCV3FlashName`
  String specifying the filename of the DTV NTSC v3 Flash ROM image.
`DTVPALV3FlashName`
  String specifying the filename of the DTV PAL v3 Flash ROM image.
`DTVHummerFlashName`
  String specifying the filename of the DTV Hummer Flash ROM image.
`DTVFlashRevision`
  Integer specifying which of the above Flash ROM images will be used.
`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 to enable/disable the Hummer ADC emulation.
`ps2mouse`
  Boolean to enable/disable PS/2 Mouse emulation.
`DtvBlitterLog`
  Boolean, enables Blitter logging.
`DtvDMALog`
  Boolean, enables DMA logging.
`DtvFlashLog`
  Boolean, enables Flash ROM logging.
`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine. (1: PAL, 2: NTSC)

### 7.3.8 DTV command-line options

`-model <Model>`
  Set the DTV model (`MachineVideoStandard`, `DtvRevision`, `HummerADC`). (v2/v2pal/v2ntsc, v3/v3pal/v3ntsc, hummer)
`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-chargen <name>`
  Specify filename of the character generator ROM file (`ChargenName`).
`-kernal <name>`
  Specify filename of the Kernal ROM file (`KernalName`).
`-basic <name>`
  Specify the filename of the Basic ROM file (`BasicName`).

## 7.4 SCPU64-specific commands and settings

### 7.4.1 SCPU64 resources

`ChargenName`
  String specifying the name of the character generator ROM (default ``chargen'`).
`SCPU64Name`
  String specifying the name of the SCPU64 ROM (default ``scpu64'`).
`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (4: PAL-N, 3: Old NTSC, 1: PAL, 2: NTSC).
`MachinePowerFrequency`
  Integer that specifies the frequency of the power grid in Hz (50, 60). This is used to determine the tick frequency for the TOD clocks.
`IECReset`
  Integer specifying if the IEC bus resets when the CPU resets. (0: No, 1: Yes)
`BurstMod`
  Integer specifying the kind of Burst-Mode modification. (0: None, 1: CIA-1, 2: CIA-2)
`SIMMSize`
  Integer specifying the size of the SIMM RAM. (0, 1, 4, 8, 16)
`JiffySwitch`
  Boolean to enable/disable the jiffy switch.
`SpeedSwitch`
  Boolean to enable/disable the speed switch.
`GlueLogic`
  Integer specifying the type of emulated glue-logic. (0: discrete, 1: custom IC)

### 7.4.2 SCPU64 command-line options

`-chargen <name>`
  Specify filename of the character generator ROM file (`ChargenName`).
`-scpu64 <Name>`
  Specify filename of the SCPU64 ROM file (`SCPU64Name`).
`-model <Model>`
  Set the C64 model (`MachineVideoStandard`, `MachinePowerFrequency`, `CIA1Model`, `CIA2Model`, `VICIINewLuminances`, `IECReset`, `ChargenName`, `SidEngine`, `SidModel`). (c64/c64c/c64old, ntsc/newntsc/oldntsc, drean, jap, c64gs)
`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-ntscold`
  Use old NTSC sync factor (`MachineVideoStandard=3`).
`-paln`
  Use PAL-N sync factor (`MachineVideoStandard=4`).
`-power50`
  Use 50Hz power grid frequency. (`MachinePowerFrequency=50`).
`-power60`
  Use 60Hz power grid frequency. (`MachinePowerFrequency=60`).
`-iecreset <value>`
  Set IEC reset bahaviour (`IECReset`). (0: Do not reset with CPU reset, 1: Reset with CPU reset)
`-burstmod <value>`
  Set the kind of burst modification. This emulates the fast serial bus connection as described at https://a1bert.kapsi.fi/Dev/burst/, with the wire to the tape port cut (`BurstMod`). (0: None, 1: CIA-1, 2: CIA-2)
`-simmsize <number>`
  Set the size of the SIMM RAM (`SIMMSize`). (0, 1, 4, 8, 16)
`-jiffyswitch`
`+jiffyswitch`
  Enable/disable the jiffy switch (`JiffySwitch=1`, `JiffySwitch=0`).
`-speedswitch`
`+speedswitch`
  Enable/disable the speed switch (`SpeedSwitch=1`, `SpeedSwitch=0`).
`-gluelogictype <type>`
  Set glue logic type (`GlueLogic`). (0: discrete, 1: 252535-01)

## 7.5 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.5.1 Using prg files

It's not alway easy to get VIC-20 games to work due to its different configurations. To run VIC-20 games, you can try the following:

- Try to autorun with different memory sets: "no expansion", "3KiB" and "Full"
- Load the file in a hex editor and have a look at the first two bytes. If they are e.g. `00 A0` the file should probably be attached as a cartridge image at @code {$A000}.
- Some programs, (eg the loadable Scott Adams text adventures) have to be loaded into the expanded memory blocks, and then run with the expansion disabled via software, like this:
  - Enable the full memory expansion
  - Disable the expanded memory

        POKE44,16:POKE56,30:POKE4096,0:new
        POKE648,30

  - Press `RUN/STOP + RESTORE` (which is `ESC + F12` on the default keymap)
  - Load the program

        LOAD"4.Voodoo Castle",8,1

  - Start the program (other programs may have a different start address)

        SYS32592

### 7.5.2 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 KiB cartridges located at $2000;
- 4 or 8 KiB cartridges located at $4000;
- 4 or 8 KiB cartridges located at $6000;
- 4 or 8 KiB cartridges located at $A000;
- 4 KiB cartridges located at $B000.

This can all be done via the "Attach cartridge image..." command in the 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.

Also notice that surprisingly often it is required for the user to start VIC20 cartridges manually by typing a BASIC "SYS" command.

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 16KiB image. Vice can attach such concatenated files at the start address $2000, $4000, and $6000. The second half of such an image is moved to the memory block following the first block. It is also possible to concatenate four 8KiB files, the resulting file will load into all 4 cartridge blocks.

If you encounter 16KiB images that have the second half at eg $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. Alternatively you can create a 32KiB file with padding blocks in between.

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.5.3 VIC20 cartridge settings

#### 7.5.3.1 VIC20 cartridge resources

`CartridgeReset`
  Boolean specifying whether the machine should be reset when a cartridge is changed.
`CartridgeType`
  Integer specifying the type of the default cartridge. The following cartridge types are valid:
  - - 1: None
  - - 2: Generic
  - 1: Megacart
  - 2: Behrbonz
  - 3: Vic Flash Plugin
  - 4: Ultimem
  - 5: Final Expansion
  - 6: Rabbit tape turbo
  - 7: Super Expander
  - 8: Mikro Assembler
  - - 10: SID Cartridge
  - - 11: IEEE-4888
  - - 12: IO ram cart (IO2)
  - - 13: IO ram cart (IO3)
  - 0x8000: Auto Detect
  - 0x8002: 4KiB at $2000-$2FFF
  - 0x8003: 8KiB at $2000-$3FFF
  - 0x8004: 4KiB at $6000-$6FFF
  - 0x8005: 8KiB at $6000-$7FFF
  - 0x8006: 4KiB at $A000-$AFFF
  - 0x8007: 8KiB at $A000-$BFFF
  - 0x8008: 4KiB at $B000-$BFFF
  - 0x8009: 8KiB at $4000-$5FFF
  - 0x800A: 4KiB at $4000-$4FFF
  - 0x8013: 16KiB at $2000-$5FFF
  - 0x8015: 16KiB at $6000-$9FFF
  - 0x8019: 16KiB at $4000-$7FFF
`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`
  Strings 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.
`UltiMemWriteBack`
  Boolean, if true write back the Flash ROM image file automatically, incase the contents changed, when detaching or quitting the emulator.
`IO2RAM`
  Boolean specifying whether the I/O-2 ($9800-$9BFF) RAM cartridge should be emulated or not.
`IO3RAM`
  Boolean specifying whether the I/O-3 ($9C00-$9FFF) RAM cartridge should be emulated or not.
`VFLImod`
  Boolean specifying whether the VFLI modification should be enabled.
`SFXSoundExpander`
  Boolean specifying whether the SFX Sound Expander should be emulated or not.
`SFXSoundExpanderChip`
  Integer specifying which YM chip is emulated. (3526, 3812)
`SFXSoundExpanderIOSwap`
  Boolean, swap io mapping (map cart I/O to VIC20 I/O-2) or don't swap io mapping (map cart I/O to VIC20 I/O-3).
`SFXSoundSampler`
  Boolean specifying whether the SFX Sound Sampler should be emulated or not.
`SFXSoundSamplerIOSwap`
  Boolean, swap io mapping (map cart I/O to VIC20 I/O-2) or don't swap io mapping (map cart I/O to VIC20 I/O-3).
`GEORAMfilename`
  String specifying the filename of the GEORAM image.
`GEORAM`
  Boolean specifying whether the GEO-RAM cartridge (using the MasC=uerade cartridge adapter) should be emulated or not.
`GEORAMsize`
  Integer specifying the size of the emulated GEO-RAM in KiB. (512, 1024, 2048, 4096).
`GEORAMImageWrite`
  Boolean, if true write back the GEO-RAM image file automatically, incase the RAM contents changed, when detaching or quitting the emulator.
`GEORAMIOSwap`
  Boolean specifying whether the io mapping should be swapped (map cart I/O-1 to VIC20 I/O-3 and cart I/O-2 to VIC20 I/O-2) or not (map cart I/O-2 to VIC20 I/O-2 and cart I/O-2 to VIC20 I/O-3).
`SidCart`
  Boolean specifying whether SID-Cart emulation is enabled or not.
`SidAddress`
  Integer that specifies the base address of the emulated SID chip. (0x9800, 0x9C00)
`SidClock`
  Integer specifying the clock rate used for the emulated SID chip (0: C64, 1: VIC20)
`DIGIMAX`
  Boolean specifying whether the DigiMAX cartridge (using the MasC=uerade cartridge adapter) should be emulated or not.
`DIGIMAXbase`
  Integer specifying the DigiMAX base address. (0x9800, 0x9820, 0x9840, 0x9860, 0x9880, 0x98A0, 0x98C0, 0x98E0, 0x9C00, 0x9C20, 0x9C40, 0x9C60, 0x9C80, 0x9CA0, 0x9CC0, 0x9CE0)
`DS12C887RTC`
  Boolean specifying whether the DS12C887 RTC cartridge (using the MasC=uerade cartridge adapter) should be emulated or not.
`DS12C887RTCbase`
  Integer specifying the DS12C887 RTC base address. (0x9800, 0x9C00)
`DS12C887RTCRunMode`
  Boolean specifying whether the DS12C887 RTC cartridge starts out running or halted. (0: halted, 1: running)
`DS12C887RTCSave`
  Boolean specifying whether the DS12C887 RTC data should be saved when changed or not.
`IEEE488`
  Boolean specifying whether the IEEE488 interface should be emulated or not.
`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (1: PAL, 2: NTSC).

#### 7.5.3.2 VIC20 cartridge command-line options

`-iocollision <method>`
  Select the way the I/O collisions should be handled (`IOCollisionHandling`). (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
`-cartreset`
`+cartreset`
  Do/don't reset machine if a cartridge is attached or detached (`CartridgeReset=1`, `CartridgeReset`).
`-cart2 <name>`
  Specify 4/8/16KiB extension ROM name at $2000
`-cart4 <name>`
  Specify 4/8/16KiB extension ROM name at $4000
`-cart6 <name>`
  Specify 4/8/16KiB extension ROM name at $6000
`-cartA <name>`
  Specify 4/8KiB extension ROM name at $A000
`-cartB <name>`
  Specify 4KiB extension ROM name at $B000
`-cartgeneric <name>`
  Specify generic extension ROM name
`-cartbb <name>`
  Specify Behr-Bonz extension ROM name
`-cartmega <name>`
  Specify Mega-Cart extension ROM name
`-mcnvramfile <name>`
  Set Mega-Cart NvRAM filename (`MegaCartNvRAMfilename`).
`-mcnvramwriteback`
`+mcnvramwriteback`
  Enable/Disable Mega-Cart NvRAM writeback (`MegaCartNvRAMWriteBack=1`, `MegaCartNvRAMWriteBack=0`).
`-cartfe <name>`
  Specify Final Expansion extension ROM name
`-fewriteback`
`+fewriteback`
  Enable/disable Final Expansion write back to ROM file (`FinalExpansionWriteBack=1`, `FinalExpansionWriteBack=0`).
`-cartfp <name>`
  Specify Vic Flash Plugin extension ROM name
`-fpwriteback`
`+fpwriteback`
  Enable/Disable Vic Flash Plugin write back to ROM file (`VicFlashPluginWriteBack=1`, `VicFlashPluginWriteBack=0`).
`-cartrabbit <name>`
  Specify Rabit Tape extension ROM name
`-cartse <name>`
  Specify Super Expander cartridge ROM name
`-cartma <name>`
  Specify Mikro Assembler cartridge ROM name
`-ultimem <name>`
  Specify Ultimem extension ROM name
`-umwriteback`
`+umwriteback`
  Enable/disable UltiMem write back to ROM file (`UltiMemWriteBack=1`, `UltiMemWriteBack=0`).
`-io2ram`
`+io2ram`
  Enable/disable the I/O-2 ($9800-$9BFF) RAM cartridge (`IO2RAM=1`, `IO2RAM=0`).
`-io3ram`
`+io3ram`
  Enable/disable the I/O-3 ($9C00-$9FFF) RAM cartridge (`IO3RAM=1`, `IO3RAM=0`).
`-ieee488`
`+ieee488`
  Enable/disable VIC-1112 IEEE488 interface (`IEEE488=1`, `IEEE488=0`).
`-vflimod`
`+vflimod`
  Enable/disable VIC-20 VFLI modification (`VFLImod=1`, `VFLImod=0`)
`-sidcart`
`+sidcart`
  Enable/disable SID Cartridge (`SidCart=1`, `SidCart=0`).
`-sidcartaddress <address>`
  Specify address of the SID Cartridge (`SidAddress`). (0x9800, 0x9C00)
`-sidcartclock <clock>`
  Specify clock of the SID Cartridge (`SidClock`). (0: C64, 1: VIC20)
`-ethernetcart`
`+ethernetcart`
  Disable/Enable the Ethernet Cartridge (`ETHERNETCART_ACTIVE`). (TFE/RR-Net/64NIC/FB-NET)
`-ethernetcartmode <Mode>`
  Mode of Ethernet Cartridge (`ETHERNETCARTMode`). (0: TFE, 1: RR-Net)
`-ethernetcartbase <Base address>`
  Base address of the Ethernet Cartridge. (`ETHERNETCARTBase`) (0x9800, 0x9810, 0x9820, 0x9830, 0x9840, 0x9850, 0x9860, 0x9870, 0x9880, 0x9890, 0x98A0, 0x98B0, 0x98C0, 0x98D0, 0x98E0, 0x98F0, 0x9C00, 0x9C10, 0x9C20, 0x9C30, 0x9C40, 0x9C50, 0x9C60, 0x9C70, 0x9C80, 0x9C90, 0x9CA0, 0x9CB0, 0x9CC0, 0x9CD0, 0x9CE0, 0x9CF0)
`-tfe`
  Enable the Ethernet Cartridge in TFE ("The Final Ethernet") compatible mode and set default I/O address
`-rrnet`
  Enable the Ethernet Cartridge in RR-Net compatible mode and set default I/O address
`-digimax`
`+digimax`
  Enable/disable the DigiMAX cartridge (using the MasC=uerade cartridge adapter) (`DIGIMAX=1`, `DIGIMAX=0`).
`-digimaxbase <base address>`
  Base address of the DigiMAX cartridge (`DIGIMAXbase`). (0x9800, 0x9820, 0x9840, 0x9860, 0x9880, 0x98A0, 0x98C0, 0x98E0, 0x9C00, 0x9C20, 0x9C40, 0x9C60, 0x9C80, 0x9CA0, 0x9CC0, 0x9CE0)
`-ds12c887rtc`
`+ds12c887rtc`
  Enable/disable the DS12C887 RTC cartridge (using the MasC=uerade cartridge adapter) (`DS12C887RTC=1`, `DS12C887RTC=0`).
`-ds12c887rtcbase <base address>`
  Base address of the DS12C887 RTC cartridge (`DS12C887RTCbase`). (0x9800, 0x9C00)
`-ds12c887rtchalted`
  Set the DS12C887 RTC oscillator to 'halted' (`DS12C887RTCRunMode=0`).
`-ds12c887rtcrunning`
  Set the DS12C887 RTC oscillator to 'running' (`DS12C887RTCRunMode=1`).
`-ds12c887rtcsave`
`+ds12c887rtcsave`
  Enable/disable saving of the DS12C887 RTC data when changed (`DS12C887RTCSave=1`, `DS12C887RTCSave=0`).
`-sfxse`
`+sfxse`
  Enable/disable the SFX soundexpander cartridge (using the MasC=uerade cartridge adapter) (`SFXSoundExpander=1`, `SFXSoundExpander=0`).
`-sfxsetype <type>`
  Set YM chip type (`SFXSoundExpanderChip`). (3526, 3812)
`-sfxseioswap`
  Swap io mapping (map cart I/O to VIC20 I/O-2) (`SFXSoundExpanderIOSwap=1`).
`+sfxseioswap`
  Swap io mapping (map cart I/O to VIC20 I/O-3) (`SFXSoundExpanderIOSwap=0`).
`-sfxssioswap`
  Swap io mapping (map cart I/O to VIC20 I/O-2) (`SFXSoundSamplerIOSwap=1`).
`+sfxssioswap`
  Don't swap io mapping (map cart I/O to VIC20 I/O-3) (`SFXSoundSamplerIOSwap=0`).
`-sfxss`
`+sfxss`
  Enable/disable the SFX Sound Sampler cartridge (`SFXSoundSampler=1`, `SFXSoundSampler=0`).
`-georamioswap`
  Swap the io mapping (map cart I/O-1 to VIC20 I/O-3 and cart I/O-2 to VIC20 I/O-2) (`GEORAMIOSwap=1`).
`+georamioswap`
  Do not swap the io mapping (map cart I/O-2 to VIC20 I/O-2 and cart I/O-2 to VIC20 I/O-3) (`GEORAMIOSwap=0`).
`-georam`
`+georam`
  Enable/disable the GEORAM expansion unit (using the MasC=uerade cartridge adapter) (`GEORAM=1`, `GEORAM=0`).
`-georamimage <name>`
  Specify name of GEORAM image (`GEORAMfilename`).
`-georamimagerw`
`+georamimagerw`
  Allow/disallow writing to GEORAM image (`GEORAMImageWrite=1`, `GEORAMImageWrite=0`).
`-georamsize <size in KiB>`
  Size of the GEORAM expansion unit (`GEORAMsize`). (512, 1024, 2048, 4096)
`-model <model>`
  Specify the VIC20 model you want to emulate (`MachineVideoStandard`, `RamBlock0`, `RamBlock1`, `RamBlock2`, `RamBlock3` and `RamBlock5`). (vic20/vic20pal/vic20ntsc, vic21)
`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).

### 7.5.4 VIC settings

#### 7.5.4.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.
`VICExternalPalette`
  Boolean specifying whether to use external palette file or not.
`VICColorSaturation`
  Integer specifying saturation of internal calculated palette. (0..2000)
`VICColorContrast`
  Integer specifying contrast of internal calculated palette, (0..2000)
`VICColorBrightness`
  Integer specifying brightness of internal calculated palette. (0..2000)
`VICColorGamma`
  Integer specifying gamma of internal calculated palette. (0..4000)
`VICColorTint`
  Integer specifying tint of internal calculated palette. (0..2000)
`VICPALScanLineShade`
  Integer specifying amount of scan line shading for the CRT emulation. (0..1000)
`VICPALBlur`
  Integer specifying amount of horizontal blur for the CRT emulation. (0..1000)
`VICPALOddLinePhase`
  Integer specifying phase for color carrier in odd lines. (0..2000)
`VICPALOddLineOffset`
  Integer specifying phase offset for color carrier in odd lines. (0..2000)
`VICPALDelaylineType`
  Integer specifying the type of delay line used in the CRT (0: normal, 1: U only (1084 style))
`VICAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`VICFilter`
  Integer specifying the rendering filter. (0: None, 1: CRT emulation, 2: Scale2x)
`VICBorderMode`
  Integer specifying border display mode (0: normal, 1: full, 2: debug, 3: none)
`VICVSync`
  Boolean specifying whether to enable vsync to prevent screen tearing. (0: vsync off, 1: vsync on)
`VICShowStatusbar`
  Boolean specifying whether to show the status bar or not (xvic only).
`VICFullscreen`
  Boolean specifying whether to use fullscreen mode or not (xvic only).

The following resources are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`VICAspectRatio`
  String/float specifying the aspect ratio. (0.5-2.0)
`VICAspectMode`
  Integer specifying the OpenGL aspect mode. (0: off, 1: custom, 2: true)
`VICGLFilter`
  Integer specifying the OpenGL filtering mode. (0: nearest neighbour, 1: bilinear, 2: bicubic)
`VICFlipX`
  Boolean to enable/disable OpenGL horizontal screen flip.
`VICFlipY`
  Boolean to enable/disable OpenGL vertical screen flip.
`VICRotate`
  Boolean to enable/disable OpenGL 90 degree clockwise rotation.

#### 7.5.4.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`).
`-VICfilter <Mode>`
  Select rendering filter (`VICFilter`). (0: None, 1: CRT emulation, 2: Scale2x)
`-VICpalette NAME`
  Specify the name of the palette file (`VICPaletteFile`).
`-VICintpal`
  Use an internal calculated palette (`VICExternalPalette=0`).
`-VICextpal`
  Use an external palette (file) (`VICExternalPalette=1`).
`-VICborders <mode>`
  Set VIC border display mode (`VICBorderMode`). (0: normal, 1: full, 2: debug, 3: none)
`-VICsaturation <0-2000>`
  Set saturation of internal calculated palette (`VICColorSaturation`).
`-VICcontrast <0-2000>`
  Set contrast of internal calculated palette (`VICColorContrast`).
`-VICbrightness <0-2000>`
  Set brightness of internal calculated palette (`VICColorBrightness`).
`-VICgamma <0-4000>`
  Set gamma of internal calculated palette (`VICColorGamma`).
`-VICtint <0-2000>`
  Set tint of internal calculated palette (`VICColorTint`).
`-VICoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines (`VICPALOddLinePhase`).
`-VICoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines. (`VICPALOddLineOffset`).
`-VICcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation (`VICPALBlur`).
`-VICcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation (`VICPALScanLineShade`).
`-VICcrtscanlineshade <type>`
  Type of delay line used in the CRT (0: normal, 1: U only (1084 style)) (`VICPALDelaylineType`).
`-VICaudioleak`
`+VICaudioleak`
  Enable/disable video to audio leak emulation (`VICAudioLeak=1`, `VICAudioLeak=0`).
`-VICshowstatusbar`
`+VICshowstatusbar`
  Show/hide status bar (`VICShowStatusbar=1`, `VICShowStatusbar=0`).
`-VICvsync`
  Enable vsync to prevent screen tearing (`VICVSync=1`).
`+VICvsync`
  Disable vsync to allow screen tearing (`VICVSync=0`).
`-VICfull`
`+VICfull`
  Enable/Disable fullscreen (`VICFullscreen=1`, `VICFullscreen=0`) (xvic only).

The following command-line options are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`-VICaspectmode <mode>`
  Set the aspect mode (`VICAspectMode`). (0: off, 1: custom, 2: true)
`-VICaspect <aspect ratio>`
  Set the aspect ratio (`VICAspectRatio`). (0.5-2.0)
`-VICglfilter <mode>`
  Set OpenGL (or Direct-X) filtering mode (0 = nearest, 1 = linear, 2 = bicubic) (`VICglfilter`).
`-VICflipx`
`+VICflipx`
  Enable/disable OpenGL horizontal screen flip (`VICFlipX=1`, `VICFlipX=0`).
`-VICflipy`
`+VICflipy`
  Enable/disable OpenGL vertical screen flip (`VICFlipY=1`, `VICFlipY=0`).
`-VICrotate`
`+VICrotate`
  Enable/disable OpenGL 90 degree rotation (`VICRotate=1`, `VICRotate=0`).

### 7.5.5 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 KiB at $0400-$0FFF);
- block 1 (8 KiB at $2000-$3FFF);
- block 2 (8 KiB at $4000-$5FFF);
- block 3 (8 KiB at $6000-$7FFF);
- block 5 (8 KiB 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 select:

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

#### 7.5.5.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.5.5.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` (3KiB space in block 0);
  - `8k` (first 8KiB extension block);
  - `16k` (first and second 8KiB 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 16KiB ROM modules.

### 7.5.6 VIC20 system ROM settings

These settings can be used to control what system ROMs are loaded in the VIC20 emulator at startup.

#### 7.5.6.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.5.6.2 VIC20 system ROM command-line options

`-kernal <name>`
  Specify the filename of the Kernal ROM file (`KernalName`).
`-basic <name>`
  Specify the filename of the Basic ROM file (`BasicName`).
`-chargen <name>`
  Specify the filename of 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.5.7 VIC20 settings

#### 7.5.7.1 VIC20 command-line options

## 7.6 PLUS4-specific commands and settings

### 7.6.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:

### 7.6.2 PLUS4 cartridge settings

#### 7.6.2.1 PLUS4 cartridge resources

`CartridgeReset`
  Boolean specifying whether the machine should be reset when a cartridge is changed.
`CartridgeType`
  Integer specifying the type of the default cartridge. The following cartridge types are valid:
  - - 1: None
  - - 2: Generic
  - 1: c264 magic cart
  - 2: Plus4 multi cart
  - 3: 1MB Cartridge
`CartridgeFile`
  String specifying the filename of the image for the current cartridge.
`c1loName`
  String specifying the filename of cartridge 1 Lo ROM.
`c1hiName`
  String specifying the filename of cartridge 1 High ROM.

#### 7.6.2.2 PLUS4 cartridge command-line options

`-cartreset`
`+cartreset`
  Do/don't reset machine if a cartridge is attached or detached (`CartridgeReset=1`, `CartridgeReset`).
`-c1lo <name>`
  Specify name of Cartridge 1 low ROM image (`c1loName`).
`-c1hi <name>`
  Specify name of Cartridge 1 high ROM image (`c1HiName`).
`-cart <Name>`
`+cart`
  Smart-attach cartridge image / Start without cartridge
`-cartjacint <name>`
  Attach a 1MiB "1MB Cartridge" image
`-cartmagic <name>`
  Attach a 128kiB/256kiB/512kiB/1MiB/2MiB "c264 magic cart" image
`-cartmulti <name>`
  Attach a 1MiB/2MiB "Plus4 multi cart" image. The binary should contain all c1lo banks first, then all c1hi banks.

### 7.6.3 TED settings

#### 7.6.3.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.
`TEDExternalPalette`
  Boolean specifying whether to use external palette file or not.
`TEDColorSaturation`
  Integer specifying saturation of internal calculated palette. (0..2000)
`TEDColorContrast`
  Integer specifying contrast of internal calculated palette. (0..2000)
`TEDColorBrightness`
  Integer specifying brightness of internal calculated palette. (0..2000)
`TEDColorGamma`
  Integer specifying gamma of internal calculated palette. (0..4000)
`TEDColorTint`
  Integer specifying tint of internal calculated palette. (0..2000)
`TEDPALScanLineShade`
  Integer specifying amount of scan line shading for the CRT emulation. (0..1000)
`TEDPALBlur`
  Integer specifying amount of horizontal blur for the CRT emulation. (0..1000)
`TEDPALOddLinePhase`
  Integer specifying phase for color carrier in odd lines. (0..2000)
`TEDPALOddLineOffset`
  Integer specifying phase offset for color carrier in odd lines. (0..2000)
`TEDPALDelaylineType`
  Integer specifying the type of delay line used in the CRT (0: normal, 1: U only (1084 style))
`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)
`TEDVSync`
  Boolean specifying whether to enable vsync to prevent screen tearing. (0: vsync off, 1: vsync on)
`TEDShowStatusbar`
  Boolean specifying whether to show the status bar or not (xplus4 only).
`TEDFullscreen`
  Boolean specifying whether to use fullscreen mode or not (xplus4 only).

The following resources are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`TEDAspectRatio`
  String/float specifying the aspect ratio. (0.5-2.0)
`TEDAspectMode`
  Integer specifying the OpenGL aspect mode. (0: off, 1: custom, 2: true)
`TEDGLFilter`
  Integer specifying the OpenGL filtering mode. (0: nearest neighbour, 1: bilinear, 2: bicubic)
`TEDFlipX`
  Boolean to enable/disable OpenGL horizontal screen flip.
`TEDFlipY`
  Boolean to enable/disable OpenGL vertical screen flip.
`TEDRotate`
  Boolean to enable/disable OpenGL 90 degree clockwise rotation.

#### 7.6.3.2 TED command-line options

`-TEDvcache`
`+TEDvcache`
  Enable/disable the video cache (`TEDVideoCache=1`, `TEDVideoCache=0`).
`-TEDdsize`
`+TEDdsize`
  Enable/disable double size (`TEDDoubleSize=1`, `TEDDoubleSize=0`).
`-TEDdscan`
`+TEDdscan`
  Enable/disable double scan (`TEDDoubleScan=1`, `TEDDoubleScan=0`).
`-TEDfilter <Mode>`
  Select rendering filter (`TEDFilter`). (0: None, 1: CRT emulation, 2: Scale2x)
`-TEDintpal`
  Use an internal calculated palette (`TEDExternalPalette=0`).
`-TEDextpal`
  Use an external palette (file) (`TEDExternalPalette=1`).
`-TEDpalette <name>`
  Specify name of the external palette file (`TEDPaletteFile`).
`-TEDborders <mode>`
  Set TED border display mode (`TEDBorderMode`). (0: normal, 1: full, 2: debug, 3: none)
`-TEDsaturation <0-2000>`
  Set saturation of internal calculated palette (`TEDColorSaturation`).
`-TEDcontrast <0-2000>`
  Set contrast of internal calculated palette (`TEDColorContrast`).
`-TEDbrightness <0-2000>`
  Set brightness of internal calculated palette (`TEDColorBrightness`).
`-TEDgamma <0-4000>`
  Set gamma of internal calculated palette (`TEDColorGamma`).
`-TEDtint <0-2000>`
  Set tint of internal calculated palette (`TEDColorTint`).
`-TEDoddlinesphase <0-2000>`
  Set phase for color carrier in odd lines (`TEDPALOddLinePhase`).
`-TEDoddlinesoffset <0-2000>`
  Set phase offset for color carrier in odd lines (`TEDPALOddLineOffset`).
`-TEDcrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation (`TEDPALBlur`).
`-TEDcrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation (`TEDPALScanLineShade`).
`-TEDcrtscanlineshade <type>`
  Type of delay line used in the CRT (0: normal, 1: U only (1084 style)) (`TEDPALDelaylineType`).
`-TEDaudioleak`
`+TEDaudioleak`
  Enable/disable video to audio leak emulation (`TEDAudioLeak=1`, `TEDAudioLeak=0`).
`-TEDshowstatusbar`
`+TEDshowstatusbar`
  Show/hide status bar (`TEDShowStatusbar=1`, `TEDShowStatusbar=0`).
`-TEDvsync`
  Enable vsync to prevent screen tearing (`TEDVSync=1`).
`+TEDvsync`
  Disable vsync to allow screen tearing (`TEDVSync=0`).
`-TEDfull`
`+TEDfull`
  Enable/Disable fullscreen (`TEDFullscreen=1`, `TEDFullscreen=0`) (xplus4 only).

The following command-line options are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`-TEDaspectmode <mode>`
  Set the aspect mode (`TEDAspectMode`). (0: off, 1: custom, 2: true)
`-TEDaspect <aspect ratio>`
  Set the aspect ratio (`TEDAspectRatio`). (0.5-2.0)
`-TEDglfilter <mode>`
  Set OpenGL (or Direct-X) filtering mode (0 = nearest, 1 = linear, 2 = bicubic) (`TEDglfilter`).
`-TEDflipx`
`+TEDflipx`
  Enable/disable OpenGL horizontal screen flip (`TEDFlipX=1`, `TEDFlipX=0`).
`-TEDflipy`
`+TEDflipy`
  Enable/disable OpenGL vertical screen flip (`TEDFlipY=1`, `TEDFlipY=0`).
`-TEDrotate`
`+TEDrotate`
  Enable/disable OpenGL 90 degree rotation (`TEDRotate=1`, `TEDRotate=0`).

### 7.6.4 PLUS4 I/O extension settings

#### 7.6.4.1 PLUS4 I/O extension resources

`DIGIBLASTER`
  Boolean to enable/disable the Digiblaster emulation.
`SpeechEnabled`
  Boolean to enable/disable the emulation of the V364 speech chip.
`SidCart`
  Boolean specifying whether SID-Cart emulation is enabled or not.
`SidAddress`
  Integer that specifies the base address of the emulated SID chip. (0xFD40, 0xFE80)
`SidClock`
  Integer specifying the clock rate used for the emulated SID chip (0: C64, 1: Plus4)
`SIDCartJoy`
  Boolean to enable/disable the emulation of the SID-Cart control port.

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

`-digiblaster`
`+digiblaster`
  Enable/disable the digiblaster add-on (`DIGIBLASTER=1`, `DIGIBLASTER=0`).
`-sidcart`
`+sidcart`
  Enable/disable SID Cartridge (`SidCart=1`, `SidCart=0`).
`-sidcartjoy`
`+sidcartjoy`
  Enable/disable SID cartridge control port (`SIDCartJoy=1`, `SIDCartJoy=0`).
`-sidcartaddress <address>`
  Specify address of the SID Cartridge (`SidAddress`). (0xFD40, 0xFE80)
`-sidcartclock <clock>`
  Specify clock of the SID Cartridge (`SidClock`). (0: C64, 1: Plus4)
`-speech`
`+speech`
  Enable/Disable the v364 speech add-on (`SpeechEnabled=1`, `SpeechEnabled=0`).

### 7.6.5 PLUS4 system ROM settings

#### 7.6.5.1 PLUS4 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'`).
`FunctionLowName`
  String specifying the filename of the Lo Function ROM.
`FunctionHighName`
  String specifying the filename of the High Function ROM.
`c2loName`
  String specifying the filename of cartridge 2 Lo ROM.
`c2hiName`
  String specifying the filename of cartridge 2 High ROM.

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

`-kernal <Name>`
  Specify name of the Kernal ROM image (`KernalName`).
`-basic <Name>`
  Specify name of the BASIC ROM image (`BasicName`).
`-functionlo <name>`
  Specify name of Function low ROM image (`FunctionLowName`).
`-functionhi <name>`
  Specify name of Function high ROM image (`FunctionHighName`).
`-c2lo <name>`
  Specify name of Cartridge 2 low ROM image (`c2loName`).
`-c2hi <name>`
  Specify name of Cartridge 2 high ROM image (`c2HiName`).

### 7.6.6 PLUS4 settings

#### 7.6.6.1 PLUS4 resources

`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (1: PAL, 2: NTSC).
`RamSize`
  Integer specifying the size of the memory in KiB. (16, 32, 64)
`MemoryHack`
  Integer specifying what memory expansion hack is active. (0: None, 1: C256K, 2: H256K, 3: H1024K)
`Acia1Enable`
  Boolean specifying whether the ACIA should be emulated or not.

#### 7.6.6.2 PLUS4 command-line options

`-model <model>`
  Specify the PLUS4 model you want to emulate (`MachineVideoStandard`, `RamSize`, `KernalName`, `BasicName`, `FunctionLowName`, `FunctionHighName`, `c2loName`, `Acia1Enable`, `SpeechEnabled`). (c16/c16pal/c16ntsc, plus4/plus4pal/plus4ntsc, v364/cv364, c232)
`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-ramsize <ramsize>`
  Specify size of RAM installed in KiB (`RamSize`). (16, 32, 64)
`-memoryexphack <device>`
  Set active memory expansion hack (`MemoryHack`). (0: None, 1: C256K, 2: H256K, 3: H1024K)
`-acia`
`+acia`
  Enable/Disable the ACIA emulation

## 7.7 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.7.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`
  Integer specifying the size of the memory in KiB. 96KiB denotes an 8096, 128KiB an 8296. (4, 8, 16, 32, 96, 128)
`IOSize`
  Integer specifying the size of the I/O area in Bytes for the 8296 model. (256, 2048)
`VideoSize`
  Integer specifying the number of columns on the screen. (0: Automatic from ROM, 40: 40 columns, 80: 80 columns)
`Ram9`
  Boolean specifying if the 8296 can map RAM into the address range $9*** or not.
`RamA`
  Boolean specifying if the 8296 can map RAM into the address range $A*** or not.
`SuperPET`
  Boolean that enables/disables the SuperPET (MicroMainFrame 9000) I/O and 6809 CPU, and disables/enables the 8x96 mappings.
`Basic1`
  Boolean to enable/disable the patching of a version 1 kernal ROM to make the IEEE488 interface work.
`EoiBlank`
  Boolean to enable/disable the "blank screen on EOI" feature of the oldest PET 2001.
`Screen2001`
  Boolean specifying if the screen memory should have "mirrors" like on the oldest PET 2001: $8000-$83FF is visible 3 more times, up to $8FFF. Otherwise, mirrors (if any) only go up to $87FF.
`DiagPin`
  Boolean to enable/disable the diagnostic pin on the PET userport (see below).
`ChargenName`
  String specifying the name of the character generator ROM (default ``chargen'`).
`KernalName`
  String specifying the name of the Kernal ROM (default ``kernal4'`).
`BasicName`
  String specifying the name of the Basic ROM (default ``basic4'`).
`EditorName`
  String specifying the filename of the editor ROM file. This file contains an overlay for the editor ROM at $E000-$E7FF if necessary.
`RomModule9Name`
  String specifying the filename for the $9*** Expansion ROM file. This file contains an expansion ROM image of 4KiB.
`RomModuleAName`
  String specifying the filename for the $A*** Expansion ROM file. This file contains an expansion ROM image of 4KiB.
`RomModuleBName`
  String specifying the filename for the $B*** Expansion ROM file. This file contains an expansion ROM image of 4KiB. This file overlays the lowest 4KiB of a BASIC 4 ROM.

Choosing a common PET model is done from the setting dialog, by choosing an item from the "Model" selection. 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.7.2 CRTC Settings

#### 7.7.2.1 CRTC resources

`Crtc`
  Boolean specifying whether to enable/disable 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.
`CrtcExternalPalette`
  Boolean specifying whether to use external palette file or not.
`CrtcColorSaturation`
  Integer specifying saturation of internal calculated palette. (0..2000)
`CrtcColorContrast`
  Integer specifying contrast of internal calculated palette. (0..2000)
`CrtcColorBrightness`
  Integer specifying brightness of internal calculated palette. (0..2000)
`CrtcColorGamma`
  Integer specifying gamma of internal calculated palette. (0..4000)
`CrtcColorTint`
  Integer specifying tint of internal calculated palette. (0..2000)
`CrtcPALScanLineShade`
  Integer specifying amount of scan line shading for the CRT emulation. (0..1000)
`CrtcPALBlur`
  Integer specifying amount of horizontal blur for the CRT emulation. (0..1000)
`CrtcAudioLeak`
  Boolean specifying whether to enable/disable video to audio leak emulation.
`CrtcFilter`
  Integer specifying rendering filter. (0: None, 1: CRT emulation, 2: Scale2x)
`CrtcVSync`
  Boolean specifying whether to enable vsync to prevent screen tearing. (0: vsync off, 1: vsync on)
`CrtcShowStatusbar`
  Boolean specifying whether to show the status bar or not (xcbm2 and xpet only).
`CrtcFullscreen`
  Boolean specifying whether to use fullscreen mode or not (xcbm2 and xpet only).

The following resources are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`CrtcAspectRatio`
  String/float specifying the aspect ratio. (0.5-2.0)
`CrtcAspectMode`
  Integer specifying the OpenGL aspect mode. (0: off, 1: custom, 2: true)
`CrtcGLFilter`
  Integer specifying the OpenGL filtering mode. (0: nearest neighbour, 1: bilinear, 2: bicubic)
`CrtcFlipX`
  Boolean to enable/disable OpenGL horizontal screen flip.
`CrtcFlipY`
  Boolean to enable/disable OpenGL vertical screen flip.
`CrtcRotate`
  Boolean to enable/disable OpenGL 90 degree clockwise rotation.

#### 7.7.2.2 CRTC command-line options

`-crtc`
`+crtc`
  Enable/disable the 6545 CRTC emulation (`Crtc=1`, `Crtc=0`).
`-Crtcvcache`
`+Crtcvcache`
  Enable/disable the video cache (`CrtcVideoCache=1`, `CrtcVideoCache=0`).
`-Crtcdsize`
`+Crtcdsize`
  Enable/disable double size (`CrtcDoubleSize=1`, `CrtcDoubleSize=0`).
`-CRTCstretchvertical`
`+CRTCstretchvertical`
  Enable/disable vertical stretching (`CrtcStretchVertical=1`, `CrtcStretchVertical=0`).
`-Crtcdscan`
`+Crtcdscan`
  Enable/disable double scan (`CrtcDoubleScan=1`, `CrtcDoubleScan=0`).
`-Crtcfilter <Mode>`
  Select rendering filter (`CrtcFilter`). (0: None, 2: CRT emulation, 3: Scale2x)
`-Crtcintpal`
  Use an internal calculated palette (`CrtcExternalPalette=0`).
`-Crtcextpal`
  Use an external palette (file) (`CrtcExternalPalette=1`).
`-Crtcpalette <name>`
  Specify the name of the palette file (`CrtcPaletteFile`).
`-Crtcsaturation <0-2000>`
  Set saturation of internal calculated palette (`CrtcColorSaturation`).
`-Crtccontrast <0-2000>`
  Set contrast of internal calculated palette (`CrtcColorContrast`).
`-Crtcbrightness <0-2000>`
  Set brightness of internal calculated palette (`CrtcColorBrightness`).
`-Crtcgamma <0-4000>`
  Set gamma of internal calculated palette (`CrtcColorGamma`).
`-Crtctint <0-2000>`
  Set tint of internal calculated palette (`CrtcColorTint`).
`-Crtccrtblur <0-1000>`
  Amount of horizontal blur for the CRT emulation (`CrtcPALBlur`).
`-Crtccrtscanlineshade <0-1000>`
  Amount of scan line shading for the CRT emulation (`CrtcPALScanLineShade`).
`-Crtcaudioleak`
`+Crtcaudioleak`
  Enable/disable video to audio leak emulation (`CrtcAudioLeak=1`, `CrtcAudioLeak=0`).
`-Crtcshowstatusbar`
`+Crtcshowstatusbar`
  Show/hide status bar (`CrtcShowStatusbar=1`, `CrtcShowStatusbar=0`).
`-Crtcvsync`
  Enable vsync to prevent screen tearing (`CrtcVSync=1`).
`+Crtcvsync`
  Disable vsync to allow screen tearing (`CrtcVSync=0`).
`-CRTCfull`
`+CRTCfull`
  Enable/Disable fullscreen (`CrtcFullscreen=1`, `CrtcFullscreen=0`) (xcbm2 and xpet only).

The following command-line options are only present if hardware scaling support (OpenGL or Direct-X) is present and used at compile time.

`-Crtcaspectmode <mode>`
  Set the aspect mode (`CrtcAspectMode`). (0: off, 1: custom, 2: true)
`-Crtcaspect <aspect ratio>`
  Set the aspect ratio (`CrtcAspectRatio`). (0.5-2.0)
`-Crtcglfilter <mode>`
  Set OpenGL (or Direct-X) filtering mode (0 = nearest, 1 = linear, 2 = bicubic) (`Crtcglfilter`).
`-Crtcflipx`
`+Crtcflipx`
  Enable/disable OpenGL horizontal screen flip (`CrtcFlipX=1`, `CrtcFlipX=0`).
`-Crtcflipy`
`+Crtcflipy`
  Enable/disable OpenGL vertical screen flip (`CrtcFlipY=1`, `CrtcFlipY=0`).
`-Crtcrotate`
`+Crtcrotate`
  Enable/disable OpenGL 90 degree rotation (`CrtcRotate=1`, `CrtcRotate=0`).

### 7.7.3 PET I/O extension settings

#### 7.7.3.1 PET I/O extension resources

`PETREU`
  Boolean specifying whether PET REU emulation is enabled or not.
`PETREUfilename`
  String specifying the filename of the PET REU image.
`PETREUsize`
  Integer specifying the size of the emulated PET REU in KiB. (128, 512, 1024, 2048)
`PETDWW`
  Boolean specifying whether DWW emulation is enabled or not.
`PETDWWfilename`
  String specifying the filename of the DWW image RAM image.
`PETHRE`
  Boolean specifying whether HRE emulation is enabled or not.
`PETColour`
  Integer selecting the colour extension. (0: off, 1: RGBI, 2: Analog)
`PETColourBG`
  Integer specifying the analog colour background on PET 4032. (0..255)
`SidCart`
  Boolean specifying whether SID Cartridge emulation is enabled or not.
`SidAddress`
  Integer that specifies the base address of the emulated SID chip. (0x8F00, 0xE900)
`SidClock`
  Integer specifying the clock rate used for the emulated SID chip. (0: C64, 1: PET)

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

`-petreu`
`+petreu`
  Enable/disable the PET Memory Expansion Unit (`PETREU=1`, `PETREU=0`).
`-petreuimage <name>`
  Specify name of PET Ram and Expansion Unit image (`PETREUfilename`).
`-petreuramsize <size in KiB>`
  Size of the PET Ram and Expansion Unit (`PETREUsize`). (128, 512, 1024, 2048)
`-petdww`
`+petdww`
  Enable/disable the PET DWW hi-res board (30xx models only) (`PETDWW=1`, `PETDWW=0`).
`-petdwwimage <name>`
  Specify name of PET DWW RAM image (`PETDWWfilename`).
`-pethre`
`+pethre`
  Enable/disable the PET HRE extension (model 8296 only) (`PETHRE=1`, `PETHRE=0`).
`-colour-rgbi`
  Enable the RGBI colour extension to PET 4032 (`PETColour=1`).
`-colour-analog`
  Enable the analog colour extension to PET 4032 (`PETColour=2`).
`-colour-analog-bg <Colour 0-255>`
  Select the analog colour background on PET 4032 (`PETColourBG`).
`-sidcart`
`+sidcart`
  Enable/disable the SID Cartridge (`SidCart=1`, `SidCart=0`).
`-sidcartaddress <address>`
  Specify address of the SID Cartridge (`SidAddress`). (0x8F00, 0xE900)
`-sidcartclock <clock>`
  Specify clock of the SID Cartridge (`SidClock`). (0: C64, 1: PET)

### 7.7.4 PET system ROM settings

#### 7.7.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.7.4.2 PET system ROM command-line options

`-kernal <name>`
  Specify filename of the Kernal ROM file (`KernalName`).
`-basic <name>`
  Specify filename of the BASIC ROM file (`BasicName`).
`-editor NAME`
  Specify the filename for the editor ROM file (`EditorName`).
`-chargen <name>`
  Specify filename of the character generator ROM file (`ChargenName`).
`-rom9 <name>`
  Specify the filename for the ROM image file for the $9*** cartridge area (`RomModule9Name`).
`-romA <name>`
  Specify the filename for the ROM image file for the $A*** cartridge area (`RomModuleAName`).
`-romB <name>`
  Specify the filename for the ROM image file for the $B*** cartridge area (`RomModuleBName`).
`-6809romA <Name>`
  Specify 4KiB to 24KiB ROM file name at $A000 for 6809 (`H6809RomAName`).
`-6809romB <Name>`
  Specify 4KiB to 20KiB ROM file name at $B000 for 6809 (`H6809RomBName`).
`-6809romC <Name>`
  Specify 4KiB to 16KiB ROM file name at $C000 for 6809 (`H6809RomCName`).
`-6809romD <Name>`
  Specify 4KiB to 12KiB ROM file name at $D000 for 6809 (`H6809RomDName`).
`-6809romE <Name>`
  Specify 2KiB or 8KiB ROM file name at $E000 for 6809 (`H6809RomEName`).
`-6809romF <Name>`
  Specify 4KiB ROM file name at $F000 for 6809 (`H6809RomFName`).

### 7.7.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.7.6 PET settings

#### 7.7.6.1 PET resources

`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (1: PAL, 2: NTSC).
`CPUswitch`
  Integer specifying the status of the SuperPET CPU switch (0: 6502, 1: 6809, 2: Prog.)
`CB2Lowpass`
  Integer specifying the frequency of the low-pass filter that is applied to the CB2 sound signal. Default: 16000

#### 7.7.6.2 PET command line options

These are the commandline options specific for the PET models.

`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-model <model>`
  Specify the PET model you want to emulate (`Basic1`, `Basic1Chars`, `EoiBlank`, `Screen2001`, `ChargenName`, `KernalName`, `BasicName`, `EditorName`, `RomModule9Name`, `RomModuleAName`, `RomModuleBName`, `H6809RomAName`, `H6809RomBName`, `H6809RomCName`, `H6809RomDName`, `H6809RomEName`, `H6809RomFName`). (2001, 3008, 3016, 3032, 3032B, 4016, 4032, 4032B, 8032, 8096, 8296, SuperPET)
`-iosize <size>`
  Specify size of I/O in Bytes (`IOSize`). (256, 2048)
`-ramsize <size>`
  Specify size of RAM in KiB (`RamSize`). (8, 16, 32, 96, 128)
`-videosize <size>`
  Specify video size (`VideoSize`). (0: Automatic from ROM, 40: 40 columns, 80: 80 columns)
`-petram9`
`+petram9`
  Switch on/off RAM mapping at address $9000-$9FFF (`Ram9=1`, `Ram9=0`).
`-petramA`
`+petramA`
  Switch on/off RAM mapping at address $A000-$AFFF (`RamA=1`, `RamA=0`).
`-superpet`
`+superpet`
  Enable/disable SuperPET I/O and CPU emulation (`SuperPET`).
`-cpu6502`
  Set SuperPET CPU switch to '6502' (`CPUswitch=0`).
`-cpu6809`
  Set SuperPET CPU switch to '6809' (`CPUswitch=1`).
`-cpuprog`
  Set SuperPET CPU switch to 'Prog' (`CPUswitch=2`).
`-basic1`
`+basic1`
  Enable/disable patching the IEEE488 section of the PET2001 ROM when detected (`Basic1=1`, `Basic1=0`).
`-eoiblank`
`+eoiblank`
  Model-2001-only quirk: Enable/disable EOI blanking the screen. (`EoiBlank=1`, `EoiBlank=0`).
`-screen2001`
`+screen2001`
  Model-2001-only quirk: the 1 KiB of screen memory is mirrored all the way through the $8*** block. This option is incompatible with 80 columns and the Colour PET extension. (`Screen2001=1`, `Screen2001=0`).
`-diagpin`
`+diagpin`
  Enable/disable the diagnostic pin at the PET userport (`DiagPin=1`, `DiagPin=0`).
`-cb2lowpass`
  Integer specifying the frequency of the low-pass filter that is applied to the CB2 sound signal. (`CB2Lowpass`)

### 7.7.7 Colour PET

The Colour PET is a simple extension by Steve Gray http://www.6502.org/users/sjgray/projects/colourpet/. It exploits the similarities and differences between the 4032 and 8032 models, to use memory at $8800 as colour RAM.

There are two versions of the extension:

with digital colour (RGBI), which can select 16 foreground and 16 background colours for each character cell. The 8 colour bits are used as RGBI RGBI, with the most significant bits for the background, and the least significant bits for the foreground.

With analog colour, which can use 256 foreground colours for each character cell, the 8 colour bits are used as RRR GGG BB.

### 7.7.8 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 3.3 Palette files) in the `PaletteName` resource. The menu provides the following values:

- `green.vpl` (default, "green)"), the good old green-on-black feeling; for use on the 3000 models and up;
- `2001-blueish.vpl` ("2001-blueish"), an approximation of the slightly blue CRTs used for the 2001 models;
- `amber.vpl` ("amber"), an amber phosphor lookalike (not used by Commodore);
- `white.vpl` ("white"), simple white-on-black palette (not used by Commodore).

### 7.7.9 DWW high resolution graphics

The DWW, or Double-W (1), board is a high resolution graphics board for PET models 30xx. It attaches to the internal expansion connector. It would not physically fit in 20xx, 40xx or 80xx models because their connectors are physically and logically different. Apart from this, it requires address space at $EC00-$EFFF, which makes it unfit to work in 40xx and 80xx models, which have only 256 bytes of I/O space at $E800.

The DWW board consists of 8 KiB of RAM and a PIA to control various options. The RAM can be mapped either linearly at $9000-$AFFF, or bank-switched in 8 banks of 1 KiB each at $EC00-$EFFF.

It seems that in the demo programs, the BASIC versions like to POKE in 60200, where the machine language programs use $EB00.

    60200 Port A or DDR A           $EB28
    $EBx0 1  0 \
          2  1 - RAM block at $EC00 (0-7)
          4  2 /
          8  3 charrom         0 = off 1 = on
          16 4 hires           0 = on  1 = off
          32 5 extra charrom   0 = on  1 = off

    60201 Control Register A: bit #3 (worth 4) controls if 60200
    $EBx1 accesses the Data Direction Register A (0) or Port A (1).

    60202 Port B or DDR B
    $EBx2 0 = RAM is visible from $9000 - $AFFF
          1 = RAM is bank-switched in blocks of 1 K in $EC00 - $EFFF

          [Control Register B is never mentioned, so putting 1 in this
           address would access the DDR, creating an output line, which
           after RESET is default 0...]

Typical initialisation sequence:

        poke 60201,0        poke 60200,255          (all outputs)
        poke 60201,4        poke 60200,24 or 25 (16 + 8 + 1)

Demo programs on disk PBE-110A, 110B, 111A, and 111B. (PBE = PET Benelux Exchange, the Dutch PET user group)

The memory mapping is a bit strange. It seems each 1 K block contains the pixeldata for 1 bit-line of each text line. This is probably so that the addressing of the RAM can borrow part of the addressing logic/signals of the text screen. (The screen addressing cycles through 0-39, then increases the line (= byte offset) which is fetched from the character ROM; for the graphics, the screen position selects the byte in a KiB and the char ROM offset selects which KiB of graphics RAM).

My notes say: to set a pixel:

    RE = INT(Y/8): LY = Y - 8*RE    (or Y AND 7)
    BY = INT(X/8): BI = X - 8*BY    (or X AND 7)

when memory mapped to $9000:

        L = 36864 + 1024 * LY + 40 * RE + BY
        POKE L, PEEK(L) OR 2^BI

when memory mapped to $EC00:

        POKE 60200,LY + 40 (or 8?)
        L = 60416 + RE * 40 + BY
        POKE L, PEEK(L) OR 2^BI

Unfortunately there is no logical means of expanding the memory to 16 K, so even in an 80 columns PET the resolution will be the same.

### 7.7.10 HRE high resolution graphics

This information comes from Michal Pleban, http://www.cbm-ii.com.

This is a short information about the HRE (HiRes Emulator) graphics board for PET 8296 (ASSY No. 324890-01). This is a small board that is installed on the mainboard into sockets for the CRTC and character ROM. It adds the ability to display 512x256 graphics on the built-in monitor.

The board is accompanied with two extension ROMs:

- 324992-02 HiRes Emulator (at $9000)
- 324993-02 HiRes BASIC (at $A000)

The ROMs are initialized by the command `SYS 36864`.

After that, the computer recognizes additional BASIC commands like DISPLAY, PLOT and so on; these commands are identical to those of the HiRes Graphics boards based on Thomson chips. All BASIC programs written for the HRG boards should also work on the HRE (albeit much slower).

Upon initialization, the ROM code writes some routines into expansion RAM as $8800 - they are used to manipulate the bitmap data. The actual bitmap is located in expansion RAM at addresses $A000-$DFFF, and is organized linearly (first 64 bytes form the first display line, then comes the next line and so on).

The RAM is accessed for reading by writing the value #$83 into $E888. This is a register in the CRTC memory space that is intercepted by the board and serves as a latch to drive jumpers on the 8296D mainboard. Because the ROMs are banked out this way, all video memory manipulation must happen with interrupts disabled. Normal ROM operation is restored by writing #$0F into $E888.

As usual with the 8296, the RAM can also be written even when the ROMs are mapped normally.

The board is initialized into graphics mode by modifying the following values in CRTC registers (it is done by the routine located at $8C1A):

- Register $01 (horizontal displayed) = #$20
- Register $02 (horizontal sync position) = original + #$02
- Register $06 (vertical displayed) = #$20
- Register $07 (vertical sync position) = original + #$04
- Register $0C (RAM address high) = #$02

The last value causes the board to switch into graphics mode; former values set up proper screen dimensions for 512x256 display.

## 7.8 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.8.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 KiB. xcbm2: (128, 256, 512, 1024) xcbm5x0: (64, 128, 256, 512, 1024)
`Ram08`
  Boolean specifying whether the RAM should be mapped to the expansion ROM area at $0800-$0FFF or not.
`Ram1`
  Boolean specifying whether the RAM should be mapped to the expansion ROM area at $1000-$1FFF or not.
`Ram2`
  Boolean specifying whether the RAM should be mapped to the expansion ROM area at $2000-$3FFF or not.
`Ram4`
  Boolean specifying whether the RAM should be mapped to the expansion ROM area at $4000-$5FFF or not.
`Ram6`
  Boolean specifying whether the RAM should be mapped to the expansion ROM area at $6000-$7FFF or not.
`RamC`
  Boolean specifying whether the RAM should be mapped to the expansion ROM area at $C000-$CFFF or not.
`CartridgeReset`
  Boolean specifying whether the machine should be reset when a cartridge is changed.
`Cart1Name`
  String specifying the filename for the $1000-$1FFF expansion ROM file. This file contains a 4KiB ROM dump.
`Cart2Name`
  String specifying the filename for the $2000-$3FFF expansion ROM file. This file contains an 8KiB ROM dump.
`Cart4Name`
  String specifying the filename for the $4000-$5FFF expansion ROM file. This file contains an 8KiB ROM dump.
`Cart6Name`
  String specifying the filename for the $6000-$7FFF expansion ROM file. This file contains an 8KiB 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. xcbm2: (0: CBM 7x0 (50Hz), 1: 60Hz C6x0, 2: 50Hz C6x0) xcbm5x0: (1: 60Hz C5x0, 2: 50Hz C5x0)
`ChargenName`
  String specifying the name of the character generator ROM (default for xcbm2: ``chargen.600'`, default for xcbm5x0: ``chargen.500'`).
`KernalName`
  String specifying the name of the Kernal ROM (default for xcbm2: ``kernal'`, default for xcbm5x0: ``kernal.500'`).
`BasicName`
  String specifying the name of the Basic ROM (default for xcbm2: ``basic.128'`, default for xcbm5x0: ``basic.500'`).
`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (1: PAL, 2: NTSC).
`MachinePowerFrequency`
  Integer that specifies the frequency of the power grid in Hz (50, 60). This is used to determine the tick frequency for the TOD clocks.

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 (128KiB RAM)
- C610 PAL or NTSC (128KiB RAM)
- C620 (256KiB RAM)
- C620+ (1024KiB RAM, expanded) PAL or NTSC
- C710 (128KiB RAM) NTSC
- C720 (256KiB RAM) NTSC
- C720+ (1024KiB 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.8.2 CBM-II system ROM settings

#### 7.8.2.1 CBM-II system ROM resources

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

`-kernal <name>`
  Specify the name of the Kernal ROM file (`KernalName`).
`-basic <name>`
  Specify the name of the Basic ROM file (`BasicName`).
`-chargen <name>`
  Specify the filename for the character generator ROM file (`ChargenName`).
`+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 (`CartridgeReset=1`, `CartridgeReset=0`).
`-cart1 <name>`
  Specify the filename for the ROM image file for the cartridge area $1000-$1FFF (`Cart1Name`).
`-cart2 <name>`
  Specify the filename for the ROM image file for the cartridge area $2000-$2FFF (`Cart2Name`).
`-cart4 <name>`
  Specify the filename for the ROM image file for the cartridge area $4000-$5FFF (`Cart4Name`).
`-cart6 <name>`
  Specify the filename for the ROM image file for the cartridge area $6000-$7FFF (`Cart6Name`).

### 7.8.3 CBM-II command line options

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

`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-power50`
  Use 50Hz power grid frequency. (`MachinePowerFrequency=50`).
`-power60`
  Use 60Hz power grid frequency. (`MachinePowerFrequency=60`).
`-ramsize <ramsize>`
  Specify size of RAM (`RamSize`). xcbm2: (128, 256, 512, 1024) xcbm5x0: (64, 128, 256, 512, 1024)
`-ram08`
`+ram08`
  Enable/disable RAM mapping in bank 15 at address $0800-$0FFF (`Ram08=1`, `Ram08=0`).
`-ram1`
`+ram1`
  Enable/disable RAM mapping in bank 15 at address $1000-$1FFF (`Ram1=1`, `Ram1=0`).
`-ram2`
`+ram2`
  Enable/disable RAM mapping in bank 15 at address $2000-$3FFF (`Ram2=1`, `Ram2=0`).
`-ram4`
`+ram4`
  Enable/disable RAM mapping in bank 15 at address $4000-$5FFF (`Ram4=1`, `Ram4=0`).
`-ram6`
`+ram6`
  Enable/disable RAM mapping in bank 15 at address $6000-$7FFF (`Ram6=1`, `Ram6=0`).
`-ramC`
`+ramC`
  Enable/disable RAM mapping in bank 15 at address $C000-$CFFF (`RamC=1`, `RamC=0`).
`-model <modelnumber>`
  Specify CBM-II model to emulate (`ModelLine`, `MachineVideoStandard`, `MachinePowerFrequency`, `RamSize`, `KernalName`, `BasicName`, `ChargenName`). xcbm2: (610, 620, 620+, 710, 720, 720+) xcbm5x0: (510)

### 7.8.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 3.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.9 VSID-specific commands and settings

### 7.9.1 VSID settings

#### 7.9.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.
`HVSCRoot`
  String specifying the location of the HVSC root directory, overriding the environment variable `HVSC_BASE`.
`ChargenName`
  String specifying the name of the character generator ROM (default ``chargen'`).
`BasicName`
  String specifying the name of the Basic ROM (default ``basic'`).
`KernalName`
  String specifying the name of the Kernal ROM (default ``kernal-901227-03.bin'`).
`KernalRev`
  String specifying the Kernal revision. This resource can be used to control what revision of the C64 kernal is being used; Changing this resource equals loading one of the provided kernal ROM files. It will be adjusted when changing `KernalName`. Valid values are:
  `-1`
    Unknown kernal. This value can not be set by the user, it will be set when loading a custom kernal via changing `KernalName`.
  `-2`
    No kernal. This is used by the MAX Machine.
  `0`
    Kernal revision 0 (Japanese, 906145-02)
  `1`
    Kernal revision 1 (901227-01)
  `2`
    Kernal revision 2 (901227-02)
  `3`
    Kernal revision 3 (901227-03)
  `39`
    C64 GS (390852-01)
  `67`
    SX-64 (251104-04)
  `100`
    Commodore 4064 (also known as "PET64" or "Educator 64") (901246-01)
`MachineVideoStandard`
  Integer that specifies the video standard of the emulated machine (1: PAL, 2: NTSC, 3: Old NTSC, 4: PAL-N).
`MachinePowerFrequency`
  Integer that specifies the frequency of the power grid in Hz (50, 60). This is used to determine the tick frequency for the TOD clocks.

#### 7.9.1.2 VSID command-line options

`-keepenv`
  Override PSID settings for Video standard and SID model (`PSIDKeepEnv=1`).
`-tune <number>`
  Specify PSID tune <number> (`PSIDTune`).
`-hvsc-root <path>`
  Specify the location of the HVSC root directory, overriding the environment variable `HVSC_BASE`. (`HVSCRoot`).
`-chargen <name>`
  Specify name of character generator ROM image (`ChargenName`).
`-kernal <name>`
  Specify name of the Kernal ROM image (`KernalName`).
`-kernalrev <revision>`
  Specify Kernal revision (`KernalRev`). (0/jap: japanese 1: rev. 1, 2: rev. 2, 3: rev. 3, 39/gs: C64 GS, 67/sx: sx64, 100/4064: 4064)
`-basic <name>`
  Specify name of the Basic ROM image (`BasicName`).
`-pal`
  Use PAL sync factor (`MachineVideoStandard=1`).
`-ntsc`
  Use NTSC sync factor (`MachineVideoStandard=2`).
`-ntscold`
  Use old NTSC sync factor (`MachineVideoStandard=3`).
`-paln`
  Use PAL-N sync factor (`MachineVideoStandard=4`).
`-power50`
  Use 50Hz power grid frequency. (`MachinePowerFrequency=50`).
`-power60`
  Use 60Hz power grid frequency. (`MachinePowerFrequency=60`).

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