1# This is a sample .dgenrc file
2# It simply sets everything to their default values
3# Lines that BEGIN with a hash (#) (i.e. NOTHING before it) are comments.
4# Also, everything after the "field = value" is ignored (but don't count on it)
5
6# Note that your own RC file doesn't need to include every field like this
7# one does, any ones you exclude simply have their compiled-in default values.
8
9# Also, you can have multiple RC files, and use the -r option to dgen
10# to pick the rc you want to load.
11
12# Fields beginning with "key_" take key names. The valid key names are listed
13# in the dgenrc(5) manpage.
14
15# Fields beginning with "bool_" are boolean, i.e. they take a true or false
16# value:
17#  "true", "yes", any number except 0: true
18#  "false", "no", "0"                : false
19
20# Fields beginning with "int_" take a _positive_ integer. Simple enough, huh? ;)
21
22# The syntax and fields of this file are documented in a bit more detail in the
23# dgenrc(5) manpage.
24
25# These are the controls for pad 1
26key_pad1_up = up
27key_pad1_down = down
28key_pad1_left = left
29key_pad1_right = right
30key_pad1_a = a
31key_pad1_b = s
32key_pad1_c = d
33key_pad1_x = q
34key_pad1_y = w
35key_pad1_z = e
36key_pad1_mode = backspace
37key_pad1_start = return
38
39# If you prefer W.A.S.D type controls (again player 1):
40#key_pad1_up = w
41#key_pad1_down = s
42#key_pad1_left = a
43#key_pad1_right = d
44#key_pad1_a = j
45#key_pad1_b = k
46#key_pad1_c = l
47#key_pad1_x = u
48#key_pad1_y = i
49#key_pad1_z = o
50#key_pad1_mode = backspace
51#key_pad1_start = return
52
53# Joystick/joypad definitions for pad 1
54# Defaults are tailored for Gravis GamePad Pros. (10 button)
55joy_pad1_up = joystick0-axis1-min
56joy_pad1_down = joystick0-axis1-max
57joy_pad1_left = joystick0-axis0-min
58joy_pad1_right = joystick0-axis0-max
59joy_pad1_a = joystick0-button0
60joy_pad1_b = joystick0-button3
61joy_pad1_c = joystick0-button1
62joy_pad1_x = joystick0-button6
63joy_pad1_y = joystick0-button4
64joy_pad1_z = joystick0-button5
65joy_pad1_mode = joystick0-button9
66joy_pad1_start = joystick0-button8
67
68# The same for pad 2
69# Yes, I KNOW the default player 2 keys are awful. Pick your own!
70key_pad2_up = kp_up
71key_pad2_down = kp_down
72key_pad2_left = kp_left
73key_pad2_right = kp_right
74key_pad2_a = delete
75key_pad2_b = end
76key_pad2_c = page_down
77key_pad2_x = insert
78key_pad2_y = home
79key_pad2_z = page_up
80key_pad2_mode = kp_plus
81key_pad2_start = kp_enter
82
83# Joystick/joypad definitions for pad 2
84# Defaults are tailored for Gravis GamePad Pros. (10 button)
85joy_pad2_up = joystick1-axis1-min
86joy_pad2_down = joystick1-axis1-max
87joy_pad2_left = joystick1-axis0-min
88joy_pad2_right = joystick1-axis0-max
89joy_pad2_a = joystick1-button0
90joy_pad2_b = joystick1-button3
91joy_pad2_c = joystick1-button1
92joy_pad2_x = joystick1-button6
93joy_pad2_y = joystick1-button4
94joy_pad2_z = joystick1-button5
95joy_pad2_mode = joystick1-button9
96joy_pad2_start = joystick1-button8
97
98# Fix checksum, needed by some games with Game Genie codes
99key_fix_checksum = f1
100joy_fix_checksum = ''
101
102# Quit DGen or switch to the next ROM on the command-line.
103key_quit = escape
104joy_quit = ''
105# Toggle crap-tv
106key_craptv_toggle = f5
107joy_craptv_toggle = ''
108# Toggle scaling algorithm.
109key_scaling_toggle = f6
110joy_scaling_toggle = ''
111# Screenshot
112key_screenshot = f12
113joy_screenshot = ''
114# Reset Genesis
115key_reset = tab
116joy_reset = ''
117# Toggle fullscreen mode
118key_fullscreen_toggle = alt-enter
119joy_fullscreen_toggle = ''
120
121# Use this to toggle which CPU core to use, no need to reset!  :)
122# If you don't have multiple CPU cores, it won't do anything!
123key_cpu_toggle = f11
124joy_cpu_toggle = ''
125
126# Same as above, for Z80 core.
127key_z80_toggle = f10
128joy_z80_toggle = ''
129
130# This pauses emulation :)
131key_stop = z
132joy_stop = ''
133
134# Display interactive prompt.
135key_prompt = :
136joy_prompt = ''
137
138# This prompts for a Game Genie code.
139key_game_genie = f9
140joy_game_genie = ''
141
142# Press this to break into the debugger.
143key_debug_enter = `
144joy_debug_enter = ''
145
146# Pick save slot
147key_slot_0 = 0
148key_slot_1 = 1
149key_slot_2 = 2
150key_slot_3 = 3
151key_slot_4 = 4
152key_slot_5 = 5
153key_slot_6 = 6
154key_slot_7 = 7
155key_slot_8 = 8
156key_slot_9 = 9
157joy_slot_0 = ''
158joy_slot_1 = ''
159joy_slot_2 = ''
160joy_slot_3 = ''
161joy_slot_4 = ''
162joy_slot_5 = ''
163joy_slot_6 = ''
164joy_slot_7 = ''
165joy_slot_8 = ''
166joy_slot_9 = ''
167# Save/load game to current slot
168key_save = f2
169key_load = f3
170joy_save = ''
171joy_load = ''
172
173# VDP plane debugging.
174# Won't do anything unless VDP debugging is enabled at compile time.
175bool_vdp_hide_plane_a = no
176bool_vdp_hide_plane_b = no
177bool_vdp_hide_plane_w = no
178bool_vdp_hide_sprites = no
179# Sprites boxing also requires VDP debugging.
180bool_vdp_sprites_boxing = false
181int_vdp_sprites_boxing_fg = 0xffff00 # yellow
182int_vdp_sprites_boxing_bg = 0x00ff00 # green
183
184# There are now multiple CTV effects to try. Pick your favorite:
185#  off       - No CTV
186#  blur      - Blur bitmap (this is the CTV from older versions)
187#  scanline  - Attenuate every other scanline, by Phillip K. Hornung <redx@pknet.com>
188#  interlace - Unstable crappy television (I had one that looked like this ;), by me!
189#  swab      - Swap video output endianness.
190ctv_craptv_startup = off
191
192# M68K and Z80 cores to use at startup.
193emu_m68k_startup = musa
194emu_z80_startup = cz80
195
196# These decide whether DGen should automatically load slot 0 on startup,
197# and/or autosave to slot 0 on exit.
198bool_autoload = no
199bool_autosave = no
200
201# When true, automatically dump the current configuration to dgenrc.auto before
202# exiting. This file is always loaded before dgenrc at startup.
203bool_autoconf = yes
204
205# Skip frames to keep time? (faster, but can make things look bad)
206# This doesn't matter if you have sound enabled, since the sound code has its
207# own frameskipping
208bool_frameskip = yes
209# Show cartridge header info at startup.
210bool_show_carthead = no
211
212# Directory where DGen should look for ROMs by default. It's relative to
213# DGen's home directory, unless an absolute path is provided.
214str_rom_path = "roms"
215
216# Sound?
217bool_sound = yes
218# The sound rate to use.
219int_soundrate = 44100
220# Number of sound segments to use for sound buffering. Lower values guarantee
221# low latency. Increment this only if the sound becomes choppy.
222int_soundsegs = 8
223# Size of the system sound buffer, in samples (samples are the sound unit,
224# sound rate is how many of them are played every second).  Specifying 0
225# automatically choses the safest value. If you experience sound issues
226# int_soundsegs is unable to solve, try to change this. Increasing it will
227# cause noticeable audio lag (it is unfortunately often required on slower
228# machines).
229int_soundsamples = 0
230
231# MJazz option - puts 2 more FM chips in the Megadrive for a sort of 22 channel
232# sound boost. Can sound good. Slows things down a lot.
233bool_mjazz = no
234
235# Volume level, in percent.
236int_volume = 100
237
238# Volume control.
239key_volume_inc = '='
240key_volume_dec = '-'
241joy_volume_inc = ''
242joy_volume_dec = ''
243
244# Binding arbitrary actions is also supported. In the following example,
245# pressing button 2 of the first joystick loads a ROM:
246#
247#bind_j0-b2 = 'load test_rom.bin'
248#
249# Unbinding dangerous keys defined by default (quit and reset) and rebinding
250# them using combinations.
251#
252# Buttons 3, 4 and 6 of the first joystick must be pressed simultaneously to
253# quit:
254#
255#key_quit = ''
256#joy_quit = ''
257#bind_'j0-b3 j0-b6 j0-b4' = joy_quit
258#
259# Button 3 of the first joystick and keys "q" "w" and "e" must be pressed
260# simultaneously to reset the console:
261#
262#key_reset = ''
263#joy_reset = ''
264#bind_'j0-b3 q w e' = joy_reset
265
266# This is how many microseconds DGen should sleep every frame. Even little
267# amounts can decrease CPU overhead significantly, and the default of 20
268# doesn't hurt performance terribly. Of course, set it to 0 if you don't
269# mind DGen eating all your CPU (like me ;)
270int_nice = 0
271
272# Desired window width and height.
273int_width = -1
274int_height = -1
275
276# Color depth (bits per pixel). Allowed values are 0 (automatic), 8, 15, 16,
277# 24 and 32. Ignored in OpenGL mode.
278int_depth = 0
279
280# Video refresh rate. The default is 60 as in NTSC consoles.
281int_hz = 60
282
283# When true, a PAL console is emulated. This should be used in combination
284# with int_hz above for 50Hz emulation.
285bool_pal = false
286
287# Region to emulate: U for America (NTSC), E for Europe (PAL),
288# J for Japan (NTSC), X for Japan (PAL), or empty space for autodetection
289# (the default).
290# Overrides bool_pal and int_hz.
291region = ' '
292
293# Regions DGen is allowed to emulate when autodetection is enabled,
294# ordered by preference.
295str_region_order = JUEX
296
297# Run fullscreen?
298bool_fullscreen = no
299
300# Prevent screen tearing.
301bool_doublebuffer = yes
302
303# Additional thread to offload the displaying of frames in specific cases,
304# see dgenrc.5.
305bool_screen_thread = no
306
307# If you want to increase the size of the rendered screen, increase this value.
308# It currently must be a whole number. See scaling filters.
309int_scale = -1
310int_scale_x = -1
311int_scale_y = -1
312
313# Display the current number of frames per second.
314bool_fps = false
315
316# Display pressed buttons. Can be used to help configuring them.
317bool_buttons = false
318
319# Swap bytes in the video output.
320bool_swab = false
321
322# Scaler to use when display resolution is larger than original screen.
323# Choose between "stretch", "scale", "hqx", "hqx stretch", "scale2x",
324# "scale2x stretch" and "none".
325scaling_startup = stretch
326
327# Use a joystick?
328bool_joystick = yes
329
330# Number of milliseconds to wait after the last mouse motion event to release
331# buttons bound to such events.
332int_mouse_delay = 50
333
334# Use OpenGL mode?
335bool_opengl = yes
336
337# Let OpenGL stretch the screen.
338bool_opengl_stretch = yes
339
340# Retain original aspect ratio when resizing window.
341bool_aspect = true
342
343# Use GL_LINEAR for textures filtering instead of GL_NEAREST.
344bool_opengl_linear = true
345
346# Use 32 bit textures. They require more memory but are usually faster than
347# 16 bit textures.
348bool_opengl_32bit = true
349
350# Use a square OpenGL texture. Wastes memory.
351bool_opengl_square = false
352
353# Height of the text area at the bottom of the screen, in pixels.
354int_info_height = -1
355
356# Generate unfiltered screenshots.
357bool_raw_screenshots = false
358
359# The following variables aren't supported anymore. They have been replaced
360# with the joy_* bindings. They are still mentioned here to help convert
361# existing configuration files.
362#
363# Specifying joysticks identifiers, axes and buttons separately isn't required
364# anymore, because each joy_* binding provides all the necessary information
365# using the following format (see dgenrc.5):
366#
367# joy_padX_{control} = joystick{X}-button{Y}
368# joy_padX_{control} = joystick{X}-axis{Y}-(min|max)
369# joy_padX_{control} = joystick{X}-hat{Y}-{direction}
370#
371# This allows more than a single joystick/joypad to manage a game controller,
372# bind joystick/joypad axes to arbitrary actions, and a single joystick/joypad
373# event to several actions.
374#
375# Additionally, you can use the "calibrate" command to define controls easily.
376#
377# Joystick device selection.
378#int_joystick1_dev = 0 # not supported anymore
379#int_joystick2_dev = 1 # not supported anymore
380#
381# Joystick axes.
382#int_joystick1_axisX = 0 # not supported anymore
383#int_joystick1_axisY = 1 # not supported anymore
384#int_joystick2_axisX = 0 # not supported anymore
385#int_joystick2_axisY = 1 # not supported anymore
386#
387# Don't reverse axes by default
388#bool_joystick1_axisX = false # not supported anymore
389#bool_joystick1_axisY = false # not supported anymore
390#bool_joystick2_axisX = false # not supported anymore
391#bool_joystick2_axisY = false # not supported anymore
392#
393# Joypad 1
394#joypad1_b0 = A # not supported anymore
395#joypad1_b1 = C # not supported anymore
396#joypad1_b2 = A # not supported anymore
397#joypad1_b3 = B # not supported anymore
398#joypad1_b4 = Y # not supported anymore
399#joypad1_b5 = Z # not supported anymore
400#joypad1_b6 = X # not supported anymore
401#joypad1_b7 = X # not supported anymore
402#joypad1_b8 = START # not supported anymore
403#joypad1_b9 = MODE # not supported anymore
404#joypad1_b10 = # not supported anymore
405#joypad1_b11 = # not supported anymore
406#joypad1_b12 = # not supported anymore
407#joypad1_b13 = # not supported anymore
408#joypad1_b14 = # not supported anymore
409#joypad1_b15 = # not supported anymore
410#
411# Joypad 2
412#joypad2_b0 = A # not supported anymore
413#joypad2_b1 = C # not supported anymore
414#joypad2_b2 = A # not supported anymore
415#joypad2_b3 = B # not supported anymore
416#joypad2_b4 = Y # not supported anymore
417#joypad2_b5 = Z # not supported anymore
418#joypad2_b6 = X # not supported anymore
419#joypad2_b7 = X # not supported anymore
420#joypad2_b8 = START # not supported anymore
421#joypad2_b9 = MODE # not supported anymore
422#joypad2_b10 = # not supported anymore
423#joypad2_b11 = # not supported anymore
424#joypad2_b12 = # not supported anymore
425#joypad2_b13 = # not supported anymore
426#joypad2_b14 = # not supported anymore
427#joypad2_b15 = # not supported anymore
428