DGENRC(5)

NAME
dgenrc - file containing settings for dgen(1)

SYNOPSIS
$HOME/.dgen/dgenrc

DESCRIPTION
The file $HOME/.dgen/dgenrc is parsed by dgen(1) when the emuator is started. It is used to set controller keys, as well as other characteristics of the emulation. The contents of this file may be overriden with the contents of another similarly-formatted file, via the -r commandline switch.

FILE FORMAT
Each rc file consists of an unlimited number of lines, which each have the format 'fieldname = value'. A line may also be a comment, if it begins with the hash mark (#) character.

Each fieldname is prepended by a name, which identifies the type of this field:

key_*
    A key value. May be set to a key identifier listed in the KEY INDENTIFIERS section below.

bool_*
    A boolean value. "false", "no", and "0" values are taken as false, while "true", "yes", and any number except 0 are taken as true.

int_*
    An integer value, greater than or equal to 0.

str_*
    A string value, can be empty.

Some fields take special value sets, which are addressed in their respective sections. None of the field names or values are case-sensitive.

The fields fall under a few basic groups. They are listed below, with their default values in brackets ([]):

All of them can be modified interactively from the prompt, as described in dgen(1).

CONTROLLERS

key_pad1_up [up]

key_pad1_down [down]

key_pad1_left [left]

key_pad1_right [right]

key_pad1_a [a]

key_pad1_b [s]

key_pad1_c [d]

key_pad1_x [q]

key_pad1_y [w]

key_pad1_z [e]

key_pad1_mode [backspace]

key_pad1_start [return]
    Map keys to the first Genesis controller. Each of these fields has a corresponding "key_pad2" field, to map to the second controller.

bool_joystick [true]
    Use joysticks to emulate the controllers. Note that the keyboard keys will still work if this value is set. This field is only available if you have joystick support enabled.

int_joystick1_dev [0]

int_joystick2_dev [1]
    Select which joystick device to use. Parameter is an integer passed to SDL_JoystickOpen().

joypadX_bY
    Maps button number Y, on joystick X to a Genesis controller button. Valid button values are "a", "b", "c", "x", "y", "z", "mode", and "start". Joystick 1 will always emulate controller 1, and joystick 2 will always emulate controller 2.

AUDIO

bool_sound [true]
    Enable the sound subsystem.

int_soundrate [22050]
    Sound frequency to play at, in hertz (Hz).

int_soundsegs [8]
    Number of sound segments to use for sound buffering. Lower values guarantee low latency. Increment this only if the sound becomes choppy.

int_soundsamples [0]
    Size of the system sound buffer, in samples (samples are the sound unit, sound rate is how many of them are played every second). Specifying 0 automatically choses the safest value. If you experience sound issues int_soundsegs is unable to solve, try to change this. Increasing it will cause noticeable audio lag (it is unfortunately often required on slower machines).

int_volume [100]
    Volume level, in percent. Values above 100 cause distorsion.

key_volume_inc [=]

key_volume_dec [-]
    Key bindings for volume control.

VIDEO

int_depth [0]
    Color depth (bits per pixel). Allowed values are 0 (automatic), 8, 15, 16, 24 and 32. Ignored in OpenGL mode.

int_width [-1]

int_height [-1]
    Desired window width and height.

bool_opengl [true]
    Use the OpenGL renderer, if it is available.

bool_opengl_aspect [true]
    Retain original aspect ratio when resizing OpenGL window.

bool_opengl_linear [true]
    Use GL_LINEAR for textures filtering instead of GL_NEAREST.

bool_opengl_32bit [true]
    Use 32 bit textures. They require more memory but are usually faster than 16 bit textures.

bool_opengl_square [false]
    Use square textures. Wastes a lot of memory but may solve OpenGL initialization failures.

bool_fullscreen [false]
    Try to run fullscreen, if possible.

int_scale [-1]

int_scale_x [-1]

int_scale_y [-1]
    Amount by which to scale the rendered screen from the default resolution. See scaling filters.

key_fullscreen_toggle [alt-enter]
    Key to toggle fullscreen mode (this may do nothing if SDL doesn't support fullscreen toggling on your platform.)

int_info_height [-1]
    Height of the text area at the bottom of the screen, in pixels. This also affects the font size. Values smaller than the minimum font size make DGen redirect text to stdout instead. The default value of -1 makes DGen choose the proper height.

bool_fps [false]
    Display the current number of frames per second.

bool_swab [false]
    Swap bytes in the video output. Sometimes useful when video output is located on a different system. This is implemented as a CTV filter which must be compiled-in to work.

SAVE STATES

key_slot_X [X]
    Sets the current save-state slot to number X.

key_save [f2]
    Saves state to the current slot.

key_load [f3]
    Loads state from the current slot.

MISCELLANEOUS KEYS

key_fix_checksum [f1]
    Fixes the checksum value. Some older games will freeze with a red screen if the ROM has been hacked or modified with Game Genie codes. If it does, pressing this, and resetting should fix the problem.

key_quit [escape]
    Exit DGen or switch to the next ROM on the command-line.

key_craptv_toggle [f5]
    Toggles Crap-TV image filters. These filters aren't available in 8 bpp mode.

key_scaling_toggle [f6]
    Toggles scaling algorithms. See scaling_startup below.

key_reset [tab]
    Restart the Genesis emulation.

key_cpu_toggle [f11]
    Switch CPU emulators. The x86 assembly CPU emulator StarScream is fast, but has glitches which affect a few games. Switching to the slower Musashi core will fix these problems, at a speed penalty.

key_z80_toggle [f10]
    Switch Z80 emulators. MZ80 is a bit faster than CZ80, particularly in its assembly version (only available for x86), but CZ80 works with more games. This key can also disable Z80 emulation.

key_stop [z]
    Pause emulation, so you can concentrate on real life for a few seconds. :)

key_game_genie [f9]
    Enter a Game Genie or Hex code. This key also works in stopped mode.

key_screenshot [f12]
    Take a screenshot. Not available in 8 bpp mode.

key_prompt [:]
    Pause emulation and display interactive prompt. Also works in stopped mode.

key_debug_enter [`]
    Break into the debugger. Only meaningful if debugger support is compiled-in.

PREFERENCES

int_hz [60]
    Video refresh rate. The default is 60 as in NTSC consoles.

bool_pal [false]
    When true, a PAL console is emulated. This should be used in combination with int_hz above for 50Hz emulation.

region [U]
    Region to emulate: U for America, E for Europe or J for Japan. Should be used in combination with bool_pal.

emu_m68k_startup [musa]
    Useful when both Musashi and StarScream are compiled-in. This option selects the default emulator to use ("musa" for Musashi, "star" for StarScream, "none" for neither). See key_cpu_toggle.

emu_z80_startup [cz80]
    Useful when both CZ80 and MZ80 are compiled-in. This option selects the default emulator to use ("cz80", "mz80" or "none", if you want to disable it altogether). See key_z80_toggle.

bool_autoload [false]
    Automatically load the saved state from slot 0 when DGen starts.

bool_autosave [false]
    Automatically save the saved state to slot 0 upon exit. Setting both of these fields true, you can exit DGen, and automatically start a game where you left off when you start it again.

bool_autoconf [true]
    Automatically dump the current configuration to dgenrc.auto before exiting. This file is always loaded before dgenrc at startup.

bool_frameskip [true]
    Automatically skip frames, when it is necessary to maintain proper emulation speed. You may want to disable sound or set int_nice to a nonzero value when setting this to false.

int_nice [0]
    If set to a non-zero value, DGen will call usleep(3) with the specified parameter after rendering each frame. This will slow the program down (if it is running too fast on your computer), and allow the operating system to reclaim some CPU time.

ctv_craptv_startup [off]
    CTV filter to use by default. Available filters are "blur", "scanline", "interlace" and "swab".

scaling_startup [default]
    Scaling algorithm to use when (int_scale > 1). Available algorithms are "default", "hqx" and "scale2x". Algorithms other than "default" may not work for all possible depths and int_scale values. They are also more CPU-intensive but it's usually worthwhile.

bool_show_carthead [false]
    Show cartridge header info at startup.

bool_raw_screenshots [false]
    Generate unfiltered screenshots.

str_rom_path ["roms"]
    Directory where DGen should look for ROMs by default. It's relative to DGen's home directory, unless an absolute path is provided.

EXAMPLES
See the file "sample.dgenrc" in the DGen/SDL distribution.

KEY IDENTIFIERS
A key identifier can have the prefixes "shift-", "ctrl-", "alt-" and "meta-", or any combination thereof, to require that the specified modifier be pressed in combination with the key. For example, the identifier "alt-enter" would correspond to holding down the Alt key while pressing Enter.

The "shift-" modifier only works with keys that don't generate symbols (such as arrow keys). Otherwise their UTF-8 representation must be used directly.

The numbers "0" through "9" ("kp_0" through "kp_9" for the numeric keypad), letters "A" through "Z", and function keys "F1" through "F12" map to their key equivalents. In addition, the following identifiers map to their similarly-labeled key counterparts. Identifiers on the same line map to the same key:

    escape
    backspace
    tab
    capslock	caps_lock
    lshift		shift_l
    rshift		shift_r
    lctrl		ctrl_l
    lmeta		meta_l
    lalt		alt_l
    ralt		alt_r
    rmeta		meta_r
    rctrl		ctrl_r
    return		enter
    space
    scrollock	scroll_lock
    numlock		num_lock
    insert
    home
    page_up		pageup
    delete
    end
    page_down	pagedown
    left
    right
    up
    down
    kp_home
    kp_up
    kp_pageup	kp_page_up
    kp_left
    kp_right
    kp_end
    kp_down
    kp_pagedown	kp_page_down
    kp_insert
    kp_delete	kp_period
    kp_enter
    kp_divide
    kp_minus
    kp_multiply
    kp_plus

SEE ALSO
dgen(1)

AUTHORS
This manual page was written by Joe Groff <joe@pknet.com>. Updated by zamaz <zamaz@users.sourceforge.net>.