Next: Miscellaneous, Previous: General Usage, Up: Top

## Configuration

The configuration file kat5200.xml controls the settings for the kat5200 emulator. These settings are set in the GUI or can be edited directly in the file by the advanced user.

### File I/O

The file section is entered by pressing the File I/O button from the main menu. It contains the following:

`OS File`
  This is the bios file to use with the emulator (normally 5200.bin). A file browser will pop up to allow the user to pick the file. Required.
`Font File`
  This is the font file to use with the GUI. A file browser will pop up to allow the user to pick a file. If not found, the program will attempt to use the internal default.
`Save State`
  This button will bring up a file browser so the user can save the current emulation state to a file. The user may name this whatever is desired, but the format game.xml.gz is recommended for viewing.
`Load State`
  This button will bring up a file browser so the user can load a previously saved emulator state.
`Load Colors`
  This button will bring up a file browser so the user can load a color palette file. If this fails, an internal default will be used.

### Video/Sound

The video/sound section is entered by pressing the Video/Sound button from the main menu. It contains the following:

`Video Mode`
  Choose from 4 video resolutions. See the `-v` option in General Usage
`Full Screen`
  Turn full screen mode on and off. See the `-f` option in General Usage
`Hi-Res Artifacts`
  Turn Hi-Res mode artifacts on and off. See the `-h` option in General Usage
`Sound`
  Turn sound on and off. See the `-s` option in General Usage
`Sound Freq`
  Sets the sampling frequency. Generally, set this to highest value that doesn't affect emulator performance.
`Sound Samples`
  Sets the sound buffer size in samples. Generally, the default should be fine, but the user may tweak this for better sound performance.
`Throttle`
  Set the speed in terms of percent of the normal speed. See the `-t` option in General Usage. In the GUI, this is set in 10 percent increments. If higher resolution is needed, the kat5200.xml file may be edited directly.
`Mouse Speed`
  See the `-m` option in General Usage

### User Interface

The user interface section is entered by pressing the User Interface button from the main menu. This section contains settings for the user interface keys. These are the Exit key, Back to GUI key, and Fullscreen/Window toggle key. In general, the Auto-Detect button should be used to set UI key options. However, a brief description of the fields follows:

`Device`
  Possible settings are DEV_KEYBOARD, DEV_MOUSE, and DEV_JOYSTICK. In the GUI these are shown as Keyboard, Mouse, and Joystick.
`Index`
  For joystick controllers, this is the index of the device as SDL recognizes it. For the keyboard, this is the modifier key, if any. Valid modifier keys are ALT, CTRL, SHIFT, AND META.
`Button/Key`
  For joystick controllers this is the button index in the order that SDL recognizes the button. For the mouse, it is the mouse button index. For the keyboard, it is a code representing the key on the keyboard. In the GUI, a string interpretation of the key is shown. See table below for definitions.

A note on the Fullscreen/Window toggle key. This will not update the configuration in the GUI or configuration file.

### Input Section

The input section is entered by pressing the Input button from the main menu. This section contains joystick controller options that are divided into control groups. In the included default configuration file, there are 5 control groups. One for keyboard use, one for using an analog joystick, two for using the mouse (2-button and 3-button), and one for two stick, one controller mode (useful for Space Dungeon and Robotron). One note about mouse mode, the emulator will treat the mouse as the 5200 trackball. One note about two stick, one controller mode, it is recommend the user use the Auto-Detect feature to set up the second stick (i.e. player 2's stick). See below for description of the options:

`Control Group`
  This ring allows the user to choose which control group to perform editing and/or viewing on.
`Player`
  This ring allows the user to choose which player's controller options to view and/or edit. Currently, 2 players are supported.
`Add`
  This button adds a new control group based on the currently selected group. The user will be prompted to name this group.
`Edit Name`
  This button prompts the user for a new name for the currently selected group.
`Delete`
  This button will delete the currently selected group, updating the default group is necessary.
`Save Group`
  This button will save any controller changes (both players) to the currently selected group. This is required for saving any changes.
`Default Group`
  This ring allows the user to choose the control group to use by default. Carts in the cart list that have Cart Control set to Default will use this group.
`Stick Deadzone(%)`
  This ring allows the user to set the deadzone of the joystick controller. A lower value will give the user a wider analog range but could cause jitter, while a higher value will reduce jitter, but will also reduce range. This is 20% by default. The preference would be to set this to the lowest value that has no jitter. This is also set on a per player basis.
`Sensitivity(%)`
  This ring allows the user to change the range of the 5200 pot values. This is used in Jum's pengo mode in that emulator. For some games like Gorf, Missle Command, and Super Breakout, setting this to somewhere between 50 and 75 percent when using an analog stick can make the game more playable. This can also be used with Simulate Analog for "Pengo" type games. This is set on a per player basis.
`Simulate Analog`
  When using the keyboard or D-Pad, setting this to yes can make games where the position of the analog stick is important (as opposed to direction). This is similiar to Pengo mode in VSS and Jum52. Useful for games like Gorf, Missle Command, and Super Breakout. This is set on a per player basis.

#### Controller Options

In general, the Auto-Detect button should be used to set controller options. However, a brief description of the fields follows:

#### Keypad keys/Buttons

`Device`
  Possible settings are DEV_KEYBOARD, DEV_MOUSE, and DEV_JOYSTICK. In the GUI these are shown as Keyboard, Mouse, and Joystick.
`Index`
  Index of the device as SDL recognizes it. Only meaningful for joystick controllers.
`Button/Key`
  For joystick controllers this is the button index in the order that SDL recognizes the button. For the mouse, it is the mouse button index. For the keyboard, it is a code representing the key on the keyboard. In the GUI, a string interpretation of the key is shown. See table below for definitions.

#### Stick Directions

`Device`
  Possible settings are DEV_KEYBOARD, DEV_MOUSE, and DEV_JOYSTICK. In the GUI these are shown as Keyboard, Mouse, and Joystick. When the mouse is selected, none of the other fields are meaningful.
`Index`
  Index of the device as SDL recognizes it. Only meaningful for joystick controllers.
`Axis Type`
  Only used for joystick controllers. This represents the type of axis to use for this stick direction. Types are shown below.
`Index`
  For joystick controllers this is the axis number in the order SDL recognizes the axis. Generally, for the first analog stick, 0 is the horizontal axis and 1 is the vertical axis. For the keyboard and mouse, this is same as `Button/Key` above.

#### Keyboard Strings

The following table shows the keyboard strings that can be used with the control definitions (using Auto-Detect is recommended though):

`A-Z or a-z`
  Normal letter keys (always treated as lowercase)
`0-9`
  Normal number keys
`F2-F12`
  Function keys (F1 goes to debug mode)
`UP,DOWN,LEFT,RIGHT`
  Arrow keys
`HOME,END,PAGE_UP,PAGE_DOWN`
  Navigation keys
`RSHIFT,LSHIFT,RCTRL,LCTRL,RALT,LALT`
  State keys
`NUMLOCK,CAPSLOCK,SCROLLOCK`
  State lock keys
`KP0-KP9'`
  Keypad keys 0 to 9
`KP_MULTIPLY,KP_DIVIDE,KP_PERIOD,KP_MINUS,KP_PLUS,KP_ENTER,KP_EQUALS`
  Keypad functions keys
`BACKSPACE,TAB,CLEAR,RETURN,SPACE`
`COMMA,MINUS,PLUS,EQUALS,PERIOD,SEMICOLON`
`LEFTBRACKET,RIGHTBRACKET,BACKSLASH,DELETE,INSERT`
  Miscellaneous keys

If a keyboard string is not recognized the actual code will be shown in the GUI. However, it should still work.

### Cart

The cart section is entered by pressing the Cart from the main menu. This section provides a listing of all the roms that I know of along with the file checksums. Different settings may be applied to each entry in the list. Also, a filename can be associated with the entry (directly or using the Scan button) so the user may load roms from the list. See parameters:

#### Settings

`CRC32`
  The rom file checksum. When the emulator loads a rom it checks the checksum against the cart list for use of it's settings.
`Rom Size`
  File size of the rom. Can be useful to know if debugging loading a 16K one chip or two chip rom.
`Title`
  Title or description of the cart
`Mapping`
  Really only useful for 16K One chip roms that the emulator doesn't recognize.
`Cart Control`
  Which control group to use with the rom. Normally, this should be Default except for a few carts. For example, I like to use the mouse with Centipede, Missle Command, and Super Breakout. So for these I have Cart Control set to Mouse - 3 button and the rest are set to Default. I use the PC gamepad with the rest, so I have the Default Group (in the Input Menu) set to Joystick - 2 button.
`Filename`
  File to load when using the Load Cart button.

#### Action Buttons

`Add Cart`
  This button will present the user with a file browser window to choose a rom to add to the Cart list.
`Save Cart`
  This button will save any changes made to the selected cart settings.
`Delete Cart`
  This button will delete the selected cart from the list.
`Load Cart`
  This button will load the selected cart for play. Filename is required for this to work.
`Scan`
  This button will present the user with a file browser window to select the directory to scan. Navigate to the directory desired and press the Ok button to begin scanning. All roms recognized will have the Filename section of the cart list filled with the path to the rom file.