1.Dd July 26, 2014
2.Dt DGEN 1
3.Os
4.Sh NAME
5.Nm dgen
6.Nd Sega Genesis/Mega Drive emulator
7.Sh SYNOPSIS
8.Nm dgen
9.Op Fl Pfhmv
10.Op Fl R Ar (J|U|E)
11.Op Fl H Ar HZ
12.Op Fl D Ar DEMONAME
13.Op Fl d Ar DEMONAME
14.Op Fl n Ar USEC
15.Op Fl p Ar CODE,CODE...
16.Op Fl r Ar RCFILE
17.Op Fl X Ar XFACT
18.Op Fl Y Ar YFACT
19.Op Fl S Ar FACT
20.Op Fl g Ar (0|1)
21.Op Fl G Ar XxY
22.Op Fl s Ar SLOT
23.Ar [romname [...]]
24.Sh DESCRIPTION
25The ROM image in the file
26.Ar romname
27is executed, as emulated on a Sega Genesis or Mega Drive running in 60Hz NTSC
28mode (unless the
29.Fl P
30option is specified, in which case 50Hz PAL mode is used).
31.Ar romname
32should be in raw binary or SMD format, and may be compressed with
33.Xr gzip 1 ,
34.Xr zip 1 , or
35.Xr bzip2 1 .
36.Pp
37When
38.Ar romname
39isn't specified, DGen starts without a ROM. It can be loaded later from the
40prompt. When more than a single
41.Ar romname
42is specified, they are executed sequentially.
43.Pp
44The options are as follows:
45.Bl -tag -width Fl
46.It Fl H Ar HZ
47Use a custom frame rate, can be used to accelerate or slow down emulation.
48.It Fl P
49Emulate 50Hz PAL mode (as used in European models of the Mega Drive).
50.It Fl R Ar (J|U|E)
51Emulator region. Without this option, DGen uses the first region mentioned in
52the ROM header. It should be combined with
53.Fl P
54for PAL mode. See below.
55.Bl -tag -width Fl
56.It (none)
57Autodetect (NTSC, 60Hz)
58.It Fl P
59Autodetect (PAL, 50Hz)
60.It Fl R Ar J
61Japan (NTSC, 60Hz)
62.It Fl R Ar J Fl P
63Japan (PAL, 50Hz)
64.It Fl R Ar E
65Europe (NTSC, 60Hz, music will certainly play too fast)
66.It Fl R Ar E Fl P
67Europe (PAL, 50Hz)
68.It Fl R Ar U
69America (NTSC, 60Hz)
70.It Fl R Ar U Fl P
71Same as
72.Fl R Ar E Fl P
73.El
74.It Fl f
75Run fullscreen, if possible.
76.It Fl h
77Show a brief synopsis of all options.
78.It Fl m
79MinGW only. This option prevents DGen from detaching from its control console.
80.It Fl v
81Show the version number, and exit.
82.It Fl D Ar DEMONAME
83Play back a demo recorded with the
84.Fl d
85option.
86.It Fl d Ar DEMONAME
87Record a demo of the program running, which can be later replayed with the
88.Fl D
89switch.
90.It Fl n Ar USEC
91Sleep for a number of microseconds after every frame, to give time to other
92processes.
93.It Fl p Ar CODE,CODE...
94Modify the ROM image in memory, using Game Genie or Hex style codes. Game
95Genie codes are of the form
96.Ar ABCD-EFGH
97and Hex codes are in the form
98.Ar 123456:ABCD .
99To specify more than one code, separate them with commas (do
100.Ar not
101use spaces).
102.It Fl r Ar RCFILE
103Parse another rc file after $HOME/.dgen/dgenrc. Values in the specified file
104override those in the preceding files.
105.It Fl X Ar XFACT
106Scale the window XFACT times in the X direction. XFACT must be a positive
107integer.
108.It Fl Y Ar YFACT
109Scale the window YFACT times in the Y direction. YFACT must be a positive
110integer.
111.It Fl S Ar FACT
112Scale the window FACT times in both directions. FACT must be a positive integer.
113.It Fl g Ar (0|1)
114Enable/disable OpenGL (if compiled-in).
115.It Fl G Ar XxY
116Desired window size (e.g. 640x480, 800x600, etc.)
117.It Fl s Ar SLOT
118Load the saved state from the given slot at startup (0-9)
119.El
120.Sh INTERACTIVE PROMPT
121A minimalist interactive prompt inspired from
122.Xr vi 1
123can be used to perform various operations described below. It is triggered by
124pressing colon (:), the default key. Command-line editing, history and
125completion are supported.
126.Ss Commands
127.Bl -tag -width xxxx
128.It {quit, exit, q}
129Quit, or load the next
130.Ar romname
131from command-line, if any.
132.It {load, open, plug, o} Ar filename
133Load a given ROM
134.Ar filename .
135.It {unload, close, unplug}
136Unload the current ROM.
137.It config_load Ar filename
138Load configuration from file
139.Ar filename .
140.It config_save Ar filename
141Save current configuration to file
142.Ar filename .
143.It reset
144Genesis reset.
145.It {ctv_push, ctv_pop, ctv_none}
146Manage the stack of Crap TV filters (if compiled-in).
147.It calibrate Ar number
148Interactive calibration of the specified gamepad (1 or 2). If
149.Ar number
150isn't specified, default to 1.
151.It unbind Ar binding [...]
152Remove specified bindings (variables prefixed with "bind_").
153See
154.Xr dgenrc 5
155for more information about them.
156.It vgmdump start Ar filename
157.It vgmdump stop
158Manages VGM dumping/logging. If the second argument is
159.Ar start
160VGM dumping will be started at the path specified by the third argument.
161If the second argument is
162.Ar stop
163VGM dumping will be stopped and the dump finalized.
164.El
165.Ss Variables
166All configuration variables from
167.Xr dgenrc 5
168can be displayed and modified interactively, with immediate effect.
169.Bl -tag -width xxxx
170.It {int_name, bool_name, key_name, joy_name, ...} {value}
171Affect
172.Ar value
173to variable
174.Ar name .
175.It {int_name, bool_name, key_name, joy_name, ...}
176Display current value for variable
177.Ar name .
178.El
179.Sh FILES
180.Bl -tag -width $HOME/.dgen/dgen/saves/* -compact
181.It Pa $HOME/.dgen/dgenrc
182Contains user settings for the emulator.
183.It Pa $HOME/.dgen/dgenrc.auto
184Generated file containing saved user settings.
185.It Pa $HOME/.dgen/saves/*
186Save states generated by the emulator.
187.It Pa $HOME/.dgen/ram/*
188Battery-backup RAM images, generated by the emulator for ROMs with save RAM.
189.It Pa $HOME/.dgen/screenshots/*
190Screenshots are generated there.
191.It Pa $HOME/.dgen/roms/*
192ROMs default search path.
193.It Pa $HOME/.dgen/demos/*
194Demos default search path.
195.El
196.Sh SEE ALSO
197.Xr gzip 1 ,
198.Xr bzip2 1 ,
199.Xr zip 1 ,
200.Xr dgenrc 5
201.Sh AUTHORS
202This manual page was written by
203.An Joe Groff Aq joe@pknet.com .
204.An Updated by zamaz Aq zamaz@users.sourceforge.net .
205.Sh BUGS
206There are known emulation bugs, see BUGS in DGen source package.
207.Pp
208.An Report bugs to Aq http://sourceforge.net/projects/dgen/ .
209